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
  }
}