Rabu, 28 September 2011
Minggu, 25 September 2011
Langkah Awal Instalasi DT-HIQ USB AVR ke PC
"Gimana nehh....kok ga detect apa-apa pas dicolokin ? "
SMS seperti ini sering meluncur dari pembeli paket belajar microcontroller dasar sesaat setelah paketnya datang. Kesalah-pahaman seperti ini muncul karena alat tidak mengambil power supply dari port USB melainkan mengambil tegangan dari rangkaian target atau bisa juga hanya menancapkan baterai/tegangan 3 - 5 v ke header pin 2 (+) dan pin 4 (-).
Jika USB-ISP mendapatkan tegangan dari rangkaian atau dari baterai, maka PC akan mendetect hardware baru
Pilih “Locate and Instal driver software” dan arahkan instalasi driver ke DVD installer yg didapat di paketan programmer USB-ISP
Ikuti langkah-langkah sampai USB-ISP terdeteksi oleh PC dan mendapatkan COM PORT tertentu
Dikarenakan software AVR STUDIO hanya mendeteksi port COM terbatas (sampai COM9) maka perlu dilakukan perubahan COM PORT secara manual pada control panel è device manager seperti gambar berikut:
(klik untuk memperbesar)
Klik kanan pada USB ISP Device, kemudian pilih properties, Port setting, Advance dan kemudian pilih com port antara 4-9 ( 1-3 biasanya digunakan oleh PC/Laptop). Jika terdapat keterangan (IN-USE) tidak menjadi masalah asal perangkat yg memiliki com port yg sama sedang tidak terpasang.
Selasa, 13 September 2011
Belajar Menulis di LCD Matrix
Kali ini kita akan membahas tentang LCD matrix
Umumnya LCD matrix yg beredar berbasis chipset HD44780 buatan hitachi
Lcd berbasis HD44780 mempunyai 2 mode interface 4 bit ato 8 bit
kali ini kita akan membahas yg 4bit karena kita pake attiny yg pin nya dikit
menulis ke LCD gampang-gampang susah, ada tricknya tersendiri asal sesuai datasheet
tapi kali ini kita akan bikin paling gampang, dengan memanfaatkan library yg paling banyak dipake buatan si PETER FLEURY linknya disini
sedangkan librarinya dapat download disini
pertama siapkan skematik berikut ini
dari gambar, potensio/trimpot fungsinya untuk mengatur kontras LCD, jika tidak perlu diatur, bisa diganti dengan R 100 ohm
selanjutnya buat project di AVR studio, jangan lupa mengekstrak librarynya si fleury yaitu file lcd.h dan lcd.c
karena file lcd.h nya default, kita bahas bagian2 yg dapat disesuaikan sesuai desain yang kamu bikin. Edit file lcd.h dengan notepad
Quote:
#define XTAL 1000000 sesuaikan nilai dengan frek clock, default attiny2313 adalah 1Mhz #define LCD_LINES 2 jumlah line LCD #define LCD_DISP_LENGTH 16 jumlah karakter per line #define LCD_IO_MODE 1 mode 0=8bit, 1=4 bit selanjutnya adalah definisi pin yang dipake, berikut ini hasil edit yang sesuai skematik diatas #define LCD_PORT PORTB /**< port for the LCD lines */ #define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */ #define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */ #define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */ #define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */ #define LCD_DATA0_PIN 0 /**< pin for 4bit data bit 0 */ #define LCD_DATA1_PIN 1 /**< pin for 4bit data bit 1 */ #define LCD_DATA2_PIN 2 /**< pin for 4bit data bit 2 */ #define LCD_DATA3_PIN 3 /**< pin for 4bit data bit 3 */ #define LCD_RS_PORT PORTD /**< port for RS line */ #define LCD_RS_PIN 4 /**< pin for RS line */ #define LCD_RW_PORT PORTD /**< port for RW line */ #define LCD_RW_PIN 5 /**< pin for RW line */ #define LCD_E_PORT PORTD /**< port for Enable line */ #define LCD_E_PIN 6 /**< pin for Enable line */ |
selanjutnya jangan lupa untuk menambahkan source lcd.c , seperti pada gambar berikut:
selanjutnya adalah routine/function yg dipake oleh library peter fleury
void lcd_init ( uint8_t dispAttr ) inisialisasi display Parameter yang dipake untuk dispAttr : LCD_DISP_OFF display off LCD_DISP_ON display on, cursor off LCD_DISP_ON_CURSOR display on, cursor on LCD_DISP_ON_CURSOR_BLINK display on, cursor on flashing void lcd_clrscr ( void ) Clear display LCD void lcd_home ( void ) Set cursor ke posisi home void lcd_gotoxy ( uint8_t x, uint8_t y ) Set cursor ke posisi tertentu Parameters: x posisi horizontal , 0 paling kiri y posisi vertikal, 0 baris paling atas void lcd_putc ( char c ) menampilkan sebuah karakter di LCD void lcd_puts ( const char * s ) menampilkan String di LCD void lcd_puts_p ( const char * progmem_s ) Display string jika memakai Progmem void lcd_command ( uint8_t cmd ) Jika mengirim command/perintah setting |
sekarang kita lanjut ke sciptnya yukkk...
kali ini kita akan menulis sesuatu ke LCD :
#include <stdlib.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include "lcd.h"
int main(void)
{
DDRD |= (1<<PD4)|(1<<PD5)|(1<<PD6); //Port RS, R/W, En
DDRB |= (1<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3); //DATA port 4 bit
lcd_init(LCD_DISP_ON); //inisialisasi
lcd_clrscr(); //bersihkan layar
lcd_puts("=== Test LCD ===\n"); //tulis baris 1 dan geser ke bawah
lcd_puts("1234567890@#$%?+"); //tulis baris 2
while(1)
{
}
return 0;
}
sedangkan yang lebih keren..kita bikin teks LCD nya geser...geserr seperti gambar + video