创客渔机器人编程 :Lesson Four
Lesson Four
机器人循迹
知识点:
1、灰度传感器工作原理;
2、数字输入函数使用;
3、选择结构程序设计;
4、程序流程图;
循迹程序设计视频教程
1、真值表
2、算法流程图
3、程序源代码(仅供参考)
/* Arduino管脚使用
* 电机
* 5、13控制左轮电机
* 11、12控制右轮电机
* 5、11做模拟输出使用
*/
/*
* 循迹传感器
* 2 左传感器输入
* 3 右传感器输入
*/
void setup()
{
pinMode(5,OUTPUT);
pinMode(13,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(2,INPUT);//左传感器
pinMode(3,INPUT);//右传感器
}
void loop()
{
//变量L存储左传感器返回值
int L = digitalRead(2);
//变量R存储右传感器返回值
int R = digitalRead(3);
//根据左右传感器返回值做判断
if(L==1 && R==1)//正常
{
qianJin();//前进
}
else if(L==1 && R==0)//偏左
{
youZhuan();//右转调整
}
else if(L==0 && R==1)//偏右
{
zuoZhuan();//左转调整
}
else if(L==0 && R==0)//同时压线
{
tingZhi();//停止
}
}
/*
* 前进
*/
void qianJin()
{
analogWrite(5,200);
digitalWrite(13,LOW);
analogWrite(11,200);
digitalWrite(12,LOW);
}
/*
* 后退
*/
void houTui()
{
analogWrite(5,55);
digitalWrite(13,HIGH);
analogWrite(11,55);
digitalWrite(12,HIGH);
}
/*
* 左转
* 左轮不转右轮转,
* 实现小车左转;
*/
void zuoZhuan()
{
analogWrite(5,0);
digitalWrite(13,LOW);
analogWrite(11,200);
digitalWrite(12,LOW);
}
/*
* 右转
* 右轮不转左轮转,
* 实现小车右转;
*/
void youZhuan()
{
analogWrite(5,200);
digitalWrite(13,LOW);
analogWrite(11,0);
digitalWrite(12,LOW);
}
/*
* 停止
*/
void tingZhi()
{
analogWrite(5,0);
digitalWrite(13,LOW);
analogWrite(11,0);
digitalWrite(12,LOW);
}
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com