Sering kita menemukan simpang tiga dan simpang empat. Sebelumnya saya sudah membuat pengendali lampu lalulintas 4 jalur atau simpang empat berbasis Atmega16 karena untuk menyelesaikan tugas Uji Kompetensi Keahlian (UKK) kelas XII. Untuk jejak kali ini saya akan mencoba membuat pengendali lampu lalulintas 3 jalur atau simpang tiga berbasis Atmega16.
Denah lalulintas 3 jalur ditunjukkan seperti gambar di bawah ini.
Rangkaian elektronik yang dirancang untuk Pengendali Lampu Lalulintas 3 Jalur Berbasis ATMEGA16 seperti gambar di bawah ini.

Rangkaian pengawatan untuk pengendali lampu lalulintas 3 jalur yang dirancang sebagai berikut.
Kalo kita perhatikan lampu lalulintas menyala bergantian secara berputar seperti yang digambarkan dalam diagram waktu di bawah ini.

List Program bahasa C yang digunakan untuk Pengendali Lampu Lalulintas Berbasis Atmega16 sebagai berikut.
#include <mega16.h> #include <delay.h> int i=0; #define START PINB.0 #define STOP PINB.1 #define LEDJ1R PORTA.0 #define LEDJ1Y PORTA.1 #define LEDJ1G PORTA.2 #define LEDJ2R PORTA.3 #define LEDJ2Y PORTA.4 #define LEDJ2G PORTA.5 #define LEDJ3R PORTC.3 #define LEDJ3Y PORTC.4 #define LEDJ3G PORTC.5 #define ON 1 #define OFF 0 void main(void) { DDRA = 0xff ; PORTA = 0x00 ; DDRB = 0x00 ; PORTB = 0x03 ; DDRC = 0xff ; PORTC = 0x00 ; while (1) { if ( START == 0 ) /*Jika saklar Start ditekan mulai Running*/ { while (i<1) { LEDJ1R = OFF ; LEDJ1Y = OFF ; LEDJ1G = ON ; LEDJ2R = ON ; LEDJ2Y = OFF ; LEDJ2G = OFF ; LEDJ3R = ON ; LEDJ3Y = OFF ; LEDJ3G = OFF ; delay_ms ( 1000 ) ; /*LED Hijau Jalur 1 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 1 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 1 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 1 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 1 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 1 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 1 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 1 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 1 Nyala*/ if ( STOP == 0 ){break;} LEDJ1R = OFF ; LEDJ1Y = ON ; LEDJ1G = OFF ; LEDJ2R = ON ; LEDJ2Y = OFF ; LEDJ2G = OFF ; LEDJ3R = ON ; LEDJ3Y = OFF ; LEDJ3G = OFF ; delay_ms ( 1000 ) ; /*LED Kuning Jalur 1 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Kuning Jalur 1 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Kuning Jalur 1 Nyala*/ if ( STOP == 0 ){break;} LEDJ1R = ON ; LEDJ1Y = OFF ; LEDJ1G = OFF ; LEDJ2R = OFF ; LEDJ2Y = OFF ; LEDJ2G = ON ; LEDJ3R = ON ; LEDJ3Y = OFF ; LEDJ3G = OFF ; delay_ms ( 1000 ) ; /*LED Hijau Jalur 2 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 2 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 2 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 2 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 2 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 2 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 2 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 2 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 2 Nyala*/ if ( STOP == 0 ){break;} LEDJ1R = ON ; LEDJ1Y = OFF ; LEDJ1G = OFF ; LEDJ2R = OFF ; LEDJ2Y = ON ; LEDJ2G = OFF ; LEDJ3R = ON ; LEDJ3Y = OFF ; LEDJ3G = OFF ; delay_ms ( 1000 ) ; /*LED Kuning Jalur 2 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Kuning Jalur 2 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Kuning Jalur 2 Nyala*/ if ( STOP == 0 ){break;} LEDJ1R = ON ; LEDJ1Y = OFF ; LEDJ1G = OFF ; LEDJ2R = ON ; LEDJ2Y = OFF ; LEDJ2G = OFF ; LEDJ3R = OFF ; LEDJ3Y = OFF ; LEDJ3G = ON ; delay_ms ( 1000 ) ; /*LED Hijau Jalur 3 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 3 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 3 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 3 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 3 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 3 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 3 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 3 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Hijau Jalur 3 Nyala*/ if ( STOP == 0 ){break;} LEDJ1R = ON ; LEDJ1Y = OFF ; LEDJ1G = OFF ; LEDJ2R = ON ; LEDJ2Y = OFF ; LEDJ2G = OFF ; LEDJ3R = OFF ; LEDJ3Y = ON ; LEDJ3G = OFF ; delay_ms ( 1000 ) ; /*LED Kuning Jalur 3 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Kuning Jalur 3 Nyala*/ if ( STOP == 0 ){break;} delay_ms ( 1000 ) ; /*LED Kuning Jalur 3 Nyala*/ if ( STOP == 0 ){break;} } } } }
Video hasil simulasi bisa dilihat di bawah ini.