37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验七十一:HX1838红外无线遥控套件红外扩展模块(遥控器+接收板)
红外遥控器、发射及接收模块相关实验
一、实验环境
1、实验所需硬件清单
继电器模块X1
红外发射模块X1
红外接收模块X3
有源蜂鸣器模块X1
Arduino Uno开发板 X1
杜邦线 若干(备了10条)
LED发光二极管(蓝色)X1
220欧姆限流电阻(1/8W)x1
红外遥控器(3键、17键与20键)X3
Proto Shield 原型扩展板(带mini面包板)X1
7、程序十二:白色20键红外遥控器控制LED灯亮灭与闪烁
(1)开源仿真编程(Linkboy V4.2)
(2)程序效果:
按下测试键TEST,点亮13脚LED灯;按下返回键,13脚LED灯熄灭。
按下数字键1,LED灯闪烁1次;按下2键,闪烁2次;按下3键则3次;余下类推。
8、程序十三:黑色3键红外遥控器控制LED(D13)灯亮灭
开源图形编程(Mixiy V1.1.5)和串口输出截图
9、程序十四:用红外遥控外部中断控制继电器开关(任意键)
(1)参考开源代码(Arduino):
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
3.1 红外遥控器及接收模块系列实验
安装库:打开IDE—工具—管理库—搜索IRremote库—安装(V2.2.3)
程序十四:用红外遥控外部中断控制继电器开关(任意键)
硬件:任意红外遥控器
接线:将红外接收模块接在UNO的数字D2引脚,继电器接D8
*/
#include <IRremote.h> //导入红外遥控库
int PIN_RECV = 2; //定义红外接收器的引脚为D2
IRrecv irrecv(PIN_RECV);
decode_results results;
int pbIn = 0; // 定义中断引脚为0,也就是监听D2引脚的变化.
int Relay = 8; // 继电器引脚D8
volatile int state = LOW; // 定义继电器默认输入状态
int time1 = 0, time2; //存储遥控操作间隔时间,(消抖)
void stateChange() {
time2 = millis();//获取Arduino运行时间毫秒
if (time2 - time1 >= 90) { //定义间隔时间90毫秒,简单消抖
state = !state; //改变继电器状态
time1 = time2; //存储最后一次时间,用来准备下次对比下次操作时间.
}
else {
time1 = time2; //同上,存储最后一次操作时间.
}
digitalWrite(Relay, state);//反转开关继电器
}
void setup() {
pinMode(Relay, OUTPUT); // 置继电器引脚(D8)为输出状态
attachInterrupt(pbIn, stateChange, CHANGE); //中断函数
// 监视中断输入引脚的变化
}
void loop() {
}
(2)程序说明:
定义中断引脚为0,也就是监听D2引脚的变化;
D2引脚有信号输入就执行本函数;
信号输入间隔时间必须超过90毫秒,否则不做任何操作;
符合间隔时间就循环改变state状态(改变继电器吸合状态)。
(3)实验场景图
10、程序十五:用黑17键红外遥控七彩灯变色(1-6数字键)
(1)开源仿真编程(Linkboy V4.2)
(2)实验场景图