功能展示
1、按下开关从0顺序显示到9
2、遥控器输入0-9,数码管显示相应数字,按下*清除数码管显示内容
IRremote库下载
找到下载好的zip文件并安图示导入
连接好Arduino开发板,选好型号,配置好端口
数码管内部图
相关联线
对应关系:
1---A1
2---A2
4---A4
5---A5
6---6
7---7
9---9
10---10
3/8---GND
相关代码
注:如果需要自己可以加个中断
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(A5, OUTPUT);
pinMode(A3, INPUT_PULLUP);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
}
void oneCircle(){
for(int i = 0; i <= 10; ++i){
switch(i){
case 0:
digital_0();
delay(1000);
break;
case 1:
digital_1();
delay(1000);
break;
case 2:
digital_2();
delay(1000);
break;
case 3:
digital_3();
delay(1000);
break;
case 4:
digital_4();
delay(1000);
break;
case 5:
digital_5();
delay(1000);
break;
case 6:
digital_6();
delay(1000);
break;
case 7:
digital_7();
delay(1000);
break;
case 8:
digital_8();
delay(1000);
break;
case 9:
digital_9();
delay(1000);
break;
case 10:
clear();
delay(1000);
break;
}
}
}
void clear(){
digitalWrite(A1, LOW);
digitalWrite(A2, LOW);
digitalWrite(A4, LOW);
digitalWrite(A5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
}
void digital_0(){
clear();
digitalWrite(A1, HIGH);
digitalWrite(A2, HIGH);
digitalWrite(A4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(9, HIGH);
}
void digital_1(){
clear();
digitalWrite(A4, HIGH);
digitalWrite(6, HIGH);
}
void digital_2(){
clear();
digitalWrite(A1, HIGH);
digitalWrite(A2, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(10, HIGH);
}
void digital_3(){
clear();
digitalWrite(A2, HIGH);
digitalWrite(A4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(10, HIGH);
}
void digital_4(){
clear();
digitalWrite(A4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
}
void digital_5(){
clear();
digitalWrite(A2, HIGH);
digitalWrite(A4, HIGH);
digitalWrite(7, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
}
void digital_6(){
clear();
digitalWrite(A1, HIGH);
digitalWrite(A2, HIGH);
digitalWrite(A4, HIGH);
digitalWrite(7, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
}
void digital_7(){
clear();
digitalWrite(A4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
}
void digital_8(){
clear();
digitalWrite(A1, HIGH);
digitalWrite(A2, HIGH);
digitalWrite(A4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
}
void digital_9(){
clear();
digitalWrite(A2, HIGH);
digitalWrite(A4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
}
void loop() {
//先不考虑同步异步问题
if(!digitalRead(A3)){
oneCircle();
}
if(irrecv.decode(&results)){
switch(results.value){
case 16753245:
Serial.println(1);
digital_1();
break;
case 16736925:
Serial.println(2);
digital_2();
break;
case 16769565:
Serial.println(3);
digital_3();
break;
case 16720605:
Serial.println(4);
digital_4();
break;
case 16712445:
Serial.println(5);
digital_5();
break;
case 16761405:
Serial.println(6);
digital_6();
break;
case 16769055:
Serial.println(7);
digital_7();
break;
case 16754775:
Serial.println(8);
digital_8();
break;
case 16748655:
Serial.println(9);
digital_9();
break;
case 16750695:
Serial.println(0);
digital_0();
break;
case 16738455:
Serial.println("*");
clear();
break;
case 16756815:
Serial.println("#");
break;
}
irrecv.resume();
}
}