Setelah program yang sederhana diatas selesai, maka kita akan mencoba
membuat hardware dan sketch yang lebih rumit.Dalam priyek kedua 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 pin
n 2 ke ground
Urutan Proses
Dalam desain kedua 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.
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
}
}