Jumat, 29 November 2013

Lampu Lalu Lintas Penyebrang Menggunakan Tombol

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:
  1. 3 lampu sebelah kiri (merah, kuning, hijau) merupakan lampu lalu lintas, sedangkan 2 lampu di sebelah kanan merupakan lampu penyebrangan (merah & hijau)
  2. 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 kedua ini, urutan dari nyala lampu adalah seperti gambar diatas.
urutannya yaitu:

  1. Saat pushbutton belum ditekan, maka lampu lalu lintas akan menyala lampu hijau dan pada lampu penyebrang akan menyala lampu merah.
  2. 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.
  3. Kemudian pada saat lampu lalulintas menyala lampu merah  pada saat itu juga lampu penyebrangan akan berganti warna hijau.
  4. Setelah proses tersebut, lampu lalu lintas pada led merah meyala, sedang led kuning berkedip dan pada lampu penyebrang led meyala merah.
  5. 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
  }
}

1 komentar:

  1. Kog ada error di sini mas
    for(x=0; x<4 awal="" fungsi="" nbsp="" nilai="" perulangan="" x="0 // nilai max x adalah kurang dari 4

    BalasHapus