利用51芯片制作智能循迹车子
来源:互联网 发布:水墨风手游 知乎 编辑:程序博客网 时间:2024/04/29 11:16
在学习单片机视频的同时,我结合开发板上写了一些基本的例程,这些例程都是用c语言写的,由于当时没有学过汇编,只是课外有时间的时候看了一下,个人觉得用汇编写代码有点麻烦,所以一直都是用c语言写。这些例程包括实现开发板上一些基本的功能,比如说跑马灯的实现,数码管的显示,蜂鸣器的鸣叫,马达的转动等等。在学习完之后想利用51单片机芯片做一个小型的项目,就是练练手,由于我主要是走liinux + arm路线的,所以51这一部分只是一个过渡期,没有花多大的时间研究。
在网上搜了一下,有人建议我做一个智能循迹小车,简单的说就是黑线白板,小车在白板上沿着黑线走。想到这个问题的时候有点不可思议,然后在网上看别人做的车子,在黑色的胶带上走动,说实话很羡慕,自己也想动手做做看。虽然说我会画pcb,也可以做板子,但是为了保证硬件不出问题,我就利用别人做的板子,直接在板子上焊接元器件,以及对车子进行组转,首先需要保证能够把程序下载到51芯片上,测试了一下没问题,哈哈……可以了。在看了车子实现功能介绍后,以前那一阵的迷惑的心终于开解了,原来是如此的简单,大体的说是利用红外接收和红外发射装置来接收和发送信号,在车子跑出黑线的时候,红外接收管接收到一个电平,既而传给芯片,最后对马达进行驱动,不过之前需要对马达进行一些简单的测试,比如前进,后退,左转,右转,左转的时候就是让左边的马达不转,右边的马达转动,就可以实现向左边转动,经过两个礼拜的时间,终于可以让车子在黑线上走了,在测试发射装置是否是好的,将车子上电,用摄像头照着它,在另一端看,有红光,代表是好的,反之,则坏了,需要换一个。还有一个,下载车子程序之前,写一段代码对红外发射和接收进行测试下,利用led进行测试,红外装置在黑色范围内,led呈现亮的状态,在外面则是暗的,这是一个很好的方法。
一下是我当初的一些代码,很短,但是需要对它们了解,我感觉在主函数里少用一些while比较好,否则会出现一些问题。
#include <reg52.h>
sbit LeftLed = P0^7; //定义前方左侧指示灯端口
sbit RightLed = P2^0;
sbit RightIR = P3^6;
sbit LeftIR = P3^7; //定义前方左侧红外探头端口
sbit M1A= P0^0; //定义左侧电机驱动A端
sbit M1B = P0^1; //定义左侧电机驱动B端
sbit M2B = P0^2;
sbit M2A= P0^3;
void Delay()
{
unsignedint i = 10000;
while(i--);
}
void Delay1(unsigned int m)
{
unsignedint i, j;
for(i = 0; i < m; i++)
for(j = 0; j < 60; j++);
}
void ControlCar(unsigned char ConType)
{
M1A = 0;
M1B= 0;
M2A = 0;
M2B= 0;
switch(ConType)
{
case1: //前进
{
M1A = 1;
M2A = 1;
LeftLed= 0;
RightLed= 0;
break;
}
case2: //后退
{
LeftLed= 1;
RightLed= 1;
M1B= 1;
M2B= 1;
break;
}
case3: //左转
{
M2A = 1;
M1A = 0;
LeftLed= 0;
RightLed= 1;
break;
}
case4: //右转
{
M1A = 1;
M2A = 0;
LeftLed= 1;
RightLed= 0;
break;
}
case5:
{
LeftLed= 1;
RightLed= 1;
break;
}
}
}
void main()
{
if(LeftIR == 0 && RightIR == 0)
{
Delay1(100000);
}
if(LeftIR == 0 && RightIR == 1)
{
ControlCar(4);
Delay();
}
if(RightIR == 0 && LeftIR == 1 )
{
ControlCar(3);
Delay();
}
ControlCar(1);
}
车子如下图:
- 利用51芯片制作智能循迹车子
- 车子
- MT6516智能芯片
- MTK的智能芯片MT6516
- 智能小车五《电机芯片》
- 智能车制作
- 用树莓派制作智能小车
- MAX7359智能按键管理芯片编程
- 常用智能IC卡芯片类型
- wifi芯片与智能灯泡lifx
- 智能电池管理芯片msp430驱动
- 利用树莓派做智能小车
- 利用51单片机制作的电子时钟
- 【小制作】WIFI智能窗帘的制作
- 芯片制作(插头DP写法)
- 集成芯片制作过程(有图)
- xilinx芯片cadence原理图库制作
- xlinx芯片sdk制作boot镜像
- C语言LessonThree
- STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)
- 类、对象和接口
- 揭秘——谷歌中国厨师团队:不创新会死
- python对文件及文件夹的一些操作
- 利用51芯片制作智能循迹车子
- 如何让IE6支持max-width&min-width样式
- JDK配置
- 新一代自助建站工具的领航者 - Tap . cn
- Debian / VMware Ubuntu linux install kernel headers package
- CentOS rpm 安装 java 环境
- MFC中获得各个类的句柄的总结
- 删除centos系统自带的jdk
- 软件人员推荐书目(都是国外经典书籍!!!)