arduino循迹小车

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);  // 腳位 14 (PWM)
  pinMode(MotorRight2, OUTPUT);  // 腳位 15 (PWM)
  pinMode(MotorLeft1,  OUTPUT);  // 腳位 16 (PWM) 
  pinMode(MotorLeft2,  OUTPUT);  // 腳位 17 (PWM)
  
  pinMode(MotorLPWM,  OUTPUT);  // 腳位 3 (PWM) 
  pinMode(MotorRPWM,  OUTPUT);  // 腳位 5 (PWM)
  
  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);;
        }}}

  • 11
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Arduino寻迹小车是一种基于Arduino开发板的智能小车,它可以通过传感器识别地面上的黑线,自动跟踪移动。这种小车可以用来实现很多有趣的项目,比如智能巡线,仓库自动化管理等。 Arduino寻迹小车需要用到红外线传感器,这种传感器可以通过反射亮度的变化来检测黑线。传感器最常用的安装方式是旋转地面,发射器和接收器交替排列。当地面上有黑线时,传感器会检测到亮度的变化,从而确定线的位置。然后通过控制小车的电机,让小车保持在线路上移动。 实现Arduino寻迹小车的关键是编写合适的程序。这个程序可以用Arduino IDE编写,通常分为两部分:线路识别和小车控制。线路识别部分需要读取传感器的数据,并根据数据判断线的位置。根据判断结果,我们可以决定小车的移动方向。小车控制部分需要根据线路识别的结果,控制小车的电机以保持在线路上移动。在控制电机时,应该保持合适的速度和方向,同时避免产生抖动和奔跑。 除了基本的线路识别和小车控制以外,Arduino寻迹小车还可以加入其他的功能来增强其性能。比如,我们可以增加避障传感器来让小车能够避开障碍物。我们还可以加入蜂鸣器和LED灯,在遇到特定情况时发声或闪烁,提醒用户。总之,Arduino寻迹小车是一个可以很好地锻炼程序设计能力和机械动手能力的项目,同时也很有趣。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值