Archive for Oktober, 2010

Menuliskan dan Mendesain karakter LCD Text pada BASCOM AVR

Untuk sekian kalinya kita telah dimudahkan oleh pemrograman mikrokontroler menggunakan bahasa basic pada BASCOM AVR…untuk menuliskan karakter LCD Text dan mendesain karakter pada LCD Text sangatlah mudah… untuk mendesain karakter LCD Text telah ada tools pendukungnya yang terdapat pada BASCOM AVR yaitu pada bagian tool bar bascom avr ada menu LCD designer seperti gambar dibawah ini…

Nach dari tools ini kita dapat merancang berbagai macam design lcd yang kita inginkan….sebagai contoh kita akan mendesain suatu tanda panah dengan arah pojok kanan atas…nih contoh desainnya…

Setelah selesai didesain klik tombol ok,maka akan tertampil pada listing program sebagai berikut:

Perintah Deflcdchar tersebut alamatnya masih berupa tanda tanya(?)… nach itu kita ubah dengan alamat data… sebagai contoh Deflcdchar 0, 32, 32,15, 3, 5, 9, 16, 32

Nich contoh aplikasinya pada Program proteus…

Nich hasil simulasi dari proteus…

Nich dia prognya pake BASCOM AVR….gampangkan…

Selain mendesain karakter LCD … kita dapat juga menggunakan fasilitas karakter yang telah dimikiliki BASCOM AVR…nach karakter tersebut ialah

Sama halnya saat mendesain karakter lcd…untuk memanggil hasil desain dari tabel ASCII digunakan fungsi

LCD Chr(..alamat..)

Selain mendesain karakter LCD … kita dapat juga menggunakan fasilitas karakter yang telah dimikiliki BASCOM AVR…nach karakter tersebut ialah

Mengakses Keypad dengan BASCOM AVR

Dengan pemrograman bascom AVR kita dapat mengakses keypad 4×4…nach sebelumnya baca dulu ye dikit tentang teori dari keypad…(kalo ane salah tolong dikoreksi) ni dia:

Keypad sesungguhnya terdiri dari sejumlah saklar, yang terhubung sebagai baris dan kolom. Agar mikrokontroller dapat melakukan scan keypad, maka port mengeluarkan salah satu bit dari 4 bit yang terhubung pada kolom dengan logika low “0” dan selanjutnya membaca 4 bit pada baris untuk menguji jika ada tombol yang ditekan pada kolom tersebut. Sebagai konsekuensi, selama tidak ada tombol yang ditekan, maka mikrokontroller akan melihat sebagai logika high “1” pada setiap pin yang terhubung ke baris.

Pada BASCOM-AVR program akses keypad  dapat dihandle dengan mudah pada dengan suatu fungsi yaitu:

Proses penyambuangan keypad dengan mikrokontroler ialah sebagai berikut:

Ada 8 sambungan yang diperlukan untuk dihubungakan ke mikrokontroler… jadi kita mebutuhkan satu PORT mikro untuk dapat mengakses 1 buah keypad 4×4.

Nach berikut ini sample deklarasi fungsi dari akses keyboard yang dihubungkan pada PORTB dari suatu mikrokontroler:

Sensor Jarak (SRF04)

Sensor SFR04 adalah sensor ultrasonik yang diproduksi oleh Devantech. Sensor ini merupakan sensor jarak yang presisi. Dapat melakukan pengukuran jarak 3 cm sampai 3 meter dan sangat mudah untuk dihubungkan ke mikrokontroler menggunakan sebuah pin Input dan pin Output.

Sensor Devantech SRF-04 bekerja dengan cara memancarkan sinyal ultrasonik sesaat dan menghasilkan pulsa output yang sesuai dengan waktu pantul sinyal ultrasonik sesaat  kembali menuju sensor. Dengan mengukur lebar pulsa pantulan tersebut jarak target didepan sensor dapat diketahui.

Untuk dapat memhami cara kerja dari sensor SRF04 ini perhatikan timming dari pulsa masukan dan keluaran sensor berikut ini:

Berdasarkan data timming diagram, sensor akan memberikan informasi jarak pembacaan dengan informasi berupa pulsa PWM dengan lebar 100µS sampai dengan 18mS.

Dengan 2 buah pin kontrol, antara lain sebuah pin input triger dan sebuah pin output data. Untuk mengaktifkan sensor maka modul diberi triger pulsa maka sensor akan mengeluarkan sinyal pwm dan duty cycle tersebut sebagai jarak objek dengan sensor .

Mikrokontroller memberikan sinyal pulsa high pada pin triger pulse input dari sensor untuk mengaktifkan sensor ultrasonik. Untuk menghitung lebar PWM mengunakan timer0. Pin echo pulse output terhubung dengan pin-pin pada mikrokontroler. Ketika pin echo pulse output high maka timer0 aktif dan ketika pin echo kembali bernilai low maka timer0 dimatikan dan data TCNT0 diambil sebagai data jarak.

Program  akses Sensor Jarak (SRF04) dengan Bascom AVR

$regfile = “m8535.dat”                   ‘menggunakan Atmega8535 sebagai preprosesor

$crystal = 12000000                         ‘menggunakan crystal clock 12 MHz

‘————————inisialisasi Timer—————————

Config Timer0 = Timer0 , Prescale = 1024

‘————————inisialisasi LCD—————————-

Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.2 , Rs = Porta.0

Config Lcd = 16 * 2

‘———————-konfigurasi pin mikro————————

Config Portc.1 = Output

Config Pinc.0 = Input

Outus Alias Portc.1 ‘trigger

Ultra Alias Pinc.0    ‘aktif srf04

‘———————–deklarasi variabel—————————-

Dim Dae As Integer

Dim Data1 As Integer

Dim Data2 As Integer

Dim A As Integer

‘———————–deklarasi subrutin—————————-

Declare Sub Ultra()

‘———————– main program———————————

Cls

Home

Lcd “Demo srf04”

Lowerline

Lcd “oleh Fahmizal”

Wait 2

Do

Cls

Call Ultra()

Loop

End

‘—————-subrutin baca sensor ultrasonik———————-

Sub Ultra()

Enable Interrupts

Enable Timer0

‘———–kosongkan nilai variabel———————————-

Tcnt0 = 0

A = 0

Data1 = 0

Data2 = 0

Dae = Tcnt0

‘—————-memberi trigger ke srf04—————————-

Reset Outus

Waitus 10                                                ‘tunda sebesar 10 uS

Set Outus

Waitus 10                                                ‘tunda sebesar 10 uS

Reset Outus

‘————————————————————————–

Do

Loop Until Ultra = 1

Start Timer0

Do

Loop Until Ultra = 0

Stop Timer0

Dae = Tcnt0

Data1 = A * 256

Data2 = Data1 + Dae

Cls

Home

Lcd “Data jarak sensor”

Lowerline

Lcd Data2

Disable Interrupts

Disable Timer0

Waitms 10

End Sub

‘———kondisi jika terjadi overflow pada timer——————

Overflow:

A = A + 1

Return

==============================================================

ni dia video aplikasi sensor ultrasonik pada Robot-Wall Follower ato yg lebih dikenal dengan robot telusur dinding:

==============================================================

ni dia video aplikasi sensor ultrasonik pada Wall Follower ato yg lebih dikenal dengan telusur:

Sensor Jarak [PING))) Paralax]

Sensor PING merupakan sensor ultrasonik yang dapat mendeteksi jarak obyek dengan cara memancarkan gelombang ultrasonik dengan frekuensi 40 KHz dan kemudian mendeteksi pantulannya. Tampilan sensor jarak PING ditunjukkan pada Gambar berikut:

Sensor  ini dapat mengukur jarak antara 3 cm sampai 300 cm. keluaran dari sensor ini berupa pulsa yang lebarnya merepresentasikan jarak. Lebar pulsanya bervariasi dari 115 uS sampai 18,5 mS. Pada dasanya, Ping))) terdiri dari sebuah chip pembangkit sinyal 40KHz, sebuah speaker ultrasonik dan sebuah mikropon ultrasonik. Speaker ultrasonik mengubah sinyal 40 KHz menjadi suara sementara mikropon ultrasonik berfungsi untuk mendeteksi pantulan suaranya.

Pin signal dapat langsung dihubungkan dengan mikrokontroler tanpa tambahan komponen apapun. Ping  hanya akan mengirimkan suara ultrasonik ketika ada pulsa trigger dari mikrokontroler (Pulsa high selama 5uS). Suara ultrasonik dengan frekuensi sebesar 40KHz akan dipancarkan selama 200uS. Suara ini akan merambat di udara dengan kecepatan 344.424m/detik (atau 1cm setiap 29.034uS), mengenai objek untuk kemudian terpantul kembali ke Ping. Selama menunggu pantulan, Ping akan menghasilkan sebuah pulsa. Pulsa ini akan berhenti (low) ketika suara pantulan terdeteksi oleh Ping. Oleh karena itulah lebar pulsa tersebut dapat merepresentasikan jarak antara Ping dengan objek.

Untuk penjelasan atau prinsip aksesnya sama kok ma srf04, hanya saja untuk sensor PING hanya memakai 3 pin, pin trigger sama echo digunakan dalam 1 pin, sehingga dengan menggunakan sensor PING kita dapat menghemat penggunaan I/O mikrokontroler. Konfigurasi pin sensor PING sbagai berikut:

Timming akses sensor PING)))

Program  akses Sensor Jarak [ PING))) ]dengan Bascom AVR

$regfile = “m8535.dat”
$crystal = 8000000

Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.1 , Rs = Portc.0

Config Timer1 = Timer , Prescale = 64

Sigout Alias Portb.0
Sigin Alias Pinb.0
Dirsig Alias Ddrb.0
Dim Data_timer As Integer
‘==================================================
Inisialisasi:
Waitms 100
Initlcd
Locate 1 , 1
Lcd “demo ping”
Wait 1
Cls
Utama:
Gosub Ambil_datatimer
Locate 1 , 1
Lcd Data_timer
Wait 1
Cls
Goto Utama
‘==================================================
Ambil_datatimer:
Dirsig = 1
Set Sigout                                               ‘bankitkan pulsa
Waitus 10
Reset Sigout

‘terima pulsa ubah dulu jadi input
Dirsig = 0                                               ‘jadi input
Set Sigout                                              ‘pull up internal diaktifkan
Bitwait Sigin , Set
Data_timer = 0
Timer1 = 0
Start Timer1

Do
If Sigin = 0 Then
Data_timer = Timer1
Stop Timer1
Exit Do
End If

If Tifr.2 = 1 Then                                ‘cek register timer1 overflow?
Stop Timer1
Tifr.2 = 1
Data_timer = 0
Exit Do
End If
Loop
Stop Timer1
Return

==============================================================

ni dia video aplikasi sensor ultrasonik pada Robot-Wall Follower ato yg lebih dikenal dengan robot telusur dinding:

Sensor Jarak Sharp GP2D12

Sensor sharp GP2D12 digunakan untuk membaca jarak.  Sensor ini menggunakan prinsip pantulan sinar infra merah. Dalam aplikasi ini nilai tegangan keluran dari sensor yang berbanding terbalik dengan hasil pembacaan jarak dikomparasi dengan tegangan referensi komparator.

Rangkaian sistem komparator pembacaan jarak dengan sensor sharp GP2D12 ini disajikan pada Gambar berikut:

Prinsip kerja dari rangkaian komparator sensor sharp GP2D12 pada Gambar diatas adalah jika sensor mengeluarkan tegangan melebihi tegangan referensi, maka keluaran dari komparator akan berlogika rendah. Jika tegangan referensi lebih besar dari tegangan sensor maka keluaran dari komparator akan berlogika tinggi.

Selain menggunakan komparator, untuk mengakases sensor jarak sharp GP2D12 dapat dengan menggunakan prinsip ADC, atau dengan kata lain mengolah sinyal analog dari pembacaan sensor sharp GP2D12 ke bentuk digital dengan bantuan pemrograman. Dalam pemrograman BASCOM-AVR untuk mengakses sensor ini dapat menggunakan fasilitas akses ADC yang cukup mudah. Berikut ini link program akses ADC menggunakan BASCOM-AVR https://fahmizaleeits.wordpress.com/2010/05/01/aplikasi-adc-mikrokontroler-atmega8535/.