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

来自Microduino Wikipedia
跳转至: 导航搜索
视频
程序
 
(未显示2个用户的8个中间版本)
第1行: 第1行:
 +
{{Language|Lesson_16--Microduino_Digital_Tube_Experiment_3_-_Display_Infrared_Remote_Control_Button_Value}}
 
{| style="width: 800px;"
 
{| style="width: 800px;"
 
|-
 
|-
第6行: 第7行:
  
 
==设备==
 
==设备==
*'''[[Microduino-Core]]'''
+
*'''[[Microduino-Core/zh]]'''
*'''[[Microduino-FT232R]]'''
+
*'''[[Microduino-USBTTL/zh]]'''
 
*其他硬件设备
 
*其他硬件设备
 
**面包板跳线  一盒   
 
**面包板跳线  一盒   
第18行: 第19行:
  
 
==原理图==
 
==原理图==
 +
 +
'''共阳:'''
 
[[File:第十六课-Microduino显示红外按键值原理图.jpg|600px|center|thumb]]
 
[[File:第十六课-Microduino显示红外按键值原理图.jpg|600px|center|thumb]]
  
==程序==
+
引脚表
<source lang="cpp">
+
{| class="wikitable"
 +
|-
 +
! Microduino引脚 !! 数码管引脚序号 !! 数码管引脚字符
 +
|-
 +
| D10 || 1 || e
 +
|-
 +
| D9 || 2 || d
 +
|-
 +
| D5 || 3 || GND
 +
|-
 +
| D8 || 4 || c
 +
|-
 +
| D13 || 5 || dp
 +
|-
 +
| D7 || 6 || b
 +
|-
 +
| D6 || 7 || a
 +
|-
 +
| 不接 || 8 || GND
 +
|-
 +
| D11 || 9 || f
 +
|-
 +
| D12 || 10 || g
 +
|}
  
#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)
+
引脚表
{
+
{| class="wikitable"
  switch(t){
+
|-
    case 0xFD08F7://按钮1的编码
+
! Microduino引脚 !! 数码管引脚序号 !! 数码管引脚字符
    return 1;
+
|-
    break;
+
| D11 || 1 || e
    case 0xFD8877://按钮2的编码
+
|-
    return 2;
+
| D2 || 2 || d
    break;
+
|-
    case 0xFD48B7://按钮3的编码
+
|  || 3 || GND
    return 3;
+
|-
    break;
+
| D4 || 4 || c
    case 0xFD28D7://按钮4的编码
+
|-
    return 4;
+
| D5 || 5 || dp
    break;
+
|-
    case 0xFDA857://按钮5的编码
+
| D6 || 6 || b
    return 5;
+
|-
    break;
+
| D7 || 7 || a
    case 0xFD6897://按钮6的编码
+
|-
    return 6;
+
| GUN || 8 || GND
    break;
+
|-
    case 0xFD18E7://按钮7的编码
+
| D9 || 9 || f
    return 7;
+
|-
    break;
+
| D10 || 10 || g
    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(); // 接收下一个值
 
  }
 
  
 +
==程序==
  
}
+
共阳:
 +
[https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced/MicroduinoDigitalTubeExperiments3 MicroduinoDigitalTubeExperiments3]
  
</source>
+
共阴:
 +
见lesson16Segment
  
 
==调试==
 
==调试==

2014年10月29日 (三) 04:35的最新版本

Language English

目的

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

设备

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

原理图

共阳:

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

引脚表

Microduino引脚 数码管引脚序号 数码管引脚字符
D10 1 e
D9 2 d
D5 3 GND
D8 4 c
D13 5 dp
D7 6 b
D6 7 a
不接 8 GND
D11 9 f
D12 10 g

共阴:

引脚表

Microduino引脚 数码管引脚序号 数码管引脚字符
D11 1 e
D2 2 d
3 GND
D4 4 c
D5 5 dp
D6 6 b
D7 7 a
GUN 8 GND
D9 9 f
D10 10 g

程序

共阳: MicroduinoDigitalTubeExperiments3

共阴: 见lesson16Segment

调试

同样需要SevSeg函数库

库作者的发布页面:[1]

步骤一:复制代码到IDE中

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

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

步骤三:运行代码

结果

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

视频

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