基于51的循迹小车

循迹小车

话从哪里说起,等到你要说话,什么话都是那样渺茫地找不到个源头。
假期来了,决定自己动手做点东西,于是刚接触51不久的我就将眼光转向了“简单”的循迹小车,但即使如此简单的一个东西也耗费了我许多的时间,更犯了很多的错误。

元器件的使用

考虑到简单方便,采用了51单片机开发板,L298N,四个电机,一对红外传感器用以循迹以及一块航模电池作为电源。
开发板的使用要慎重,毕竟五十多块钱的东西烧起来心都在滴血。
基于51的循迹小车_第1张图片
L298N这个元件真的需要弄明白在使用,并且要避免把所有的线都接在一起,那样真的让自己都会眼花缭乱。
基于51的循迹小车_第2张图片
红外传感器精度较低,要注意把它尽量放低一点。
基于51的循迹小车_第3张图片
电机的优劣是决定实验成功与否的重要因素,空转比太低的时候,电机容易停。
第一代电机
基于51的循迹小车_第4张图片
第二代电机
基于51的循迹小车_第5张图片
在整个制作过程中最令我头疼的就是电源的选择,刚开始使用的是学生电源,一个大块头,领着这个东西满地乱跑的画风不正常的很,图如下。
基于51的循迹小车_第6张图片
于是学长给了我一块航模电池,处于安全起见,他让我加个开关。
最蠢的是我居然把开关和电路还有电源并列了起来,一连上正负极就滋滋冒电火花那种,当时我居然还傻fufu去问学长,想到这里还是很羞愧。
基于51的循迹小车_第7张图片

代码部分

#include 

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  = P3^0;//左边红外传感器的数据口
sbit lse2  = P3^1;//右边红外传感器的数据口
unsigned char zkb1 = 0;//定义了一下左边两个轮的占空比
unsigned char zkb2 = 0;//定义了一下右边两个轮的占空比
int t = 0;

void PIT_Init()
{
  EA    = 1;
	TMOD |= 0x01;
	TH0   = (65536 - 200) / 256;
	TL0   = (65536 - 200) % 256;
	ET0   = 1;
	TR0   = 1;
}

void timer()interrupt 1//interrrupt 1ΪÄÚ²¿Öжϣ¬0ΪÍⲿÖжÏ
{
  TH0 = (65536-200)/256;
	TL0 = (65536-200)%256;
	
  if(t

文章最后

感谢学长的支持,和队友们的帮助,这是一个让我印象深刻的6天,也掌握了很多以前不曾了解过的知识。

你可能感兴趣的:(基于51的循迹小车)