- int IN1 = 9;
- int IN2 = 10;
- int IN3 = 11;
- int IN4 = 12;
- int lkf;
- void setup()
- {
- pinMode(IN1,OUTPUT);
- pinMode(IN2,OUTPUT);
- pinMode(IN3,OUTPUT);
- pinMode(IN4,OUTPUT);
- Serial.begin(9600);//设置波特率为9600bps
- lkf=0;
- digitalWrite(IN1,LOW);
- digitalWrite(IN2,LOW);
- digitalWrite(IN3,LOW);
- digitalWrite(IN4,LOW);
- }
- void loop()
- {
-
- lkf=0;
- if(Serial.available())
- {
- lkf = Serial.read();
- switch(lkf)
- {
- case 'A': //qianjin
- Move();
- lkf=0;
- break;
- case 'B': //houtui
- Back();
- lkf=0;
- break;
- case 'C': //zuozhuan
- TurnLeft();
- lkf=0;
- break;
- case 'D': //youzhuan
- TurnRight();
- lkf=0;
- break;
- case 'E':
- Stop(); //tingzhi
- lkf=0;
- break;
- }
- }
- lkf=0;
-
-
-
- }
- void Move()
- {
- digitalWrite(IN1,LOW);
- digitalWrite(IN2,HIGH);
- digitalWrite(IN3,LOW);
- digitalWrite(IN4,HIGH);
- }
- void Stop()
- {
- digitalWrite(IN1,LOW);
- digitalWrite(IN2,LOW);
- digitalWrite(IN3,LOW);
- digitalWrite(IN4,LOW);
- }
- void Back()
- {
- digitalWrite(IN1,HIGH);
- digitalWrite(IN2,LOW);
- digitalWrite(IN3,HIGH);
- digitalWrite(IN4,LOW);
- }
- void TurnLeft()//左转
- {
- //左转,就是左轮不动,右轮前进
- digitalWrite(IN1,LOW);
- digitalWrite(IN2,LOW);
- digitalWrite(IN3,LOW);
- digitalWrite(IN4,HIGH);
- }
- void TurnRight()//右转
- {
- //右转,就是右轮不动,左轮前进
- digitalWrite(IN1,LOW);
- digitalWrite(IN2,HIGH);
- digitalWrite(IN3,LOW);
- digitalWrite(IN4,LOW);
- }
复制代码
上面的代码我下载到小车的时候,打开串口监视器,向里面发送数据如‘A’,可小车只有右轮转动,
发送数据'B',小车向后退,这是对的,
发送数据'c'小车左轮向后转,右轮向前转,
发送数据'D',小车停止,发
送数据'E',小车左轮转。
小车请各位大神看看哪里出了问题。先谢谢各位了! |