Anda di halaman 1dari 5

Traffic lights (UK sequence) dengan arduino – Semesin https://www.project.semesin.com/2020/06/30/traffic-lights-uk-sequence-...

1 dari 5 16/03/2024 21:30


Traffic lights (UK sequence) dengan arduino – Semesin https://www.project.semesin.com/2020/06/30/traffic-lights-uk-sequence-...

1 #define jumlahTrafficLight 4
2
3 byte pinDigit[] = {7, 6, 5, 4};
4 byte pinRYG[] = {10, 9, 8};
5
6 #define lampuMerah (1 << 2)
7 #define lampuKuning (1 << 1)
8 #define lampuHijau (1 << 0)
9
10 byte hijauSekarang;
11 byte hijauSelanjutnya;
12 byte timingTraffic;
13
14 struct traffic {
15 byte lampu;
16 byte lampuSelanjutnya;
17 uint32_t waktu;

2 dari 5 16/03/2024 21:30


Traffic lights (UK sequence) dengan arduino – Semesin https://www.project.semesin.com/2020/06/30/traffic-lights-uk-sequence-...

18 };
19
20 traffic skemaTraffic[] = {
21 {lampuHijau , lampuMerah ,
22 {lampuKuning , lampuMerah ,
23 {lampuMerah , lampuMerah | lampuKuning ,
24 };
25
26 byte lampuTraffic[jumlahTrafficLight];
27 byte indexTraffic;
28 byte indexScan;
29 uint32_t millisTraffic;
30 byte jalurDarurat;
31
32 void setup() {
33
34 for (byte i = 0; i < jumlahTrafficLight; i
35 {
36 pinMode(pinDigit[i], OUTPUT);
37 }
38 for (byte i = 0; i < 3; i++)
39 {
40 pinMode(pinRYG[i], OUTPUT);
41 }
42
43 Serial.begin(9600);
44
45 for (byte i = 0 ; i < jumlahTrafficLight;
46 {
47 lampuTraffic[i] = skemaTraffic[2].lampu;
48 }
49 hijauSekarang = 0;
50 hijauSelanjutnya = 1;
51
52 }
53
54 void loop() {
55
56 if (millisTraffic < millis())
57 {
58 lampuTraffic[hijauSekarang] = skemaTraff
59 lampuTraffic[hijauSelanjutnya] = skemaTr
60 millisTraffic += skemaTraffic[indexTraff
61
62 indexTraffic++;
63 if (indexTraffic == 3)
64 {
65 indexTraffic = 0;
66 hijauSekarang = hijauSelanjutnya;
67 hijauSelanjutnya = (hijauSekarang + 1)
68 }
69 }
70
71 trafficScan();

3 dari 5 16/03/2024 21:30


Traffic lights (UK sequence) dengan arduino – Semesin https://www.project.semesin.com/2020/06/30/traffic-lights-uk-sequence-...

72 }
73
74 void trafficScan()
75 {
76 digitalWrite(pinDigit[indexScan], HIGH);
77 indexScan++;
78 indexScan %= jumlahTrafficLight;
79 digitalWrite(pinRYG[0], lampuTraffic[index
80 digitalWrite(pinRYG[1], lampuTraffic[index
81 digitalWrite(pinRYG[2], lampuTraffic[index
82 digitalWrite(pinDigit[indexScan], LOW);
83
84 }

00:00 00:57

4 dari 5 16/03/2024 21:30


Traffic lights (UK sequence) dengan arduino – Semesin https://www.project.semesin.com/2020/06/30/traffic-lights-uk-sequence-...

← →

5 dari 5 16/03/2024 21:30

Anda mungkin juga menyukai