51智能红外循迹小车(含测速和LCD显示)
文章目录
- 前言
- 一、结构
- 1.我们先看下物品清单:
- 2.接下来看下重要部件以及最终实物图片
- 二、接线
- 1.我们先来看LCD1602液晶显示屏的接线
- 2.测速传感器模块接线
- 3.其余模块的接线较为简单,具体可以参考我的视频资料以及个人博客里的程序。
- 三、程序
- 具体的程序我就不讲解了,里面的注释也清晰明了,小车安装视频教程可去[这里](https://download.csdn.net/download/weixin_44745186/12739664)下载,本来设置不用积分下载的,不知道为什么每次都自动加上去了,没有积分的兄弟萌可以去百度云链接下载。链接:[https://pan.baidu.com/s/1drKI1TT4TpylFfub0z32RA](https://pan.baidu.com/s/1drKI1TT4TpylFfub0z32RA) 提取码:zu15
- 四、运行视频
- 总结
前言
本文设计的智能车带有循迹、测速以及计时的功能,它能够在设定的范围内沿着特定的路线在前进过程中,方向可以根据线路自动更改,并且可以显示速度和运行时间。
一、结构
1.我们先看下物品清单:
| 万向轮 | 1 |
|---|---|
| 橡胶车轮 | 2 |
| 亚克力板 | 1 |
| 电位器10K | 1 |
| 电机码盘 | 1 |
| 直流减速电机 | 2 |
| L298N电机驱动模块 | 1 |
| TCRT5000红外传感器 | 2 |
| LCD1602液晶显示屏 | 1 |
| STC89C51单片机 | 1 |
| 测速传感器模块 | 1 |
| USB转TTL下载器 | 1 |
| 1.5V干电池 | 4 |
| 杜邦线、铜柱、螺丝 | 若干 |
2.接下来看下重要部件以及最终实物图片
(1)电位器

(2)L298N电机驱动模块

(3)电机码盘

(4)TCRT5000红外传感器

(5)LCD1602液晶显示屏

(6)测速传感器模块

(7)小车正面

(8)小车背面

(9)LCD1602液晶屏幕实现效果

二、接线
1.我们先来看LCD1602液晶显示屏的接线

1.直接接地
2.接VCC
3.接在一个滑动变阻上再与地相接。VEE(V0)为液晶显示器对比度调整端,我们通过一个10K的电位器再与地相接用以调整对比度。(不接电位器也要接地)
4.接RS->P2.7 (RS在感应到高电平时是数据寄存器、低电平时是指令寄存器)
5.接RW->P2.6
6.接E使能端->P2.5。当E端由高电平信号跳变成低电平信号时,液晶模块执行命令
7-14.接数据写入->P0.0-P0.7
15.我们通过连接一个电阻再与VCC相连,电阻可以防止显示屏烧坏
16.直接接地(屏幕背光灯的负极)
2.测速传感器模块接线
除了接好ACC和GND外,需要把DO口接在单片机的T0计数器P3.2口上。
3.其余模块的接线较为简单,具体可以参考我的视频资料以及个人博客里的程序。
三、程序
#include
#include //Keil外部函数库包含文件,_nop_函数在此库中#define uint unsigned int
//定义uint为无符号整型
#define uchar unsigned char
//定义uchar为无符号整型
void delayXms(uint ); //声明Xms延时函数
void delay1ms(void); //声明1ms延时函数
/*********************变量定义***************************/
uint i,n,sec,min,hour;
uchar sec_ge,sec_shi,min_ge,min_shi,hour_ge,hour_shi,bai,shi,ge;
long int s,M;
/***************小车驱动模块输入IO口*****************/ sbit IN1=P1^2; sbit IN2=P1^3;sbit IN3=P1^4;sbit IN4=P1^5;
/********************液晶屏I/O口定义**********************/
sbit RS=P2^7; //寄存器选择位,将RS位定义为P2.0引脚
sbit RW=P2^6; //读写选择位,将RW位定义为P2.1引脚
sbit E =P2^5; //使能信号位,将E位定义为P2.2引脚
/********传感器接线定义********/#define Left_led P3_7 //接循迹模块L0,左#define Right_led P3_6 //接循迹模块R0,右#define Left_go {P1_2=1,P1_3=0;} //左电机向前走#define Left_back {P1_2=0,P1_3=1;} //左电机向后转#define Left_Stop {P1_2=0,P1_3=0;} //左电机停转 #define Right_go {P1_4=1,P1_5=0;} //右电机向前走#define Right_back {P1_4=0,P1_5=1;} //右电机向后走#define Right_Stop {P1_4=0,P1_5=0;} //右电机停转
/*******************初使化显示数组*********************/
uchar dis1[]={"Time: h m s"};
uchar dis2[]={"Speed: mm/s"};
/************************驱动函数**************************/
//前速前进void run(void)
{Left_go ; //左电机往前走Right_go ; //右电机往前走
}//后退函数 void backrun(void)
{Left_back; //左电机往后走Right_back; //右电机往后走
}//左转void leftrun(void)
{Right_go ; //右电机往前走Left_back; //左电机后走
}//右转void rightrun(void)
{ Left_go ; //左电机往前走Right_back; //右电机往后走
}//停止void stop(void)
{ Right_Stop ; //右电机停止Left_Stop ; //左电机停止
}
/********************X毫秒延时函数**********************/
void delayXms(uint ms)
{uint k;for(k=0;k
具体的程序我就不讲解了,里面的注释也清晰明了,小车安装视频教程可去这里下载,本来设置不用积分下载的,不知道为什么每次都自动加上去了,没有积分的兄弟萌可以去百度云链接下载。链接:https://pan.baidu.com/s/1drKI1TT4TpylFfub0z32RA 提取码:zu15
四、运行视频
智能小车循迹
智能小车时间和速度显示
总结
我的智能小车功能比较简单,适合入门练手,具体的操作步骤和源码可以去我的个人博客里下载相关资料。# 51智能红外循迹小车(含测速和LCD显示)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
