Dalam priyek ini, pada hardware menggunakan 3 buah led merah, kuning, hijau sebagai lampu lalu lintas dan led merah, hijau sebagai lampu penyebrangan serta 1 buah pushbutton.
Berikut merupakan skema rangkaian menggunakan breadboard:
Keterangan:
3 lampu sebelah kiri (merah, kuning, hijau) merupakan lampu lalu lintas, sedangkan 2 lampu di sebelah kanan merupakan lampu penyebrangan (merah & hijau)
Pemasangan Led
- led merah lalu lintas pada kaki anoda diberi resistor 220 ohm lalu masuk pin 11
- led kuning lalu lintas pada kaki anoda diberi resistor 220 ohm lalu masuk pin 10
- led hijau lalu lintas pada kaki anoda diberi resistor 220 ohm lalu masuk pin 9
- led merah penyebrangan pada kaki anoda diberi resistor 220 ohm lalu masuk pin 6
- led hijau penyebrangan pada kaki anoda diberi resistor 220 ohm lalu masuk pin 5
semua kaki katoda led masuk ke pin ground
3. Penasangan pushbutton terhubung dari pin +5 volt ke pin 2, lalu resistor 220 ohm terhubung dari pinn 2 ke ground
Urutan Proses
Dalam desain ini, urutan dari nyala lampu adalah seperti gambar diatas.
urutannya yaitu:
Saat pushbutton belum ditekan, maka lampu lalu lintas akan menyala lampu hijau dan pada lampu penyebrang akan menyala lampu merah.
Saat pushbutton ditekan, maka pada lampu lalu lintas di lampu kuning akan berkedip 4 kali namun saat itu terjadi, lampu penyebrang masih menyala lampu merah.
Kemudian pada saat lampu lalulintas menyala lampu merah pada saat itu juga lampu penyebrangan akan berganti warna hijau.
Setelah proses tersebut, lampu lalu lintas pada led merah meyala, sedang led kuning berkedip dan pada lampu penyebrang led meyala merah.
Kemudian proses mengulang dari awal (loop)
Langkah memasukkan sketch program ke dalam arduino sama seperti langkah sebelumnya, yang berbeda adalah sketch programmnya.
/*
TEKNIK ANTARMUKA TUGAS 2
PROTOTYPE LAMPU LALU LINTAS DENGAN TOMBOL LAMPU PENYEBRANGAN
oleh:
Afada Rio T./D400110033/Teknik Elektro
Turns on and off a light emitting diode(LED) connected to digital
pin 13, when pressing a pushbutton attached to pin 2.
The circuit:
* LED attached from pin 13 to ground
* pushbutton attached to pin 2 from +5V
* 10K resistor attached to pin 2 from ground
*/
// menseting nomor pin
const int buttonPin = 2; // definisi konstan dari pin 2 dengan nama 'buttonPin'
const int merahor = 6; // definisi konstan dari pin 6 dengan nama 'merahor'
const int hijauor = 5; // definisi konstan dari pin 5 dengan nama 'hijauor'
const int merah = 11; // definisi konstan dari pin 11 dengan nama 'merah'
const int kuning = 10; // definisi konstan dari pin 10 dengan nama 'kuning'
const int hijau = 9; // definisi konstan dari pin 9 dengan nama 'hijau'
int x; // mendefinisikan 'x' yang kelak akan dijadikan variabel dalam fungsi for
int buttonState = 0; // variabel untuk membaca status pushutton dengan nama 'buttonState'
void setup() {
// menginisialisasi pin-pin pada lampu sebagai output
pinMode(merahor, OUTPUT);
pinMode(hijauor, OUTPUT);
pinMode(merah, OUTPUT);
pinMode(kuning, OUTPUT);
pinMode(hijau, OUTPUT);
// menginisialisasi pin pada pushbutton sebagai input
pinMode(buttonPin, INPUT);
}
void hati2 () // sketch instruksi dari fungsi bernama hati2
{ // lampu kuning hidup kedap-kedip
for(x=0; x<4 awal="" fungsi="" nbsp="" nilai="" perulangan="" x="0</p"> // nilai max x adalah kurang dari 4
// x++ fungsi penjumlah x+1
// x akan ditambah 1, hingga x<4 p=""> {
digitalWrite(kuning, HIGH); // menginstruksi lampu kuning untuk hidup
delay(500); // memberi jeda hidup lampu kuning selama setengah detik
digitalWrite(kuning, LOW); // menginstruksi lampu kuning untuk mati
delay(500); // memberi jeda mati lampu kuning selama setengah detik
}
}
void loop(){
buttonState = digitalRead(buttonPin); // membaca nilai dari pushbutton
if (buttonState == HIGH) { // mengecek apabila pushbutton ditekan
// jika ditekan, nilai dari pushbutton adalah HIGH
// lalu akan berlanjut dalam pengaturan nyala lampu-lampu
digitalWrite(hijau, LOW); // mengistruksikan lampu hijau untuk mati
hati2(); // memanggil fungsi hati2 untuk diproses program
digitalWrite(merah, HIGH); // mengistruksikan lampu merah untuk hidup
digitalWrite(hijauor, HIGH); // mengistruksikan lampu hijau-penyebrang untuk hidup
digitalWrite(merahor, LOW); // mengistruksikan lampu merah-penyebrang untuk mati
delay(10000); // memberi jeda hidup lampu merah, merahor dan hijauor selama 10 detik
hati2(); // memanggil fungsi hati2 untuk diproses program
digitalWrite(kuning, LOW); // mengistruksikan lampu kuning untuk mati
digitalWrite(merah, LOW); // mengistruksikan lampu merah untuk mati
digitalWrite(hijau, HIGH); // mengistruksikan lampu hijau untuk hidup
digitalWrite(hijauor, LOW); // mengistruksikan lampu hijau-penyebrang untuk mati
digitalWrite(merahor, HIGH); // mengistruksikan lampu merah-penyebrang untuk hidup
delay(10000); // memberi jeda waktu 10 detik dari lampu merah, merahor, hijauor kuning dan hijau sesuai pengkondisian
digitalWrite(hijau, LOW); // menginstruksikan lampu hijau untuk mati
}
else {
// menginstruksi lampu-lampu dalam kondisi tertentu saat saklar tidak ditekan:
digitalWrite(merah, LOW); // mengistruksikan lampu merah untuk mati
digitalWrite(kuning, LOW); // mengistruksikan lampu kuning untuk mati
digitalWrite(hijau, HIGH); // mengistruksikan lampu hijau untuk hidup
digitalWrite(merahor, HIGH); // mengistruksikan lampu merah-penyebrang untuk hidup
digitalWrite(hijauor, LOW); // mengistruksikan lampu hijau-penyebrang untuk mati
}
}
0 komentar:
Post a Comment