红外遥控数码管
来源:互联网 发布:今日头条 数据 编辑:程序博客网 时间:2024/04/30 01:57
//项目十三 - 红外遥控数码管#include <IRremote.h> //调用IRremote.h库int RECV_PIN = 11; //定义RECV_PIN变量为11IRrecv irrecv(RECV_PIN); //设置RECV_PIN(也就是11引脚)为红外接收端decode_results results; //定义results变量为红外结果存放位置int currentNumber = 0; //该变量用于存放当前数字long codes[12]= //该数组用来存放红外遥控器发出的红外码{ 0xFD30CF,0xFD08F7, // 0 ,1 0xFD8877,0xFD48B7, // 2 ,3 0xFD28D7,0xFDA857, // 4 ,5 0xFD6897,0xFD18E7, // 6 ,7 0xFD9867,0xFD58A7, // 8 ,9 0xFD20DF,0xFD609F, // 前进 ,后退};int number[10][8] = //该数组用来存放数码管显示的数字{ {0,0,0,1,0,0,0,1},//0 {0,1,1,1,1,1,0,1},//1 {0,0,1,0,0,0,1,1},//2 {0,0,1,0,1,0,0,1},//3 {0,1,0,0,1,1,0,1},//4 {1,0,0,0,1,0,0,1},//5 {1,0,0,0,0,0,0,1},//6 {0,0,1,1,1,1,0,1},//7 {0,0,0,0,0,0,0,1},//8 {0,0,0,0,1,1,0,1} //9};void numberShow(int i) { //该函数用来让数码管显示数字 for(int pin = 2; pin <= 9 ; pin++){ digitalWrite(pin, number[i][pin - 2]); }}void setup(){ Serial.begin(9600); //设置波特率为9600 irrecv.enableIRIn(); //启动红外解码 for(int pin = 2 ; pin <= 9 ; pin++){ //设置数字引脚2~9为输出模式 pinMode(pin, OUTPUT); digitalWrite(pin, HIGH); }}void loop() { //判断是否接收到解码数据,把接收到的数据存储在变量results中 if (irrecv.decode(&results)) { for(int i = 0; i <= 11; i++){ //判断是否接收到0~9按键的红外码 if(results.value == codes[i]&& i <= 9){ numberShow(i); //在数码管上对应显示0~9 currentNumber = i; //把当前显示的值赋给变量currentNumber Serial.println(i); break; } //判断是否接收到递减的红外码,并且当前值不为0 else if(results.value == codes[10]&& currentNumber != 0){ currentNumber--; //当前值递减 numberShow(currentNumber); //数码管显示递减后的值 Serial.println(currentNumber); //串口输出递减后的值 break; } //判断是否接收到递增的红外码,并且当前值不为9 else if(results.value == codes[11]&& currentNumber != 9){ currentNumber++; //当前值递增 numberShow(currentNumber); //数码管显示递增后的值 Serial.println(currentNumber); //串口输出递增后的值 break; } } Serial.println(results.value, HEX); //串口监视器查看红外码 irrecv.resume(); //等待接收下一个信号 }}
0 0
- 红外遥控数码管
- arduino 红外遥控数码管
- Arduino 卡片15红外遥控数码管
- 漫谈红外遥控
- .单片机红外遥控
- 红外遥控智能小车
- NEC 红外遥控协议
- NEC红外遥控解码
- 红外遥控协议
- 红外遥控相关知识
- NEC 红外遥控协议
- 红外遥控原理
- 红外遥控接收
- 红外遥控相关总结
- 23.红外遥控实验
- 红外遥控编码
- 树莓派的红外遥控
- 红外遥控基本知识
- 重写Qt中paintEvent事件画5个参数的椭圆
- RHEL7 (124)系统间的文件传递
- Java学习笔记之多线程 1
- 面试题:byte b = 130;有没有问题?
- latex 排版遇到问题与解决
- 红外遥控数码管
- 系统架构师设计师考试范围
- RHEL7(124)安装和更新软件包
- 二进制八进制十进制十六进制相互
- Android 布局属性
- (EM算法)The EM Algorithm
- xcode 去掉 空格显示
- 数码管数字显示 新
- RHEL7(124)LINUX文件系统