(SKU:RB-03T003)超薄红外遥控器
来自ALSROBOT WiKi
目录 |
产品概述
红外线遥控接收传感器模块,它采用了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桥驱动板+红外遥控小车编程问题






