arduino小车程序求教

arduino小车程序求教,第1张

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

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

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

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

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

#define p11 9

#define p12 10

#define p21 11

#define p22 12

void setup()

{

Serialbegin(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 (Serialavailable() > 0)

{

Serialflush(); //清除串口缓存

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

int inChar = Serialread();

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

if(inChar == 1) //foward

{

Serialprint("key 1 pressed"); //调试目的

digitalWrite(p11,LOW);

digitalWrite(p12,HIGH);

digitalWrite(p21,LOW);

digitalWrite(p22,HIGH);

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

}

else if(inChar == 2) //back

{

Serialprint("key 2 pressed"); //调试目的

digitalWrite(p11,HIGH);

digitalWrite(p12,LOW);

digitalWrite(p21,HIGH);

digitalWrite(p22,LOW);

delay(1000);

}

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

{

Serialprint("key 3 pressed"); //调试目的

digitalWrite(p11,HIGH);

digitalWrite(p12,LOW);

digitalWrite(p21,LOW);

digitalWrite(p22,HIGH);

delay(1000);

}

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

{

Serialprint("key 4 pressed"); //调试目的

digitalWrite(p11,LOW);

digitalWrite(p12,HIGH);

digitalWrite(p21,HIGH);

digitalWrite(p22,LOW);

delay(1000);

}

else //其他按键,停止

{

Serialprint("key other pressed"); //调试目的

digitalWrite(p11,LOW);

digitalWrite(p12,LOW);

digitalWrite(p21,LOW);

digitalWrite(p22,LOW);

}

}

}

有以下疑问:

1 SoftPWMSet 这是什么鬼? arduino的pwm输出,可以直接使用analogwrite函数。若是你自己写的,;源文件丢出来给人看看是啥。

2 还有"pins_arduinoh"也是,如果是自己写的,都把它贴出来。

3 arduino的中断,不是这样用的。直接使用<avr/interrupth>,会造成冲突

4 对你这个程序,你遇到的困难是?想跟网友求助那个问题?看了10多分钟,还是一头雾水。你这个我大概看了下,目测你的程序是这样的:3,5,10,9,这四个引脚来控制两个直流电机,直接扩流来驱动电机,引脚8接的是一个LeD,用于显示状态,还有个11引脚,从注释的字面上理解,应该是超声波的相关引脚,但是一个引脚,超声波,我愚钝,看不出来的是干嘛。

看了10多分钟,还没搞懂你想要干嘛,根据超声波测得的距离,来控制小车前进后退?还是前进过程中,超声波检测到障碍来做避障?

根据前面的分析,你这段代码,肯定是不通过编译的,错误提示呢?

你要网友帮你修正程序,但是又不知道你的需求,怎么改?

总之,分给我吧~~~

以上就是关于arduino小车程序求教全部的内容,包括:arduino小车程序求教、arduino 程序解析, 求真正理解单片机的牛人、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/10060441.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存