红外遥控主要由红外发射和红外接收两部分组成。
红外发射和接收的信号其实都是一连串的二进制脉冲码,高低电平按照一定的时间规律变换来传递相应的信息。为了使其在无线传输过程中免受其他信号的干扰,通常都将信号调制在特定的载波频率上(38K红外载波信号),通过红外发射二极管发射出去,而红外接收端则要将信号进行解调处理,还原成二进制脉冲码进行处理。
红外遥控器发射的38K红外载波信号由遥控器里的编码芯片对其进行编码。当按下遥控器按键时,遥控器发出红外载波信号,红外接收器接收到信号,程序对载波信号进行解码,通过数据码的不同来判断按下的是哪个键。
Arduino 要使用红外遥控,需要 IRremote 库文件。文件可以在 Arduino IDE 的库中下载。
在IDE中点击「工具」—「管理库」,查找「IRremote」进行安装。
红外线接收模块的 + 引脚连接到 Arduino 的 5V 引脚。
红外线接收模块的 – 引脚连接到 Arduino 的 GND 引脚。
红外线接收模块的 S 引脚连接到 Arduino 的数字引脚 11。
1.打开Arduino IDE软件。
2.创建一个新的空白项目。
3.在项目中编写以下代码:
#include <IRremote.h>
int RECV_PIN = 11;
int LED_PIN = 13;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // 启动红外接收器
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, HIGH);
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
if (results.value == 0xFFE01F) // 开灯的红外码值
{
digitalWrite(LED_PIN, LOW);
} else if (results.value == 0xFFA857) // 关灯的红外码值
{
digitalWrite(LED_PIN, HIGH);
}
irrecv.resume(); // 接收下一个红外信号
}
delay(100);
}
CH-: E318261B
CH: F84D46AA
CH+: ACA633AC
PREV: 52A3D41F
NEXT: D7E84B1A
PLAY/PAUSE: 20FE4DBB
-: F076C13B
+: A3C8EDDB
EQ: F0C41643
0: FF6897
100+: FF9867
200+: F0C41643
1: FF30CF
2: 9E2DFE6C
3: 6182021B
4: 9E879628
5: 488F3CBB
6: 449E79F
7: 32C6FDF7
8: 1BC0157B
9: 3EC3FC1B
注意:不同型号的红外摇控器,按键的编码存在不一致,使用前一定要识别。
新型冠状病毒肺炎(Corona Virus Disease 2019,COVID-19),简称“新冠肺炎”,世界卫生组织命名为“2019冠状病毒病” [1-2] ,是指2019新型冠状病毒感染导致的肺炎。
TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速与方向,输入电压在3V~12V,因此在集成化、小型化的电机控制系统中,它可以作为理想的电机驱动器件。
Arduino-ESP32项目提供的Preferences库是一个专为ESP32设计的非易失性存储解决方案,它替代了传统的Arduino EEPROM库,提供了更强大、更可靠的数据存储功能。
LED点阵屏由LED发光二极管组成,通过控制LED亮灭来显示文字、图片、动画、视频等,被广泛应用于公共场合做信息展示,如广告屏、公告牌等。
ESP32的DAC函数可以实现真正的模拟输出。
ESP32 没有Arduino输出 PWM 的 analogWrite(pin, value) 方法,取而代之的 ESP32 有一个 LEDC 来实现PWM功能。
本书由少年创学院联合创始人兼院长、知名创客程晨撰写,以Arduino作为硬件平台,介绍了使用米思齐(Mixly)软件进行程序开发的方法。
本文档作为UNO R4 WiFi的技术概览,您将找到一系列资源和指南链接,帮助您开始下一个项目。
Arduino OneButton库是一个用于简化按钮操作的库,它可以轻松地处理按钮的单击、双击和长按等操作。适用于Arduino开发板以及ESP32等其他基于Arduino的开发板。