资讯详情

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

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

需要的库:

IRremote ///红外遥控

Servo //驱动舵机

先上源码

#include <IRremote.h>  #include <Servo.h> 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来驱动,但失败了

点赞再走

标签: mg643183连接器mg642570连接器

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

锐单商城 - 一站式电子元器件采购平台