SmartDotMatrix Ver 2.0

e-Technology Center 2010

 

1. Teori Dasar Dot Matrik 5x7 

            Dot matrik 5 x7 memilki arti bahwa 1 dot matrik berukuran 5 kolom x 7 baris susunan LED. Jadi 1 dot matriki terdapat 35 buah LED. Berikut adalah ilustrasi 3 buah dot matrik yang sudah terpakai untuk menampilkan beberapa karakter.

 


                  baris 7                  

     

 

 

 

 

                  baris 0

 


                               kolom 1       kolom 5                      1 dot matrik

                                                                             spasi antar karakter

                           Gambar 1. Display Dot Matrik 5x7

 

            Setiap karakter antar dot matrik sebaiknya diberi spasi agar karakter yang tampil terlihat jelas dan tidak tampak berdekatan. Dalam setiap display dotmatrik selalu terdapat istilah baris dan kolom. Jumlah baris selalu sama dengan 7. Namun jumlah kolom sebanyak jumlah dot matrik dikali dengan 5 kolom/dot matrik. Pada gambar 1 di atas terdapat 15 kolom.

            Prinsip kerja dot matrik sebenarnya menggunakan system Scanning kolom. Scanning kolom adalah pada satu waktu dari sekian banyak kolom pada gambar 1 hanya satu kolom yang menyala merah. Karena proses pengulangan penyalaan kolom dari kolom 1 sampai kolom 15 begitu cepat dan berulang-ulang maka huruf ABH tampak nyala bersamaan. Proses scanning kolom yang cepat menipu mata atau penglihatan manusia sehingga mata menangkap huruf ABH seolah-olah menyala secara bersamaan. Apabila proses scanning kolom dipelankan sampai mata dapat melihat, maka pergeseran penyalaan kolom akan terlihat satu persatu.

 

2. Driver 8 Dot Matrik.           

Text Box: BufferText Box: Sistem Minimu

Mikrokontroler

Text Box: PORT B
 

 

 


   

 

B7

 

K40

 

K1

 
 

 

 


 

Colck

Data

 

SIPO

 
                                                                                       

 

 

                       Gambar 2. Diagram Blok Driver 8 Dot Matrik

 

 

 

            Dot matrik pada gambar 2 dapat menyala semua bila PORT B berlogika 1 atau 5 Volt dan Ouput SIPO (K1 sampai K40) berlogika 0 atau 0 volt. Namun penyalaan semua dot matrik dengan cara ini dapat mengakibatkan konsumsi daya listrik yang cukup tinggi dan biasanya nyala dot matrik tidak begitu terang dibandingkan dengan teknik scanning. IC mikrokontroler yang digunakan adalah tipe AVR ATmega16 dengan crystal oscillator 8 MHz.

            Buffer pada blok diagram di atas digunakan untuk memperkuat arus yang dikonsumsi oleh LED dot matrik sekaligus memproteksi pin PORT B agar tidak mudah rusak bila proses scanning berlangsung. Tipe IC buffer yang digunakan adalah 74HC573.

 

3. Cara Kerja IC 74LS164 ( SIPO ).

Pada blok SIPO terdapat IC SIPO 5 buah untuk 40 kolom. Sebab 1 IC SIPO memilki output 8 pin atau bit, 1 pin clock dan 2 pin data yaitu A dan B. Berikut adalah ilustrasi penjelasan IC SIPO tipe 74LS164 yang telah digunakan.

 

 

 

 

 

 


        Gambar 3. Gambar IC 74LS164 (Serial Input Parallel Output)

 

            Dalam penggunaan IC SIPO ini setiap pin Data A dan B selalu digabung jadi satu. Kelima IC SIPO pada gambar 2 disusun secara seri maksudnya adalah pin output O8 IC SIPO pertama masuk ke pin Data A IC SIPO kedua dan seterusnya sampai IC SIPO kelima. Kemudian semua pin Clock kelima IC SIPO dihubungkan menjadi satu.

            Board yang digunakan terdiri dari 2 bagian seperti terlihat pada lampiran. Board pertama hanya berisi socket untuk mengubungkan jalur – jalur pada setiap dotmatrik (Gambar Skematik 1 pada lampiran). Board pertama dan board kedua terhubung secara vertikal melalui pin header. Board kedua berisi driver DotMatrik yang terdiri atas IC SIPO dan IC buffer (Gambar Skematik 2 a pada lampiran) dan di board kedua ini tergabung sistem minimum mikrokontroller AVR-ATMega16 (Gambar Skematik 2 b pada lampiran).

Jika anda mengamati lampiran terlihat bahwa skematik driver dot matrik terhubung dengan system minimum mikrokontroller AVR-ATmega16.Hanya pin Data A IC pertama yang terhubung dengan pin PORT A.1 mikrokontroler dan pin Clock semua IC SIPO terhubung ke pin PORT A.2 mikrokontroler.

            Apabila PORT A.1 diberi logika 1 dan IC SIPO di-clock sebanyak 40 kali melalui PORT A.2 mengakibatkan seluruh pin output IC SIPO bernilai 1. Setiap Clock diberikan pada pin clock maka data pada SIPO akan bergeser ke kanan sebanyak 1 bit. Clock pada IC 74LS164 mempunyai logika aktif logika 1. Jadi clock yang diberikan harus berupa sinyal impulse.            

 

 

 

 

 

       LAMPIRAN

 

  1. Skematik Display 8 Dot Matrik  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.Skematik Driver Display 8 Dot Matrik

   a. Rangkaian Buffer dan SIPO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   b. Rangkaian Sistem Minimum Mikrokontroler ATmega 16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

3. Source Code Driver Display 8 Dot Matrik

 

/*****************************************************

Chip type           : ATmega16L

Program type        : Application

Clock frequency     : 8.000000 MHz

Memory model        : Small

External SRAM size  : 0

Data Stack size     : 256

*****************************************************/

 

#include <mega16.h>

#include <delay.h>

#include <stdlib.h>

#include <stdio.h>

 

#define pulsa PORTA.2 //data SIPO

#define klok PORTA.1 //clock SIPO

 

bit clk;

unsigned char konfersi,data;

unsigned char data1[40],s_kol[500];

unsigned char s_kar[100]="HELLO WORLD"; //ketik disini kalimat yang akan ditampilkan yaitu HELLO WORLD max 100 karakter

unsigned int loop1,loop2,x;

int batas,y,loop3;

 

//Timer 0 output compare interrupt service routine

interrupt [TIM0_COMP] void timer0_comp_isr(void)

{

   //=========data sipo dot matrik

   if(loop1==0)

      pulsa=0; //sipo aktif low n baris high agar dot nyala

   else

      pulsa=1; //sipo aktif low n baris high agar dot nyala

  

   //======clk paralel atur duty cycle

   if(clk==0)

   {  clk=1;

      data=data1[loop1];

   }else

   {  clk=0;

      data=0;

      loop1++;

   }

   klok=clk;

   PORTB=data;

  

   if(loop1>=40) //jumlah kolom dot matrik yaitu 40

   { 

      loop1=0;

      loop2++;

      if(loop2>=15) //pengatur kecepatan geser tulisan

      {

         loop2=0;

           for(x=39;x>=1;x--)

           data1[x]=data1[x-1];

           data1[0]=s_kol[loop3];

           loop3++;

         if(loop3>=batas)

          loop3=0;

      }

   }

}

 

void konvert(void) //fungsi pengkorvesi tiap huruf ke dalam

{

    switch(konfersi)

   {  //font huruf besar

      case 'A':

         s_kol[y++]=63;

       s_kol[y++]=200;

       s_kol[y++]=200;

         s_kol[y++]=200;

       s_kol[y++]=63;

       break;

      case 'B':

         s_kol[y++]=255;

       s_kol[y++]=201;

       s_kol[y++]=201;

         s_kol[y++]=201;

       s_kol[y++]=62;

       break;

...

      case 'O':

         s_kol[y++]=190;

       s_kol[y++]=193;

       s_kol[y++]=193;

         s_kol[y++]=193;

       s_kol[y++]=190;

       break;

      case 'P':

         s_kol[y++]=255;

       s_kol[y++]=200;

       s_kol[y++]=200;

         s_kol[y++]=200;

       s_kol[y++]=176;

       break;

      case 'Q':

         s_kol[y++]=190;

       s_kol[y++]=193;

       s_kol[y++]=201;

         s_kol[y++]=197;

       s_kol[y++]=190;

       s_kol[y++]=1;

       break;

      case 'R':

         s_kol[y++]=255;

       s_kol[y++]=200;

       s_kol[y++]=204;

         s_kol[y++]=202;

       s_kol[y++]=177;

       break;

      case 'S':

         s_kol[y++]=50;

       s_kol[y++]=201;

       s_kol[y++]=201;

         s_kol[y++]=201;

       s_kol[y++]=38;

       break;

      case 'T':

         s_kol[y++]=192;

       s_kol[y++]=192;

       s_kol[y++]=255;

         s_kol[y++]=192;

       s_kol[y++]=192;

       break;

      case 'U':

         s_kol[y++]=254;

       s_kol[y++]=1;

       s_kol[y++]=1;

         s_kol[y++]=1;

       s_kol[y++]=254;

       break;

      case 'V':

         s_kol[y++]=252;

       s_kol[y++]=130;

       s_kol[y++]=129;

         s_kol[y++]=130;

       s_kol[y++]=252;

       break;

      case 'W':

         s_kol[y++]=255;

       s_kol[y++]=2;

       s_kol[y++]=4;

       s_kol[y++]=8;

       s_kol[y++]=4;

         s_kol[y++]=2;

       s_kol[y++]=255;

       break;

      case 'X':

         s_kol[y++]=227;

       s_kol[y++]=148;

       s_kol[y++]=136;

         s_kol[y++]=148;

       s_kol[y++]=227;

       break;

      case 'Y':

         s_kol[y++]=224;

       s_kol[y++]=16;

       s_kol[y++]=15;

         s_kol[y++]=16;

       s_kol[y++]=224;

       break;

      case 'Z':

         s_kol[y++]=227;

       s_kol[y++]=197;

       s_kol[y++]=201;

         s_kol[y++]=209;

       s_kol[y++]=227;

       break;

     

      //font symbol-simbol

      case '!':

         s_kol[y++]=184;

       s_kol[y++]=253;

       s_kol[y++]=184;

         break;

...

      case '<':

         s_kol[y++]=8;

       s_kol[y++]=20;

       s_kol[y++]=34;

         break;

      case '>':

         s_kol[y++]=34;

       s_kol[y++]=20;

       s_kol[y++]=8;

         break;

      case '[':

         s_kol[y++]=255;

       s_kol[y++]=193;

       break;

      case ']':

         s_kol[y++]=193;

       s_kol[y++]=255;

       break;

      case '{':

         s_kol[y++]=8;

       s_kol[y++]=190;

       s_kol[y++]=193;

         break;

      ...

  

//clear display

for(x=0;x<=39;x++)

  data1[x]=0;

 

//konversi huruf ke data byte-byte dot matrik

x=0;

y=1;

do{ konfersi=s_kar[x];

    konvert();   //memanggil fungsi convert untuk mengkonversi huruf    

    x++;

  }while(s_kar[x]!=0);

 

batas=y+60;       

pulsa=0;

OCR0=100; //nilai timer 0

 

while (1)

{ TCCR0=0x09;  //timer 0 diaktifkan

};

 

}

 

 

Miliki Paket Lengkap Kit Demo SmartDotMatrix ini lengkap dengan alat dan kode seharga Rp 4.900.000