基于51单片机3路超声波跟随小车

       第一次接触实训,很多东西的工作原理掌握不是特别好,因此我写的就稍微浅显易懂些。所以也在此希望各位读者纠正。
       刚才开始接触的小车是想用一路跟随小车,所以就开始了解这些要用到的模块。
    **硬件电路:**L298N, 直流电机一对,51/52单片机最小系统板。电源,降压模块,车架,导线若干。
   **遇到的问题:** 中 刚开始用 的电源是干电池,4节干电池电压达到5.8-6.2V左右,不是特别理想。因为在后面驱动电机转动后,其他硬件根本无法运转。建议在网上买一些稍贵一些的可充电电池,可充电电池电压在12V左右,因此需要一个**降压模块**,使用 降压模块一定要用万用表测量,调节旋钮,使输出电压为5V。因为后面还可以用于其他的新项目。可充电电流稍大一些,在电机转动时可以向其他模块继续供电。电压稳定性好。
    在后面的驱动电路上要注意的是,要将驱动模块的负极连接到电源的负极,将单片机的负极也要连接到电源的**负极**。如果不这么做的话,即使有信号,也无法驱动电机转动。究竟为什么,就不太清楚了,也希望读者可以深究一下。
    对于硬件超声波选用型号是HCSR-04,具体工作原理去论坛里了解一下,有很多资料,一定要亲自查一下会更加熟悉一些,在这里我就不过多赘述了。
    下面我们放上代码:
#include<reg52.h>//添加头文件
#include<intrins.h>//调用库函数
#define	uchar unsigned char	
#define	uint  unsigned int
#define Moto P1//定义电机的输出端口

sbit trig = P2^0; //定义超声波1发,对应正前方
sbit echo = P2^1; 
sbit trig1 = P2^2; //定义超声波2发,收,对应左前方
sbit echo1 = P2^3; 
sbit trig2 = P2^4; //定义超声波3发,收,对应右前方
sbit echo2 = P2^5; 
void check();//声明检测函数     对应超声波1
void Delay1ms(uint c);//延时误差 0us
void count();//计算距离

void check1();//声明检测函数     对应超声波2
void count1();//计算距离

void check2();//声明检测函数     对应超声波3
void count2();//计算距离
uint time,time1,time2,S,S1,S2;  //定义全局变量时间,time time1,time2对应测距所用时间,对应距离

void main()
{
   

	TMOD=0x01;//设置工作方式
	EA=1; //开总中断
	ET0=1;	//开定时器允许中断
	TH0=0;//赋初值
	TL0=0;
	while(1)
	{
   
	
			check();   
  • 20
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值