先买车模,最好是带电机而且能转弯的那种,四五十块钱,然后网上搜一下电机驱动电路。最节约成本的是H桥,全用三极管和二极管就可以实现,网上都有电路。至于单片机的最小系统的电路相信你都会了。然后自己把电路焊好,至于需要再添加其他模块儿(例:超声波,红外,激光,摄像头等等),你可以在自己搜搜电路。弄好后开始写程序,程序的事儿不是三言两语就能说清的,相信楼主既然想到做这个了,程序应该是自己可以搞定了,然后就是下载程序,调试小车了。呵呵,希望微薄的建议能够帮到楼主,祝你成功。
新手怎么制作单片机智能小车
使用51单片机需要达到以下基本条件:
1、至少要搭建一个最小系统;
2、你需要编制一个51的控制程序;
3、你需要将程序编译连接成HEX或BIN格式的代码并下载或烧录到51单片机。
这样你就可以使用这款51单片机了。
1单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。
很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是52系列的单片机一般不具备自编程能力。
51单片机控制的智能小车程序
我是一名单片机工程师,对于51单片机智能小车制作,下面的讲解你参考一下。
我看到有很多朋友想做一个属于自己的智能车,但又无从下手,今天我将详细的讲一下循迹小车的制作方法,因为所有的其它功能,都是从循迹这个扩展起来的,你把这个弄懂了,其实的功能了解一下也就懂了。
制作51单片机循迹小车,只需要四步。
1 车模。
2 主控板。
3电机驱动系统。
4 循迹传感器
下面一一进行介绍。
1车模。
对于新手来说你需要一个车模,当然也可以自己制作一个模型,下面这个是两个电机的智能小车。
上面这个车模包含有,1个车模底板,2个减速电机,2个轮子,1个万向轮(上面图片,电池盒下面那个),1个电池盒。
这种车模很多地方都有,你只要按照说明书组装成功就可以了。
2 主控板
另外你还需要一个单片机最小系统
这个主控板的单片机型号是,STC89C52RC
3 电机驱动系统。
这个电机驱动系统的模块是L298N(上面图片,最大黑色那个)
这种驱动系统是可以同时驱动两个电机的,完全可以满足你小车的驱动动力,为什么要驱动呢?因为主控板的单片机电流太弱了,不够电流让电机运行,所以才会有电机驱动模块的产生。
上面这个图中,IN1 IN2和 IN3 IN4(在上面图片的右下角),是用来接单片机的端口(这就可以理解到,这四只脚是电机控制输入端),并且IN1 IN2是左边电机控制用的,为什么一个电机的控制,需要接两个脚呢?
一个电机接两个脚的话,电机就可以正转和反转了,运用到小车上面就是,可以实现小车的前进,后退,左转和右转,这已经满足小车运行时需要的功能。
4 循迹传感器
既然是循迹的智能车,那么你还需要循迹传感器
其实只需要两组红外线发光二极管,就可以实现我们的循迹功能了,如下图所示
从上面图片我们还可以看到,每组当中,都含有黑色红外线管和白色红外线管
我们的循迹小车,是循黑色线走的。
上面图片当中,中间的是黑色线,左右两边的是两组红外线管。
红外线检测黑线的原理。
当红外线检测的不是黑色,发射光通过障碍物能反射给接收,进行正常的发射与接收。
当红外线检测的是黑色,发射光通过黑线产生漫射,接收端就不能正常地接收到发射光,就是凭这一特点,就可以实现我们的小车循迹了,很好玩是吧,嘿嘿!对于智能小车的细节,一言二句说不了太多东西,详细的制作知识,百度上,,,请看“一凡单片机”,这个里面讲解比较全面,并且还有相应的程序。
以上就是个人分享的智能小车制作方法,希望能帮到你,你通过这个基础实验,发挥想象力,再扩展其它的小车功能,寻找更多的小车乐趣,喜欢的朋友请采纳和点赞,谢谢!
#include<reg51.h> //包含单片机寄存器的头文件
sbit IR=P3^2 //将IR位定义为P3.2引脚
unsigned char a[4] //储存用户码、用户反码与键数据码、键数据反码
unsigned int LowTime,HighTime//储存高、低电平的宽度
bit DeCode(void)
{
unsigned char i,j
unsigned char temp //储存解码出的数据
for(i=0i<4i++) //连续读取4个用户码和键数据码
{
for(j=0j<8j++) //每个码有8位数字
{
temp=temp>>1 //temp中的各数据位右移一位,因为先读出的是高位数据
TH0=0//定时器清0
TL0=0//定时器清0
TR0=1//开启定时器T0
while(IR==0) //如果是低电平就等待
//低电平计时
TR0=0//关闭定时器T0
LowTime=TH0*256+TL0 //保存低电平宽度
TH0=0//定时器清0
TL0=0//定时器清0
TR0=1//开启定时器T0
while(IR==1) //如果是高电平就等待
TR0=0 //关闭定时器T0
HighTime=TH0*256+TL0 //保存高电平宽度
if((LowTime<370)||(LowTime>640))
return 0 //如果低电平长度不在合理范围,则认为出错,停止解码
if((HighTime>420)&&(HighTime<620)) //如果高电平时间在560微秒左右,即计数560/1.085=516次
temp=temp&0x7f //(520-100=420, 520+100=620),则该位是0
if((HighTime>1300)&&(HighTime<1800)) //如果高电平时间在1680微秒左右,即计数1680/1.085=1548次
temp=temp|0x80 //(1550-250=1300,1550+250=1800),则该位是1
}
a[i]=temp //将解码出的字节值储存在a[i]
}
if(a[2]=~a[3]) //验证键数据码和其反码是否相等,一般情况下不必验证用户码
return 1//解码正确,返回1
}
void Function(void)
{
P1=a[2] //将按键数据码送P1口显示
}
void main()
{
EA=1 //开启总中断
EX0=1 //开外中断0
ET0=1 //定时器T0中断允许
IT0=1 //外中断的下降沿触发
TMOD=0x01 //使用定时器T0的模式1
TR0=0 //定时器T0关闭
while(1)//等待红外信号产生的中断
}
void Int0(void) interrupt 0 using 0
{
EX0=0 //关闭外中断0,不再接收二次红外信号的中断,只解码当前红外信号
TH0=0 //定时器T0的高8位清0
TL0=0 //定时器T0的低8位清0
TR0=1 //开启定时器T0
while(IR==0) //如果是低电平就等待,给引导码低电平计时
TR0=0 //关闭定时器T0
LowTime=TH0*256+TL0 //保存低电平时间
TH0=0 //定时器T0的高8位清0
TL0=0 //定时器T0的低8位清0
TR0=1 //开启定时器T0
while(IR==1) //如果是高电平就等待,给引导码高电平计时
TR0=0 //关闭定时器T0
HighTime=TH0*256+TL0//保存引导码的高电平长度
if((LowTime>7800)&&(LowTime<8800)&&(HighTime>3600)&&(HighTime<4700))
{
//如果是引导码,就开始解码,否则放弃,引导码的低电平计时
//次数=9000us/1.085=8294, 判断区间:8300-500=7800,8300+500=8800.
if(DeCode()==1)
Function() //如果满足条件,执行遥控功能
}
EX0=1 //开启外中断EX0
}
以上就是关于我想做个单片机控制的小车,请问怎么做全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!