码迷,mamicode.com
首页 > 其他好文 > 详细

arduino小车入门教学——第三天(循迹)

时间:2015-06-11 14:43:46      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:arduino   机器人   博客   

大家好,我是小编。

继上一节内容点击打开链接

我今天讲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);;
        }}}
这就是今天的内容,谢谢大家!技术分享

arduino小车入门教学——第三天(循迹)

标签:arduino   机器人   博客   

原文地址:http://blog.csdn.net/g1342522389/article/details/46455987

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!