Arduino循迹小车教程三----测试小车篇


前言

组装好小车并且接完线后,就可以开始写代码让小车动起来啦~
硬件完成了,循迹小车你就完成了一半了,剩下的软件部分就开始写代码,调试代码了。


一、初始化引脚(放在setup函数)

1.电机引脚初始化

因为Arduino要输出控制信号给L298N电机驱动模块,所以将电机引脚设置为输出模式

  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(9, OUTPUT);

2.循迹模块D0引脚初始化

因为Arduino是要接收循迹模块的高低电平信号,所以将循迹模块的引脚设置为输入模式

  pinMode(10, INPUT);
  pinMode(11, INPUT);
  pinMode(12, INPUT);
  pinMode(13, INPUT);

二、循迹模块(放在loop函数)

1.读取循迹模块的高低电平

使用digitalRead()函数读取数字引脚的高低电平,循迹模块检测到黑线为高电平HIGH(1),白线为低电平LOW(0),如果循迹模块的指示灯不灵敏或者一闪一闪的,就需要用螺丝刀调节蓝色的电位器,将循迹模块放在黑线上,把灯调亮,然后再回调一些,把灯调灭,这样循迹模块的阈值就刚好在临界点了。

  Sensor [0] = digitalRead(10); 
  Sensor [1] = digitalRead(11);
  Sensor [2] = digitalRead(12);
  Sensor [3] = digitalRead(13;

2.打印循迹模块的高低电平

使用Serial.print();函数打印循迹的值,在Arduino的右上角有个放大镜🔍,可以打开串口监视器,电脑连接Arduino就可以看到串口的值了

  Serial.print(Sensor [0]);
  Serial.print("---");
  Serial.print(Sensor [1]);
  Serial.print("---");
  Serial.print(Sensor [2]);
  Serial.print("---");
  Serial.println(Sensor [3]);

三、控制电机转速(放在loop函数,重点!!!)

analogWrite()函数用来控制电机的速度,不过要注意不同的车型,代码执行效果不同!所以换一辆车,代码就要重新调,最重要的是积累经验

  analogWrite(3, 100);
  analogWrite(5, 0);
  analogWrite(6, 100);
  analogWrite(9, 0);

上面这个代码是让小车直走的,烧录进去后,发现小车转动的方向不对,把电机驱动模块和Arduino的线反过来就可以啦。比如说:左轮向后走,那么就把Arduino上的引脚3和引脚5的线换一下就可以往前走了。

四、简单的循迹代码(放在loop函数)

最简单的就是用 if 语句来判断,如果第2个循迹模块检测到黑线,要让小车左转,把它摆正回来。if 语句如下,代码的具体数值要根据地图的实际情况来调,所以就算你copy别人的代码,也没用!最重要的是积累经验!

if (Sensor [0] == 0 && Sensor [1] == 1 && Sensor [2] == 0 && Sensor [3] == 0)
  analogWrite(3, 50);
  analogWrite(5, 0);
  analogWrite(6, 100);	//右轮速度比左轮快,小车就会左转
  analogWrite(9, 0);

如果是第3个循迹模块检测到黑线,要让小车右转。if 语句如下

if (Sensor [0] == 0 && Sensor [1] == 0 && Sensor [2] == 1 && Sensor [3] == 0)
  analogWrite(3, 100);	//左轮速度比右轮快,小车就会右转
  analogWrite(5, 0);
  analogWrite(6, 50);
  analogWrite(9, 0);

还有其他的循迹情况,你们可以自己探索或者看我下一篇的代码详解。(调试电机的速度,特别考验抗压能力,这个过程会很痛苦~~>_<~~,不过坚持调个一周多也差不多了)


总结

  • 10
    点赞
  • 111
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值