我想做个单片机控制的小车,请问怎么做

   2023-04-11 13:59:37 网络1060
核心提示:先买车模,最好是带电机而且能转弯的那种,四五十块钱,然后网上搜一下电机驱动电路。最节约成本的是H桥,全用三极管和二极管就可以实现,网上都有电路。至于单片机的最小系统的电路相信你都会了。然后自己把电路焊好,至于需要再添加其他模块儿(例:超声波

我想做个单片机控制的小车,请问怎么做

先买车模,最好是带电机而且能转弯的那种,四五十块钱,然后网上搜一下电机驱动电路。最节约成本的是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

}

以上就是关于我想做个单片机控制的小车,请问怎么做全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

 
举报收藏 0打赏 0评论 0
 
更多>同类百科头条
推荐图文
推荐百科头条
最新发布
点击排行
推荐产品
网站首页  |  公司简介  |  意见建议  |  法律申明  |  隐私政策  |  广告投放  |  如何免费信息发布?  |  如何开通福步贸易网VIP?  |  VIP会员能享受到什么服务?  |  怎样让客户第一时间找到您的商铺?  |  如何推荐产品到自己商铺的首页?  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备15082249号-2