IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 四路循迹小车基础程序 -> 正文阅读

[嵌入式]四路循迹小车基础程序

?本程序硬件使用:

  1. MCU:STC12系列单片机
  2. 驱动:LM298模块
  3. 传感器:四组光电对管传感器,使用数字输出端
  4. 电机:直流减速电机。采用两侧驱动方式
#include "STC12C5A60S2.H"

// 该小车使用LM298模块驱动两侧直流电机
// LM298控制端 端口映射
sbit ENA=P0^0;    //使能端A
sbit ENB=P0^1;    //使能端B
sbit IN1=P1^0;    //四个控制端
sbit IN2=P1^1;
sbit IN3=P1^2;
sbit IN4=P1^3;

// 寻迹光电对管数字输出端 端口映射
// 车头部 共计4个光电对管
sbit LeftOutside=P2^0;    //左外侧
sbit LeftInside=P2^1;     //左内测
sbit RightINside=P2^2;    //右内测
sbit RightOutside=P2^3;   //右外侧

// 两侧电机工作状态宏定义
#define LeftWork {ENA=1;IN1=1;IN2=0;}    //左侧前进
#define RightWork {ENB=1;IN3=3;IN4=0;}   //右侧前进
#define LeftStop {ENA=0;IN1=0;IN2=0;}    //左侧停止
#define RightStop {ENB=0;IN3=0;IN4=0;}   //右侧停止
#define LeftBack {ENA=1;IN1=0;IN2=1;}    //左侧后腿
#define RightBack {ENB=1;IN1=0;IN2=1;}   //右侧停止

//整车工作状态函数

void Forward(){    //前进
	LeftWork;
	RightWork;
}

void Stop(){      //停止
	LeftStop;
	RightStop;
}

void LeftTurnHigh(){    //左转弯 大弯,
	LeftStop;
	RightWork;	
}

void RightTurnHigh(){    //右转弯 大弯
	LeftWork;
	RightStop;
}

void LeftTurnLow(){    //左转弯 小弯
	LeftBack;
	RightWork;
}

void RightTurnLow(){    //右转弯 小弯
	LeftWork;
	RightBack;
}

// 主函数
void main(){
	unsigned char StateFlag=0;    //工作状态标志位
	unsigned char SensorFlag=0;   //传感器状态标志位
    //	StateFlag 	0	没有飞出风险
    //				1	右飞出风险
    //				2	左飞出风险
	while(1){
		SensorFlag=P2 & 0x0f;    //读取传感器状态
		switch (SensorFlag){
            // 全白
			case 0x00:  {        
				if (StateFlag==1) LeftTurnLow();
				else if(StateFlag==2) RightTurnLow();
				else if(StateFlag==0) Forward();
				break;}
		    // 左外压黑线
			case 0x01:	{LeftTurnLow();StateFlag=1;break;}
			// 左内压黑线
			case 0x02:	{LeftTurnHigh();StateFlag=0;break;}
			// 左内外都压黑线
			case 0x03:	{LeftTurnHigh();StateFlag=0;break;}
			// 右内压黑线
			case 0x04:	{RightTurnHigh();StateFlag=0;break;}
			// 右内外都压黑线
			case 0x0c:	{RightTurnHigh();StateFlag=0;break;}
			// 右外压黑线
			case 0x08:	{RightTurnLow();StateFlag=2;break;}
			// 其余状态停车
			case 0x0f:	{Stop();break;}
			
		}		
	}
}

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-27 14:15:39  更:2021-09-27 14:18:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:52:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码