Arduino 寻迹程序——王洋

Arduino 单片机 四驱 四路红外寻线


下面为arduino单片机控制四驱四红外传感器的程序,没有揉合颜色传感器程序,后期会有GY-33匹配arduino的相应程序。更多的程序即黑带情况需要大家自行研究学习,下面只给出了简单的寻迹,更多详细内容如arduino引脚功能,程序主要关键字等。


  int l_go = 13 ;       // 左前电机 前进
  int l_back = 12 ;       // 后退
  
  int ll_go = 9 ;      //左后电机  前进
  int ll_back = 8 ;      //后退

  int r_go = 4 ;       // 右前电机  前进
  int r_back = 7 ;       //后退
  
  int rr_go = 2 ;      //右后电机   前进
  int rr_back = 3 ;      //后退
  
  int l_pwm =11  ;     // 左前电机 控速
  int ll_pwm = 10 ;     // 左后
   
  int r_pwm = 6  ;     // 左后电机 控速
  int rr_pwm = 5  ;     // 右后

  const int x1 = A0 ;    // x1 x2 x3 x4 红外传感
  const int x2 = A1 ;   //  A1 接传感器的 X2
  const int x3 = A2 ;   //  _____
  const int x4 = A3 ;   //  _____

  int l1 ;       //
  int l2 ;       //
  int l3 ;       //
  int l4 ;       //

void setup()          // 端口初始化函数

{  

  Serial.begin(9600);  // 可认为 为数据传输速度

  pinMode( l_go ,  OUTPUT  );  
  pinMode( ll_go ,  OUTPUT  );
  pinMode( l_back ,  OUTPUT  );
  pinMode( ll_back ,  OUTPUT  );
 
  pinMode( r_go,  OUTPUT  );
  pinMode( rr_go ,  OUTPUT  );
  pinMode( r_back ,  OUTPUT  );
  pinMode( rr_back ,  OUTPUT  );

  pinMode(r_pwm, INPUT);
  pinMode(rr_pwm, INPUT);
  pinMode(r_pwm, INPUT);
  pinMode(rr_pwm, INPUT);
   
   pinMode ( l1 , INPUT );
   pinMode ( l2 , INPUT );
   pinMode ( l3 , INPUT );
   pinMode ( l4 , INPUT );

   digitalWrite ( l1 ,  HIGH ) ;
   digitalWrite ( l2 ,  HIGH ) ;
   digitalWrite ( l3 ,  HIGH ) ;
   digitalWrite ( l4 ,  HIGH ) ;
}


void Go ( int l_speed , int ll_speed , int r_speed , int rr_speed )    // 向前走

{
  digitalWrite ( l_go , HIGH ) ;
  digitalWrite ( l_back , LOW  ) ;
  analogWrite  ( l_pwm , l_speed ) ;
 
  digitalWrite ( ll_go , HIGH ) ;
  digitalWrite ( ll_back , LOW  ) ;
  analogWrite  ( ll_pwm , ll_speed ) ;

  
  digitalWrite ( r_go , HIGH ) ;
  digitalWrite ( r_back , LOW  ) ;
  analogWrite  ( r_pwm , r_speed ) ;
  
  digitalWrite ( rr_go , HIGH ) ;
  digitalWrite ( rr_back , LOW  ) ;
  analogWrite  ( rr_pwm , rr_speed ) ; 
  
}

void Back ( int l_speed,int ll_speed ,int r_speed ,int rr_speed )     // 往后走

 {
  digitalWrite ( l_go , LOW ) ;
  digitalWrite ( l_back , HIGH ) ;
  digitalWrite ( ll_go , LOW ) ;
  digitalWrite ( ll_back , HIGH) ;
 
  analogWrite  ( l_pwm , l_speed ) ;
  analogWrite  ( ll_pwm , ll_speed ) ;

 
 
  digitalWrite ( r_go , LOW  ) ;
  digitalWrite ( r_back , HIGH  ) ;
  digitalWrite ( rr_go , LOW  ) ;
  digitalWrite ( rr_back , HIGH ) ;
  
  analogWrite  ( r_pwm , r_speed ) ;
  analogWrite  ( rr_pwm , rr_speed ) ;
}


/
void wheel_90( )  //  **90度转弯函数** **以及半圆弧函数**
{
  //省略
}
/




void loop ()  // 主函数  无限循环
{
    l1 = digitalRead (x1);    //灯灭  HIGH 没扫到黑带
    l2 = digitalRead (x2);  
    l3 = digitalRead (x3);
    l4 = digitalRead (x4);
//
//以下只罗列个别情况,具体情况参赛者自行分析。只提供思路。
//
if ( l2 == HIGH && l1 == LOW && l3 == LOW && l4 == HIGH )   //直走
      {
         Go ( 100 ,100 ,100 ,100 ) ; 
         delay (100); 
      }
if ( l2 == LOW && l1 == LOW && l3 == HIGH && l4 == HIGH )     //左微转 
      {
         Go ( 80 ,80 ,100 ,100 ) ;  
      }
if ( l2 == HIGH && l1 == HIGH  && l3 == LOW && l4 == LOW )    //右微转  
      {
        Go ( 100 ,100 ,80 ,80 ) ;  
      }

  }



娱乐:
void wheel_w ( int l_speed,int ll_speed ,int r_speed ,int rr_speed ) // 原地旋转函数
{
  digitalWrite ( l_go , HIGH ) ;
  digitalWrite ( l_back , LOW ) ;
  digitalWrite ( ll_go , HIGH ) ;
  digitalWrite ( ll_back , LOW ) ;
 
  analogWrite  ( l_pwm , l_speed ) ;
  analogWrite  ( ll_pwm , ll_speed ) ;

  digitalWrite ( r_go , LOW  ) ;
  digitalWrite ( r_back , HIGH  ) ;
  digitalWrite ( rr_go , LOW  ) ;
  digitalWrite ( rr_back , HIGH ) ;
  
  analogWrite  ( r_pwm , r_speed ) ;
  analogWrite  ( rr_pwm , rr_speed ) ;
}

颜色模块后续…

  • 9
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
循迹小车,随着电力电子器件的发展,PWM电压型逆变器在交流变频调速、UPS、电能质量控制器、轻型直流输电换流器等电力电子装置中得到了越来越广泛的应用。PWM电压型逆变器直流侧所需的理想无脉动直流电压源通常通过整流加上大直流电容滤波获得。大直流滤波电容的使用,给装置带来占用空间大、成本高及严重影响电能质量方面的问题。因此,研究如何减小甚至去除逆变器直流侧电容,以及解决因其产生的低次谐波和相关问题,具有十分重要的理论意义和实用价值。本文在综述了国内外在PWM电压型逆变器及各种抑制谐波PWM技术的基础上,对目前工程中应用最广泛的SPWM电压型逆变器的主电路及谐波消除调制技术和相关问题进行了深入研究。50年代末晶闸管标志着电力电子半导体期间的开端。电力电子器件经历了40多年的发展历程[1-2],特别是近30多年内更是得到了迅猛的发展[3,4]。以Th(SCR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。CR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。CR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。CR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。CR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。CR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。CR)为代表的半控型器件是第一代电力电子器件[5],其主要用于可控整流装置,若用于可控的逆变器,因其无法自行关断,须配置强迫换流电路,致使装置复杂化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值