简单的写的话不会区别偏离黑线距离远近的,复杂点儿的话会分区编程,简单版如下:
void turn_left()
{
P10 = 0; //左前轮
P11 = 1; //右前轮
P12 = 0; //左后轮
P13 = 1; //右后轮
}
unsigned char judge()
{
switch(P2 & 0x)
case 0x:
{
break;
}
return 某变量(用于选择拐弯方向程序)
}
转弯比较简单,就是一个轮转,另一个不转达到转弯目的,你也可以用速度高低来控制,自己DIY就行。
>
别想那么复杂。
首先,你把检测黑线的传感器就当一普通开关。因为,当照射在黑线上时,光线反射能力弱,输出低电平。照在黑线外,则输出高电平。只有高低两种电平,所以,你只需要把它当一个普通开关看待。
然后,既然是普通开关,写代码时只需要位声明以及设置gpio为双向或强拉模式,51单片机都不用设置gpio。
最后,程序里,检测到高电平然后io口电平取反就行。
完整的程序没有了,主要是方法,能巡迹,说明硬件没有问题,现在主要是软件算法的问题,建议可以分步实现,找出各个段时检测到数据与巡迹时有什么不同,可以用示波器来看波形什么。随后软件根据不同点来编写程序,就可以实现全部功能。如果波形等没有差异,就要从检测方法入手了。程序是解决不了的。
以上就是关于求最简单的51单片机智能循迹小车原理图以及程序以及制作过程,不胜感激!!全部的内容,包括:求最简单的51单片机智能循迹小车原理图以及程序以及制作过程,不胜感激!!、怎么编写51单片机C程序让智能循迹小车,无论是否遇到障碍物都朝着目标走啊跪求大神解答。。、51单片机智能两路循迹小车程序,检测到黑线直走,检测不到黑线就左转或右转都可以,需要程序代码麻烦了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)