“(SKU:RB-03T003)超薄红外遥控器”的版本间的差异
来自ALSROBOT WiKi
(以“<br/> 居中 ==概述== :红外线遥控接收传感器模块,它采用了HS0038一体化红外接收头作为信号接收元件...”为内容创建页面) |
(→测试程序) |
||
(未显示2个用户的10个中间版本) | |||
第1行: | 第1行: | ||
<br/> | <br/> | ||
− | [[文件:asda1.jpg|500px|有框| | + | [[文件:asda1.jpg|500px|有框|右]] |
− | == | + | ==产品概述== |
− | + | 红外线遥控接收传感器模块,它采用了HS0038一体化红外接收头作为信号接收元件,确保了产品具有极高的可靠性与卓越的长期稳定性。HS0038是一个集成度很高的元器件。红外接收电路一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单片机识别的 TTL 信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。在产品中我们采用红外一体化接收头HS0038,外观如封面图片所示。HS0038黑色环氧树脂封装,不受日光、荧光灯等光源干扰。HS0038 为直立侧面收光型。它接收红外信号频率为38kHz ,周期约26μs ,能同时对信号进行放大、检波、整形,得到 TTL 电平的编码信号。因此该款产品具有品质卓越、超快响应、抗干扰能力强、性价比高等优点。 应用领域:家电产品、人机互动平台、教学仪器仪表、PC遥控器等。 | |
− | + | ||
==规格参数== | ==规格参数== | ||
# CR2025环保纽扣电池,容量160mah | # CR2025环保纽扣电池,容量160mah | ||
第11行: | 第11行: | ||
# 品质稳定,性价比高 | # 品质稳定,性价比高 | ||
# 静态电流3-5uA,动态电流3-5mA | # 静态电流3-5uA,动态电流3-5mA | ||
+ | ===遥控器波形=== | ||
+ | [[文件:03T00301.jpg|700px|有框|居中]] | ||
+ | |||
==产品实物图== | ==产品实物图== | ||
[[文件:asda2.jpg|500px|有框|居中]] | [[文件:asda2.jpg|500px|有框|居中]] | ||
− | == | + | ==超薄红外遥控器的测试 == |
− | : | + | ===硬件设备=== |
− | + | * [http://www.alsrobot.cn/goods-546.html Carduino UNO 控制器] * 1个 | |
− | + | * [http://www.alsrobot.cn/goods-147.html V5.0传感器扩展板] * 1个 | |
− | + | * [http://www.alsrobot.cn/goods-157.html 红外遥控接收传感器模块] * 1个 | |
− | + | * [http://www.alsrobot.cn/goods-133.html 食人鱼灯] * 1个 | |
− | + | * [http://www.alsrobot.cn/goods-154.html 超薄红外遥控器] * 1个 | |
− | + | * [http://www.alsrobot.cn/goods-196.html 通用3P传感器连接线] * 1个 | |
− | + | * [http://www.alsrobot.cn/goods-90.html USB 数据通信线] * 1个 | |
− | [ | + | ===实验接线=== |
− | : | + | * 红外接收模块接在Carduino UNO数字口5 |
− | + | * 高亮食人鱼灯接在Carduino UNO数字口13 | |
+ | ===配套遥控器键值表=== | ||
[[文件:asda4.jpg|500px|有框|居中]] | [[文件:asda4.jpg|500px|有框|居中]] | ||
− | + | ===测试程序=== | |
− | <pre style='color:blue'> | + | 程序下载前需要将库文件IRremote安装到Arduino的hardware\libraries 里面。然后将代码编译后下载到Arduino里,就可以进行试验了,同时在软件里的串口监视窗口上可以看见同步的键值显示(注:软件串口波特率设置为9600)<br/> |
− | + | 库文件下载链接:http://pan.baidu.com/s/1dE84ZS1 密码:2sf5<br/> | |
− | #define TIMER_RESET TCNT1 = 0 | + | <pre style='color:blue'> |
− | #define SAMPLE_SIZE 68 | + | #define TIMER_RESET TCNT1 = 0 |
− | int | + | #define SAMPLE_SIZE 68 |
− | int IRpin = | + | int led = 13; |
− | unsigned int TimerValue[SAMPLE_SIZE]; | + | int IRpin = 5; |
− | char direction[SAMPLE_SIZE]; | + | unsigned int TimerValue[SAMPLE_SIZE]; |
− | byte change_count; | + | char direction[SAMPLE_SIZE]; |
− | long time1, time2; | + | byte change_count; |
− | unsigned long data; | + | long time1, time2; |
− | char a,b,c,d,e; | + | unsigned long data; |
− | unsigned long irc; | + | char a,b,c,d,e; |
− | char tab[12]={"0123456789"}; | + | unsigned long irc; |
− | void setup() { | + | char tab[12]={"0123456789"}; |
− | pinMode(IRpin, INPUT); | + | void setup() |
− | pinMode(13, OUTPUT); | + | { |
− | + | pinMode(IRpin, INPUT); | |
− | + | pinMode(13, OUTPUT); | |
− | + | TCCR1B = 0x03; | |
− | + | TCCR1A = 0x00; | |
− | + | a=0;b=0;c=0;d=0;e=0; | |
− | + | Serial.begin(9600); | |
− | TCCR1B = 0x03; | + | bee(); |
− | TCCR1A = 0x00; | + | } |
− | a=0;b=0;c=0;d=0;e=0; | + | |
− | Serial.begin(9600); | + | |
− | bee( | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | } | + | |
− | void | + | void loop() |
− | { | + | { |
− | + | ir_code(); | |
− | + | Serial.print(","); | |
− | + | Serial.println(irc); | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | else { | + | void bee() |
− | data = data << 1; | + | { |
− | } | + | digitalWrite(led,LOW); |
− | change_count += 2; | + | delay(1000); |
− | time1 = time2; | + | digitalWrite(led,HIGH); |
− | } | + | delay(1000); |
− | irc=data%100000; | + | } |
− | a=irc/10000; | + | void ir_code() |
− | b=irc%10000/1000; | + | { |
− | c=irc%1000/100; | + | change_count = 0; |
− | d=irc%100/10; | + | while(digitalRead(IRpin) == HIGH) // 等待起始位 |
− | e=irc%10; | + | TIMER_RESET; |
− | + | TimerValue[change_count] = TCNT1; | |
− | }</pre> | + | direction[change_count++] = '0'; |
− | + | while (change_count < SAMPLE_SIZE) | |
+ | { | ||
+ | if (direction[change_count-1] == '0') | ||
+ | { | ||
+ | while(digitalRead(IRpin) == LOW) // 等待电平上升沿出现 | ||
+ | TimerValue[change_count] = TCNT1; | ||
+ | direction[change_count++] = '1'; // 保持信号状态 | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | while(digitalRead(IRpin) == HIGH) // 等待电平信号的下降沿 | ||
+ | TimerValue[change_count] = TCNT1; | ||
+ | direction[change_count++] = '0'; // 保持信号状态 | ||
+ | } | ||
+ | } | ||
+ | change_count = 0; | ||
+ | data = 0; | ||
+ | time1 = (long) TimerValue[change_count] * 4; | ||
+ | change_count += 2; | ||
+ | while (change_count < SAMPLE_SIZE) | ||
+ | { | ||
+ | time2 = (long) TimerValue[change_count] * 4; | ||
+ | if ((time2 - time1) > 8000) | ||
+ | {} | ||
+ | |||
+ | else if ((time2 - time1) > 1680) | ||
+ | { | ||
+ | data = data << 1; // 左移一位 | ||
+ | data |= 1; | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | data = data << 1; | ||
+ | } | ||
+ | change_count += 2; | ||
+ | time1 = time2; | ||
+ | } | ||
+ | irc=data%100000; | ||
+ | a=irc/10000; | ||
+ | b=irc%10000/1000; | ||
+ | c=irc%1000/100; | ||
+ | d=irc%100/10; | ||
+ | e=irc%10; | ||
+ | switch(irc) | ||
+ | { | ||
+ | case 53245: | ||
+ | Serial.print("CH-"); | ||
+ | bee(); | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | ===程序效果=== | ||
+ | 当按下CH-按键时,串口显示CH-键值,同时,Arduino 13号数字引脚LED闪烁一次。<br/> | ||
+ | |||
+ | ==应用视频== | ||
+ | [[File:hong wai yao kong 02.png|400px|左|link=http://v.youku.com/v_show/id_XMjE4Mzg5OTQ0.html?from=y1.7-2]] | ||
+ | [[File:hong wai yao kong 01.png|400px|居中|link=http://v.youku.com/v_show/id_XMjE2NjgzMTU2.html?from=y1.7-2]] | ||
+ | <br/> | ||
+ | ==产品相关推荐== | ||
+ | [[文件:erweima.png|230px|无框|右]] | ||
+ | ===产品购买地址=== | ||
+ | [http://www.alsrobot.cn/goods-154.html 红外遥控器]<br/> | ||
+ | ===周边产品推荐=== | ||
+ | [http://www.alsrobot.cn/goods-151.html 红外遥控接收套件]<br/> | ||
+ | [http://www.alsrobot.cn/goods-157.html 红外接收模块]<br/> | ||
+ | ===相关问题解答=== | ||
+ | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=3119&fromuid=10780 Arduino uno R3+双H桥驱动板+红外遥控小车编程问题]<br/> | ||
+ | ===相关学习资料=== | ||
+ | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=4048&fromuid=10780 视频;Arduino-2WD轻量型移动机器人红外遥控演示]<br/> | ||
+ | [http://www.makerspace.cn/portal.php 奥松机器人技术论坛]<br/> |
2018年10月15日 (一) 14:53的最后版本
目录 |
产品概述
红外线遥控接收传感器模块,它采用了HS0038一体化红外接收头作为信号接收元件,确保了产品具有极高的可靠性与卓越的长期稳定性。HS0038是一个集成度很高的元器件。红外接收电路一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单片机识别的 TTL 信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。在产品中我们采用红外一体化接收头HS0038,外观如封面图片所示。HS0038黑色环氧树脂封装,不受日光、荧光灯等光源干扰。HS0038 为直立侧面收光型。它接收红外信号频率为38kHz ,周期约26μs ,能同时对信号进行放大、检波、整形,得到 TTL 电平的编码信号。因此该款产品具有品质卓越、超快响应、抗干扰能力强、性价比高等优点。 应用领域:家电产品、人机互动平台、教学仪器仪表、PC遥控器等。
规格参数
- CR2025环保纽扣电池,容量160mah
- 发射距离:8m以上(具体和周围环境、接收端的灵敏度等因素有关)
- 有效角度:60度
- 面贴材料:0.125mmPET,有效寿命2万次。
- 品质稳定,性价比高
- 静态电流3-5uA,动态电流3-5mA
遥控器波形
产品实物图
超薄红外遥控器的测试
硬件设备
- Carduino UNO 控制器 * 1个
- V5.0传感器扩展板 * 1个
- 红外遥控接收传感器模块 * 1个
- 食人鱼灯 * 1个
- 超薄红外遥控器 * 1个
- 通用3P传感器连接线 * 1个
- USB 数据通信线 * 1个
实验接线
- 红外接收模块接在Carduino UNO数字口5
- 高亮食人鱼灯接在Carduino UNO数字口13
配套遥控器键值表
测试程序
程序下载前需要将库文件IRremote安装到Arduino的hardware\libraries 里面。然后将代码编译后下载到Arduino里,就可以进行试验了,同时在软件里的串口监视窗口上可以看见同步的键值显示(注:软件串口波特率设置为9600)
库文件下载链接:http://pan.baidu.com/s/1dE84ZS1 密码:2sf5
#define TIMER_RESET TCNT1 = 0 #define SAMPLE_SIZE 68 int led = 13; int IRpin = 5; unsigned int TimerValue[SAMPLE_SIZE]; char direction[SAMPLE_SIZE]; byte change_count; long time1, time2; unsigned long data; char a,b,c,d,e; unsigned long irc; char tab[12]={"0123456789"}; void setup() { pinMode(IRpin, INPUT); pinMode(13, OUTPUT); TCCR1B = 0x03; TCCR1A = 0x00; a=0;b=0;c=0;d=0;e=0; Serial.begin(9600); bee(); } void loop() { ir_code(); Serial.print(","); Serial.println(irc); } void bee() { digitalWrite(led,LOW); delay(1000); digitalWrite(led,HIGH); delay(1000); } void ir_code() { change_count = 0; while(digitalRead(IRpin) == HIGH) // 等待起始位 TIMER_RESET; TimerValue[change_count] = TCNT1; direction[change_count++] = '0'; while (change_count < SAMPLE_SIZE) { if (direction[change_count-1] == '0') { while(digitalRead(IRpin) == LOW) // 等待电平上升沿出现 TimerValue[change_count] = TCNT1; direction[change_count++] = '1'; // 保持信号状态 } else { while(digitalRead(IRpin) == HIGH) // 等待电平信号的下降沿 TimerValue[change_count] = TCNT1; direction[change_count++] = '0'; // 保持信号状态 } } change_count = 0; data = 0; time1 = (long) TimerValue[change_count] * 4; change_count += 2; while (change_count < SAMPLE_SIZE) { time2 = (long) TimerValue[change_count] * 4; if ((time2 - time1) > 8000) {} else if ((time2 - time1) > 1680) { data = data << 1; // 左移一位 data |= 1; } else { data = data << 1; } change_count += 2; time1 = time2; } irc=data%100000; a=irc/10000; b=irc%10000/1000; c=irc%1000/100; d=irc%100/10; e=irc%10; switch(irc) { case 53245: Serial.print("CH-"); bee(); break; } }
程序效果
当按下CH-按键时,串口显示CH-键值,同时,Arduino 13号数字引脚LED闪烁一次。
应用视频
产品相关推荐
产品购买地址
周边产品推荐
相关问题解答
Arduino uno R3+双H桥驱动板+红外遥控小车编程问题