大家好,我是小编。
继上一节内容点击打开链接
我今天讲arduino循迹小车。
循迹模块原理:红外对管的工作原理是利用红外线对颜色的反射
率不一样,将反射信号的强弱转化成电流信号。黑白寻迹模块在检测
到黑色高电平有效,检测到白色是为低电平有效,检测高度为0
—3cm。
注:在电路中你可以使用旋钮电位器来调黑白寻迹的灵敏度。
红外对管在机器人设计,工业制造中应用十分广泛。可利用红外
对管制作黑白寻迹机器人、工业计数传感器等等。
使用方法:
1.P1 传感器接口有3 根排针,分别是SR、SM、SL 是三个信号输出端。
2.检测到物体,信号端输出低电平;未检测到物体,信号端输出高电
平。
3.主要判断信号输出端是0 或者1,就能判断物体是否存在。
这是场地:
这个程序是:
int MotorRight1=14;
int MotorRight2=15;
int MotorLeft1=16;
int MotorLeft2=17;
int MotorRPWM=3;
int MotorLPWM=5;
const int SensorLeft = 2;
const int SensorMiddle= 4 ;
const int SensorRight = 6;
int SL;
int SM;
int SR;
void setup()
{
Serial.begin(9600);
pinMode(MotorRight1, OUTPUT);
pinMode(MotorRight2, OUTPUT);
pinMode(MotorLeft1, OUTPUT);
pinMode(MotorLeft2, OUTPUT);
pinMode(MotorLPWM, OUTPUT);
pinMode(MotorRPWM, OUTPUT);
pinMode(SensorLeft, INPUT);
pinMode(SensorMiddle, INPUT);
pinMode(SensorRight, INPUT);
}
void loop()
{
SL = digitalRead(SensorLeft);
SM = digitalRead(SensorMiddle);
SR = digitalRead(SensorRight);
if (SL == LOW&&SR==LOW)//
{
digitalWrite(MotorRight1,HIGH);
digitalWrite(MotorRight2,LOW);
analogWrite(MotorRPWM,150);
digitalWrite(MotorLeft1,HIGH);
digitalWrite(MotorLeft2,LOW);
analogWrite(MotorLPWM,150);
}
else //
{
if (SL == HIGH & SR == LOW)
{
delay(1);
digitalWrite(MotorRight1,HIGH);
digitalWrite(MotorRight2,LOW);
analogWrite(MotorRPWM,130);
digitalWrite(MotorLeft1,LOW);
digitalWrite(MotorLeft2,LOW);
}
else if (SR == HIGH & SL == LOW)
{
delay(1);
digitalWrite(MotorRight1,LOW);
digitalWrite(MotorRight2,LOW);
digitalWrite(MotorLeft1,HIGH);
digitalWrite(MotorLeft2,LOW);
analogWrite(MotorLPWM,130);
}
else
{
digitalWrite(MotorRight1,LOW);
digitalWrite(MotorRight2,LOW);
digitalWrite(MotorLeft1,LOW);
digitalWrite(MotorLeft2,LOW);;
}}}
这就是今天的内容,谢谢大家!
原文地址:http://blog.csdn.net/g1342522389/article/details/46455987