大哥们帮我看看,这是我们做寻迹小车的译码,谢谢
void setup() {
// put your setup code here, to run once:
pinMode(A1, INPUT);//输入引脚
pinMode(A2, INPUT);
pinMode(A3, INPUT);
pinMode(A4, INPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
void go() {//没有返回值
analogWrite(6, 80);//前者为引脚,后者为pwm频率值
digitalWrite(4, LOW);//打开
analogWrite(3, 80);
digitalWrite(5, LOW);
}
void back() {//
analogWrite(4, 80);
digitalWrite(6, LOW);
analogWrite(5, 80);
digitalWrite(3, LOW);
}
void right1() {//右边
analogWrite(6, 80); digitalWrite(4, LOW); analogWrite(5, 80); analogWrite(3, LOW);
}
void left1() {//左边
analogWrite(4, 80);
digitalWrite(6, LOW);
analogWrite(3, 80);
digitalWrite(5, LOW);
}
void right2() {
analogWrite(6, 100);
digitalWrite(4, LOW);
analogWrite(3, 50);
digitalWrite(5, LOW);
}
void left2() {
analogWrite(6, 50);
digitalWrite(4, LOW);
analogWrite(3, 100);
digitalWrite(5, LOW);
}
void stop() {
analogWrite(2, LOW);
digitalWrite(4, LOW);
analogWrite(4, LOW);
digitalWrite(6, LOW);
}
void test() {
int c;
if (digitalRead(A3) == LOW && digitalRead(A4) ==LOW && digitalRead(A2) == LOW && digitalRead(A1) == LOW) c = 1;
if (digitalRead(A1) == HIGH) c = 2; if (digitalRead(A4) == HIGH ) c = 3;
if (digitalRead(A3) == HIGH && digitalRead(A4) ==HIGH && digitalRead(A2) ==HIGH && digitalRead(A1) == HIGH )c = 4;
switch (c) {
case 1: go(); break;//小车跑结束
case 2: left2(); break;
case 3: right2(); break;
case 4: stop(); break;
default : go();//除去,小车停止
}
}
void loop() {//读取引脚A0的输出信号,并将其数值赋值给变量(analogwrite)
// put your main code here, to run repeatedly:
test();
}