本帖最后由 lou 于 2020-5-11 16:47 编辑
基于Arduino使用mini红外遥控器
产品介绍
红外遥控系统主要分为调制、发射和接收三部分,红外接收模块中的一体化红外接收头,内部集成了红外接收电路,包括红外检测二极管,放大器,限幅器,带通滤波电容,积分电路,比较器等,能够将接收到的调制波进行解调。
(mini红外遥控器)
产品参数
尺寸:85mm*39mm*6.0mm 遥控范围:8-10米(红外接收头本身质量,中间有无障碍物等因素会影响到遥控距离) 电池:3V扣式锂锰电池红外载波频率:38KHz 面贴材料:0.125mmPET 有效寿命:2万次以上 标准的38K调制频率,可适应市面上各种红外接收头 带0~9·数字键,开关、MENU、TEST、C和返回键,4个导航键和确认键,可以方便应用到各种智能小车和开发板 内置通用3V纽扣电池,使用时间长、方便更换
使用方式
安装指定型号的电池并配合红外接收头使用
对应按键值读取 Mixly 图形化编程程序
(图形化程序)
打开串口监视器,对着红外接收模块按下按键
(串口数值显示)
遥控器按键参考对应值
程序实现代码
- #include <IRremote.h>
- long ir_item;
- IRrecv irrecv_6(6);
- decode_results results_6;
- void setup(){
- Serial.begin(9600);
- irrecv_6.enableIRIn();
- }
- void loop(){
- if (irrecv_6.decode(&results_6)) {
- ir_item=results_6.value;
- String type="UNKNOWN";
- String typelist[14]={"UNKNOWN", "NEC", "SONY", "RC5", "RC6", "DISH", "SHARP", "PANASONIC", "JVC", "SANYO", "MITSUBISHI", "SAMSUNG", "LG", "WHYNTER"};
- if(results_6.decode_type>=1&&results_6.decode_type<=13){
- type=typelist[results_6.decode_type];
- }
- Serial.print("IR TYPE:"+type+" ");
- Serial.println(ir_item);
- delay(1000);
- irrecv_6.resume();
- } else {
- Serial.print("");
- delay(1000);
- }
- }
复制代码
mini红外遥控器基础小案例
结合Arduino、 红外传感器模块、LED 灯,实现当遥控器按下1号按键时,绿色 LED 灯亮起,当按下2号按键时,LED 灯处于熄灭状态。 LED灯高电平为亮,低电平为灭。
(LED模块)
接线方式
Arduino 红外传感器模块 5V <------> VCC GND <------> GND D6 <------> DAT
Arduino LED灯 3V3 <------> VCC GND <------> GND D5 <------> IN
Mixly图形化编程程序
(图形化程序)
程序实现代码
- #include <IRremote.h>
- long ir_item;
- IRrecv irrecv_6(6);
- decode_results results_6;
- void setup(){
- Serial.begin(9600);
- pinMode(5, OUTPUT);
- irrecv_6.enableIRIn();
- }
- void loop(){
- if (irrecv_6.decode(&results_6)) {
- ir_item=results_6.value;
- String type="UNKNOWN";
- String typelist[14]={"UNKNOWN", "NEC", "SONY", "RC5", "RC6", "DISH", "SHARP", "PANASONIC", "JVC", "SANYO", "MITSUBISHI", "SAMSUNG", "LG", "WHYNTER"};
- if(results_6.decode_type>=1&&results_6.decode_type<=13){
- type=typelist[results_6.decode_type];
- }
- Serial.print("IR TYPE:"+type+" ");
- Serial.println(ir_item);
- if (ir_item == 16724175) {
- digitalWrite(5,HIGH);
- }
- if (ir_item == 16718055) {
- digitalWrite(5,LOW);
- }
- irrecv_6.resume();
- } else {
- }
- }
复制代码
|