/*
Kode Ditulis Oleh : Muhammad Fakhri Al-Ilmi
Rangkaian Disusun Oleh : Muhammad Fakhri Al-Ilmi
Kelas : XII D-1
KOMPONEN ELEKTRONIKA :
1. Mikrokontroler (Arduino UNO)
2. Resistor 220 Ohm : 1 buah
3. LED Warna Merah : 4 buah
4. LED Warna Hijau : 4 buah
5. LED Warna Kuning : 4 buah
6. Kabel Jumper
*/
#include <TM1637Display.h>
int CLK1 = 6;
int DIO1 = 7;
int CLK2 = 8;
int DIO2 = 9;
TM1637Display display1(CLK1, DIO1);
TM1637Display display2(CLK2, DIO2);
int i1 = 0;
int i2 = 0;
const uint8_t hati[] = {
SEG_B | SEG_C | SEG_E | SEG_F | SEG_G, // h
SEG_A | SEG_B | SEG_C | SEG_E | SEG_F | SEG_G, // A
SEG_D | SEG_E | SEG_F | SEG_G, // t
SEG_E | SEG_F // I
};
int LEDhijau1 = 0; // Menyimpan integer 0 untuk Lampu hIjau horizontal
int LEDkuning1 = 1; // Menyimpan integer 1 untuk Lampu kuning horizontal
int LEDmerah1 = 2; // Menyimpan integer 2 untuk Lampu merah horizontal
int LEDhijau2 = 3; // Menyimpan integer 3 untuk Lampu hIjau vertikal
int LEDkuning2 = 4; // Menyimpan integer 4 untuk Lampu kuning vertikal
int LEDmerah2 = 5; // Menyimpan integer 5 untuk Lampu merah vertikal
void setup() {
display1.setBrightness(7);
display2.setBrightness(7);
pinMode(LEDhijau1, OUTPUT); //Menjadikan integer pada Lampu hIjau horizontal jadi pin output
pinMode(LEDkuning1, OUTPUT); //Menjadikan integer pada Lampu kuning horizontal jadi pin output
pinMode(LEDmerah1, OUTPUT); //Menjadikan integer pada Lampu merah horizontal jadi pin output
pinMode(LEDhijau2, OUTPUT); //Menjadikan integer pada Lampu hIjau vertikal jadi pin output
pinMode(LEDkuning2, OUTPUT); //Menjadikan integer pada Lampu kuning vertikal jadi pin output
pinMode(LEDmerah2, OUTPUT); //Menjadikan integer pada Lampu merah vertikal jadi pin output
}
void loop() {
// Siklus pertama: lampu hijau untuk lalu lintas horizontal, merah untuk vertikal
display1.clear();
digitalWrite(LEDmerah1, LOW); // Menulis dengan mematikan lampu merah horizontal
digitalWrite(LEDkuning2, LOW); // Menulis dengan mematikan lampu kuning vertikal
digitalWrite(LEDhijau1, HIGH); // Menulis dengan menyalakan lampu hijau horizontal
digitalWrite(LEDmerah2, HIGH); // Menulis dengan menyalakan lampu merah vertikal
for (i2 = 5; i2 > 0; i2--) {
display2.showNumberDec(i2, false, 2, 1);
delay(1000);
}
display2.setSegments(hati);
delay(1000);
display2.clear();
delay(1000);
display2.setSegments(hati);
digitalWrite(LEDhijau1, LOW);
digitalWrite(LEDkuning1, HIGH);
delay(1500);
display2.clear();
digitalWrite(LEDmerah2, LOW);
digitalWrite(LEDkuning1, LOW);
digitalWrite(LEDhijau2, HIGH);
digitalWrite(LEDmerah1, HIGH);
for (i1 = 5; i1 > 0; i1--) {
display1.showNumberDec(i1, false, 2, 1);
delay(1000);
}
display1.setSegments(hati);
delay(1000);
display1.clear();
delay(1000);
display1.setSegments(hati);
digitalWrite(LEDhijau2, LOW);
digitalWrite(LEDkuning2, HIGH);
delay(1500);
}
//YNTKTS