Arduino寻线程序任务:小车的两个驱动轮朝前,牛角万向轮在后,两个寻线传感器位于驱动轮之前,它们用来判断小车是否沿着黑线前行。寻线传感器检测到黑色输出低电平,检测到白色输出高电平。左右寻线传感器安装间距小于黑线的宽度。如果右寻线传感器脱离黑线,则小车左偏,以使右传感器回归黑线之间。如果左寻线传感器脱离黑线,则小车右偏,以使左传感器回归黑线之间。
#include <Servo.h> //申明舵机库文件
int IR_left=2;//定义左侧寻线传感器,连接它到Arduino数字端口2
int IR_right=4;//定义右侧寻线传感器,连接它到Arduino数字端口4
int Left,Right;
Servo myservo1; //定义左舵机对象
Servo myservo2; //定义右舵机对象
int power1 =93; //定义变量,用于存储360度舵机功率值
int power2 =93; //360度舵机功率值范围为0~180,零速功率值为93
//初始化
void setup()
{
myservo1.attach(7); // 连接左舵机到Arduino数字端口7
myservo2.attach(9); //连接右舵机到Arduino数字端口9
pinMode(IR_right,INPUT);
pinMode(IR_left, INPUT);
}
void advance()//小车前进
{
power1=180;
power2=0;
myservo1.write(power1);
myservo2.write(power2);
}
void left()//小车左偏
{
power1=93;
power2=0;
myservo1.write(power1);
myservo2.write(power2);
}
void right()//小车右偏
{
power1=180;
power2=93;
myservo1.write(power1);
myservo2.write(power2);
}
void Stop()//小车停止
{
power1=93;
power2=93;
myservo1.write(power1);
myservo2.write(power2);
}
void loop() {
//读寻线传感器的信号
Right=digitalRead(IR_right);
Left=digitalRead(IR_left);
//如果右、左两个红外为低电平
//说明小车没有偏离黑色跑道
if(Right==LOW && Left==LOW)
advance();//小车前进
//如果右寻线为高电平,说明小车向右偏离跑道
else if(Right==HIGH && Left==LOW )
left();//小车左转
//如果左寻线为高电平,说明小车向左偏离跑道
else if(Right==LOW && Left==HIGH)
right();//小车右转
else //如果左右寻线都偏离跑道,
Stop();//小车停止
}
创客们在体验科技,做一些智能车模型,但真正的科技一定是跑在最前面。现实的电动车将来一定大行其道,就像正在崛起的Tesla(特斯拉)电动车。
特斯拉电动汽车受到了众多明星大腕和投资者的追捧,而其生产商、被媒体称做汽车业“苹果”的特斯拉公司,带着硅谷的基因,以入侵者的姿态颠覆了传统汽车制造业,带给人们全新的驾驶理念。大家看看视频,了解正在发生的事,了解电动车,现代工厂以及工业机器人。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-30758-3.html
不一样的感觉
而日本每年添置数艘先进战舰