Membuat traffic light dengan codevision AVR(4)


Akhirnya kita sampai pada tutorial membuat traffic light dengan codevision AVR yang ke empat, dimana kita akan membuat traffic light dengan countdown timer untuk masing2 bangjo, jadi total ada 4 bangjo, dengan 8 seven segment dimana setiap bangjo memiliki 2 seven segment, satu untuk counter ketika lampu hijau, satu untuk counter ketika berhenti atau lampu merah.

Untuk keperluan ini, lagi2 kita kekurangan output ATMega untuk kendali seven segment, maka salah satu cara menyiasatinya lagi2 kita bisa memparalelkan seven segmentnya, 8 input seven segment kita percayakan pada PORTA untuk mengeluarkan output nilainya, sedangkan PORTB kita gunakan sebagai kendali seven segment, jadi kita masih punya 2 PORT untuk kendali traffic lightnya, PORTC kita gunakan sebagai kendali traffic light 1 – 2, dan PORTD kita gunakan untuk mengendalikan traffic light 3 – 4.

Pada tutorial kali ini, pada prinsipnya ketika lampu 1 hijau, sisanya harus merah, dan tiap lampu merah memiliki nilai waktu yang berbeda2, sehingga pada saat gilirannya tiap lampu merah akan habis di angka nol sebelum berubah ke warna hijau.

BACA JUGA:   RTC DS 1307 dengan Codevision AVR [1]

Di sini jika sebuah lampu hijau, maka lampu setelahnya memiliki nilai counter yang sama, lampu ketiga memiliki nilai counter + 3, dan lampu terakhir memiliki nilai counter + 6. Kemudian setelah lampu kedua menyala hijau maka nilai lampu ketiga sudah sama dengan nilai counter 2, lampu keempat bernilai counter + 3 dan lampu pertama diset dengan nilai counter + 6. Dan pada saat nilai lampu hijau 0 otomatis dia berubah ke warna kuning, sebenarnya bisa saja kita membuat pada saat nilai 0 tetap hijau baru kemudian baru warna kuning, tapi hehehe programnya ntar tambah panjang 😀 tapi monggo klo mau ditambahkan sendiri biar terkesan lebih valid.

traffic light priyo harjiyono

Lebih lanjut listing program yang ditulis dengan bahasa C dan compiler Codevision AVR sebagai berikut.

#include <mega16.h>
#include <delay.h>

// Declare your global variables here
unsigned int bj1;
unsigned char lp1;
unsigned char bil[11]={0x00,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void main(void)
{

//this code was taken from http://anotherorion.com

DDRA=DDRB=DDRC=DDRD=255;
PORTA=PORTB=PORTC=PORTD=0;
while (1)
{
PORTC=0x41;
PORTD=0x44;
for(lp1=3;lp1>0;lp1--)
{
delay_ms(1);

for(bj1=0;bj1<10;bj1++)
{
PORTB=0x09;
PORTA=bil[lp1];
delay_ms(10);
PORTB=0x20;
PORTA=bil[lp1+3];
delay_ms(10);
PORTB=0x80;
PORTA=bil[lp1+6];
delay_ms(10);
if(lp1==1)
{
PORTC=0x42;
PORTD=0x44;
PORTB=0x04;
PORTA=0xff;
delay_ms(10);
}
}
}

PORTC=0x14;
for(lp1=3;lp1>0;lp1--)
{
delay_ms(1);

for(bj1=0;bj1<10;bj1++)
{
PORTB=0x24;
PORTA=bil[lp1];
delay_ms(10);
PORTB=0x80;
PORTA=bil[lp1+3];
delay_ms(10);
PORTB=0x02;
PORTA=bil[lp1+6];
delay_ms(10);
if(lp1==1)
{
PORTC=0x24;
PORTD=0x44;
PORTB=0x04;
PORTA=0xff;
delay_ms(10);
}
}
}
PORTC=0x44;
PORTD=0x41;
for(lp1=3;lp1>0;lp1--)
{
delay_ms(1);

for(bj1=0;bj1<10;bj1++)
{
PORTB=0x90;
PORTA=bil[lp1];
delay_ms(10);
PORTB=0x02;
PORTA=bil[lp1+3];
delay_ms(10);
PORTB=0x08;
PORTA=bil[lp1+6];
delay_ms(10);
if(lp1==1)
{
PORTD=0x42;
PORTB=0x04;
PORTA=0xff;
delay_ms(10);
}
}
}
PORTD=0x14;
for(lp1=3;lp1>0;lp1--)
{
delay_ms(1);

for(bj1=0;bj1<10;bj1++)
{
PORTB=0x42;
PORTA=bil[lp1];
delay_ms(10);
PORTB=0x08;
PORTA=bil[lp1+3];
delay_ms(10);
PORTB=0x20;
PORTA=bil[lp1+6];
delay_ms(10);
if(lp1==1)
{
PORTD=0x24;
PORTB=0x04;
PORTA=0xff;
delay_ms(10);
}
}
}

};
}

Nah, setelah ini anda bisa mengembangkan sendiri rangkaian traffic lightnya, mungkin setiap bangjo punya counter puluhan bahkan ratusan seperti di jalan2 protokol, siapa tahu malah bisa bikin program untuk memprogram bangjo semacam ini

BACA JUGA:   Buku: Membuat Robot Bersama Profesor Bolabot

 


gambar traffic tree dari sini


DMCA.com Protection Status

traffic light cvavr (3), rangkaian dan program traffic light (3), cara membuat angka lampu merah (3), lampu bang jo led (2), membuat program traffic light dengan codevision avr mulai porta 4 (2), cara membuat traffic light dengan codevision avr (2), codevision cara membuat traffic lights (2), cara buat program lampu lalu lintas cv avr (2), tutorial traffic lights dan coding di cv avr (2), program traffic light dengan atmega dan rtc (1)

Post You May Also Like

Post Author: anotherorion

Priyo Harjiyono, blogger kelahiran Cilacap yang kini menjadi warga Ngayogyakarta Hadiningrat, baginya blog adalah dunia untuk menciptakan mimpi2nya. Saat ini masih disibukkan sebagai pembelajar dalam dunia pendidikan.

15 tanggapan pada “Membuat traffic light dengan codevision AVR(4)

  • Priyo Harjiyono

    (Desember 18, 2014 - 6:15 am)

    Eko Agus Priadi S PM saya file codevision berikut simulasi proteusnya saja mas, nanti saya cek

  • Eko Agus Priadi S

    (Desember 17, 2014 - 4:52 pm)

    Priyo Harjiyono udh di ketik ulang manual, sama ajah

  • Priyo Harjiyono

    (April 14, 2014 - 1:51 pm)

    maaf sampai sekarang belum serius mempelajari bascom, dulu belajar seri MCS51 make bahasa assembly

  • Priyo Harjiyono

    (April 14, 2014 - 12:53 pm)

    Anwar Chamidie bisa jadi masalahnya sama dengan yang dialami mas iphoel mas, tapi klo nanti masih ada kesulitan lagi coba saya bantu sebisanya 🙂

  • Priyo Harjiyono

    (April 14, 2014 - 12:50 pm)

    errornya karena karakter X yang dicopy dari blog setelah dipaste di codevision sering tidak sempurna mas, saya juga sering begitu, sepertinya antara blog & codevision menggunakan encoding berbeda. Contoh hasil copy anda di atas simbol 'X' pada 0x00 dan 0xCO itu meski terbaca sama tapi dianggap berbeda oleh codevision, Solusinya silahkan karakter X nya ditulis ulang manual di codevision-nya

  • Anwar Chamidie

    (April 13, 2014 - 12:19 pm)

    iya aku belajar mengikuti, malah ndak jadi2 tolong pak priyo… saya diberi petunjuk

  • Iphoel Achmadz Bomfour

    (Oktober 3, 2013 - 3:33 am)

    gan kodenya ada yang eror tolong di perbaiki apanya yang missing soalnya di situ error missing
    neh kode yang eror
    unsigned char bil[11]={0×00,0xc0,0xf9,0xa4,0xb0,0×99,0×92,0×82,0xf8,0×80,0×90};

  • Dany Setyawan

    (November 11, 2012 - 11:37 am)

    gan codenya menggunakan bahasa basiic ada gak?bascom8051

  • mokonkdotcom

    (Oktober 27, 2012 - 12:09 am)

    Gan ada file isisnya gak untuk traffic light 4 buah ini?
    bagi donk gan. 😀

    • anotherorion

      (Oktober 27, 2012 - 8:31 am)

      enggak ada mas, ada di laptop lama

      • mokonkdotcom

        (Oktober 29, 2012 - 3:39 am)

        kok timernya error gan?
        nyala timernya gk sempurna

  • Rafnov Henda

    (September 18, 2012 - 10:11 pm)

    ass.. gan minta gambar rangkaian yg lengkap nya dong gan jadi jelas mana yg mau di paralel kan.. sebelum nya nice posting gan… good luck…..
    TQ…

    • Priyo Harjiyono

      (September 19, 2012 - 1:00 pm)

      walaikum salam yang diparalelkan hanya kaki seven segment a,b,c,d,e,f,g mas sisanya terpisah n setiap koneksi antara mikro dan masing2 trafic light sudah diberi tanda

    • Rafnov Henda

      (September 19, 2012 - 4:00 pm)

      ok.. makasihhhh banyak gann… 😀
      (Y) (Y) (Y)

    • Rafnov Henda

      (September 19, 2012 - 7:53 pm)

      oh ya minta gambar rangkaiian counter down nya donk gan…!!!
      😀

Berikan tanggapan anda