锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

UnoR3+MG90S舵机+红外遥控制作自动控制灯【Arduino】

时间:2023-01-23 15:30:00 mg643183连接器mg642570连接器

使用MG90S模拟舵机自动按下卧室灯开关

需要的库:

IRremote ///红外遥控

Servo //驱动舵机

先上源码

#include   #include  Servo myservo;  // create servo object to control a servo  int RECV_PIN = 11;  IRrecv irrecv(RECV_PIN);  decode_results results;  void setup() {     myservo.attach(9);    pinMode(LED_BUILTIN, OUTPUT);   Serial.begin(9600);   // 假如启动过程有问题,提示用户启动失败   Serial.println("Enabling IRin");   irrecv.enableIRIn(); // Start the receiver   Serial.println("Enabled IRin");   digitalWrite(LED_BUILTIN, LOW);  }  void loop() {    if(irrecv.decode(&results)) //检查是否收到红外遥控信号   {          Serial.println(results.value, HEX);              if(results.value == 0xFFA25D) //检查是否收到照明LED指令代码(0xF7C03F)       {                     myservo.write(0); //Spin in one direction           delay(1000);            myservo.write(45); // Stop           delay(6000);                      Serial.println("Command Received: Turn On LED.");           digitalWrite(LED_BUILTIN, HIGH);        }               if(results.value == 0xFF629D) //检查是否收到熄灭LED指令代码(0xF740BF)       {                     myservo.write(93);  // Spin in opposite direction           delay(1000);           myservo.write(39);  // Stop           delay(6000);           Serial.println("Command Received: Turn Off LED.");           digitalWrite(LED_BUILTIN, LOW);        }       irrecv.resume(); //接收下一个指令   }      delay(100); }

这里我参考太极创客团队写的Servo库介绍及例程

定义的宏 RECV_PIN 接红外接收器数据引脚

这是我测量的红外遥控器键值:


FFA25D -> 1
FF629D -> 2
FFE21D -> 3
FF22DD -> 4
FF02FD -> 5
FFC23D -> 6
FFE01D -> 7
FFA857 -> 8
FF906F -> 9
FF9867 -> 0
FF6897 -> *
FFB04F -> #

FF18E7 -> 方向上
FF4AB5 -> 方向下
FF10EF -> 方向左
FF5AA5 -> 方向右

FF38C7 -> OK


你可以相应地改变你想要的值

我发现MG90s模拟舵机输入电压要5V,之前试着用ESP8266来驱动,但失败了

点赞再走

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章