c语言小车程序,循迹小车程序C语言
/****************************************************************************
简单寻迹程序:接法
EN1 EN2 PWM输入端,本程序不输入PWM,直接使插上跳线帽,使能输出,这样就能全速运行
P1_0 P1_1 接IN1 IN2 当 P1_0=1,P1_1=0; 时左上电机正转 左上电机接驱动板子输出端(蓝色端子OUT1 OUT2)
P1_0 P1_1 接IN1 IN2 当 P1_0=0,P1_1=1; 时左上电机反转
P1_0 P1_1 接IN1 IN2 当 P1_0=0,P1_1=0; 时左上电机停转
P1_2 P1_3 接IN3 IN4 当 P1_2=1,P1_3=0; 时左下电机正转 左下电机接驱动板子输出端(蓝色端子OUT3 OUT4)
P1_2 P1_3 接IN3 IN4 当 P1_2=0,P1_3=1; 时左下电机反转
P1_2 P1_3 接IN3 IN4 当 P1_2=0,P1_3=0; 时左下电机停转
P1_4 P1_5 接IN5 IN6 当 P1_4=1,P1_5=0; 时右上电机正转 右上电机接驱动板子输出端(蓝色端子OUT5 OUT6)
P1_4 P1_5 接IN5 IN6 当 P1_4=0,P1_5=1; 时右上电机反转
P1_4 P1_5 接IN5 IN6 当 P1_4=0,P1_5=0; 时右上电机停转
P1_6 P1_7 接IN7 IN8 当 P1_6=1,P1_7=0; 时右下电机正转 右下电机接驱动板子输出端(蓝色端子OUT7 OUT8)
P1_6 P1_7 接IN7 IN8 当 P1_6=0,P1_7=1; 时右下电机反转
P1_6 P1_7 接IN7 IN8 当 P1_6=0,P1_7=0; 时右下电机停转
P3_2接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1
P3_3接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2
P3_4接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3
P3_5接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4
四路寻迹传感器有信号(白线)为0 没有信号(黑线)为1
四路寻迹传感器电源+5V GND 取自于单片机板靠近液晶调节对比度的电源输出接口
关于单片机电源:本店驱动模块内带LDO稳压芯片,当电池输入6V时时候可以输出稳定的5V
分别在针脚标+5 与GND 。这个输出电源可以作为单片机系统的供电电源。
****************************************************************************/
#include
#define Left_moto_pwm P3_6 //PWM输出本寻迹小车不用
#define Right_moto_pwm P3_7 //PWM输出本寻迹小车不用
#define Left_1_led P3_2 //P3_2接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1
#define Left_2_led P3_3 //P3_3接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2
#define Right_1_led P3_4 //P3_4接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3
#define Right_2_led P3_5 //P3_5接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4
#define Left_moto_go {P1_0=1,P1_1=0,P1_2=1,P1_3=0;} //左边两个电机向前走
#define Left_moto
_back {P1_0=0,P1_1=1,P1_2=0,P1_3=1;} //左边两个电机向后转
#define Left_moto_Stop {P1_0=0,P1_1=0,P1_2=0,P1_3=0;} //左边两个电机停转
#define Right_moto_go {P1_4=1,P1_5=0,P1_6=1,P1_7=0;} //右边两个电机向前走
#define Right_moto_back {P1_4=0,P1_5=1,P1_6=0,P1_7=1;} //右边两个电机向前走
#define Right_moto_Stop {P1_4=0,P1_5=0,P1_6=0,P1_7=0;} //右边两个电机停转
unsigned char pwm_val_left =0;
unsigned char push_val_left =1;// 左电机占空比10/40
unsigned char pwm_val_right =0;
unsigned char push_val_right=1;// 右电机占空比10/40
bit Right_moto_stop=1;
bit Left_moto_stop =1;
/************************************************************************/
//延时函数
void delay(unsigned int k)
{
unsigned int x,y;
for(x=0;x
for(y=0;y
}
/************************************************************************/
//前速前进
void run(void)
{
//push_val_left =4;
//push_val_right =4;
Left_moto_go ;
Right_moto_go ;
}
/************************************************************************/
/* PWM调制电机转速 */
/************************************************************************/
/* 左电机调速 */
/*调节push_val_left的值改变电机转速,占空比 */
void pwm_out_left_moto(void)
{
if(Left_moto_stop)
{
if(pwm_val_left
Left_moto_pwm=1;
else
Left_moto_pwm=0;
if(pwm_val_left>=10)
pwm_val_left=0;
}
else Left_moto_pwm=0;
}
/******************************************************************/
/* 右电机调速 */
void pwm_out_right_moto(void)
{
if(Right_moto_stop)
{
if(pwm_val_right
Right_moto_pwm=1;
else
Right_moto_pwm=0;
if(pwm_val_right>=10)
pwm_val_right=0;
}
else Right_moto_pwm=0;
}
/***************************************************/
/*TIMER0中断服务子函数*/
void timer0()interrupt 1 using 2
{
TH0=0XF8; //1Ms定时
TL0=0X30;
pwm_val_left++;
pwm_val_right++;
pwm_out_left_moto();
pwm_out_right_moto();
}
/*********************************************************************/
/*--主函数--*/
void main(void)
{
TMOD=0X01;
TH0= 0XF8; //1ms定时
TL0= 0X30;
TR0= 1;
ET0= 1;
EA = 1;
delay(100);
run();
while(1) /*无限循环*/
{
//有信号为0 没有信号为1
if(Left_2_led==0&&Right_1_led==0)
run();
else
{
if(Left_2_led==1&&Right_1_led==0) //右边检测到黑线
{
Left_moto_go; //左边两个电机正转
Right_moto_back; //右边两
个电机反转
}
if(Right_1_led==1&&Left_2_led==0) //左边检测到黑线
{
Right_moto_go; //右边两个电机正转
Left_moto_back; //左边两个电机反式开始转
}
}
}
}
c语言小车程序,循迹小车程序C语言相关推荐
- c语言小车程序,循迹小车的C语言程序(带注释)
循迹小车的C语言程序附带详细的注释 以便在阅读程序时 方便理解 另外 此程序是与FPGA板的VHDL液晶显示和音乐播放程序相互联系的... /*****循迹小车的制作与设计--单片机 C语言与 FPG ...
- 智能小车红外循迹原理
循迹电路 循迹电路由收发一体的红外收发管P1,P2:电位器R18,R29:发光二极管D6,D7和芯片LM324等组成.一共有两路,对应的红外电位器用于调节灵敏度.LM234用于信号的比较,并产生比较结 ...
- 基于arduino的循迹小车(含有PID算法)
循迹小车一般分为两方面:一方面是简单的闭环赛道只有直道和弯道,另一方面是毕设类型的包括一些元素:90度弯道.十字道路.S形弯道等. 1.CSDN下载: 含有PID:https://dow ...
- c32循迹小车c语言程序,stm32篇--小车循迹
小车的循迹算法 循迹小车使用红外对射寻黑线,根据轨道的不同,我使用了两种不同算法: (1)第一种是在轨道外有影响的,比如轨道外有黑色,车出去一点就会碰到黑色,那就是检测到歪了之后除非检测它 回来了,否 ...
- arduino黑线循迹小车程序_循迹小车:给我一条线,我能自己走完全程
在老少通吃的智能小车到底是什么呢?科普来喽!一文中,我们介绍了智能小车的分类及组成,为什么循迹小车能够追踪黑线轨迹呢? 智能小车在画有黑线的白纸 "路面"上行驶,由于黑线和白纸对光 ...
- 循迹小车程序编程_电子编程?其实很容易!
7月17日至18日,重庆大学分营第八组的部分成员在重庆大学A区第八教学楼参加了"科创生活之初体验"活动.在老师的指导下,营员们拼接电子硬件,使用智能电子编程软件完成了呼吸灯.调速风 ...
- RISC_V循迹小车程序(自用)
RISC_V循迹小车程序 C程序 C程序 因为用的时perfv已经集成好的IDE,里面H文件已经包含好了,所以只有C. 位置在E:\project\car_1\car_1\src /********* ...
- STM32、51循迹小车 【STM32入门控制必会 含51全部程序】
目录 前言 方案设计 逻辑分析 程序编写 C51程序-模块化便于移植 STM32程序 添加串口程序变身STM32遥控小车 结语 前言 故事的由来的从给学弟学妹门辅导一次单片机综合实验课开始,由于笔者比 ...
- c语言小车寻迹实训报告,循迹小车项目实训报告.doc
循迹小车项目实训报告 寻迹小车的设计与制作实训报告 课程名称: C51程序设计 EDA技术 专业班级: 应电0935班 指导老师: 方跃春 谭刚林 小组成员: 黄春桥 汤政 孙巍明 阳毅 实训项目要求 ...
- 小车c语言实训报告,循迹小车实训报告.doc
循 迹 小 车 实 训 报 告 系别班级:应电0932班 组员:谭威(30)李军(17号) 陈红梅(27)廖萍萍(18号) 指导老师:孟洋.张艳阳 时间:2011年6月20日 目录 一.项目总体方案- ...
最新文章
- python学习 爬取亚马逊网页,失败后。修改HTTP报文头部后成功!
- Hibernate Tools for Eclipse的使用
- c语言 链表 删除节点,C语言实现单链表节点的删除(不带头结点)
- linux 串口工具_会C++就能开发Linux/Android应用!这款Yoxios X3串口屏火了...
- 对象存储,为什么那么火?
- ionic 禁止横屏处理
- spring作用域单例和global_面试必备 | 69道Spring面试题
- 关于如何在视频中合成声音
- ThinkPHP的A方法,R方法,M方法,D方法区别
- c#编程实战宝典 付强_C#编程实战宝典(光盘内容另行下载,地址见书封底)
- websocket 发送数据大于0xFFFF(65535)的处理
- Java中的gvm_深入浅出GVM之GC
- 介绍主密钥,传输秘钥,工作秘钥
- 老师讲的真棒!Java高级程序员面试集合,你还看不懂吗?
- 日服人物一览(按实装版本倒序)
- Spring系列(五)Spring的多线程
- hint: Updates were rejected because a pushed branch tip is behind its remote
- os error os5_汽车OS竞赛
- Android实现图片 高斯模糊,以及图片镜像 翻转。
- 世界上一共有多少种编程语言?