ステッピング モーターを加速するハード コードの例に問題があります。モーターを一定の速度で動かすことはできますが、モーターが始動してステップを失わないようにするためには、比較的重いものを動かすため、加速が必要です。私が書いたコードは、追加のコードがない場合と同じように反復したくないようです。コードは、arduino コードの void loop() セクションで以下にコピーされます。
`digitalWrite(dir, HIGH);
for(int i=0; i <= distance; i++){
Serial.println(i);
if(i<1000){
wait = 500 - (0.45*i);
}
else{
wait = 50;
}
digitalWrite(pul, HIGH);
delayMicroseconds(wait);
digitalWrite(pul, LOW);
delayMicroseconds(wait);
}`
プログラムは、書かれたとおりに動作することを望んでいません。AccelStepper ライブラリは優れたオプションではなく、このタイプのアクセラレーションを追加するのは難しくありません。これが機能しない理由がわかりません。
続きを追加しました。if ステートメントと else ステートメントの後でも、問題は解決しません。
減速についても、私の計画は反対方向に同じことをすることでした。