Arduino 红外遥控电机

图片发自App

1-使用元件:

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

2-实现功能

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

3-代码:

#include 

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 红外遥控电机)