Rabu, 10 Desember 2008

Training Microcontroller

Basic Microcontroller

1. Introduction to AVR Microcontroller
2. Overview of C Language
3. Voltage Level + General Purpose I/O
4. Number System + ASCII Code
5. Accesing I/O: Switch, LED, 7 Segment
6. Timer, Counter, Interrupt
7. Serial Communication
8. Exercise & Demo

- Price: IDR 350.000 / participant
- Traning Time: 2 days
- Facilities:
- Training Module(Hard & Soft Copy)
- Development Board, equivalent to IDR 200.000
- Attendance Certificate
- For Further Information, please contact: Iqbal(0852 941 911 74)

Intermediate Microcontroller


1. Overview of Basic Microcontroller
2. Accesing Keypad
3. LCD Programming
4. Serial Communication with Visual Basic
5. Analog Circuit + Pulse Width Modulation(PWM)
6. Accesing EEPROM
7. Accesing Real Time Clock
8. Exercise & Demo

Price: IDR 650.000 / participant
Traning Time: 2 days
Facilities:
- Training Module(Hard & Soft Copy)
- Development Board, equivalent to IDR 300.000
- Attendance Certificate
- For Further Information, please contact: Iqbal(0852 941 911 74)

Rabu, 03 Desember 2008

KOMUNIKASI SERIAL RS232

Protokol RS232
Protokol RS232 merupakan protokol serial yang digunakan untuk berkomunikasi antara perangkat/instrumen dengan komputer melalui Port COMM..
Untuk melakukan komunikasi melalui protokol ini, diperlukan sebuah serial driver. Ketika menggunakan driver ini, ada beberapa informasi dari perangkat yang harus diketahui oleh driver. Informasi itu adalah Nomor Port Comm, Baud Rate, parity, data bits, dan stop bits.

Nomor Port COMM
Pada jenis komputer desktop terbaru, umumnya hanya memiliki 1 buah atau maksimal 2 buah Port Comm. Port COMM ini harus sesuai dengan pengaturan yang dilakukan oleh serial driver.

Baud Rate
Baud Rate merupakan laju pengiriman data antara perangkat dengan komputer. 1 baud merupakan 1 buah karakter yang dikirim. Besaran baud rate ini ada beberapa: !!0, 1200 2400, 9600 19200, 38400, 57600, 115200. Satuan bau rate adalah bps, yang berarti baud per second. Sebagai contoh, jika baud rate yang digunakan adalah 9600 bps, berarti data yang dikirim memiliki laju 9600 karakter per detik.

Data Bits
Data bits merupakan jumlah bit yang dikirim per 1 baud. Jumlah data bits ini hanya dapat dipilih antara 7 atau 8 bits. Pada umumnya, perangkat/instrumen menggunakan 8 bits data.

Parity
Parity merupakan metode sederhana untuk mengetahui ada tidaknya kesalahan pengiriman data, yaitu dengan menghitung jumlah data “1” yang dikirim oleh perangkat ataupun komputer.

Start dan Stop Bits
Komunikasi menggunakan protokol RS232 merupakan komunikasi asinkron, yang mana masing-masing komputer dan perangkat harus mengetahui kapan data mulai dikirim, dan kapan data selesai dikirim.

Secara umum, jika menggunakan protokol RS232, pengaturan komunikasi yang digunakan adalah: 9600, 8, N, 1, yang artinya: menggunakan baud rate 9600, 8 data bits, tanpa parity, dan stop bits 1.

KOMUNIKASI SERIAL RS232 MENGGUNAKAN CVAVR

Sebelum melakukan pemrograman mikrokontroler AVR menggunakan CVAVR, perlu dilakukan pengaturan, yaitu masuk ke jendela codewizard AVR :
1. Klik icon NEW:
2. Pilih Project
3. Pilih Yes
4. Pilih Tab Chip
5. Pilih Chip dan Clock yang sesuai

Kemudian, untuk melakukan komunikasi RS232, untuk mudahnya, dapat dilakukan pengaturan serial driver. Caranya adalah:

6. Klik Tab USART(The Universal Synchronous Asynchronous serial Receiver Transmitter)
7. Klik Receiver dan Klik Transmitter, untuk mengatur agar mikrokontroler dapat melakukan penerimaaan dan pengiriman data.
8. Pilih Baud rate 9600
9. Pilih Communication Parameters: 8 data, 1 stop, No Parity
10. Pilih Mode Asynchronous

Setelah itu simpan pengaturan dengan cara:
11. Klik menu File di jendela codewizard AVR
12. Pilih Generate, Save, and Exit
13. Simpan Nama File

Untuk melakukan komunikasi, dapat dilakukan dengan mode:
a. Mode pengiriman Data
1. Di antara looping “while (1)”(Lihat pada baris perintah di sebelah bawah), masukkan perintah:
Putchar(x) ; // x merupakan data ASCII yang dikirim(0-255 desimal) dari mikrokontroler ke komputer.

b. Mode penerimaan Data
2. Di antara looping “while (1)”(Lihat pada baris perintah di sebelah bawah), masukkan perintah:
Int I;
I = getchar(); // I merupakan data yang diterima oleh komputer dari Mikrokontroler(besarnya antara (0-255 desimal)

PEMROGRAMAN MOTOR STEPPER MENGGUNAKAN H-BRIDGE L293D

1. Motor stepper yang digunakan adalah jenis unipolar(lebih dari 2 kutub) dengan 4 kabel data dan 1 kabel ground
2. 1 kali putaran kutub pada motor stepper dapat mencapai sudut 0.72; 1.8; 3.6 derajat.
3. Pemrograman motor stepper dilakukan dengan memberikan sinyal pulsa secara berurutan kepada masing-masing kutub
4. Kecepatan putaran motor dapat diatur dengan mengatur kecepatan pemberian sinyal pulsa pada masing-masing kutub.
5. Seperti halnya jenis motor lain, motor stepper juga membutuhkan driver arus, salah satu jenis driver arus yang digunakan adalah IC L293D
6. Metode pemrograman motor stepper


Stepper Table COIL A1 COIL B1 COIL A2 COIL B2
Step 1 ON ON OFF OFF
Step 2 OFF ON ON OFF
Step 3 OFF OFF ON ON
Step 4 ON OFF OFF ON

Coil A1, B1, A2, B2 pada umumnya dihubungkan dengan sebuah pembangkit pulsa. Pembangkitan pulsa dilakukan terus menerus hingga sudut putaran motor sudah berhasil dicapai.
7. Pemrograman motor stepper pada microcontroller AVR menggunakan software CVAVR
a. Masuk ke CodeWizard AVR
b. Pada tab chip, atur IC AVR yang dipakai dan Clock/Crystal/XTALL yang digunakan
c. Pada tab port, tentukan port mana yang akan dikoneksikan ke driver motor L293D, misal PORTA, bit yang akan digunakan adalah bit 0, 1, 2, 3. Data direction pada bit-bit tersebut ubah menjadi Out
d. Generate, Save and Exit
e. while (1)
{
// Perhatikan table di atas
PORTA.0 = 1; PORTA.1 = 1; PORTA.2 = 0; PORTA. 3 = 0;
PORTA.0 = 0; PORTA.1 = 1; PORTA.2 = 1; PORTA. 3 = 0;
PORTA.0 = 0; PORTA.1 = 0; PORTA.2 = 1; PORTA. 3 = 1;
PORTA.0 = 1; PORTA.1 = 0; PORTA.2 = 0; PORTA. 3 = 1;



};

TUTORIAL PEMROGRAMAN INPUT/OUTPUT PADA MICROCONTROLLER AVR DAN PERANGKAT LUNAK CVAVR

1. Pendahuluan
Pemrograman Input/Output pada microcontroller merupakan hal yang paling mendasar dalam pemrograman microcontroller, karena merupakan jembatan menuju komunikasi dengan dunia di luar microcontroller. Oleh karenanya, hal ini mutlak harus dilakukan oleh pemrogram pemula.

2. PORT
Media bagi microcontroller untuk melakukan komunikasi dengan dunia luar, disebut PORT. Pada microcontroller AVR jenis ATMEGA8535 memiliki 4 buah PORT(PORT A, PORT B, PORT C, PORT D).
Masing-masing PORT tersebut dapat digunakan sebagai Input/Output untuk fungsi umum(General Purpose Input/Output(GPIO))
1 buah PORT memiliki 8 buah pin.

3. Register PORT
Register PORT merupakan register(alamat memori khusus) yang digunakan untuk mengatur fungsi PORT. Masing-masing PORT memiliki 3 buah register PORT(DDRx, PORTx, PINx).
a. DDRx(Data Direct Register): Merupakan register PORT yang digunakan untuk mengatur pin agar bisa digunakan sebagai input/output.
Input: 0; Output = 1;
b. Contoh:
Untuk mengatur PORTB.0 sebagai input, DDRB.0 = 0;
Untuk mengatur PORTB.0 sebagai output, DDRB.0 = 1;
c. Mengakses input/output:
1. Contoh syntax input:
Bit Tes; // Deklarasi Variabel Tes
DDRB.0 = 0; // Atur PORTB.0 sebagai input
Tes = PINB; // Masukkan nilai input ke dalam variabel Tes
2. Contoh syntax output:
DDRB.0 = 1; // Atur PORTB.0 sebagai output
PORTB.0 = 1; // Masukkan nilai 1 ke dalam PORTB.0

Jumat, 14 November 2008

PEMROGRAMAN LCD KARAKTER M1632 dengan CVAVR

Pemrograman LCD Karakter pada CVAVR relatif lebih mudah dibandingkan jika menggunakan software standar C, seperti WinAVR.
1. Inisialisasi LCD
Masuk ke CodeWizard AVR, caranya klik menu File>>New, Pilih Project, Yes, hingga muncul window CodeWizard AVR:

Pada menu tab, pilih LCD, kemudian pilih Port yang ingin dipakai sebagai koneksi ke LCD, misal pilih PORTA. Kemudian pilih menu File>>Generate, Save, and Exit, masukkan nama file, misal Tes.c, Tes.prj, Tes.cwp.
Setelah muncul editor pemrograman, berarti kita siap untuk melakukan pemrograman AVR. Pada editor tersebut muncul kode-kode program inisialisasi awal yang telah kita lakukan pada CodeWizard AVR. Inisialisasi LCD yang telah kita lakukan berada pada:

Baris 27-31 (±):

// Alphanumeric LCD Module functions // Menyatakan LCD yang digunakan //adalah LCD karakter
#asm // Awal syntax assembly
.equ __lcd_port=0x1B // LCD Port didefinisikan pada PORT 0x1B = PORTC
#endasm // Akhir syntax assembly
#include //Memanggil file header lcd.h

Baris 118(±)
lcd_init(16); // Inisialisasi LCD 16 karakter

2. Pemrograman LCD
a. Perintah-perintah CVAVR dalam pemrograman LCD
- Lcd_clear();// Menghapus layar LCD
- lcd_gotoxy(x,y); // perintah untuk menempatkan kursor pada posis (x,y)
- lcd_putsf(“character”); // Menampilkan karakter “character” pada flash
- lcd_putchar(x); // menampilkan karakter, dengan kode ASCII x
- lcd_puts(x); // Menampilkan karakter pada Static RAM
b. Contoh-contoh pemrograman
1. while (1)
{
lcd_gotoxy(0,0); // Menempatkan kursor LCD pada posisi (0,0)
lcd_putsf(“Latihan”); // Menulis kata “Latihan” dimulai dari baris (0,0)
lcd_gotoxy(0,1); // Menempatkan kursor LCD pada posisi(0,1)
lcd_putchar(65); // menulis karakter yang ber-ASCII 65, yaitu huruf “A”
// lebih jelasnya tentang karakter dapat dilihat pada menu insert>>symbol pada software Microsoft Word
}
2. Menampilkan nilai pada static RAM
While (1)
{
char lcd_buffer[8]; // Deklarasi memori buffer
int Angka = 1234; // Deklarasi variabel “Angka”
sprintf(lcd_buffer,"%i",Angka); // Simpan variable “Angka” pada memori // lcd_buffer
lcd_puts(lcd_buffer); // Tampilkan pada LCD