arduino小车没有输代码就能转

arduino小车没有输代码就能转,第1张

Arduino小车不需要输入代码就能转动,首先你可以使用有线控制小车,可以选择一把遥控器,这样你只需要把遥控器与电路板相连,即谨行可轻松 *** 控小车的转向。另外,你也可以选择使用Wi-Fi、蓝牙、或者其他移动通信控制方式,可以使用手机、电闭携脑或者遥控祥态哗器等来控制小车的行走方向。只要你懂得一点程序控制,那么你就可以轻松实现控制小车转向的功能。

看你的程序用的是H桥驱动两个直流电机正反转绝哪。

调试时不用接电机,H桥驱动有指示灯就可以看到4个端口的状态。

你的else这段不知道怎么回事,是把所有不是123的变为右转。。。

程序修改了一些,刚才试试可以编译通过。在串口调试软件可以看到PC键盘发送1/2/3/4给arduino,能收到arduino的反馈。因为串口有缓冲区,程序自动发送连续的1时会造成arduino 持续响应这个1,而等很久并槐码才相应改变后的按键。这点需要仔明竖细调试发送端程序。

这个程序不推荐Ctrl+Shift+M ,用 STC-ISP 6.76 或更高版本有自动发送字符功能,更容易调试串口。PC键盘串口调试好后再换成蓝牙串口板。

#define p11 9

#define p12 10

#define p21 11

#define p22 12

void setup()

{

Serial.begin(9600)

pinMode(p11,OUTPUT)

pinMode(p12,OUTPUT)

pinMode(p21,OUTPUT)

pinMode(p22,OUTPUT)

}

void loop()

{

pinMode(p11,OUTPUT)

pinMode(p12,OUTPUT)

pinMode(p21,OUTPUT)

pinMode(p22,OUTPUT)

int a=0,b=1

while (Serial.available() >0)

{

Serial.flush() //清除串口缓存

delay(500)//等待小段时间

int inChar = Serial.read()

inChar=inChar-0x30 // 数字1的 ASCII码是 16进制0x31

if(inChar == 1) //foward

{

Serial.print("key 1 pressed") //调试目的

digitalWrite(p11,LOW)

digitalWrite(p12,HIGH)

digitalWrite(p21,LOW)

digitalWrite(p22,HIGH)

delay(1000) // 按键后作用时长

}

else if(inChar == 2) //back

{

Serial.print("key 2 pressed") //调试目的

digitalWrite(p11,HIGH)

digitalWrite(p12,LOW)

digitalWrite(p21,HIGH)

digitalWrite(p22,LOW)

delay(1000)

}

else if(inChar == 3) // turn left

{

Serial.print("key 3 pressed") //调试目的

digitalWrite(p11,HIGH)

digitalWrite(p12,LOW)

digitalWrite(p21,LOW)

digitalWrite(p22,HIGH)

delay(1000)

}

else if(inChar == 4) // turn right

{

Serial.print("key 4 pressed") //调试目的

digitalWrite(p11,LOW)

digitalWrite(p12,HIGH)

digitalWrite(p21,HIGH)

digitalWrite(p22,LOW)

delay(1000)

}

else //其他按键,停止

{

Serial.print("key other pressed") //调试目的

digitalWrite(p11,LOW)

digitalWrite(p12,LOW)

digitalWrite(p21,LOW)

digitalWrite(p22,LOW)

}

}

}

// R是右(right),L是左(left) 小车对着自己看时 分的左右

int MotorRight1=14

int MotorRight2=15

int MotorLeft1=16

int MotorLeft2=17

int MotorRPWM=5

int MotorLPWM=3

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) // 脚位 5 (PWM)

pinMode(MotorRPWM, OUTPUT) // 脚位 3 (PWM)

}

void loop()

{

digitalWrite(MotorRight1,LOW)/渗码猛/IN1 右电机 高电平反转

digitalWrite(MotorRight2,HIGH)//IN2 右电机模备 高电平正转

analogWrite(MotorRPWM,130)

digitalWrite(MotorLeft1,HIGH)//IN3 左电机 高电平正转

digitalWrite(MotorLeft2,LOW)//IN4 左电机 高电平反转

analogWrite(MotorLPWM,130)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12567617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存