Tampilkan postingan dengan label AVR Tutorials. Tampilkan semua postingan
Tampilkan postingan dengan label AVR Tutorials. Tampilkan semua postingan

Senin, 27 Juni 2011

MENGAKSES MOTOR SERVO

Dipasaran terdapat 2 tipe motor servo yaitu servo standard dan servo rotation (continuous). Dimana biasanya untuk tipe standar hanya dapat melakukan pergerakan sebesar 180° sedangkan untuk tipe continuous dapat melakukan rotasi atau 360°.

Pada dasarnya motor servo tersusun dari motor DC, rangkaian kontrol, gearbox dan potensiometer. Berikut gambar motor servo beserta komponen internal motor servo.

PROGRAM MENGAKSES SEVEN SEGMENT MENGGUNAKAN CODEVISION AVR

Sebelumnya teman-teman harus mengerti terlebih dahulu tentang dasar-dasar dari seven segment. Sebenarnya seven segment tersusun dari 8 buah led yang dibentuk menyerupai angka 8 yang terdiri dari 7 segmen dan ditambah 1 segmen berupa titik (dot). Untuk mendapatkan datasheet penampil seven segment silakan download disini.

Seven segment terdiri dari 2 jenis konfigurasi yaitu katoda bersama atau common cathoda (CC) dan anoda bersama atau common anoda (CA) .

PROGRAM MENGAKSES EEPROM INTERNAL AVR MENGGUNAKAN CODEVISION

Pada postingan ini saya akan menjelaskan cara mengakses internal EEPROM AVR, yang berupa intruksi read dan write EEPROM, serta akan saya berikan sebuah contoh aplikasi untuk merealisasikannya dalam sebuah program.

Beberapa mikrokontroler AVR telah memiliki EEPROM (Electrically Erasable Programmable Read Only Memory) internal sebagai tempat penyimpanan data semi-permanen. Jadi seperti halnya flash memory, EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan, dengan kata lain data tidak akan hilang walaupun catu daya dimatikan. EEPROM internal ini tidak dipetakan bersama dengan register utama, register I/O dan SRAM. EEPROM hanya dapat diakses melalui register spesial dan operasi read/write sehingga waktu aksesnya lebih lamban dari pada mengakses register ataupun SRAM.

MEMBUAT SINYAL PWM MENGGUNAKAN TIMER AVR

Mungkin teman-teman semua sudah tau pengertian dari PWM (Pulse Width Modulation), jadi saya tidak akan membahasnya lagi. Disini saya akan menjelaskan beberapa istilah yang berhubungan dengan PWM sehingga nantinya akan mempermudah teman-teman dalam pembuatan sinyal PWM menggunakan Timer pada AVR.


INTERUPSI EKSTERNAL AVR

Untuk Atmega8535 ada 3 sumber interupsi eksternal yaitu INT0 (PD2), INT1 (PD3) dan INT2 (PB2). Ketiga interupsi itu dapat dipicu dengan adanya perubahan level baik transisi naik (rising edge) maupun transisi turun (falling edge). Untuk pengaturan mode dan cara kerjainterupsi eksternal dilakukan melalui 2 buah register MCUCR dan register MCUCSR. Untuk lebis jelasnya tentang register-register tersebut lebih baik dibaca datasheetnya, silakan download datasheet ATmega8535 disini.. Tetapi tenang saja, jika menggunakan compiler CodeVision AVR, kita tidak perlu dituntut untuk tau tentang kedua register tersebut, karena secara otomatis CodeVision AVR akan mensettingnya saat kita menset CodeWizard AVR.

TIMER DAN COUNTER AVR

Mungkin teman-teman semua sudah tau pengertian timer, jadi saya tidak akan menjelaskan panjang lebar mengenai pengertian timer. Sedangkan untuk counter  (pencacah/penghitung) berbeda dengan timer, perbedaan yang mendasar adalah pada sumber clocknya. Jika timer, sumber clocknya berasal dari internal mikrokontroler dalam hal ini berasal dari kristal. Sedangkan untuk counter sumber clocknya berasal dari luar mikrokontroler (eksternal). Sebagai contoh counter, jika kita ingin menghitung banyaknya barang yang lewat pada konveyor, maka sumber clocknya berasal dari sensor yang mendeteksi barang saat melewatinya. Mungkin sampai disini Teman-teman sudah mengerti perbedaan yang mendasar antara timer dan counter.

>>>TIMER<<<
Pada ATmega8535 terdapat 3 buah timer, yaitu Timer0 (8 bit), Timer1 (16 bit) dan Timer2 (8 bit). Untuk perbedaan dan cara kerja masing-masing timer, teman-teman dapat membacanya pada datasheet. Disini saya akan coba membahas Timer0 dan Timer1 saja. Untuk lebih jelasnya silakan download datasheet ATmega8535 disini.

ANALOG TO DIGITAL CONVERTER (ADC)

Mikrokontroler ATmega8535 memiliki fasilitas analog yang sudah build in didalam chip. Fitur internal ADC inilah yang menjadi salah satu kelebihan mikrokontroler ini jika dibandingan dengan beberapa jenis mikrokontroler lainnya.

Atmega memiliki resolusi ADC 10 bit (dapat juga menggunakan ADC 8 bit) dengan 8 channel (PA0-PA7) input ADC dan mendukung 16 macam penguat beda. ADC ini bekerja dengan teknik succecive approximation. Rangkaian internal ADC memiliki catu daya tersendiri yaitu pin AVCC. Untuk lebih jelasnya silakan download datasheet ATmega8535 disini.

Data hasil konversi ADC 10 bit (1024) adalah:
ADC=(Vin*1024)/Vref

LCD DAN KEYPAD

>>>KEYPAD<<<

Pada dasarnya keypad yang ada dipasaran baik yang berukuran keypad 3×3, 3×4 atau 4×4, hanya tersusun dari beberapa push button yang dikonfigurasikan antara kolom dengan baris. Sehingga sering disebut juga keypad matriks nxm (n=kolom m=baris). Kolom dan baris ini nantinya yang digunakan untuk pendeteksian penekanan tombol. Berikut adalah konfigurasi dasar untuk keypad 4×4.
 

MENGAKSES INPUT OUTPUT (I/O) AVR

Pada dasarnya untuk mengakses I/O (input output) AVR ada beberapa register yang harus disetting terlebih dahulu, yaitu:
1. Data Register (PORTx)
2. Data Direction Register (DDRx) dan
3. Port Input Pin (PINx)

DDRx digunakan untuk mendefinisikan port sebagai input atau output, Jika level logika pada register DDR bernilai 1 maka Port tersebut dikonfigurasikan sebagai Output. Sedangkan jika level logika pada register DDR bernilai 0 maka Port tersebut dikonfigurasikan sebagai input.
Contoh: DDRA=0xff → maka Port A sebagai Output
00 hh  0DDRA=0×00 → maka Port A sebagai Input