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
电位器10K1
电机码盘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显示)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部