traffic light + tombol untuk pejalan kaki menggunakan arduino
kali ini kita akan melanjutkan proyek sebelum nya yaitu
membuat traffic light menggunakan arduino dengan menyertakan satu set untuk pejalan kaki yang akan menyebrang di zebra cross. jika sebelum kita hanya membuat lampu lalulintas hanya untuk mobil dan motor saja kali ini akan kita tambahkan untuk pejalan kaki yang akan menyebrang.
jika teman teman mengikuti proyek
membuat traffic light menggunakan arduino sebelum nya maka kali ini kita hanya cukup menambahkan beberapa komponen saja yaity led merah, led hijau, dan pushbuuton saja jika teman teman belum mengikuti proyek sebelum nya maka harus mencari komponen yang di butuhkan pada gambar di atas
dengan mengubah keaddan mobil dan motor berhenti (merah) makan memungkinkan pejalan kaki dapat menyebrang dengan selamt dan nyaman dalam proyek kali ini kita juga akan belajar cara membuat fungsi sendiri dalam kode. sebelum memulai program kita harus mengkoneksikan led yagn akan di program dengan arduino untuk lebih jelas nya bisa lihat gambar di bawah ini
jika sudah sesuai dengan dengan yang di gambar mari kita pahami dahulu kode yang akan kita buat sebagai berikut :
1.lampu lalulintas hijau memungkinkan mobil/motor lewat dan lampu pejalan kaki berwarna merah
Ketika Anda menekan tombol, program akan memeriksa bahwa setidaknya 5 detik telah berlalu sejak terakhir
2.ketika lampu berubah (untuk memungkinkan lalu lintas bergerak), dan jika demikian, meneruskan eksekusi kode ke fungsi tersebut3.Anda telah membuat disebut changeLights (). Dalam fungsi ini, lampu mobil berubah dari hijau ke kuning ke merah, dan kemudian lampu pejalan kaki menjadi hijau.
4.Setelah jangka waktu diatur dalam variabel crossTime (waktu) cukup untuk memungkinkan pejalan kaki untuk menyeberang), lampu flash pejalan kaki hijau dan mematikan sebagai peringatan ke
pejalan kaki untuk bergegas karena lampu akan berubah menjadi merah.
5.Kemudian cahaya pejalan kaki berubah menjadi merah, lampu kendaraan berubah dari merah ke kuning ke hijau, dan arus lalu lintas kembali menyala.
jika telah paham maka kita bisa masuk membuat program bisa mengikuti kode di bawah ini
// Interactive Traffic Lights
int carRed = 12; // assign the car lights
int carYellow = 11;
int carGreen = 10;
int pedRed = 9; // assign the pedestrian lights
int pedGreen = 8;
int button = 2; // button pin
int crossTime = 5000; // time alloyoud to cross
unsigned long changeTime; // time since button pressed
void setup() {
pinMode(carRed, OUTPUT);
pinMode(carYellow, OUTPUT);
pinMode(carGreen, OUTPUT);
pinMode(pedRed, OUTPUT);
pinMode(pedGreen, OUTPUT);
pinMode(button, INPUT); // button on pin 2
// turn on the green light
digitalWrite(carGreen, HIGH);
digitalWrite(pedRed, HIGH);
}
void loop() {
int state = digitalRead(button);
/* check if button is pressed and it is over 5 seconds since last button press */
if (state == HIGH && (millis() - changeTime) > 5000) {
// Call the function to change the lights
changeLights();
}
}
void changeLights() {
digitalWrite(carGreen, LOW); // green off
digitalWrite(carYellow, HIGH); // yellow on
delay(2000); // wait 2 seconds
digitalWrite(carYellow, LOW); // yellow off
digitalWrite(carRed, HIGH); // red on
delay(1000); // wait 1 second till its safe
digitalWrite(pedRed, LOW); // ped red off
digitalWrite(pedGreen, HIGH); // ped green on
delay(crossTime); // wait for preset time period
// flash the ped green
for (int x=0; x<10; x++) {
digitalWrite(pedGreen, HIGH);
delay(250);
digitalWrite(pedGreen, LOW);
delay(250);
}
// turn ped red on
digitalWrite(pedRed, HIGH);
delay(500);
digitalWrite(carYellow, HIGH); // yellow on
digitalWrite(carRed, LOW); // red off
delay(1000);
digitalWrite(carGreen, HIGH);
digitalWrite(carYellow, LOW); // yellow off
// record the time since last change of lights
changeTime = millis();
// then return to the main program loop
}
ADS HERE !!!