예제 1
byte digits[10][7] =
{
{0,0,0,0,0,0,1}, // 0
{1,0,0,1,1,1,1}, // 1
{0,0,1,0,0,1,0}, // 2
{0,0,0,0,1,1,0}, // 3
{1,0,0,1,1,0,0}, // 4
{0,1,0,0,1,0,0}, // 5
{0,1,0,0,0,0,0}, // 6
{0,0,0,1,1,1,1}, // 7
{0,0,0,0,0,0,0}, // 8
{0,0,0,1,1,0,0}, // 9
}
void setup() {
for(int i=2; i<10; i++) {
pinMode(i, OUTPUT); // 핀들은 LED이 때문에 켜는것이다. 그래서 OUTPUT이다.
}
digitalWrite(9, HIGH); // DP LED를 끈다.
}
void loop() {
for(int i=0; i<100; i++) {
delay(1000);
displayDigit(i);
}
}
void displayDigit(int num) {
int pin = 2;
for(int i=0; i<7; i++) {
digitalWrite(pin+i, digits[num][i]);
}
}
예제 2
#define PLUS 11
#define MINUS 12
int digit = 0;
byte digits[10][7] =
{
{0,0,0,0,0,0,1}, // 0
{1,0,0,1,1,1,1}, // 1
{0,0,1,0,0,1,0}, // 2
{0,0,0,0,1,1,0}, // 3
{1,0,0,1,1,0,0}, // 4
{0,1,0,0,1,0,0}, // 5
{0,1,0,0,0,0,0}, // 6
{0,0,0,1,1,1,1}, // 7
{0,0,0,0,0,0,0}, // 8
{0,0,0,1,1,0,0}, // 9
}
void setup() {
pinMode(PLUS, INPUT);
pinMode(MINUS, INPUT);
for(int i=2; i<10; i++) {
pinMode(i, OUTPUT);
}
digitalWrite(9, HIGH); // DP LED를 끈다.
}
void loop() {
if(digitalRead(PLUS) == HIGH) {
++digit;
if(digit > 9) {
digit = 0;
}
}
if(digitalRead(MINUS) == HIGH) {
--digit;
if(digit < 0) {
digit = 9;
}
}
displayDigit(digit);
delay(100);
}
void displayDigit(int num) {
int pin = 2;
for(int i=0; i<7; i++) {
digitalWrite(pin+i, digits[num][i]);
}
}