int IN1=5;
int IN2=6;//左轮
int IN3=9;
int IN4=10;//右轮
int outputValue = 0;
const int SensorLeft1=A1;//左感測器輸入腳
const int SensorLeft2=A2;
const int SensorRight1=A3;//右感測器輸入腳
const int SensorRight2=A4;
const int ENA=6;
const int ENB=5;
int SL1;
int SL2;//左感測器狀態
int SR1;
int SR2;//右感測器狀態
void setup() {
Serial.begin(9600);
pinMode(IN1,OUTPUT);
pinMode( IN2,OUTPUT);
pinMode( IN3,OUTPUT);
pinMode( IN4,OUTPUT);
pinMode(SensorLeft1,INPUT);
pinMode(SensorLeft2,INPUT);
pinMode(SensorRight1,INPUT);
pinMode(SensorRight2,INPUT);// put your setup code here, to run once:
}
void loop() {
digitalWrite(IN2,LOW);
digitalWrite(IN4,LOW);
SL1=digitalRead(SensorLeft1);
SL2=digitalRead(SensorLeft2);
SR1=digitalRead(SensorRight1);
SR2=digitalRead(SensorRight2);
if (SL1==HIGH &&SL2==HIGH&& SR1==HIGH&& SR2==HIGH)//前进
{delay(1);
analogWrite(ENA,100);
analogWrite(ENB,100);
digitalWrite( IN1,HIGH);
digitalWrite( IN2,LOW);//IN1左电机高电平正转
digitalWrite( IN3,HIGH);//IN3右电机高电平反转
digitalWrite( IN4,LOW);
}
else
if(SL1==HIGH&&SL2==HIGH&&SR1==LOW&&SR2==LOW)
{delay(1);
analogWrite(ENA,50);
analogWrite(ENB,50);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}
else
if(SL1==LOW&&SL2==LOW&&SR1==HIGH&&SR2==HIGH)
{delay(1);
analogWrite(ENA,50);
analogWrite(ENB,50);
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}
}
|