Blog Presentasi.

Dot Matrik



DAFTAR ISI
1. Alat dan Bahan
2. Dasar Teori
3.Percobaan
Percobaan

*klik teks untuk menuju 




 a. ATmega
 b. Dot Matrik


A.  ATMEGA 128
Mikrokontroller AVR (Alf and Vegard’s Risc processor) memiliki arsitektur 8 bit, dimana semua instruksi dikemas dalam kode 16-bit dan sebagian besar instruksi dieksekusi dalam 1 siklus clock atau dikenal dengan teknologi RISC (Reduced Instruction Set Computing). Secara umum, AVR dapat dikelompokan ke dalam 4 kelas, yaitu keluarga AT90Sxx, keluarga ATMega dan AT86RFxx. Pada dasarnya yang membedakan masing-masing adalah kapasitas memori, peripheral dan fungsinya.Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hamper sama. Pada praktikum kali ini yang membedakan antara ATMEGA 128 dengan ATMEGA 8535 selain pada kapasistas memori, jug dari Bahasa program yang digunakan.
Berikut gambar dari ATMEGA8535 :

Berikut merupakan gambar konfigurasi pin pada ATMEGA8535  :
Mikrokontroller ATMEGA 128 merupakan mikrokontroller keluarga AVR yang mempunyai kapasitas flash memori 128KB. AVR (Alf and Vegard’s Risc Processor) merupakan seri mikrokontroler CMOS 8-bit buatan ATEMEL inc, berdasarkan arsitektur RISC (Reduced Instruction Set Computer). Secara umum, AVR dapat terbagi menjadi 4 kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga AT-Mega, dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, bisa dikatakan hampir sama. Semua jenis AVR dilengkapi dengan flash memori sebagai memori program. Kapasitas dari flash memori ini berbeda antara chip yang satu dengan chip yang lain. Tergantung dari jenis IC yang digunakan. Untuk flash memori yang paling kecil adalah 1 kbytes (ATtiny11, ATtiny12, dan ATtiny15) dan paling besar adalah 128 kbytes (AT-Mega128). Berikut ini adalah spesifikasi Mikrokontroler AVR ATMega-128 dan konfigurasi pin ATMEGA 128. 
1. Saluran I/O sebanyak 56 buah, yaitu Port A, Port B, Port C, Port D, Port E, Port F dan Port G.
2. ADC 10 bit sebanyak 8 saluran.
3. 2 buah Timer/Counter 8 bit dan 2 buah Timer/Counter 16 bit.
4. Dua buah PWM 8 bit.
5. Watchdog Timer dengan osilator internal.
6. Internal SRAM sebesar 4 kbyte.
7. Memori flash sebesar 128 kBytes.
8. Interupsi Eksternal.
9. Port antarmuka SPI.
10. EEPROM sebesar 4 kbyte.
11. Real time counter.
12. 2 buah Port USART untuk komunikasi serial.
13. Enam kanal PWM.
14. Tegangan operasi sekitar 4,5 V sampai dengan 5,5V

Konfigurasi pin ATMEGA-128


B. DOT MATRIK

1.1   Pengertian Dot Matrix


LED Dot Matrix ini memiliki 35 LED yang disusun dalam matriks 5 kolom 7 baris (5x7 LED), dengan terminal katoda pada kolom dan terminal anoda pada baris / cathode shared column, anode shared row. Ukuran (sisi terpanjang) dari komponen elektronika ini adalah 0,7" dengan dimensi keseluruhan sebesar 17,8 x 12 x 6 mm. 


Untuk mengendalikan tampilan pada komponen ini, terapkan algoritma pemindaian iteratif (iterative scanning algorithm) di mana masing-masing titik LED ditentukan nyala / tidaknya dengan mengatur kondisi pada 2 pin terkait (pin baris dan pin kolom, lihat diagram pada konfigurasi pin yang terlampir di bawah), dilanjutkan dengan titik LED berikutnya, demikian berulang-ulang. Apabila proses ini dilakukan cukup cepat, mata manusia akan menangkap cahaya dari LED-LED ini sebagai cahaya yang berkesinambungan. Setiap LED memiliki tegangan maju / forward voltage sebesar 2,1 Volt dengan konsumsi arus ±20 mA per LED pada intensitas optimum.


1.2   Prnisip Kerja Dot Matrix


Bagian pin yang digunakan sebagai input atau output tergantung pada kondisi posisi Anoda/katoda LED yang terpasang didalamnya. Jika Anoda dari LED terpasang pada bagian kolom maka semua pin pada bagian kolom merupakn tempat masuknya arus (input) dan bagian baris merupakan tempat keluarnya arus(output). Led dot matrix yang digunakan pada prakltikum ini adalah led dot matrix 5x7. 5 pin kolom dihubungkan ke anoda melalui port A mikrokontroler sekaligus sebagai input, dan 7 pin baris dihubungkan ke port C mikrokontroler sebagai output. Apabila bagian kolom diberi arus atau diberi data 1 (high) maka kolom tersebut aktif atau LED pada kolom tersebut siap menyala. LED yang menyala akan tergantung pada bagian baris yang diberi data 0 (low).
Unknown Unknown Author

LCD Arduino






1. Rangkaian Simulasi [kembali]



2. Flowchart [kembali]



3. Listing Program [kembali]


#include <Keypad.h>                                     //Mengaktifkan library keypad
#include <LiquidCrystal.h>                             //Mengaktifkan library LCD    
int switchh = 3;                                               /Deklarasi switch pada pin 3
const int PIN_RS = 12;                                   
const int PIN_E = 11;
const int PIN_DB4 = 7;
const int PIN_DB5 = 6;                                 //Pendeklarasian pin untuk LCD
const int PIN_DB6 = 5;
const int PIN_DB7 = 4;
LiquidCrystal lcd(PIN_RS,PIN_E, PIN_DB4,  //Mengaktifkan pin LCD
PIN_DB5, PIN_DB6, PIN_DB7);
const byte BARIS = 4; // 4 Baris                       //Pendeklarasian baris keypad dengan varibel BARIS
const byte KOLOM = 3; // 3 Kolom                 //Pendeklarasian kolom keypad dengan varibel KOLOM
char tombol[BARIS][KOLOM] = {
  {'1','2','3'},
  {'4','5','6'},                                                     // Menyatakan baris dan kolom keypad dalam bentuk
  {'7','8','9'},                                                        array.
  {'#','0','*'}
};
byte bariskeypad[BARIS] = { 14, 15, 16, 17 };            //Menyambungkan baris keypad ke pin arduino
byte kolomkeypad[KOLOM] = { 18, 19, 20 };            //Menyambungkan kolom keypad ke pin arduino
Keypad kpd = Keypad( makeKeymap(tombol),         
bariskeypad, kolomkeypad,BARIS, KOLOM );           //Mengaktifkan fungsi keypad
#define ledpin 13                                             //Menyatakan keypad pada pin 13
void setup()                                                     //Fungsi utama arduino
{                                                                      //Pembuka program
  lcd.begin(16, 2);                                            //Memulai LCD tipe 16x2
  pinMode(ledpin,OUTPUT);                           //Deklarasi ledpin sebagai output
  pinMode (switchh, INPUT);                           //Deklarasi ledpin sebagai input
  digitalWrite(ledpin, LOW);                             //Kondisi awal led mati
  Serial.begin(9600);                                         //Komunikasi serial arduino ke komputer
}                                                                      //Penutup program
void loop()                                                       //Fungsi perulangan pada arduino
{                                                                      //Pembuka program
  if (digitalRead(switchh)==1)                           //Kondisi If saat switchh==1
  {                                                                    //Pembuka program
    char tombol = kpd.getKey();                        //Deklarasi tombol sepagai pemanggilan fungsi keypad
    if(tombol)                                                     //Jika if  itu tombol
    {                                                                  //Pembuka program
      switch (tombol)                                          //Jika switch itu tombol
      {                                                                //Pembuka program
      case '1':                                                      //Jika tombol keypad 1 ditekan
        digitalWrite(ledpin, HIGH);                       //Kondisi led hidup
        lcd.clear();                                                //Membersihkan LCD
        lcd.setCursor(0,1);                                    //Memposisikan tulisan di baris ke-0 dan kolom ke-1
        lcd.print("PRAKTIKUM");                       //Mencetak tulisan di PRAKTIKUM di lcd
        break;                                                      //fungsi selesai untuk kondisi case ‘1’
     
     
      case '2':                                                      //Jika tombol keypad 2 ditekan
        digitalWrite(ledpin, HIGH);                       //Kondisi led hidup
        lcd.clear();                                                //Membersihkan LCD
        lcd.setCursor(0,1);                                    //Memposisikan tulisan di baris ke-0 dan kolom ke-1
        lcd.print("MIKROPROSESOR");             //Mencetak tulisan di MIKROPROSESOR di lcd
        break;                                                       //fungsi selesai untuk kondisi case ‘2’                        
 
      case '3':                                                      //Jika tombol keypad 3 ditekan
        digitalWrite(ledpin, HIGH);                       //Kondisi led hidup
        lcd.clear();                                                //Membersihkan LCD
        lcd.setCursor(0,1);                                    //Memposisikan tulisan di baris ke-0 dan kolom ke-1
        lcd.print("LABOR ELDI");                        //Mencetak tulisan di LABOR ELDI di lcd
        break;                                                       //fungsi selesai untuk kondisi case ‘2’
      default:                                                       //Jika gagal masuk ke fungsi Serial.println(tombol)
        Serial.println(tombol); 
      }
    }
  }
  else                                                                //Fungsi kecuali jika if tidak terpenuhi
  {                                                                    //Pembuka program else
    lcd.clear();                                                   //Membersihkan tulisan di LCD
    digitalWrite(13,LOW);                                 //Kondisi led mati
  }                                                                    //Penutup program else
}                                                                      //Penutupu program utama 4. Video [kembali]

5. Link Download [kembali]

File HTML - Download
File Proteus - Download
File Program - Download
Video Rangkaian - Download
Unknown Unknown Author

LCD PIC






1. Rangkaian Simulasi [kembali]



2. Flowchart [kembali]


3. Listing Program [kembali]
sbit LCD_RS at RB5_bit;
sbit LCD_RW at RB4_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;                                                 //Pendeklarasian pin untuk LCD
sbit LCD_RS_Direction at TRISB5_bit;
sbit LCD_RW_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;

void main()                                            //Fungsi utama PIC
{
  TRISC=0X03;                                    // Port D0 dan D1 berfungsi sebagai input
  PORTC=0X00;                                   // Kondisi awal pada port D berkondisi low
  Lcd_Init();                                          // Deklarasi LCD
  Lcd_Cmd(_LCD_CLEAR);               //LCD diclear (dibersihkan)
  Lcd_Cmd(_LCD_CURSOR_OFF);   //Pada LCD tidak menampilkan kursor

  while(1)                                               //Kondisi perulangan
  {
    if(PORTC.RC0==0)                        //Apabila port D0 diberi kondisi HIGH
    {
      Lcd_Out(1,1,"Selamat");               //LCD akan menampilkan tulisan "Selamat"
    }
    if(PORTC.RC1==0)                        //Apabila port D1 diberi kondisi HIGH
    {
      Lcd_Out(2,1,"Praktikum ^_^");    //LCD akan menampilkan tulisan " Praktikum ^_^"
    }
  }

}

4. Video [kembali]

5. Link Download [kembali]

File HTML - Download
File Proteus - Download
File Program - Download

Video Rangkaian - Download
Unknown Unknown Author

LCD




*klik teks untuk menuju 




 a. PIC dan Arduino
 b. LCD


 A.  Arduino

Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri. Saat ini Arduino sangat populer di seluruh dunia. Banyak pemula yang belajar mengenal robotika dan elektronika lewat Arduino karena mudah dipelajari. Tapi tidak hanya pemula, para hobbyist atau profesional pun ikut senang mengembangkan aplikasi elektronik menggunakan Arduino. Bahasa yang dipakai dalam Arduino bukan assembler yang relatif sulit, tetapi bahasa C yang disederhanakan dengan bantuan pustaka-pustaka (libraries) Arduino. Arduino juga menyederhanakan proses bekerja dengan mikrokontroler, sekaligus menawarkan berbagai macam kelebihan antara lain:


* Murah – Papan (perangkat keras) Arduino biasanya dijual relatif murah (antara 125ribu hingga 400ribuan rupiah saja) dibandingkan dengan platform mikrokontroler pro lainnya. Jika ingin lebih murah lagi, tentu bisa dibuat sendiri dan itu sangat mungkin sekali karena semua sumber daya untuk membuat sendiri Arduino tersedia lengkap di website Arduino bahkan di website-website komunitas Arduino lainnya. Tidak hanya cocok untuk Windows, namun juga cocok bekerja di Linux.

* Sederhana dan mudah pemrogramannya – Perlu diketahui bahwa lingkungan pemrograman di Arduino mudah digunakan untuk pemula, dan cukup fleksibel bagi mereka yang sudah tingkat lanjut. Untuk guru/dosen, Arduino berbasis pada lingkungan pemrograman Processing, sehingga jika mahasiswa atau murid-murid terbiasa menggunakan Processing tentu saja akan mudah menggunakan Arduino.

* Perangkat lunaknya Open Source – Perangkat lunak Arduino IDE dipublikasikan sebagai Open Source, tersedia bagi para pemrogram berpengalaman untuk pengembangan lebih lanjut. Bahasanya bisa dikembangkan lebih lanjut melalui pustaka-pustaka C++ yang berbasis pada Bahasa C untuk AVR.

* Perangkat kerasnya Open Source – Perangkat keras Arduino berbasis mikrokontroler ATMEGA8, ATMEGA168, ATMEGA328 dan ATMEGA1280 (yang terbaru ATMEGA2560). Dengan demikian siapa saja bisa membuatnya (dan kemudian bisa menjualnya) perangkat keras Arduino ini, apalagi bootloader tersedia langsung dari perangkat lunak Arduino IDE-nya. Bisa juga menggunakan breadoard untuk membuat perangkat Arduino beserta periferal-periferal lain yang dibutuhkan.
C. LCD

Display elektronik adalah salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal Display) berfungsi sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik.

Material LCD (Liquid Cristal Display)

LCD adalah lapisan dari campuran organik antara lapisan kaca bening dengan elektroda transparan indium oksida dalam bentuk tampilan seven-segment dan lapisan elektroda pada kaca belakang. Ketika elektroda diaktifkan dengan medan listrik (tegangan), molekul organik yang panjang dan silindris menyesuaikan diri dengan elektroda dari segmen. Lapisan sandwich memiliki polarizer cahaya vertikal depan dan polarizer cahaya horisontal belakang yang diikuti dengan lapisan reflektor. Cahaya yang dipantulkan tidak dapat melewati molekul-molekul yang telah menyesuaikan diri dan segmen yang diaktifkan terlihat menjadi gelap dan membentuk karakter data yang ingin ditampilkan.


Pengendali / Kontroler LCD (Liquid Cristal Display)

Dalam modul LCD (Liquid Cristal Display) terdapat microcontroller yang berfungsi sebagai pengendali tampilan karakter LCD (Liquid Cristal Display). Microntroller pada suatu LCD (Liquid Cristal Display) dilengkapi dengan memori dan register. Memori yang digunakan microcontroler internal LCD adalah :
  • DDRAM (Display Data Random Access Memory) merupakan memori tempat karakter yang akan ditampilkan berada.
  • CGRAM (Character Generator Random Access Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan.
  • CGROM (Character Generator Read Only Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana pola tersebut merupakan karakter dasar yang sudah ditentukan secara permanen oleh pabrikan pembuat LCD (Liquid Cristal Display) tersebut sehingga pengguna tinggal mangambilnya sesuai alamat memorinya dan tidak dapat merubah karakter dasar yang ada dalam CGROM.
Register control yang terdapat dalam suatu LCD diantaranya adalah.
  • Register perintah yaitu register yang berisi perintah-perintah dari mikrokontroler ke panel LCD (Liquid Cristal Display) pada saat proses penulisan data atau tempat status dari panel LCD (Liquid Cristal Display) dapat dibaca pada saat pembacaan data.
  • Register data yaitu register untuk menuliskan atau membaca data dari atau keDDRAM. Penulisan data pada register akan menempatkan data tersebut keDDRAM sesuai dengan alamat yang telah diatur sebelumnya.
Pin, kaki atau jalur input dan kontrol dalam suatu LCD (Liquid Cristal Display) diantaranya adalah :
  • Pin data adalah jalur untuk memberikan data karakter yang ingin ditampilkan menggunakan LCD (Liquid Cristal Display) dapat dihubungkan dengan bus data dari rangkaian lain seperti mikrokontroler dengan lebar data 8 bit.
  • Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan jenis data yang masuk, apakah data atau perintah. Logika low menunjukan yang masuk adalah perintah, sedangkan logika high menunjukan data.
  • Pin R/W (Read Write) berfungsi sebagai instruksi pada modul jika low tulis data, sedangkan high baca data.
  • Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar.
  • Pin VLCD berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini dihubungkan dengan trimpot 5 Kohm, jika tidak digunakan dihubungkan ke ground, sedangkan tegangan catu daya ke LCD sebesar 5 Volt.
Unknown Unknown Author

Seven Segmen Bascom AVR






1. Rangkaian Simulasi [kembali]



2. Flowchart [kembali]


3. Listing Program [kembali]


$regfile = "m8535.dat"                                      'library Atmega 8535
$regfile = 16000000                                         'clocl ATmega 8535
Ddra = &B11111111                                           'port A sebagai output
Porta = &B00000000                                          'keadaan awal port a mati
Ddrb = &B00000000                                           'port B sebagai input
Portb = &B00000000                                          'keadaan awal port B mati
Do                                                          'fungsi utama
If Pinb.0 = 1 Then                                          'pemilihan keadaan pada port B
Porta = &B0000110                                           'output pada port A
Waitms 100                                                  'delay selama 100 ms
Elseif Pinb.1 = 1 Then
Porta = &B1011011
Waitms 100
Elseif Pinb.2 = 1 Then
Porta = &B1001111
Waitms 100
Elseif Pinb.3 = 1 Then
Porta = &B1100110
Waitms 100
Elseif Pinb.4 = 1 Then
Porta = &B1101101
Waitms 100
Elseif Pinb.5 = 1 Then
Porta = &B1111101
Waitms 100
Elseif Pinb.6 = 1 Then
Porta = &B0000111
Waitms 100
Elseif Pinb.7 = 1 Then
Porta = &B1111111
Waitms 100
Else                                                        'pemilihan keadaan terakhir
Porta = &B0000000
Waitms 100
End If                                                      'pemilihan keadaan selesai
Loop                                                        'program berulang
End                                                         'program selesai

  4. Video [kembali]

5. Link Download [kembali]

Link download HTML Download here
Link download video simulasi Download here
Link download rangkaian simulasi Download here
Link download listing program Download here
Unknown Unknown Author

Seven Segmen 8086






1. Rangkaian Simulasi [kembali]



2. Flowchart [kembali]


3. Listing Program [kembali]
#make_bin#
; BIN is plain binary format similar to .com format, but not limited to 1 segment;
; All values between # are directives, these values are saved into a separate .binf file.
; Before loading .bin file emulator reads .binf file with the same file name.
; All directives are optional, if you don't need them, delete them.
; set loading address, .bin file will be loaded to this address:
#LOAD_SEGMENT=0500h#
#LOAD_OFFSET=0000h#
; set entry point:
#CS=0500h#    ; same as loading segment
#IP=0000h#    ; same as loading offset
; set segment registers
#DS=0500h#    ; same as loading segment
#ES=0500h#    ; same as loading segment
; set stack
#SS=0500h#    ; same as loading segment
#SP=FFFEh#    ; set to top of loading segment
; set general registers (optional)
#AX=0000h#
#BX=0000h#
#CX=0000h#
#DX=0000h#
#SI=0000h#
#DI=0000h#
#BP=0000h#
;initialisasi PA=PB=Out;
mov dx,206h
mov al,89h
out dx,al
lagi:    
mov dx,200h
mov al,0FBh
out dx,al
mov dx,202h
mov al,4Fh
out dx,al
         
jmp lagi
HLT           ; halt!

4. Video [kembali]

5. Link Download [kembali]

File HTML -download
File Proteus - download
File Program - Download
Video Rangkaian - Download

Unknown Unknown Author