Sistem Antrian dengan Mikrokontroler AVR

Mesin antrian atau sistem antrian yang akan kita buat hampir mirip dengan yang terpasang di perkantoran, tentu saja yang mempunyai loket. Bank, penjualan tiket KA, ruang pendaftaran rumah sakit misalnya. Nah pada aplikasi mikrokontroler AVR kali ini kita akan membuatnya dengan fitur yang sederhana dulu. Cukup tampilan angka, belum memakai suara. Jadi tampilan nomor antrian dan nomor loket.

Siapkan mikrokontroler ATmega16, bisa juga pakai ATmega8535 atau ATmega32, Enam digit seven segment.
Rangkaian seperti pada gambar.

Untuk nomor loket dibuat 2 digit, ini fleksibel ya, boleh 3 digit hingga loket ke 999 (banyak banget..?) atau cukup 1 digit, yang mampu menangani loket 1 s/d 9.

Nomor antrian demikian juga, boleh anda buat 3 digit atau jumlah digit yang lain.
Programnya kita buat saja dengan BASCOM-AVR.
$regfile = “m16def.dat”
$crystal = 1000000
Config Portb = Output
Config Porta = Output
Config Portd = Input
Portd = &HFF
Dim I As Byte , J As Byte , Tem1 As Integer , Tem2 As Integer
Dim Rib As Integer , Rat As Integer , Pul As Integer , Sat As Integer
Dim Antrian As Word , Loket As Byte , Pul_loket As Integer , Sat_loket As Integer
Dim No_loket As Byte
Loket = 0
Antrian = 0
Do
   If Pind.0 = 0 Then
      Loket = 1
      Incr Antrian
      Waitms 100
   Elseif Pind.1 = 0 Then
      Loket = 2
      Incr Antrian
      Waitms 100
   Elseif Pind.2 = 0 Then
      Loket = 3
      Incr Antrian
      Waitms 100
   End If

 Rib = Antrian / 1000
 Tem1 = Antrian Mod 1000
 Rat = Antrian / 100
 Tem2 = Antrian Mod 100
 Pul = Antrian / 10
 Sat = Antrian Mod 10
 Pul_loket = Loket / 10
 Sat_loket = Loket Mod 10

 

      Portb = &B000001
      Porta = Lookup(pul_loket , Angka)
      Waitms 5
      Portb = &B000010
      Porta = Lookup(sat_loket , Angka)
      Waitms 5
      Portb = &B000100
      Porta = Lookup(rib , Angka)
      Waitms 5
      Portb = &B001000
      Porta = Lookup(rat , Angka)
      Waitms 5
      Portb = &B010000
      Porta = Lookup(pul , Angka)
      Waitms 5
      Portb = &B100000
      Porta = Lookup(sat , Angka)
      Waitms 5
Loop
End
Angka:
   Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90

Tombol dipakai untuk memanggil nomor antrian. Ketika tombol di loket 1 ditekan maka nomor antrian akan bertambah 1 dan tampilan nomor loket berupa angka ‘1’. Demikian juga jika tombol 3 ditekan, nomor antrian akan bertambah dan tampilan nomor loket menjadi ‘3’.

Selamat mencoba…..

 

41 thoughts on “Sistem Antrian dengan Mikrokontroler AVR

  • July 31, 2012 at 9:07 pm
    Permalink

    mas seven segmen untuk realnya, gimana menghubungkannya.trimakasih.

    Reply
    • August 1, 2012 at 2:55 pm
      Permalink

      Sesuai dengan schematicsnya, segmen di porta, digit di portb

      Reply
  • August 20, 2012 at 4:19 pm
    Permalink

    mas mau nanya sistem antriannya pada hitungan lebih dari 99 tampilan angkanya ga jelas,kira kira kekeliruannya dimana ya mas,mohon bantuannya
    terimakasih mas

    Reply
  • November 25, 2012 at 11:39 am
    Permalink

    makisah ya inform nya, membantu banget 😀

    Reply
  • December 20, 2012 at 12:39 am
    Permalink

    klo cristal di pergunakan 16mhz mas gimana apa eksekusi program nya berubah juga?

    Reply
  • December 27, 2012 at 12:29 am
    Permalink

    mas kalau akses tombolnya dikendalikan dari pc kira kira source codenya bagaimana

    Reply
    • December 28, 2012 at 9:26 am
      Permalink

      kalo source nya bisa panjang tp prinsipnya tinggal pakai serial komunikasi mas

      Reply
  • December 28, 2012 at 8:28 pm
    Permalink

    mas kalo boleh saya minta gambaran source codenya menggunakan delphi7 dan mohon dikirim ke email sicangklong@yahoo.co.id-makasih mas

    Reply
    • January 2, 2013 at 5:45 am
      Permalink

      kalau yg konek dg Delphi belum punya mas alias belum bikin …

      Reply
  • June 14, 2013 at 6:27 pm
    Permalink

    mas, codingnya pas tak coba kog tampilannya jadi acak ya?

    Reply
    • June 15, 2013 at 10:47 am
      Permalink

      Coba cek frequency dari clock/crystalnya ..

      Reply
      • June 16, 2013 at 3:29 pm
        Permalink

        caranya gimana ms? maklum masih blajar,,

        Reply
        • June 20, 2013 at 2:46 pm
          Permalink

          Lha itu sudah ada software sama rangkaian hardwarenya..

          Reply
  • June 16, 2013 at 3:32 pm
    Permalink

    sekarang tampilannya 00 0000 tapi waktu pushbuttonnya di tekan angkanya nggk mau berubah?

    Reply
    • June 16, 2013 at 8:11 pm
      Permalink

      cek hardwarenya…

      Reply
  • June 11, 2014 at 12:02 pm
    Permalink

    mas, saya coba buat dengan rangkaian aslinya… hasilnya hanya kedip kedip doang, itu solusinya gimana ya mas…?

    Reply
    • June 12, 2014 at 8:26 am
      Permalink

      Perhatikan clock nya, harus sama. Bisa hardware yang menyesuaikan atau software yang dirubah.
      Trims

      Reply
  • June 11, 2015 at 11:12 am
    Permalink

    MAS KALAU ANTRANNYA DITAMBAH PAKAI SUARA GIMANA CARANYA

    Reply
    • June 11, 2015 at 2:46 pm
      Permalink

      Bisa ditambahkan ISD mas.

      Reply
        • July 18, 2018 at 10:59 am
          Permalink

          Caranya tergantung jenis ISD nya mas, ada yang paralel ada yang serial. Setelah dirangkai (bisa cek datasheet atau referensi sesuai jenis/tipe ISD) trus siapkan rekamannya yang nantinya akan diakses (berdasar alamat suara) setelah proses nilai ‘antrian’ ada.

          Reply
  • June 12, 2015 at 10:05 am
    Permalink

    BISA DIJELASKAN MAS CARA PENYAMBUNGAN ISD DENGAN NO ANTRIAN NYA

    Reply
    • June 13, 2015 at 8:19 am
      Permalink

      Harus ndesain dulu mas, tapi yang jelas tergantung tipe ISD nya juga, ada beberaa jenis seperti ISD 2560. Cek datasheet-nya disitu sudah ada cara nyambung + mrogramnya.

      Reply
  • June 13, 2015 at 1:26 pm
    Permalink

    mas mau sedikit koreksi yah

    Rib = Antrian / 1000
    Tem1 = Antrian Mod 1000
    Rat = Antrian / 100
    Tem2 = Antrian Mod 100
    Pul = Antrian / 10
    Sat = Antrian Mod 10
    Pul_loket = Loket / 10
    Sat_loket = Loket Mod 10

    harusnya jadi

    Rib = Antrian / 1000
    Tem1 = Antrian Mod 1000
    Rat = Tem1 / 100
    Tem2 = Antrian Mod 100
    Pul = Tem2 / 10
    Sat = Antrian Mod 10
    Pul_loket = Loket / 10
    Sat_loket = Loket Mod 10

    kalo ga gitu, nanti setelah 99, maka angkanya jadi aneh mas. mohon maaf sebelumnya, makasih

    Reply
    • June 16, 2015 at 8:22 pm
      Permalink

      Ok bener mbak Sarah, trims koreksinya.

      Reply
  • June 19, 2015 at 9:19 am
    Permalink

    mas kalau pakai atmega 8535 bisa ngak

    Reply
    • June 19, 2015 at 2:32 pm
      Permalink

      Bisa saja mas.

      Reply
  • June 24, 2015 at 7:00 pm
    Permalink

    Ijin Memcoba ya Boss, makasi banyak

    Reply
    • June 25, 2015 at 9:39 am
      Permalink

      OK, silakan mas Budi..

      Reply
  • December 1, 2015 at 9:33 pm
    Permalink

    Mas.. gimana cara nyisipin suaranya, jdi pas tombol Nomer antri di takan muncul suara bacanya ..???

    Reply
    • December 15, 2015 at 10:22 am
      Permalink

      Wah lumayan rumit mas, tapi jawaban ringkasnya gini : pertama siapkan device untuk merekam dan mengeluarkan suaranya, biasanya pakai ISD, tipe ISD juga banyak, cara komunikasi macem2 yang tentu akan menentukan cara memprogramnya. Nah kalau ISD dah ready selanjutnya siapkan rekamannya untuk suara yang akan dimunculkan, kalau sudah kemudian addressing/pengalamatan yang fungsinya ketika di programnya nanti akan memudahkan untuk dipanggil berdasarkan alamat suara tersebut.

      Reply
  • December 8, 2015 at 1:37 am
    Permalink

    Mas, kalo rangkaian kita tambah buzzer bisa tidak ?
    Lalu codingnya yg dirubah dimana ?
    Maklum , masih belajar ..

    Reply
    • December 15, 2015 at 9:59 am
      Permalink

      Bisa saja, misal di PORTC.3, maka untuk menhidupkan buzzer : PORTC.3=1 dan untuk mematikan buzzer : PORTC.3 =0, tentu sebelumnya PORTC.3 diset dulu sebagai output (DDRC.3=1)

      Reply
  • May 21, 2016 at 8:08 pm
    Permalink

    mas minta coding nya yg sudah jadi kalau boleh

    Reply
    • June 4, 2016 at 7:08 am
      Permalink

      Disitu sudah ada kan mas Rendi, tinggal copas aja 🙂

      Reply
  • June 15, 2016 at 11:03 pm
    Permalink

    codingnya ko error ya??? ane lagi butuh buat tugas 🙁

    Reply
    • June 20, 2016 at 12:26 pm
      Permalink

      Versi compilernya mungkin mas

      Reply
    • July 18, 2018 at 11:22 am
      Permalink

      Bis saja mas

      Reply
    • July 18, 2018 at 10:58 am
      Permalink

      Itu pakainya BASCOM-AVR, jadi beda dg CVAVR yang bahasa C, tapi secara prinsip kerja sama saja.

      Reply

Leave a Reply to admin Cancel reply

WhatsApp chat
%d bloggers like this: