美文网首页arduino我爱编程
Arduino 红外遥控电机

Arduino 红外遥控电机

作者: wwyyzz | 来源:发表于2018-01-21 00:15 被阅读93次
    Arduino 红外遥控电机

    1-使用元件:

    • HX1838遥控模块 1838红外接收模块
    • L298N电机驱动板
    • 电机
    • 遥控器
    • ARDUINO UNO
    • 面包板
    • 跳线

    2-实现功能

    1、通过遥控器的1-控制左侧电机前进,4-控制左侧电机停止, 7-控制左侧电机后退
    2、通过遥控器的3-控制右侧电机前进,6-控制右侧电机停止, 9-控制右侧电机后退

    3-代码:

    #include <IRremote.h>
    
    long Left_Forward = 0x00FF30CF;
    long Left_Stop = 0x00FF10EF;
    long Left_Backward = 0x00FF42BD;
    
    long Right_Forward = 0x00FF7A85;
    long Right_Stop = 0x00FF5AA5;
    long Right_Backward = 0x00FF52AD;
    
    
    int input1 = 5; // 定义uno的pin 5 向 input1 输出   
    int input2 = 6; // 定义uno的pin 6 向 input2 输出  
    int input3 = 9; // 定义uno的pin 9 向 input3 输出  
    int input4 = 10; // 定义uno的pin 10 向 input4 输出  
    
    int RECV_PIN = 2;//定义红外接收器的引脚为2
    IRrecv irrecv(RECV_PIN);
    decode_results results;
      
      
    void setup() {  
    Serial.begin (9600);
    irrecv.enableIRIn(); // 初始化红外接收器  
    //初始化各IO,模式为OUTPUT 输出模式  
    pinMode(input1,OUTPUT);  
    pinMode(input2,OUTPUT);  
    pinMode(input3,OUTPUT);  
    pinMode(input4,OUTPUT);  
      
    }  
      
    void loop() {  
      //forward 向前转 
      if (irrecv.decode(&results)){
        if(results.value == Left_Forward){
            digitalWrite(input1,HIGH); //给高电平  
            digitalWrite(input2,LOW);  //给低电平 
          }
        if(results.value == Left_Stop){
            digitalWrite(input1,LOW); //给高电平  
            digitalWrite(input2,LOW);  //给低电平 
          }   
        if(results.value == Left_Backward){
            digitalWrite(input1,LOW); //给高电平  
            digitalWrite(input2,HIGH);  //给低电平 
          }   
    
        if(results.value == Right_Forward){
            digitalWrite(input3,HIGH); //给高电平  
            digitalWrite(input4,LOW);  //给低电平 
          }
        if(results.value == Right_Stop){
            digitalWrite(input3,LOW); //给高电平  
            digitalWrite(input4,LOW);  //给低电平 
          }   
        if(results.value == Right_Backward){
            digitalWrite(input3,LOW); //给高电平  
            digitalWrite(input4,HIGH);  //给低电平 
          }
        irrecv.resume();
        }   
      
    } 
    

    相关文章

      网友评论

        本文标题:Arduino 红外遥控电机

        本文链接:https://www.haomeiwen.com/subject/tlpxaxtx.html