const int pin1 = 8, pin2 = 9;
const int pin3 = 10, pin4 = 11;
const int pin5 = 12, pin6 = 13;
const int m1 = 40, k1 = 41, h1 = 42;
const int m2 = 43, k2 = 44, h2 = 45;
const int m3 = 46, k3 = 47, h3 = 48;
const int pins1[] = {1, 2, 3, 4, 5, 6, 7, 0};
const int pins2[] = {14, 15, 16, 17, 18, 19, 20, 0};
const int pins3[] = {22, 23, 24, 25, 26, 27, 28, 0};
const byte digits[] = {
B11000000, // 0
B11111001, // 1
B10100100, // 2
B10110000, // 3
B10011001, // 4
B10010010, // 5
B10000010, // 6
B11111000, // 7
B10000000, // 8
B10010000, // 9
};
void setup() {
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
pinMode(pin5, OUTPUT);
pinMode(pin6, OUTPUT);
pinMode(m1, OUTPUT);
pinMode(k1, OUTPUT);
pinMode(h1, OUTPUT);
pinMode(m2, OUTPUT);
pinMode(k2, OUTPUT);
pinMode(h2, OUTPUT);
pinMode(m3, OUTPUT);
pinMode(k3, OUTPUT);
pinMode(h3, OUTPUT);
for (int i = 0; i < 8; i++) {
pinMode(pins1[i], OUTPUT);
}
for (int i = 0; i < 8; i++) {
pinMode(pins2[i], OUTPUT);
}
for (int i = 0; i < 8; i++) {
pinMode(pins3[i], OUTPUT);
}
}
void loop() {
//hijau kabel hijau
digitalWrite(h1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m3, HIGH);
for (int i = 1000; i >=0; i--) {
//7sd ke satu kabel ijo
displayNumber1(pin1, i / 1000);
delay(1);
displayNumber1(pin2, (i / 100) % 10);
delay(1);
//7sd ke dua kabel oren
displayNumber2(pin3, i / 1000);
delay(1);
displayNumber2(pin4, (i / 100) % 10);
delay(1);
//7sd ke tiga kabel ungu
displayNumber3(pin5, i / 1000);
delay(1);
displayNumber3(pin6, (i / 100) % 10);
delay(1);
}
digitalWrite(h1, LOW);
digitalWrite(m2, LOW);
digitalWrite(m3, LOW);
//kuning
digitalWrite(k1, HIGH);
digitalWrite(k2, HIGH);
digitalWrite(k3, HIGH);
for (int i = 300; i >=0; i--) {
//7sd ke satu kabel ijo
displayNumber1(pin1, i / 1000);
delay(1);
displayNumber1(pin2, (i / 100) % 10);
delay(1);
//7sd ke dua kabel oren
displayNumber2(pin3, i / 1000);
delay(1);
displayNumber2(pin4, (i / 100) % 10);
delay(1);
//7sd ke tiga kabel ungu
displayNumber3(pin5, i / 1000);
delay(1);
displayNumber3(pin6, (i / 100) % 10);
delay(1);
}
digitalWrite(k1, LOW);
digitalWrite(k2, LOW);
digitalWrite(k3, LOW);
//hijau kabel oren
digitalWrite(m1, HIGH);
digitalWrite(h2, HIGH);
digitalWrite(m3, HIGH);
for (int i = 1000; i >=0; i--) {
//7sd ke satu kabel ijo
displayNumber1(pin1, i / 1000);
delay(1);
displayNumber1(pin2, (i / 100) % 10);
delay(1);
//7sd ke dua kabel oren
displayNumber2(pin3, i / 1000);
delay(1);
displayNumber2(pin4, (i / 100) % 10);
delay(1);
//7sd ke tiga kabel ungu
displayNumber3(pin5, i / 1000);
delay(1);
displayNumber3(pin6, (i / 100) % 10);
delay(1);
}
digitalWrite(m1, LOW);
digitalWrite(h2, LOW);
digitalWrite(m3, LOW);
digitalWrite(k1, HIGH);
digitalWrite(k2, HIGH);
digitalWrite(k3, HIGH);
for (int i = 300; i >=0; i--) {
//7sd ke satu kabel ijo
displayNumber1(pin1, i / 1000);
delay(1);
displayNumber1(pin2, (i / 100) % 10);
delay(1);
//7sd ke dua kabel oren
displayNumber2(pin3, i / 1000);
delay(1);
displayNumber2(pin4, (i / 100) % 10);
delay(1);
//7sd ke tiga kabel ungu
displayNumber3(pin5, i / 1000);
delay(1);
displayNumber3(pin6, (i / 100) % 10);
delay(1);
}
digitalWrite(k1, LOW);
digitalWrite(k2, LOW);
digitalWrite(k3, LOW);
//hijau kabel ungu
digitalWrite(m1, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(h3, HIGH);
for (int i = 1000; i >=0; i--) {
//7sd ke satu kabel ijo
displayNumber1(pin1, i / 1000);
delay(1);
displayNumber1(pin2, (i / 100) % 10);
delay(1);
//7sd ke dua kabel oren
displayNumber2(pin3, i / 1000);
delay(1);
displayNumber2(pin4, (i / 100) % 10);
delay(1);
//7sd ke tiga kabel ungu
displayNumber3(pin5, i / 1000);
delay(1);
displayNumber3(pin6, (i / 100) % 10);
delay(1);
}
digitalWrite(m1, LOW);
digitalWrite(m2, LOW);
digitalWrite(h3, LOW);
digitalWrite(k1, HIGH);
digitalWrite(k2, HIGH);
digitalWrite(k3, HIGH);
for (int i = 300; i >=0; i--) {
//7sd ke satu kabel ijo
displayNumber1(pin1, i / 1000);
delay(1);
displayNumber1(pin2, (i / 100) % 10);
delay(1);
//7sd ke dua kabel oren
displayNumber2(pin3, i / 1000);
delay(1);
displayNumber2(pin4, (i / 100) % 10);
delay(1);
//7sd ke tiga kabel ungu
displayNumber3(pin5, i / 1000);
delay(1);
displayNumber3(pin6, (i / 100) % 10);
delay(1);
}
digitalWrite(k1, LOW);
digitalWrite(k2, LOW);
digitalWrite(k3, LOW);
}
void displayNumber1(int digitPin1, int number) {
//pin mati
digitalWrite(pin1, LOW);
digitalWrite(pin2, LOW);
//penampilan angka
for (int i = 0; i <8; i++) {
if (bitRead(digits[number], i)) {
digitalWrite(pins1[i], HIGH);
} else {
digitalWrite(pins1[i], LOW);
}
}
digitalWrite(digitPin1, HIGH);
}
void displayNumber2(int digitPin2, int number) {
//pin mati
digitalWrite(pin3, LOW);
digitalWrite(pin4, LOW);
//penampilan angka
for (int i = 0; i <8; i++) {
if (bitRead(digits[number], i)) {
digitalWrite(pins2[i], HIGH);
} else {
digitalWrite(pins2[i], LOW);
}
}
digitalWrite(digitPin2, HIGH);
}
void displayNumber3(int digitPin3, int number) {
//pin mati
digitalWrite(pin5, LOW);
digitalWrite(pin6, LOW);
//penampilan angka
for (int i = 0; i <8; i++) {
if (bitRead(digits[number], i)) {
digitalWrite(pins3[i], HIGH);
} else {
digitalWrite(pins3[i], LOW);
}
}
digitalWrite(digitPin3, HIGH);
}