あなたのコードは完璧に見えます、あなたのハードウェアがきちんと動いていること、そしてすべてがきちんと接続されていることを確かめてください、Arduinoボード上の小さな電圧調整器は500mAなどの大電流を処理する場合(大きなレギュレータに交換して大きなヒートシンクを使用しない限り)、arduinoとモータにUSBから電力を供給している場合は、USBポートが2つのモータに必要な電力を処理できることを確認してください。ピン10と5がPWMピンであることを確認してください。
また、専用のモーターライブラリを使用すると、コードを単純化するのに役立ちます。
#include
#include
#define enA 10
#define enB 5
#define i1 8
#define i2 9
#define i3 6
#define i4 7
void initMotors(){
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(i1, OUTPUT);
pinMode(i2, OUTPUT);
pinMode(i3, OUTPUT);
pinMode(i4, OUTPUT);
}
void motor1Stop(){
digitalWrite(i1, LOW);
digitalWrite(i2, LOW);
}
void motor2Stop(){
digitalWrite(i3, LOW);
digitalWrite(i4, LOW);
}
void motorsEnabled(bool en){
digitalWrite(enA, en);
digitalWrite(enB, en);
}
void enableMotors(){
motorsEnabled(HIGH);
}
void motor1Forward(){
digitalWrite(i1, HIGH);
digitalWrite(i2, LOW);
}
void motor1Backward(){
digitalWrite(i1, LOW);
digitalWrite(i2, HIGH);
}
void motor2Forward(){
digitalWrite(i3, LOW);
digitalWrite(i4, HIGH);
}
void motor2Backward(){
digitalWrite(i3, HIGH);
digitalWrite(i4, LOW);
}
これを含めるには、新しいタブを作成し、(スペースがなく、.hで終わる限り)好きな名前を付けてから、 #include "name.h"
をの先頭に追加します。あなたのコード、これはあなたが将来のバグを減らすのに役立ちます
速度制御のためにあなたはこれを追加することができます:
void setMotorSpeeds(int motor1, int motor2){
analogWrite(enA, motor1);
analogWrite(enB, motor2);
}