“第十六课--Microduino 数码管实验三-显示红外遥控器按键值/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
原理图
Pkj讨论 | 贡献
第1行: 第1行:
 +
{{Language|Lesson_16--Microduino_Digital_Tube_Experiment_3_-_Display_Infrared_Remote_Control_Button_Value}}
 
{| style="width: 800px;"
 
{| style="width: 800px;"
 
|-
 
|-

2014年3月5日 (三) 06:14的版本

Language English

目的

本教程将教大家如何在Microduino上使用数码管,并用红外遥控器来控制显示数字

设备

  • Microduino-Core
  • Microduino-FT232R
  • 其他硬件设备
    • 面包板跳线 一盒
    • 面包板 一块
    • 数码管 一个
    • 红外接收器 一个
    • 遥控器 一个
    • 220欧电阻 一个
    • USB数据连接线 一根

原理图

第十六课-Microduino显示红外按键值原理图.jpg


引脚表

Microduino引脚 数码管引脚
D10 1
D9 2
D5 3
D8 4
D13 5
D7 6
D6 7
不接 8
D11 9
D12 10

程序

#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中

步骤二:连接电路,电路连接图如下:

第十六课-Microduino显示红外按键值连接图.jpg

步骤三:运行代码

结果

按住遥控器上的1~9按钮,数码管将显示相应的数字,红外接收的编码都在代码里,注意不同的遥控器,可能发射的红外编码不同,需要进行相应的改动。

视频

http://v.youku.com/v_show/id_XNjc2NjcwNzM2.html