“第十六课--Microduino 数码管实验三-显示红外遥控器按键值/zh”的版本间的差异
(Created page with "{| style="width: 800px;" |- | ==目的== 本教程将教大家如何在Microduino上使用数码管,并用红外遥控器来控制显示数字 ==设备== '''Microduino-Co...") |
(→设备) |
||
第6行: | 第6行: | ||
==设备== | ==设备== | ||
− | '''[[Microduino-Core]]''' | + | *'''[[Microduino-Core]]''' |
− | '''[[Microduino-FT232R]]''' | + | *'''[[Microduino-FT232R]]''' |
*其他硬件设备 | *其他硬件设备 | ||
**面包板跳线 一盒 | **面包板跳线 一盒 | ||
第16行: | 第16行: | ||
**220欧电阻 一个 | **220欧电阻 一个 | ||
**USB数据连接线 一根 | **USB数据连接线 一根 | ||
− | |||
==原理图== | ==原理图== |
2014年2月21日 (五) 05:50的版本
目的本教程将教大家如何在Microduino上使用数码管,并用红外遥控器来控制显示数字 设备
原理图程序#include <IRremote.h>
#include <SevSeg.h>
SevSeg sevseg;
int RECV_PIN = 2;//定义红外接收器的引脚为2
IRrecv irrecv(RECV_PIN);
decode_results results;
int t;
int action;
int deckey(unsigned long t)
{
switch(t){
case 0xFD08F7://按钮1的编码
return 1;
break;
case 0xFD8877://按钮2的编码
return 2;
break;
case 0xFD48B7://按钮3的编码
return 3;
break;
case 0xFD28D7://按钮4的编码
return 4;
break;
case 0xFDA857://按钮5的编码
return 5;
break;
case 0xFD6897://按钮6的编码
return 6;
break;
case 0xFD18E7://按钮7的编码
return 7;
break;
case 0xFD9867://按钮8的编码
return 8;
break;
case 0xFD58A7://按钮9的编码
return 9;
break;
default:
return 0;
break;
}
}
void setup() {
//定义需要使用的引脚
sevseg.Begin(1,2,3,4,5,6,7,8,9,10,11,12,13);
irrecv.enableIRIn(); // 初始化红外接收器
//sevseg.PrintOutput();
//sevseg.NewNum(0, 4);
}
void loop() {
//激活输出功能
sevseg.PrintOutput();
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);//以16进制换行输出接收代码
action=deckey(results.value);
Serial.println(action);
Serial.println();//为了便于观看输出结果增加一个空行
sevseg.NewNum(action, 4); //数码管函数输出数字,其中数值为小数点所在位置,我放在第四格所以效果就是不显示小数点
irrecv.resume(); // 接收下一个值
}
}
调试同样需要SevSeg函数库 库作者的发布页面:[1] 步骤一:复制代码到IDE中 步骤二:连接电路,电路连接图如下: 步骤三:运行代码 结果按住遥控器上的1~9按钮,数码管将显示相应的数字,红外接收的编码都在代码里,注意不同的遥控器,可能发射的红外编码不同,需要进行相应的改动。 视频 |