接前面博客的PID巡线部分代码:

采用两个灰度传感器循黑线测试。

PID公式:

编程时具体用到的公式:

#define left_pin    A0//左侧模拟灰度传感器
#define right_pin   A1//右侧模拟灰度传感器
#define LFwheel_1   50//左前轮引脚1
#define LFwheel_2   52//左前轮引脚2
#define LFpwm       11//左前轮PWM调速
#define RFwheel_1   46//右前轮引脚1
#define RFwheel_2   48//右前轮引脚2
#define RFpwm       10//右前轮PWM调速
#define LBwheel_1   47//左后轮引脚1
#define LBwheel_2   49//左后轮引脚2
#define LBpwm       13//左后轮PWM调速
#define RBwheel_1   51//右后轮引脚1
#define RBwheel_2   53//右后轮引脚2
#define RBpwm       12//右后轮PWM调速//P、I、D 参数需要根据具体情况进行设置
float kp=0.5;
float ki=0.5;
float kd=0.5;
int left_val=0;
int right_val=0;
int lastError=0;
int allError=0;
int v_st=200;
int v_turn=0;
void setup() {Serial.begin(115200);
}void loop() {//获取两个模拟灰度传感器的数值left_val=analogRead(left_pin);right_val=analogRead(right_pin);//调用PID调节函数PID(left_val,right_val);//调用PD调节函数//PD(left_val,right_val);//调用P调节函数//P(left_val,right_val);//调用运动函数sport(v_turn);delay(100);
}
//PID调节函数
void PID(int left_val,int right_val){int Error=left_val-right_val;allError+=Error;float p=kp*Error;float i=ki*allError;float d=kd*(Error-lastError);lastError=Error;v_turn=int(p+i+d);
}
//P调节函数
void P(int left_val,int right_val){int Error=left_val-right_val;float p=kp*Error;v_turn=int(p);
}
//PD调节函数
void PD(int left_val,int right_val){int Error=left_val-right_val;float p=kp*Error;float d=kd*(Error-lastError);lastError=Error;v_turn=int(p+d);
}
//运动函数
void sport(int v_turn){int speed_left=v_st+v_turn;int speed_right=v_st-v_turn;//左前轮analogWrite(LFpwm,speed_left);digitalWrite(LFwheel_1,HIGH);digitalWrite(LFwheel_2,LOW);//右前轮analogWrite(RFpwm,speed_right);digitalWrite(RFwheel_1,HIGH);digitalWrite(RFwheel_2,LOW);//左后轮analogWrite(LBpwm,speed_left);digitalWrite(LBwheel_1,LOW);digitalWrite(LBwheel_2,HIGH);//右后轮analogWrite(RBpwm,speed_right);digitalWrite(RBwheel_1,LOW);digitalWrite(RBwheel_2,HIGH);
}

Arduino灰度传感器PID巡线相关推荐

  1. 灰度巡线传感器_灰度传感器、巡线传感器、技术参数、应用推荐

    概述 Smart Grayscale sensor V1.0是一款颠覆传统的高智能灰度传感器,是科技与艺术的完美结合.具有微型化.智能化.多功能化的特点.市面上流行的寻线传感器.灰度传感器等要么只能识 ...

  2. 四轮两驱小车(四):STM32驱动5路灰度传感器PID循迹

    目录 前言: 小车效果展示: 5路数字灰度传感器: 巡线思路: 加入PID调节的代码: 前言: 之前买了一批5路灰度传感器,想用这传感器进行循迹,无奈网上和官方的资料提供的还是比较少,这里还是做一下当 ...

  3. pid巡线算法程序_技术分享——从单个到多个颜色传感器巡线原理解析

    巡线竞速是常见的机器人比赛项目,它对速度和精准度要求都比较高.该项目大多要求现场进行结构搭建,并且赛前只提供培训参考地图,比赛使用的地图和巡线任务一般是现场才进行公布,对于参赛选手的能力要求较高. 巡 ...

  4. ev3pid巡线_【 EV3基础应用 】课题六:PID巡线的P,到底是什么?

    如果需要学习本阶段课程,建议先学习本号内<基础硬件篇和基础编程篇>. 学习本篇请下载 LEGO Mindstorms 教育版软件 上一节课写完后,收到很多朋友的问题.统一的说法都是,之前也 ...

  5. 使用Arduino Uno构建一个巡线机器人

    使用Arduino Uno构建一个巡线机器人 原文 MX 巡线机器人(**LFR)**是一种简单的自主引导机器人,它遵循在地面上绘制的线来检测白色表面上的暗线或黑暗表面上的白线.在本教程中,使用 Ar ...

  6. 单光感pid巡线_乐高4种单光感巡线逻辑

    乐高机器人4种单光感巡线逻辑.巡线话题应该不会过时,之前看过晓舟的巡线专题教程http://bbs.cmnxt.com/thread-3074-1-1.html以及伯虎关于PID巡线的帖子,受益颇多, ...

  7. 单光感pid巡线_技术解析——单颜色传感器巡线中的PID控制器

    1PID控制器是什么? 百度百科: 工业生产过程中,对于生产装置的温度.压力.流量.液位等工艺变量常常要求维持在一定的数值上,或按一定的规律变化,以满足生产工艺的要求.PID控制器是根据PID控制原理 ...

  8. 由简至难可以轻松无障碍自己学习的Arduino套件,学习各种传感器、执行器、电子元件等,制作Arduino小车,可以用来巡线、避障、无线遥控

    套件介绍 很多孩子从来没有接触过机器人,没有编程过(很害怕去接触,觉得很难),电子元件也没有接触过,不知道电阻.电容.二极管等,不知道电路知识! Arduino中级自学套件资料齐全,由浅至深,所有项目 ...

  9. k210的简单PID巡线

    目录 1.前言 2.简介 3.代码讲解 1.调用自带的库文件 2.将I/O18和 I/O19分别注册为UART1_TX和UART1_RX功能并设置串口 3.向STM32F103单片机发送数据包 4.基 ...

最新文章

  1. 02-dispatch_barrier
  2. 【C#】MD5 小程序编写
  3. Matlab中数据拟合函数lsqcurvefit的使用方法与常见问题
  4. Googletest 实现简要分析
  5. 如何缩短visual studio行号的距离
  6. 他不怕被拒绝_【保险知识】高情商保险营销,再也不怕被拒绝!
  7. Excel批量向下填充不连续的空白单元格工具
  8. 微信小程序转发朋友圈
  9. 《数据结构》实验三:单链表
  10. selenium网页截图总结
  11. html制作3d动画效果,【分享】HTML5的Canvas制作3D动画效果分享
  12. 浅谈jodaTime 的使用
  13. 坚持与展望——科泰华捷董事长陈榕专访
  14. 外汇天眼:外汇市场为何在周末休市?为什么周末行情有波动?
  15. Mac下设置idea的代码提示快捷键
  16. java调节音量代码_音量调节(示例代码)
  17. jQueryanimation实现漂流瓶扔和写动画效果
  18. 自旋锁、乐观锁、悲观锁、重入锁、公平锁
  19. python正则表达式删除指定符号及其中的内容
  20. 蒸汽减温的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. BackTrack5里使用OpenVAS
  2. 【矩阵论】07——线性变换——线性变换的矩阵
  3. 超实用的Excel自动排序小技巧,原来这么简单,早点知道就好了!
  4. 设计模式之禅——模板方法模式(Template Method Pattern)
  5. 教你一个无本万利的赚钱方法_一个在股市中稳健赚钱的方法
  6. matlab 双点光源干涉的模拟,基于MATLAB的双点光源干涉现象的模拟
  7. js正则表达式的使用:
  8. Eclipse 注释乱码
  9. Focal Loss与GHM 理解与使用
  10. (三)Latex的字体字号设置