ATmega16主芯片小车巡线程序,7个红外传感器

/*--------------------search line car v9 ---------------------

改用真正的PD算法

可调整参数:

PWM的值;

标准占空比,即直线速度std_left_duty,std_right_duty ;

比例系数Kp 的值;

差分系数Kd 的值;

count的最大值

---------------------------------------------------------------*/

#include

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define moto_left_fwd PORTD=(PORTD|(1<

#define moto_left_bck PORTD=(PORTD|(1<

#define moto_right_fwd PORTD=(PORTD|(1<

#define moto_right_bck PORTD=(PORTD|(1<

#define moto_left_off PORTD=PORTD&(~(1<

#define moto_right_off PORTD=PORTD&(~(1<

#define countertop 10000 //这里定义了pwm波的最大计数值,从而得到50HZ的频率 TOP=fclk/(foc*2*N) N为分频因子N=8

#define Kp 1900 //定义比例系数

#define Kd 4750 //定义差分系数

uchar left_moto,right_moto;

uchar IR_state1=0,IR_state0=0; // 定义IR传感器的状态,IR_state0为当前采集的值,IR_state0为前一次采集的值

char err[3]={0}; //定义三次的误差值

char err_D=0,err_P=0; //定义偏差,利用比例,差分

int std_left=0,std_right=0;

/*

void closeWDT()

{

unsigned char temp=WDTCR | (1<

WDTCR = temp;

WDTCR = 0x00; //关闭看门狗

}*/

void init() //初始化

{

DDRD|=0b11110011;

DDRA=0; //PORTA0-7设置为输入,读取传感器的值

moto_left_off; //初始关闭电机

moto_right_off;

TCCR1A=0b10100000; //配置定时器1工作在相位与频率修正PWM,TOP值为ICR1

TCCR1B=0b00010010; //8分频,正常PWM输出

ICR1=countertop; //ICR1 为计数器的TOP值

OCR1A=0x00; //设置捕捉比较输出初值

OCR1B=0x00;

//closeWDT();

// TIMSK|=((1<

SREG=0x80; //使能全局中断

}

/*-------------------------------------------------------

*****************速度等级函数**************************

--------------------------------------------------------*/

void speed(uchar level)

{

switch(level)

{

case 1:std_left=(int)(countertop/100*19);std_right=(int)(countertop/100*23);break; //定义速度0,慢速

case 2:std_left=(int)(countertop/100*25);std_right=(int)(countertop/100*29);break; //定义速度1,低速

case 3:std_left=(int)(countertop/100*30);std_right=(int)(countertop/100*35);break; //定义速度2,中速

case 4:std_left=(int)(countertop/100*36);std_right=(int)(countertop/100*42);break; //定义速度2,中速

case 5:std_left=(int)(countert

c语言巡线程序,小车巡线程序相关推荐

  1. 线扫描枪条码测试机程序,完整倍福PLC程序完整beckhoff倍福PLC ST 语言

    线扫描枪条码测试机程序,完整倍福PLC程序完整beckhoff倍福PLC ST 语言ethercat总 线扫描枪条码测试机程序 和MES系统通讯 和Wenglor 扫描枪 RS232通讯 FB块可以直 ...

  2. 基于 8051单片机的线跟随小车

    线跟随小车是一种跟随线的机器,它可以是黑线或白线,线路跟随器感应到线路并越过它.在此项目中,如果感应到白线,会往白线的一侧转弯,直到没有感应到白线,再继续前进. 线跟随小车的原理 线跟随器的概念与光有 ...

  3. ssm基于微信小程序的食堂线上预约点餐系统--(ssm+uinapp+Mysql)

    ssm基于微信小程序的食堂线上预约点餐系统–(ssm+uinapp+Mysql) 在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括食堂线上预约点餐系统的网络应用,在外 ...

  4. 计算机毕业设计ssm力高灯饰线上交易平台4d59n系统+程序+源码+lw+远程部署

    计算机毕业设计ssm力高灯饰线上交易平台4d59n系统+程序+源码+lw+远程部署 计算机毕业设计ssm力高灯饰线上交易平台4d59n系统+程序+源码+lw+远程部署 本源码技术栈: 项目架构:B/S ...

  5. r语言怎么以第二列绘制线图_用卫星图像绘制世界海岸线图-第二部分

    r语言怎么以第二列绘制线图 Part I of this blog series is here. 本博客系列的第一部分 在这里 . At the UKHO we are interested in ...

  6. python小车行驶路线图_基于opencv-Python小车循线学习笔记

    基于opencv-Python小车循线学习笔记 加入摄像头模块,让小车实现自动循迹行驶 思路为:摄像头读取图像,进行二值化,将白色的赛道凸显出来 选择下方的一行像素,黑色为0,白色为255 找到白色值 ...

  7. 程序员2线城市月薪25k,父母让他去北京一家16K国企,网友:去啊

    现在找个工作不难,但是想要找个稳定的,不需要加班,收入又高的就很难了.很多高收入的员工其实都是靠加班得来的,而类似国企之类的企业,虽然薪水一般,但是却很轻松. 最近在职场论坛上看到这样一个帖子:程序员 ...

  8. 快速搭建小程序,实现线上引流获客

    小程序--已经成为线下商家从线上引流获客的首选渠道. 不说废话,欣赏一下这亮眼的数据: 根据喜茶披露的数据,截至2019年12月31日,喜茶已在43个城市开出390家门店,新增主力店157家.Go店6 ...

  9. 职工线上健步走活动小程序方案,通过微信小程序实现功能,getElementById(“demo“).innerHTML=x

    <script> function myFunction() {y=5;z=2;x=y+z;document.getElementById("demo").innerH ...

最新文章

  1. 【面向对象编程】(2) 类属性的定义及使用;__repr__()方法
  2. keil把源代码生成lib的方法
  3. Linux下的第一个驱动程序
  4. WebDriver自动化测试框架详解
  5. Asp.Net Ajax的两种基本开发模式
  6. 前端er怎样操作剪切复制以及禁止复制+破解等
  7. python神经网络调节参数_神经网络进阶-用python实现一个完整的神经网络框架并在CIFAR10数据集上调参...
  8. Go语言vscode环境配置
  9. Python习题week2
  10. 算法入门经典-第七章 例题7-2 八皇后问题
  11. go 类型断言_深入理解Go的interface内部执行原理
  12. C++ static_cast和dynamic_cast
  13. 25 张图,一万字,拆解 Linux 网络包发送过程
  14. 计算机控制机器人运动的原理,工业机器人控制系统的基本原理
  15. 撬动世界的支点——《引爆点》读书笔记2900字优秀范文
  16. IT经理人:提高团队工作效率的11个方法
  17. MetaLife与ESTV建立战略合作伙伴关系并任命其首席执行官Eric Yoon为顾问
  18. 打印机登录无密码计算机,无密码,引发共享打印机拒绝访问故障
  19. Markdown符号:整除、不整除、恰整除、不恰整除
  20. C++与C#相比,哪个更适合开发大型游戏?

热门文章

  1. C++ API 设计 06 第一章 简介
  2. 易經大意(6) 三和 韓長庚 著
  3. Java 控制反转和依赖注入模式【翻译】【整理】
  4. 软件设计师(八)汇总-选择题
  5. 如何让c语言输出字符响一声,printf()用法
  6. python操作word、ppt、pdf
  7. 农业农村部回应长江刀鱼将正式禁捕:已严重过度捕捞
  8. Virtualbox源码分析17 APIC虚拟化2.APIC设备模拟
  9. 如何在计算机上增加一个磁盘分区,win10系统额外新增加一个硬盘分区的详细办法...
  10. comsol纳米光学案例分析