标题:
arduino红外避障程序
[打印本页]
作者:
haoxiaozi1
时间:
2021-4-18 08:48
标题:
arduino红外避障程序
这是一个关于arduino红外避障的程序
#define L_hw A0 //左红外
#define R_hw A1 //右红外
#define motor_A1 7
#define motor_A2 8
#define motor_A 9
#define motor_B1 6
#define motor_B2 5
#define motor_B 3
void setup() {
pinMode(L_hw,INPUT);
pinMode(R_hw,INPUT);
pinMode(motor_A1,OUTPUT);
pinMode(motor_A2,OUTPUT);
pinMode(motor_A,OUTPUT);
pinMode(motor_B1,OUTPUT);
pinMode(motor_B2,OUTPUT);
pinMode(motor_B,OUTPUT);
Serial.begin(9600); // 初始化串口
}
void loop() {
bizhang(); //红外避障子程序
}
void qianjin(){
digitalWrite(motor_A1,1);
digitalWrite(motor_A2,0);
analogWrite(motor_A,100); //PWM
digitalWrite(motor_B1,1);
digitalWrite(motor_B2,0);
analogWrite(motor_B,100); //PWM
}
void houtui(){
digitalWrite(motor_A1,0);
digitalWrite(motor_A2,1);
analogWrite(motor_A,100); //PWM
digitalWrite(motor_B1,0);
digitalWrite(motor_B2,1);
analogWrite(motor_B,100); //PWM
}
void zuozhuan(){
digitalWrite(motor_A1,0);
digitalWrite(motor_A2,1);
analogWrite(motor_A,100); //PWM
digitalWrite(motor_B1,1);
digitalWrite(motor_B2,0);
analogWrite(motor_B,100); //PWM
}
void youzhuan(){
digitalWrite(motor_A1,1);
digitalWrite(motor_A2,0);
analogWrite(motor_A,100); //PWM
digitalWrite(motor_B1,0);
digitalWrite(motor_B2,1);
analogWrite(motor_B,100); //PWM
}
void bizhang(){ //避障
if(digitalRead(L_hw)==1&&digitalRead(R_hw)==1){
qianjin();
}
else if(digitalRead(L_hw)==1&&digitalRead(R_hw)==0){
zuozhuan();
}
else if(digitalRead(L_hw)==0&&digitalRead(R_hw)==1){
youzhuan();
}
else if(digitalRead(L_hw)==0&&digitalRead(R_hw)==0){
houtui();
delay(2000);
zuozhuan();
delay(500);
}
else{
houtui();
}
}
复制代码
作者:
glinfei
时间:
2021-4-19 23:46
else if(digitalRead(L_hw)==1&&digitalRead(R_hw)==0){ zuozhuan(); 写反了吧?右边检测轨迹线,怎么还左转了?就算没反,类似的写法,我在四个电机的小车试过了,基本没法用。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1