循跡小車

int MotorRight1=14; //A0 IN1

int MotorRight2=15; //A1 IN2

int MotorLeft1=16; //A2 IN3

int MotorLeft2=17; //A3 IN4


int MotorRPWM=5; //PWM 5

int MotorLPWM=3; //PWM 3

int SensorLeft = 2; //左感測器輸入腳

int SensorRight = 6; //右感測器輸入腳

int SL; //左感測器狀態

int SR; //右感測器狀態


void setup()

{

Serial.begin(9600);

pinMode(MotorRight1, OUTPUT); // 腳位 14 (PWM)

pinMode(MotorRight2, OUTPUT); // 腳位 15 (PWM)

pinMode(MotorLeft1, OUTPUT); // 腳位 16 (PWM)

pinMode(MotorLeft2, OUTPUT); // 腳位 17 (PWM)

pinMode(MotorLPWM, OUTPUT); // 腳位 3 (PWM)

pinMode(MotorRPWM, OUTPUT); // 腳位 5 (PWM)

pinMode(SensorLeft, INPUT); //定義左感測器

pinMode(SensorRight, INPUT); //定義右感測器

}


void loop()

{

SL = digitalRead(SensorLeft);

SR = digitalRead(SensorRight);

if (SL == ________ && SR ==________)// 左右都黑,前進

{

digitalWrite(MotorRight1,LOW);//IN1 右馬達高電壓反轉

digitalWrite(MotorRight2,HIGH);//IN2 右馬達高電壓正轉

analogWrite(MotorRPWM,130); //0---100--250

digitalWrite(MotorLeft1,HIGH);//IN3 左馬達高電壓正轉

digitalWrite(MotorLeft2,LOW);//IN4 左馬達高電壓反轉

analogWrite(MotorLPWM,110);

}

else// 都是白色, 停止

{

digitalWrite(MotorRight1,LOW);

digitalWrite(MotorRight2,LOW);

analogWrite(MotorRPWM,0);

digitalWrite(MotorLeft1,LOW);

digitalWrite(MotorLeft2,LOW);;

analogWrite(MotorLPWM,0);

}

}