PEMBAHASAN
Gambar 1
Skematik Rangkaian
2.2. PERANCANGAN ALAT
Pada gambar 1, pada PORTA.0 terhubung dengan potensio balance
yang digunakan sebagai inputan yang mengatur arah dan kecepatan putar
motor DC. LCD karakter 16x2 terhubung pada PORTC.
Gambar 2
LCD 16x2
Tabel 1
Konfogurasi Pin LCD 16x2
Gambar 3
Konfigurasi Pin IC L293D
PIN TYP
DESCRIPCION
NAME NO E
Enable driver channels 1 and 2 (active
1,2EN 1 I
high input)
<1:4>A 2, 7, 10, 15 I Drivers input, Noninverting
<1:4>Y 3, 6, 11, 14 O Drivers output
Enable driver channels 1 and 2 (active
3,4EN 9 I
high input)
GND 4, 5, 12, 13 - Device ground and heat sink pin
VCC1 16 - 5-V supply for internal logic translation
VCC2 8 - Power VCC for drivers 4,5V to 36V
Tabel 2
Fungsi Pin - Pin pada L293D
Gambar 4
Bentuk Fisik IC L293D
Gambar 5
Gambar 4
Flow Chart
Cara kerja flow chart :
1. Diawali dengan start.
2. Inisialisasi potensio balance dan motor dc.
3. Jika potensio putar ke kanan maka motor putar kanan, jika tidak maka
akan mengecek jika potensio putar kiri maka motor putar kiri, jika
potensio posisi balance maka motor stop/tidak berputar.
4. Jika potensio putar kanan lalu potensio diputar ke kiri atau potensio
balance maka motor akan mengerjakan perintah selanjutnya, jika tidak
diputar maka program finish.
2. Mengatur ADC
3. Mengatur TIMER0
ADC PWM
115 0
0 255
Tabel 2
ADC dan PWM
Grafik 1
PWM dan ADC
ADC PWM
135 0
255 255
Tabel 3
ADC dan PWM
Grafik 2
ADC dan PWM
Pada program diatas variabel dataADC digunakan untuk membaca
nilai adc yang terhubung pada PORTA.0 adalah potensio balance, jika nilai
dataADC=166 – 134 maka nilai pwm=0, PORTD.1=0 dan PORTD.2=0.
Jika dataADC<115 maka pwm=((-2.2174*dataADC)+255) dan
PORTD.1=1, dan jika dataADC>135 maka pwm=((2.125*dataADC)-
286.88) dan PORTD.2=1.
Lcd_gotoxy(0,0) yaitu menandai titik penulisan pada baris ke 0 dan
kolom ke 0, perintah sprint(lcd_buff,”ADC:%4d”,dataADC) mengubah
data int pada gasil pembacaan nilai ADC menjadi tipe data char, perintah
lcd_puts(lcd_buff) menulis karakter dalam LCD . data tersebut ditulis
dengan delay_ms(200) lalu lcd_clear() dan karena program tersebut
menggunakan perintah while maka program akan dibaca secara berulang
secara terus menerus.
LAMPIRAN
Gambar 5