51单片机循迹小车

一.材料

1.51单片机开发板

2.L298N电机

3.红外循迹模块

4.直流电机

5.电池(提供电源,选用的是三节18650锂电池)

6.杜邦线

7.两个主动轮,一个万向轮

8.小车底板(亚克力板)

二.实现效果

使小车在两侧黑线内沿着环形跑道自主行驶一圈,打开开关时小车前行,左侧检测到黑线时左轮前进,右侧检测到黑线时右轮前进,两侧都检测到黑线时小车停止。

三.组装接线

1.初步组装:将直流电机、 主动轮、万向轮、电池盒接在小车底板上。每个直流电机焊接两根线,后续接到L298N两端。

2.红外模块:四路红外循迹模块的VCC、GND用杜邦线接在单片机的+5V、GND端,IN1-IN4接在单片机对应引脚上。红外发射接收器接在小车前方下端,离地距离不能过远,便于检测到黑线,执行循迹功能。

3.单片机最小系统:装入芯片(选用的是STC89C52RC),执行程序代码。用杜邦线完成单片机上引脚和红外模块、L298N、电池的接线。注意连线和程序中接口的对应。

4.L298N:L298N前面蓝色的三个接口外接电源供电用,左端接电池电源正极12V输入,右端接单片机5V接口,GND连接电池电源负极和单片机的GND接口。L298N的左右两个蓝色插口输出,接左右电机,可先焊接电机的两根线,在程序中让小车前进,若车轮转向正确,则接线正确;若车轮反向转动,可通过两根接线实现小车前进。ENA、ENB、IN1、IN2、IN3、IN4定义接口后接到单片机相应引脚上。ENA和ENB通过定时器调节输出PWM波,实现小车转弯。单片机控制IN1-IN4,来控制小车轮子的正反转。

直流电机

状态

IN1(IN3)

IN2(IN4)

使能端

M

正转

1

0

1

反转

0

1

1

停止

0

0

1

5.组装接线成果图

四。工作原理

1.PWM调速

(1)PWM:脉冲宽度调制,PWM波形如下所示。

(2)占空比:指高电平在一个周期中所占比例。对于单片机小车直流电机的调速,可以通过定时器设置定时初值,在中断服务函数中对占空比进行调整,从而实现电机的转速控制。

2.红外循迹

模块正式连接后,传感器开始工作。传感器有两个检测灯,一个灯用于发射光,另一个灯用于检测反射光的强度来判断是否检测到黑线。如果检测到黑线,黑色对光线的反射较弱,红外光无法反射回来,则模块指示灯熄灭,输出高电平(1)。未检测到黑线时,传感器发射出的红外光大部分被反射回来,模块感应到传感器反射回来的红外光,指示灯亮,输出低电平(0)。

五.程序编写

1.开头头文件、位定义

#include <reg51.h>

sbit IN1=P1^2;

sbit IN2=P1^3;       

sbit IN3=P1^4;

sbit IN4=P1^5;

sbit ENA=P1^0;//左边两个电机使能

sbit ENB=P1^1;//右边两个电机使能

sbit lse1=P2^1;//左边红外传感器的数据口

sbit lse2=P2^2;//右边红外传感器的数据口

unsigned char mot1=0;//定义左轮

unsigned char mot2=0;//定义右轮

int t = 0;

2.小车状态控制函数

void run(void) //小车前进

{   

mot1=13;

mot2=13;

    IN1=1;

    IN2=0;

    IN3=1;

    IN4=0;

}

void stop(void) //小车停止

{   

mot1=0;

mot2=0;
 IN1=0;

    IN2=0;

    IN3=0;

    IN4=0;

}

void leftrun(void) //小车右转

{

mot1=15;

mot2=0;

    IN1=1;

    IN2=0;

    IN3=0;

    IN4=0;
}

void rightrun(void) //小车左转

{

mot1=0;

mot2=15;

    IN1=0;

    IN2=0;

    IN3=1;

    IN4=0;
}

3.定时器中断函数

void PIT_Init()

{

    EA=1; //打开总中断

TMOD |=0x01;

TL0=0xA4; //设置定时初值

TH0=0xFF; //设置定时初值

ET0=1; //打开定时器中断允许

TR0=1; //打开定时器

}



void timer()interrupt 1//interrrupt

{

TL0 = 0xA4; //设置定时初值
TH0 = 0xFF; //设置定时初值

  if(t<mot1)

{

   ENA = 1;

}

  else

{

  ENA = 0;

}



if(t<mot2)

{

   ENB = 1;

}
 else

{

  ENB = 0;

}

t=(t+1)%100;

}

4.延时函数

延时函数,可以用单片机辅助软件(stc-isp),设定时间直接生成。

void delay(unsigned int k)

{

unsigned int x,y;

  for(x=0;x<k;x++)

  {

   for(y=0;y<2000;y++);

  }

}

5.循迹模块

void xunji()

{   

unsigned char flag; //用于循迹方向的判断

    if((lse1==1)&&(lse2==0))

    {

    flag=0; //左边检测到黑线

    }

    else if((lse1==0)&&(lse2==1))

    {

  flag=1; //右边检测到黑线

}

    else if((lse1==1)&&(lse2==1))
{

flag=3; //两边检测到黑线

}

else

{

  flag=4;

}

switch(flag)

{

case 0:leftrun(); break;

case 1:rightrun();break;

case 3:stop();break;

case 4:run();break;

}

}

6.主函数

void main()

{

PIT_Init();

mot1=13;

mot2=13;

    IN1=1;

    IN2=0;

    IN3=1;

    IN4=0;

while(1)

{

xunji() ;

}

}

六.注意事项

  1. 小车直走时,左右两轮mot赋值不一定相同,通过赋值尝试给与不同的数值,使小车达到直走的效果。
  2. 小车左右转弯时,若转速过大,可能会使小车转弯幅度过大;同理,若转速过小,可能会使小车转弯幅度过小,不能按轨迹行驶。
  3. 小车转弯可使一轮前行,另一轮停止实现;也可通过一轮正转,一轮反转实现。
  4. 左右两个红外传感器的距离,若小于两主动轮的距离,可能会导致小车循迹时压线,可通过延长传感器伸出的长度,避免小车压线。
  5. 红外传感器的检测距离,可通过调节传感器上的旋钮,观察检测黑线时指示灯亮灭情况,实现增大或减小检测距离的效果。

循迹小车,随着电力电子器件的发展,PWM电压型逆变器在交流变频调速、UPS、电能质量控制器、轻型直流输电换流器等电力电子装置中得到了越来越广泛的应用。PWM电压型逆变器直流侧所需的理想无脉动直流电压源通常通过整流加上大直流电容滤波获得。大直流滤波电容的使用,给装置带来占用空间大、成本高及严重影响电能质量方面的问题。因此,研究如何减小甚至去除逆变器直流侧电容,以及解决因其产生的低次谐波和相关问题,具有十分重要的理论意义和实用价值。本文在综述了国内外在PWM电压型逆变器及各种抑制谐波PWM技术的基础上,对目前工程中应用最广泛的SPWM电压型逆变器的主电路及谐波消除调制技术和相关问题进行了深入研究。50年代末晶闸管标志着电力电子半导体期间的开端。电力电子器件经历了40多年的发展历程[1-2],特别是近30多年内更是得到了迅猛的发展[3,4]。以Th(SCR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。CR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。CR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。CR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。CR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。CR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。CR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。
51循迹小车CSND是一种基于51单片机循迹小车循迹小车是一种可以根据预设的路径自主行驶的机器人。它通过感应地面上的黑色线条或其他特定标记来确定移动方向,从而实现自动导航功能。 51循迹小车CSND的设计通过使用51系列单片机为核心控制器,结合红外线传感器和电机驱动模块等硬件装置实现车辆的循迹功能。红外线传感器能够感知黑色线条的存在,从而根据线条的位置调整车辆的方向。电机驱动模块则负责控制车辆的前进、后退、左转和右转等动作。 在程序设计方面,51循迹小车CSND需要编写相应的代码来实现循迹功能。通过编程,将红外线传感器读取的信息与预设的路径进行比对,从而判断车辆应该做出的动作。在循迹过程中,还可以加入一些避障功能以确保车辆安全行驶。 51循迹小车CSND具有一定的应用价值。它可以用于教育培训、科学实验以及娱乐等领域。在教育方面,它可以用于教学示范,帮助学生了解电子设备的工作原理和基本编程知识。在科学实验中,可以利用循迹小车研究机器人感知和导航等相关技术。在娱乐方面,可以通过自主行驶的循迹小车搭建迷宫等游戏场景,增加娱乐性和趣味性。 总之,51循迹小车CSND是一种基于51单片机循迹小车,通过硬件装置和程序设计实现车辆自主行驶的功能。该产品具有广泛的应用价值,为教育、科学实验和娱乐等领域提供了便利和创新。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值