Untitled
unknown
plain_text
a year ago
1.4 kB
5
Indexable
const byte numeral[11] = {
B00000011, // 0
B10011111, // 1
B00100101, // 2
B00001101, // 3
B10011001, // 4
B01001001, // 5
B01000001, // 6
B00011111, // 7
B00000001, // 8
B00001001, // 9
B11111111, // blank display
};
const int segmentPins[8] = { 8, 7, 6, 11, 10, 9, 4, 5 }; //dp,g,f,e,d,c,b,a
#define Led_R 12
#define Led_Y 2
#define Led_G 3
void setup() {
for (int i = 0; i < 8; i++) {
pinMode(segmentPins[i], OUTPUT);
}
pinMode(Led_R, OUTPUT);
pinMode(Led_Y, OUTPUT);
pinMode(Led_G, OUTPUT);
}
void loop() {
// Red light sequence
digitalWrite(Led_R, LOW);
digitalWrite(Led_Y, LOW);
digitalWrite(Led_G, HIGH);
for (int i = 5; i >= 1; i--) {
tampilAngka(i);
delay(1000);
}
// Yellow light sequence
digitalWrite(Led_R, LOW);
digitalWrite(Led_Y, HIGH);
digitalWrite(Led_G, LOW);
for (int i = 2; i >= 1; i--) {
tampilAngka(i);
delay(1000);
}
// Green light sequence
digitalWrite(Led_R, HIGH);
digitalWrite(Led_Y, LOW);
digitalWrite(Led_G, LOW);
for (int i = 9; i >= 1; i--) {
tampilAngka(i);
delay(1000);
}
}
void tampilAngka(int number) {
boolean isBitSet;
for (int segment = 1; segment < 8; segment++) {
isBitSet = bitRead(numeral[number], segment);
digitalWrite(segmentPins[segment], isBitSet);
}
digitalWrite(segmentPins[0], HIGH); // Turn off decimal point
}Editor is loading...
Leave a Comment