有谁用过微型的arduino板吗,我想做一个小车,但普通的板太大了
答案:2 悬赏:40 手机版
解决时间 2021-02-01 12:55
- 提问者网友:寂寞梧桐
- 2021-01-31 20:14
有谁用过微型的arduino板吗,我想做一个小车,但普通的板太大了
最佳答案
- 五星知识达人网友:雾月
- 2021-01-31 21:11
uno核心板就已经很小了,再小的话如果你会PCB制作,可以把它的核心芯片抄下来和小车做成一体
全部回答
- 1楼网友:山君与见山
- 2021-01-31 22:17
看你的程序用的是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);
}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯