51循迹小车

51循迹小车

材料:
1.两个亚克力板
2.4个轮子
3.4个电机
4.51最小系统
5.2个L298N
6.两个红外对管
7.杜邦线
第一步

按图所示将电机,轮子,亚克力板安装好
按图所示将电机,轮子,亚克力板安装好
第二步
了解学习并安装L298N模块
L298N模块的样式有很多种但是性质都是一样的,它的作用是驱动电机 他所需的电源电压需要7V到12V效果甚佳,需要注意的是电压在5v左右或者更小是驱动不了电机的电压太大车速过快容易出轨然后是连线L298N上写MOTORA/B,或者写OUT的为连接电机的口,对于电机的正负极不同的接入可以用来调整电机的转向
(可以当作调整轮子转向的物理方法),板子上写ENA ENB为使能接口连接程序中设定的IO口,IN1,IN2,IN3,IN4同样连接程序中设定的IO口,L298N上5V连接单片机上的VCC即可,L298N上VMS(+极),GND(-极)连接7V左右电压的电源
作者用的是差速转弯,所以L298N接的是同一侧的轮子。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第三步
了解学习并安装红外对管,红外对管三个管口 ,一个为输出信号连接程序定义的IO口即可,另外两个为正负极连接单片机的5V,GND即可,红外对管的灵敏度可以通过拧类似螺母的东西调节
工作原理
一个管口发射红外线,另一个接受红外线。此时为高电平状态,当沿着黑色胶布循迹时由于红外线有部分被黑胶布吸收导致此时为低电平。当然,有时也会受到白炽灯中的红外线干扰。只是这种影响是微乎其微的。使用时对管垂直于地面并2~3cm处。

在这里插入图片描述
最后连接的成品
在这里插入图片描述

再强调一下供电啊(方法不唯一)俺滴是单片机用5V,L298N用7V往上的,不要太大啊。作者大大在L298N供电那加了个DC电源模块(方法不唯一,可以自己焊一个供电的电路板如下图所示)
在这里插入图片描述

在这奉上作者大大的代码

#include "reg52.h"

sbit in1   = P1^2; 
sbit in2   = P1^3;
sbit in3   = P1^4; 
sbit in4   = P1^5;
sbit in5   = P2^2; 
sbit in6   = P2^3;
sbit in7   = P2^4; 
sbit in8   = P2^5;
sbit ENA   = P1^0;//左边两个电机的使能
sbit ENB   = P1^1;//右边两个电机的使能    矢能端为1控制电机转动 
sbit ena   = P2^0;//左边两个电机的使能     矢能端为0电机不转 
sbit enb   = P2^1;//右边两个电机的使能
sbit lse1  = P3^0;//左边红外传感器的数据口
sbit lse2  = P3^1;//右边红外传感器的数据口

typedef unsigned char u8;
typedef unsigned int u16;
void delay(u16 i)
{
    while(i--);
}

void go()
{   
    ENA=1;
    ENB=1;
    ena=1;
    enb=1;
    in1   = 1;
    in2   = 0;
    in3   = 1;
    in4   = 0;
    in5   = 1;
    in6   = 0;
    in7   = 1;
    in8   = 0;
}

void ting()
{   
    in1  = 0;
    in2  = 0;
    in3  = 0;
    in4  = 0;
    in5  = 0;
    in6  = 0;
    in7  = 0;
    in8  = 0;
}

void zuozhuan(void)
{ 
    ENA=1;
    ENB=1;
    ena=1;
    enb=1;
    in1  = 1;
    in2  = 0;
    in3  = 1;
    in4  = 0;
    in5  = 0;
    in6  = 1;
    in7  = 0;
    in8  = 1;   
}

void youzhuan(void)
{ 
    ENA=1;
    ENB=1;
    ena=1;
    enb=1;
    in1  = 0;
    in2  = 1;
    in3  = 0;
    in4  = 1;
    in5  = 1;
    in6  = 0;
    in7  = 1;
    in8  = 0;
}
void xj()
{   
    unsigned char count;
    if((lse1==0)&&(lse2==1))
    {
     count = 0;//左边检测到黑线
    }
    else if((lse1==1)&&(lse2==0))
    {
    count = 1;//右边检测到黑线
 }
    else if((lse1==1)&&(lse2==1))
 {
    count = 3;
 }
 else if(lse1==0&&lse2==0)
 {
    count = 4;
 }
  switch(count)
 {
    
  case 0:
    ting();
	delay(50);
	zuozhuan();
	delay(20); 
  break;

  case 1:
    ting();
	delay(40);
	youzhuan();
	delay(20);  
  break;

  case 3:
    ting();
	delay(40);
	go();
	delay(20);  
  break;

  case 4:
    ting();
	delay(40);
	go();
	delay(15);
  break;

 }
}
void main()
{
 while(1)
 {
  xj() ;
 }
}

最最最后,你们做完之后可能出现一个轮子转,电机有声音但是不转,不能循迹等等一系列不良反应。这就需要在座的各位去想一想,硬件工程师需要积累。
祝各位好运!

  • 21
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
51循迹小车CSND是一种基于51单片机的循迹小车循迹小车是一种可以根据预设的路径自主行驶的机器人。它通过感应地面上的黑色线条或其他特定标记来确定移动方向,从而实现自动导航功能。 51循迹小车CSND的设计通过使用51系列单片机为核心控制器,结合红外线传感器和电机驱动模块等硬件装置实现车辆的循迹功能。红外线传感器能够感知黑色线条的存在,从而根据线条的位置调整车辆的方向。电机驱动模块则负责控制车辆的前进、后退、左转和右转等动作。 在程序设计方面,51循迹小车CSND需要编写相应的代码来实现循迹功能。通过编程,将红外线传感器读取的信息与预设的路径进行比对,从而判断车辆应该做出的动作。在循迹过程中,还可以加入一些避障功能以确保车辆安全行驶。 51循迹小车CSND具有一定的应用价值。它可以用于教育培训、科学实验以及娱乐等领域。在教育方面,它可以用于教学示范,帮助学生了解电子设备的工作原理和基本编程知识。在科学实验中,可以利用循迹小车研究机器人感知和导航等相关技术。在娱乐方面,可以通过自主行驶的循迹小车搭建迷宫等游戏场景,增加娱乐性和趣味性。 总之,51循迹小车CSND是一种基于51单片机的循迹小车,通过硬件装置和程序设计实现车辆自主行驶的功能。该产品具有广泛的应用价值,为教育、科学实验和娱乐等领域提供了便利和创新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值