谁有超声波避障功能的51芯片程序,我的单片机型号是89C52RC

谁有超声波避障功能的51芯片程序,我的单片机型号是89C52RC,第1张

我的程序,这是超声波测距的程序,检测到物体,你直接让小车左拐,或者右拐就行了:

#include<reg52h>//超声波测距

#include<intrinsh>

#define uint unsigned int

#define uchar unsigned char

uint a,s,time;

sbit tr=P2^1; //发送

sbit re=P2^2; //接收

void delay_us() //延时50us

{

uint i;

for(i=0;i<50;i++)

_nop_();

}

void delay_ms(uint x) //毫秒级延时

{

uint i,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);

}

void getdistance1()

{

//uint i=2353;//40厘米来回需要的时间(us) (042/340)1000000

TR1=0;

TH1=0;

TL1=0;

re=0;//接收信号端置0

tr=1;//开始触发

delay_us();//延时50微秒

tr=0; //停止触发

while(re==0); //没有信号返回并且在40厘米障碍物信号返回需要的时间前则等待 (无信号即时返回,防止死循环,阻碍其它程序的执行)

TR1=1;

while(re==1);

TR1=0;

time=TH1256+TL1; //读取脉宽长度

TH1=0;

TL1=0;

s=(time17)/100; //算出来是厘米

if(s<30)

P1=0xfe;

else

P1=0xff;

}

void main()

{

TMOD=0x10;//定时器1模式1

TR1=0;

tr=0;

re=0;

while(1)

{

getdistance1();

}

}

避障小车原理:

一、运动机理:

控制前面两个轮子的转动方向就可以控制整个机器人行进的方向:

1、左右两个前轮都向前转,则机器人向“正前方”直线前进;

2、左右两个前轮都向后转,则机器人向“正后方”直线倒退;

3、左前轮向后转,右前轮向前转,则机器人将以后轮为轴心逆时针转动,即实现向“右后方”转弯倒退;

4、左前轮向前转,右前轮向后转,则机器人将以后轮为轴心顺时针转动,即实现向“左后方”转弯倒退。

二、控制原理

在机器人的头部用钢丝做两根触须,一左一右各连接到一个碰撞开关,分别控制两个前轮的旋转方向。

特别注意,左右触须与对应控制的电机是交叉过来的,即:左边的触须连接右边的碰撞开关,控制右边的电机;右边的触须连接左边的碰撞开关,控制左边的电机。

(1)无障碍物

当前方都没有障碍物,左右两个轮子都向前正转,则机器人向“前方”直线前进。

(2)左前方有障碍物

当左前方有障碍物,在左边触须碰到障碍物时,控制右边的轮子反转,则机器人向“左后方”倒退并转弯,即方向转向了障碍物的右边,从而避开了左边的障碍物。

向后倒退转弯会持续一会,在完成转弯之后,左边触须不再碰到障碍物,则两个轮子都正转,机器人继续向新的没有障碍物的“前方”直线前进。

(3)右前方有障碍物

当右前方有障碍物,在右边触须碰到障碍物时,控制左边的轮子反转,则机器人向“右后方”倒退并转弯,即方向转向了障碍物的左边,从而避开了右边的障碍物。

向后倒退转弯会持续一会,在完成转弯之后,右边触须不再碰到障碍物,则两个轮子都正转,机器人继续向新的没有障碍物的“前方”直线前进。

(4)正前方有障碍物

当正前方有障碍物,左右两边的触须都会碰到障碍物,控制左右两边的轮子都反转,则机器人向“正后方”倒退,从而避开障碍物。

在直线倒退持续了一会后,左右两边的触须都不再碰到障碍物,则两个轮子都正转又变成直线前进;然后又会遇到正前方的障碍物又会直线倒退,再直线前进……如此反复变成一个死循环。

三、电路原理

机器人头部有两根钢丝作的触须,触须分别连接在两个碰撞开关上(注意两根钢丝对应的碰撞开关是交叉的,即:“左—右”钢丝,对应“右—左”碰撞开关)。

(1)没有障碍物时,触须没有被挤压,不触发碰撞开关,碰撞开关默认的通路,给电机供给一个“正方向”的电流,电机于是“顺时针方向”旋转。

(2)有障碍物时,触须被挤压,触发碰撞开关,碰撞开关断开默认通路,连接另外的一组通路,给电机供一个“反方向”的电流,电机于是“逆时针方向”旋转。

51单片机一个,20或30pf的电容4个,小车一个,L298N电机驱动2个,7V或12V锂电池一个,晶振2个,杜邦线40根,烙铁,焊锡丝,超声波模块,LED灯若干,舵机一个。

方案很简单,上述元件做好51最小系统,淘宝买超声波模块,有51示例代码,直接拿来用,这样你可以取得小车和障碍物的距离了,然后,组装小车,把7v锂电池直接接L298N上,L298有转出5V的插针接口,用它转出的5v电压给单片机和超声波模块供电,然后淘宝买舵机要参考代码,当发现前方有障碍后,减速,单片机控制舵机转动一个角度,避过障碍,至于驱动小车的话,用单片机产生11KHZ的PWM输出到L298N上,把小车电机也接到L298上,这个可以看L298的说明书,淘宝商家会给你的。大体就是这样

以上就是关于谁有超声波避障功能的51芯片程序,我的单片机型号是89C52RC全部的内容,包括:谁有超声波避障功能的51芯片程序,我的单片机型号是89C52RC、避障小车原理、做基于51单片机的超声波避障小车方案,还有详细元器件清单!要详细的 谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9643320.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存