4
BAB II LANDASAN TEORI Pada bab ini akan dijelaskan teori tentang komponen dasar penyusun sistem penyimpanan data kecepatan angin, arah angin dan suhu. Karakteristik dan prinsip kerja komponen tersebut akan dijadikan dasar dalam perancangan sistem secara keseluruhan.
2.1.
Mengukur Kecepatan Dan Arah Angin Angin adalah udara yang bergerak dari tekanan udara yang lebih tinggi ke
tekanan udara yang lebih rendah. Sifat angin dipengaruhi oleh tiga hal utama, yaitu daerah asalnya, daerah yang dilewatinya dan lama atau jarak pergerakannya. Dua komponen angin yang akan diukur ialah kecepatan dan arahnya. 2.1.1. Kecepatan Angin Kecepatan angin adalah jarak tempuh angin atau pergerakan udara per satuan waktu dan dinyatakan dalam satuan meter per detik (m/d). Untuk mengetahui kecepatan angin salah-satunya dapat disusun dari beberapa komponen yang terdiri dari limit switch, lempeng plat yang ditempel pada bagian poros dan tiga buah mangkuk yang dipasang pada jari-jari yang berpusat pada sumbu vertikal (baling-baling) seperti terlihat pada gambar 2.1. Seluruh mangkuk menghadap kesatu arah melingkar, sehingga jika angin bertiup maka poros berputar pada arah tetap. Kecepatan putar poros tergantung pada kecepatan tiupan angin. Saat rotor berputar lempeng plat tersebut ikut berputar dan akan terdeteksi limit switch saat berputar satu putaran. Jumlah putaran yang terdeteksi dalam satuan putaran per detik akan diubah kedalam satuan meter per detik akan dianggap sama dengan kecepatan angin. Hal inilah yang kemudian dapat digunakan sebagai pengukur kecepatan angin.
Gambar 2.1. Sensor kecepatan angin
5
Untuk mengetahui besarnya kecepatan baling-baling saat berputar terhadap porosnya dapat diketahui berdasarkan gambar 2.1.
Gambar 2.2. Hubungan antara kecepatan linier dengan kecepatan sudut Ketika baling-baling berputar pada poros O, titik A memiliki kecepatan linier (v) yang arah nya selalu menyinggung lintasan lingkaran. Hubungan antara perpindahan linear titik A yang menempuh lintasan lingkaran sejauh x dan perpindahan sudut θ (dalam satuan radian), dinyatakan sebagai berikut : θ=
x ............................................................................................................ .(2.1) r
Dimana : θ = perpindahan sudut (rad) r = jari-jari atau jarak dari titk A ke titik O (meter) x = jarak lintasan (meter) Sedangkan besarnya kecepatan linier (v) benda yang menempuh lintasan lingkaran sejauh x dalam suatu waktu dapat dinyatakan dengan persamaan :
v =
x ........................................................................................................... .(2.2) t
dimana : x
= jarak lintasan (meter)
t
= waktu (detik)
v
= kecepatan linier (meter/detik)
Dengan menggunakan persamaan yang menyatakan hubungan antara perpindahan linier dengan perpindahan sudut akan didapat hubungan antara besarnya perubahan posisi pada lintasan dan besarnya perpindahan sudut, maka:
x = r . θ ......................................................................................................... .(2.3) Bila kita substitusikan persamaan 2.3 ke dalam persamaan 2.2 :
6
r ......................................................................................................... .(2.4) t
v =
Dimana : r = jari-jari (meter) v = kecepatan linier (meter/detik) t = waktu yang dibutuhkan untuk satu putaran (detik) karena untuk satu putaran perpindahan sudutnya = 3600 akan sama dengan 2
rad
maka
v
r 2 t
=
, sedangkan jika benda berputar sebanyak n kali maka besarnya
kecepatannya adalah v =
2 r n ...................................................................... .(2.5) t
dimana : n
= banyaknya putaran
r
= jari-jari (meter)
v
= kecepatan linier (meter/detik)
2.1.2. Arah Angin Yang dimaksud dengan arah angin adalah arah dari mana tiupan angin berasal. Bila angin itu datang dari selatan, maka arah anginnya adalah utara. Arah angin untuk angin di daerah permukaan biasanya dikenal dengan istilah Wind Rose. Untuk mengetahui arah angin digunakan sistem pendeteksian arah angin yang akan mengkodekan delapan macam arah angin kedalam kode biner 3 bit sebagaimana tertera pada tabel 2.1.
Tabel 2.1 Pengkodean Arah Angin Kode Biner
Arah Angin
000
Barat Laut
001
Tenggara
010
Barat Daya
7
2.3.
011
Timur Laut
100
Barat
101
Timur
110
Selatan
111
Utara
Sensor Suhu LM35 IC LM 35 adalah komponen elektronik yang sensitif suhu, keluarannya
berbanding lurus dengan suhu dalam satuan celcius. Peningkatan tegangan keluaran terhadap peningkatan suhu adalah 10 mV/OC. Daerah operasi pengukuran suhu dari LM 35 berkisar antara -55 OC sampai 150 OC. Bentuk IC ini seperti transistor berkaki tiga pin/pena. Masing-masing berfungsi sebagai tegangan sumber, tegangan keluaran sensor
+V
1
dan ground seperti ditunjukan pada gambar 2.5.
2
3
GND
OUT
Tampak Bawah
Gambar 2.4. Struktur Pin LM35 2.4.
Operational Amplifier LF356 Penguat operasi (operational amplifier atau op-amp) LF356 merupakan
komponen linier yang terdiri atas beberapa komponen diskrit yang terintegrasi dalam bentuk chip (IC: Integrated Circuits) dalam kemasan 8 pin. IC LF356 mempunyai dua buah inputan, yaitu input pembalik (inverting input) dan input bukan pembalik (non-
inverting input), satu buah output, dan bekerja dengan dual supply (+Vcc dan –Vee) serta didukung dengan offset nol untuk mengurangi offset masukan. IC LF356 dalam skema elektronik dilambangkan seperti gambar 2.6 berikut :
8
7
+Vcc 2 6 LF356
-Vee
5
4 1
3
Offset Nol
Gambar 2.5 Skema untuk op-amp LF356 Saat ini banyak terdapat tipe op-amp dengan karakteristik yang berbeda, tabel 2.2. menunjukan spesifikasi sebagian untuk IC op-amp LF356.
Tabel 2.2. Data spesifikasi sebagian op-amp LF356 Parameter
Keterangan
Tegangan catu
± 15v
Open loop voltage gain
106000
Input resistance
1012 Ω
Input offset current
3 pA
Input offset voltage
3 mV
Slew rate
12 V/µs
Pada table 2.2. terlihat LF356 memiliki spesifikasi sebagai berikut:
1
Open loop voltage gain Penguatan tegangan pada open loop sebesar 106000 kali. Pada op-amp ideal besarnya pengutan tegangan open loop bernilai tak terhinnga.
2
Input resistance Impedansi input pada kedua terminal input open loop tinggi sekali, sekitar 1012 Ω. Pada op-amp ideal besarnya impedansi masukan besarnya tak terhingga.
3
Input offset voltage Tegangan offset masukan menunjukan berapa jauh dari nol tegangan keluaran yang dihasilkan kalau masukannya nol. Pada pin offset nol IC LF356 berguna untuk untuk menambahkan komponen luar untuk mengurangi offset masukan.
4
Slew rate
9
Slew rate dapat diartikan ukuran kecepatan tanggap op-amp terhadap isyarat yang diberikan. Pada IC LF356 kecepatan tanggap output tidak bisa lebih cepat dari 12 V dalam waktu 1 µs. Untuk dapat menganalisa rangkaian op-amp diperlukan aturan berdasarkan karakteristik op-amp ideal. Aturan ini dalam beberapa literatur dinamakan golden rule, yaitu : A.
tegangan antara input V(+) dan V(-)
Aturan pertama yaitu perbedaan
adalah nol (V(+) – V(-) =0 atau V(+) = V(-)) B.
Aturan kedua yaitu Arus pada input op-amp adalah nol (I(+) = I(-) = 0)
Inilah dua aturan penting op-amp ideal yang digunakan untuk menganalisa rangkaian op-amp. 2.4.1. Non Inverting Amplifier Prinsip utama rangkaian penguat non-inverting adalah seperti yang diperlihatkan pada gambar 2.6 berikut ini. Seperti namanya, penguat ini memiliki masukan yang dibuat melalui input non-inverting. Dengan demikian tegangan keluaran rangkaian ini akan satu fasa dengan tegangan inputnya.
R2
7
Iout R1 IR1
2
I-
6 Vout
3
5
4 1
Vin
Gambar 2.6. Penguat Non Inverting Dari gambar 2.6 :
Vin =
V(+)
Dari aturan pertama dari op-amp : V(+) =
V(-)
sehingga
V(+) =
V(-) = Vin
Tegangan pada R2
VR2 =
Vout - V(-)
=
Vout – Vin
Arus pada R2
I out
VR 2 R2
10
Tegangan pada R1
sehingga arus pada R1
Vout Vin R2
.....................(2.7)
VR1 = V(-)= Vin
IR1 =
VR1 R1
IR1 =
Vin R1
.....................(2.8)
Pada titik 2 berlaku hukum kirchoff 1 : Iout + I(-) = IR1 Berdasarkan aturan 2 pada op-amp Sehingga
I(-) = 0 Iout = IR1
.....................(2.9)
Dari persamaan 2.6, 2.7 dan 2.8 dapat diturunkan persamaan : Iout = IR1
Vout Vin Vin R2 R1 Vout Vin R2 Vin R1 Vout Vin R2 Vin Vin R1 Vout R 1 2 Vin R1 Vout R 1 2 Vin R1 jika A adalah perbandingan antara tegangan keluaran terhadap tegangan masukan maka
A
=
Vout R 1+ 2 .........................................................................................(2.10) Vin R1
Vout = (1+
2.5.
R2 ) . Vin ...........................................................................................(2.11) R1
Mikrokontroler ATMega8535
11
2.5.1. Struktur Pin Dan Port I/O (Masukan/Keluaran) IC ATMega8535 Struktur pin IC ATMega8535 dapat dilihat pada gambar 2.9
ATMega8535 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
(T0/XCK)PB0 (T1)PB1 (INT2/AIN0)PB2 (OC0/AIN1PB3 (SS)PB4 (MOSI) PB5 (MISO)PB6 (SCK)PB7 RST VCC GND XTAL2 XTAL1 (RXD)PD0 (TXD)PD1 (INT0)PD2 (INT1)PD3 (OC1BPD4 (OC1A)PD5 (ICP1)PD6
(ADC0)PA0 (ADC1)PA1 (ADC2)PA2 (ADC3)PA3 (ADC4)PA4 (ADC5)PA5 (ADC6)PA6 (ADC7)PA7 AREF GND AVCC (TOSC2)PC7 (TOSC1)PC6 PC5 PC4 PC3 PC2 (SDA)PC1 (SCL)PC0 (OC2)PD7
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
Gambar 2.8. Struktur Pin Atmega8535
Dari gambar 2.8 dapat dijelaskan secara fungsional konfigurasi pin ATMega8535 dan dijelaskan pada tabel 2.3
Tabel 2.3 Struktur Pin Atmega8535 dan Fungsinya PIN
Keterangan Port B, merupakan Port I/O dua arah (bi-directional). Selain sebagai port I/O dapat juga difungsikan sebagai berikut:
PB0 : T0 (Timer/Counter 0 External Counter Input). XCK (USART External Clock Input /Output).
1 sampai 8
PB1 : T2 (Timer/Counter 1 External Counter Input).
PB2 : AIN0 (Analog Comparator Positif Input). INT2 (External Interrupt 2 input).
PB3 : AIN1 (Analog Comparator Positif Input). OC0 (Output Compare Timer/Counter0).
12
PB4 : SS (SPI Slave Select Input).
PB5 : MOSI (SPI Bus Master Output /Slave Input).
PB6 : MISO (SPI Bus Master Input /Slave Output).
PB7 : SCK (SPI Bus Serial Clock).
RESET,
merupakan
pin
yang
digunakan
untuk
mereset
9
mikrokontroller dan bekerja pada pulsa rendah (aktif low).
10
VCC, merupakan pin untuk catu daya.
11
GND, merupakan pin ground.
12
XTAL 2 dan XTAL 1, merupakan kaki masukan clock eskternal. Port D, merupakan Port I/O dua arah (bi-directional). Selain sebagai port I/O dapat juga difungsikan sebagai berikut:
14 sampai 21
PD 0 : RXD (USART Receiver).
PD 1 : TXD (USART Transmitter).
PD 2 : INT0 (External Interrupt 0).
PD 3 : INT1 (External Interrupt 1).
PD 4 : OC1B (Output Compare B Timer/Counter 1).
PD 5 : OC1A (Output Compare A Timer/Counter 1).
PD 6 : ICP1 (Timer/Counter 1 Input).
PD 7 : OC2 (Output Compare Timer/Counter 2).
Port C, merupakan Port I/O dua arah (bi-directional). Selain sebagai port I/O 8 bit, 4 bit Port C dapat juga difungsikan 22 sampai 29
sebagai berikut:
PC 0 : SCL (Serial Clock).
PC 1 : SDA (Serial Data Input).
PC 6 : TOSC1 (Timer Oscilator 1).
PC 7 : TOSC2 (Timer Oscilator 2).
30
AVCC, merupakan pin catu daya analog.
31
GND, ground untuk catu daya analog.
32
AVCC, merupakan tegangan referensi analog untuk ADC.
33 sampai 40
Port A, merupakan Port I/O dua arah (bi-directional). Selain sebagai port I/O 8 bit, Port A dapat juga difungsikan sebagai 8
channel ADC. Port I/O pada ATMega8535 dapat difungsikan sebagai input maupun output, untuk mengatur fungsi port tersebut dapat dilakukan dengan mengeset pada register
13
arah data (DDR = Data Direction Register), konfigurasi tersebut dapat dilihat pada tabel 2.4.
Tabel 2.4. Konfigurasi untuk port I/O DDR bit = 1
DDR bit = 0
Port bit = 1
Output High
Input pull-up
Port bit = 0
Output Low
Input Floating
Dari table 2.4 dapat dijelaskan sebagai berikut : a. Jika di konfigurasikan sebagai input
: DDR bit 0 dan Port bit 1.
b. Jika di konfigurasikan sebagai output High : DDR bit 1 dan Port bit 1. c.
Jika di konfigurasikan sebagai Output Low : DDR bit 1 dan Port bit 0.
2.5.2. Timer/Counter Atmega8535 memiliki 3 modul timer yang terdiri dari 2 buah timer/counter 8 bit dan 1 buah timer/counter 16 bit. Ketiga modul timer tersebut dapat diatur dalam mode yang berbeda dan tidak saling mempengaruhi. Masing-masing timer/counter ini memiliki register tertentu untuk mengatur mede kerjanya. 2.5.2.1. Timer/Counter 1 Timer/Counter 1 merupakan timer/counter 16 bit yang dapat berfungsi sebagai pencacah tunggal, pembangkit PWM, pencacah event eksternal dan lain sebagainya. Mode kerja timer/counter 1 ditentukan dengan mengatur register TCCR1A, TCCR1B, TCNT1, serta TIMSK dan TIFR.
1. Timer/Counter 1 Control Register A (TCCR1A)
Gambar 2.9. Register TCCR1A a. Bit 7:6 – COMIA1:0 : Compare Output Mode for Channel A b. Bit 5:4 – COMIAB:0 : Compare Output Mode for Channel B c. Bit 3 - FOC1A : Force Output Compare for Channel A d. Bit 2 - FOC1B : Force Output Compare for Channel B
14
e. Bit 1:0 WGM11:10 : Waveform Generation Mode
2. Timer/Counter 1 Control Register B (TCCR1B)
Gambar 2.10. Register TCCR1B a. Bit 7 – ICNC1 : Input Capture Noise Canceler b. Bit 6 – ICES1 : Input Capture Edge Select c. Bit 5 – Reserve bit d. Bit 4:3 – WGM11:10 : Waveform Generation Mode e. Bit 2:0 – CS12:11:10 : Clock Select
3. Timer/Counter Register 1 (TCNT 1)
Gambar 2.11. Register TCNT1 4. Timer/Counter Interrupt Mask Register (TIMSK)
Gambar 2.12. Register TIMSK a. Bit 5 – TICIE1 : Timer/Counter 1 Input Capture Interrupt Enable b. Bit 4 – OCIE1A : Timer/Counter 1 Output Compare Match A Interrupt Enable
15
c. Bit 3 – OCIE1B : Timer/Counter 1 Output Compare Match B Interrupt Enable d. Bit 2 – TOIE1 : Timer/Counter 1 Overflow Interrupt Enable
5. Timer/Counter Interrupt Flag Register (TIFR)
Gambar 2.13. Register TIFR a. Bit 5 – TICF2 : Timer/Counter 1 Input Capture Flag b. Bit 4 – OCF1A : Timer/Counter 1 Output Compare Match A Flag c. Bit 3 – OCF1B : Timer/Counter 1 Output Compare Match B Flag d. Bit 2 – TOV1 : Timer/Counter 1 Overflow Flag 2.5.2.2.. Mode Operasi Timer/Counter1 Mode Normal Overflow Pada mode ini semua bit pada register TCCR1A (gambar 2.9) diset 0, dengan penggunaan prescaler (sumber clock) diatur pada register TCCR1B (gambar 2.10) dengan setingan seperti terlihat pada table 2.5.
Table 2.5. Konfigurasi Prescaler Timer/Counter1
CS12:11:10 000
Keterangan Stop
16
001
Clk (sama dengan clk CPU)
010
Clk/8 (1 clock timer/counter 1 = 8 clk CPU)
011
Clk/64 (1 clock timer/counter 1 = 64 clk CPU)
100
Clk/256 (1 clock timer/counter 1 = 256 clk CPU)
101
Clk/1024 (1 clock timer/counter 1 = 1024 clk CPU)
110
Clk eksternal dari pin T1 pada kondisi falling edge
111
Clk eksternal dari pin T1 pada kondisi rising edge
Keterangan : Falling edge adalah perubahan clock / pulsa dari 1 ke 0
Rising edge adalah perubahan clock / pulsa dari 0 ke 1 Pada saat register TCNT1 yang berfungsi untuk menyimpan data cacahan timer/counter 1 dengan ukuran 16 bit, mencapai nilai maksimal (0FFFFh) lalu nol lagi maka flag TOV1 pada register TIFR akan set (1) dan menyebabkan terjadinya Overflow, apabila bit TOIE1 pada register TIMSK diset (1) maka interupsi Timer/Counter1 Overflow akan terjadi. Nilai awal TCNT1 tidak harus selalu nol (0x0000h) namun dapat ditentukan
sesuai
kebutuhan.
Besarnya
waktu
yang
dibutuh
Timer/Counter1 saat terjadi overflow dapat dihitung dengan persamaan 2.15 dibawah ini:
T1=
((1 FFFh ) TCNT1).N ........................................................(2.16) FXTAL
Dimana: T1
= Waktu yang dibutuhkan Timer/Counter1 saat overflow (detik).
TCNT1 = Nilai awal dari register TCNT1 N
= Nilai prescaler yang digunakan
FXTAL
= Frekuensi Kristal yang digunakan (MHz)
Persamaan diatas tidak berlaku saat prescaler yang digunakan berasal dari luar (eksternal clock) yaitu pada kondisi Rising edge atau Falling
edge. 2.5.2.3. Timer/Counter2
17
Timer/Counter2 merupakan timer/counter 8 bit yang dapat berfungsi sebagai pencacah tunggal, pembangkit PWM, pencacah event eksternal dan lain sebagainya. Mode kerja timer/counter 2 ditentukan dengan mengatur register TCCR2, TCNT2, OCR2, serta TIMSK dan TIFR.
1. Timer/Counter2 Control Register (TCCR2)
Gambar 2.14. Register TCCR2 a. Bit 7 – FOC2 : Force Output Compare b. Bit 6,3 – WGM21:20 : Waveform Generation Mode c. Bit 5:4 – COM21:20 : Compare Match Output Mode d. Bit 2:0 – CS22:20 : Clock Select
2. Timer/Counter Register2 (TCNT2)
Gambar 2.15. Register TCNT2 3. Output Compare Register (OCR2)
Gambar 2.16. Register OCR2
18
4. Timer/Counter Interrupt Mask Register (TIMSK)
Gambar 2.17. Register TIMSK a. Bit 7 – OCIE2 : Timer/Counter 2 Output Compare Match Interrupt Enable b. Bit 6– TOIE2 : Timer/Counter 2 Overflow Interrupt Enable
5. Timer/Counter Interrupt Flag Register (TIFR)
Gambar 2.18. Register TIFR c. Bit 7 – OCF2 : Timer/Counter 2 Output Compare Match Flag d. Bit 6– TOV2 : Timer/Counter 2 Overflow Flag e.
2.5.2.4. Mode Operasi Timer/Counter2 1.
Mode Normal Overflow Dalam mode ini dilakukan dengan memberi nilai 0 pada bit WGM21, WGM20,COM21 dan COM20 pada register TCCR2 (gambar 2.14) sedangkan besarnya prescaler yang digunakan dapat diatur seperti terlihat pada table 2.6.
19
Table 2.6. Konfigurasi prescaler Timer/Counter2
CS22:21:20
Keterangan
000
Stop
001
Clk (sama dengan clk CPU)
010
Clk/8 (1 clock timer/counter 1 = 8 clk CPU)
011
Clk/64 (1 clock timer/counter 1 = 64 clk CPU)
100
Clk/256 (1 clock timer/counter 1 = 256 clk CPU)
101
Clk/1024 (1 clock timer/counter 1 = 1024 clk CPU)
110
Clk eksternal dari pin T1 pada kondisi falling edge
111
Clk eksternal dari pin T1 pada kondisi rising edge
Keterangan : Falling edge adalah perubahan clock / pulsa dari 1 ke 0
Rising edge adalah perubahan clock / pulsa dari 0 ke 1 Pada saat register TCNT2 yang berfungsi untuk menyimpan data cacahan timer/counter2 dengan ukuran 8 bit, mencapai nilai maksimal (0FFh) lalu nol lagi maka flag TOV2 pada register TIFR akan set (1) dan menyebabkan terjadinya Overflow, apabila bit TOIE2 pada register TIMSK diset (1) maka interupsi Timer/Counter2 Overflow akan terjadi. Nilai awal TCNT2 tidak ditentukan
sesuai
harus selalu nol (0x00h) namun dapat
kebutuhan.
Besarnya
waktu
yang
dibutuh
Timer/Counter2 saat terjadi overflow dapat dihitung dengan persamaan 2.16:
T2=
((1 FFh) TCNT 2).N ...................................................(2.17) FXTAL
Dimana: T2
= Waktu yang dibutuhkan Timer/Counter2 saat overflow (detik).
TCNT2 = Nilai awal dari register TCNT2 N
= Nilai prescaler yang digunakan
20
FXTAL
= Frekuensi Kristal yang digunakan (MHz)
Persamaan diatas tidak berlaku saat prescaler yang digunakan berasal dari luar (eksternal clock) yaitu pada kondisi Rising edge atau Falling
edge. 2. Normal Compare Match Dalam mode ini isi register TCCR2 diset sama seperti mode normal
overflow, hanya saja saat kita mengisi register OCR2, maka ketika register pencacah TCNT2 = OCR2 maka akan terjadi compare match yang menyebabkan flag OCF2 secara otomatis set (1) apabila bit OCIE2 pada register TIMSK diset (1) maka interupsi Timer/Counter2 Compare
Match akan terjadi. Ketika terjadi compare match isi TCNT2 akan terus menghitung sampai overflow dan mulai dari nol lagi
2.5.3. Analog to Digital Converter (ADC) Mikrokontroller Atmega8535 memiliki fasilitas analog to digital converter (adc) yang sudah built in sebanyak 8 saluran input dengan resolusi mencapai 10 bit. Dalam operasi adc membutuhkan tegangan referensi (Vref) dengan catu daya terpisah yaitu pin AVCC-AGND. Tegangan referensi eksternal pada pin Aref tidak boleh melebihi AVCC. Data hasil konversi adc dapat dihitung dengan rumus dibawah ini : A
Pada resolusi 10 bit:
ADC
B
Vin .1024 ...................................................................(2.18) Vref
Pada resolusi 8 bit:
ADC
Vin .256 .....................................................................(2.19) Vref
Dimana: Vin = tegangan input pada pin adc yang dipilih (Volt) Vref= tegangan referensi adc (Volt)
21
Untuk mengatur mode dan cara kerja adc dapat dilakukan melalui register ADMUX, ASCSRA, ADCL, ADCH dan SFIOR.
1. ADC Multiplexer Selection Register (ADMUX)
Gambar 2.19. Register ADMUX a. Bit 7:6 – REF1:0 : Referensi Selection Bits b. Bit 5 – ADLAR : ADC Left Adjust Result c. Bit 4:0 – MUX4:0 : Analog Channel Selection Bits
2. ADC Control and Status Register A (ADCSRA)
Gambar 2.20 Register ADCSRA a. Bit 7 – ADEN : ADC Enable b. Bit 6 – ADSC : ADC Start Conversion c. Bit 5 – ADATE : ADC Auto Trigger Enable d. Bit 4 – ADIF : ADC Interrupt Flag e. Bit 3 – ADIE : ADC Interrupt Enable f. Bit 2:0 – ADPS2:0 : ADC Prescaler Select Bits
2.5.3.1 .Prosedur penggunaan ADC 1. Memilih Tegangan Referensi yang digunakan Pemilihan tegangan referensi ini dapat diatur melalui bit REFS1 dan REFS0 pada register ADMUX dengan konfigurasi seperti terlihat pada table 2.7.
Tabel 2.7. Pengaturan Tegangan Referensi ADC
22
REFS1
REFS0
0
0
Pin AREF
0
1
Pin AVCC, dengan pin AREF diberi kapasitor
1
0
Tidak digunakan
1
1
Tegangan referensi internal 2.56V dengan pin
Tegangan Referensi
AREF diberi kapasitor 2. Memilih Saluran Input ADC yang digunakan Pemilihan saluran input ADC ini dapat diatur melalui bit MUX3, MUX2, MUX1, dan MUX0 pada register ADMUX dengan konfigurasi seperti terlihat pada table 2.8.
Tabel 2.8. Pemilihan Saluran Input ADC
MUX4:0
Pin Input
0000
ADC0
0001
ADC1
0010
ADC2
0011
ADC3
0100
ADC4
0101
ADC5
0110
ADC6
0111
ADC7
3. Memilih Format Penyimpanan ADC Format penyimpanan data hasil konversi ADC dapat ditemukan pada register ADCH dan ADCL, melalui pengaturan bit ADLAR pada register ADMUX, dengan susunan seperti terlihat pada gambar 2.21. a.
Format data ADCH – ADCL, jika bit ADLAR = 0
23
Gambar 2.21. Register ADCH-ADCL , ADLAR =0
b.
Format data ADCH – ADCL, jika bit ADLAR = 1
Gambar 2.22. Register ADCH-ADCL , ADLAR =1 4. Memilih Prescaler yang digunakan saat konversi Pemilihan prescaler yang digunakn untuk menentukan clock ADC dapat diatur melalui bit ADPS2, ADPS1 dan ADPS0 pada register ADCSRA dengan konfigurasi seperti terlihat pada table 2.9.
Tabel 2.9. Prescaler ADC
ADPS2:0
Besar Clock ADC
000
FXTAL/2
001
FXTAL/2
010
FXTAL/4
011
FXTAL/8
100
FXTAL/16
101
FXTAL/32
110
FXTAL/64
111
FXTAL/128
24
5. Mengaktifkan ADC Untuk mengaktifkan ADC dapat diatur dengan mengeset atau memberi nilai 1 bit ADEN pada register ADCSRA 6. Menentukan Mode Konversi ADC A
Mode Free Running Pada mode ini data ADC akan diambil dan diperbaharui secara simultan, untuk mengaktifkan mode ini diatur melalui bit ADATE dan bit ADSC dengan memberi nilai 1 pada kedua bit tersebut saat awal konversi. Kedua bit tersebut ada pada register ADCSRA.
B
Mode Single Conversion Pada mode ini ADC akan mengkonversi sekali saja. Untuk mengaktifkan mode diatur melalui bit ADSC dengan memberi nilai 1 tiap kali memulai konversi dan memberi nilai 0 pada bit ADATE, kedua bit tersebut ada pada register ADCSRA.
7. Penggunaan rutin Interupsi atau Pooling Penggunaan rutin Interupsi ADC dapat diatur melalui bit ADIE pada register ADCSRA dengan cara memberi nilai 1, sehingga interupsi ADC akan terjadi saat ADC selesai menkonversi. Sedangkan penggunaan Pooling dilakukan dengan mengawasi bit ADIF pada register ADCSRA. Bit ini akan set (1) secara otomatis saat ADC selesai menkonversi.
2.5.4. Komunikasi Serial (USART)
USART
(Universal
Synchronous
and
Asynchronous
Serial
Receiver
and
Transmitter) dapat difungsikan sebagai transmisi data sinkron dan asinkron yang dimiliki Atmega8535. Pada komunikasi secara sinkron detak dikirim bersama-sama dengan data serial, setiap Tx
mengirimkan bit dari suatu byte data akan diikuti dengan sinyal
sinkronisasi yang berupa sinyal transisi dari rendah ketinggi secara bersamaan atau sebaliknya. Rx akan mengetahui bahwa dijalur data ada data dengan banyaknya
sinkronisasi yang diterima, saat sinyal sinkronisasi pertama berarti data milik D0, kedua milik D2 dan seterusnya sampai D7, seperti terlihat pada gambar 2.23.
25
Gambar 2.23. Komunikasi serial secara sinkron Pada komunikasi data secara asinkron pengiriman detak dilakukan secara dua tahap, yaitu pada awal pengiriman atau yang disebut bit start dan pada akhir pengiriman atau yang disebut bit stop, seperti yang terlihat pada gambar 2.24.
Gambar 2.24. Komunikasi serial secara asinkron Dari gambar diatas terlihat saluran tanpa data selalu berlogika high, ketika Tx ingin mengirimkan data keluaran USART akan diset kelogika low untuk waktu satu bit, perubahan bit dari high ke low ini oleh Rx diindikasikan sebagai bit start yang digunakan untuk mensinkronkan detaknya sehingga sinkron dengan detak Rx dalam waktu yang disepakati bersama. Selanjutnya data akan dikirim secara bertahap satu persatu dari bit yang paling awal sampai bit yang paling akhir dan berikutnya dikirimkan bit stop sebagai akhir dari pengiriman data serial. Adapun register yang digunakan untuk komunikasi serial USART pada Atmega8535 adalah sebagai berikut:
1. USART I/O Data Register (UDR)
Gambar 2.25. Register UDR Register UDR digunakan untuk buffer data yang akan dikirim dan yang akan diterima. UDR untuk buffer transmitter hanya dapat diisi jika bit UDRE dalam
26
register UCSRA bernilai “1” .Jika data telah diisikan ke buffer TXB dan USART
transmitter diaktifkan maka data tersebut dikirimkan secara serial melalui pin PD.1 (TxD).
2. USART Control and Status Register A (UCSRA)
Gambar 2.26. Register UCSRA a. Bit 7 – RXC : USART Receive Completes b. Bit 6 – TXC : USART Transmit Complete c. Bit 5 – UDRE : USART Data Register Empty d. Bit 4 – FE : Frame Error e. Bit 3 – DOR : Data Over Run f. Bit 2 – PE : Parity Error g. Bit 0 – MPCM : Multi Processor Communication Mode 3. USART Control and Status Register B (UCSRB)
Gambar 2.27. Register UCSRB a. Bit 7 – RXCIE : RX Complete Interrupt Enable b. Bit 6 – TXCIE : TX Complete Interrupt Enable c. Bit 5 – UDRIE : USART Data Register Interrupt Enable d. Bit 4 – RXEN : Receive Enable e. Bit 3 – TXEN : Transmitter Enable f. Bit 2 – UCSZ2 : Character Size g. Bit 1 – RXB8 : Receive Data Bit 8 h. Bit 0 – TXB8 : Transmitter Data Bit 8
27
4. USART Control and Status Register C (UCSRC)
Gambar 2.28. Register UCSRC a. Bit 7 – URSEL : Register Select b. Bit 6 – UMSEL : USART Mode c. Bit 5 : 4 – UPM1:0 : Parity Mode d. Bit 3 – USBS : Stop Bit Select e. Bit 2:1 – UCSZ1:1 : Character Size f. Bit 0 – UCPOL : Clock Polarity
5. USART Baut Rate Register (UBRRL-UBRRH)
Gambar 2.29. Register UBRR a. Bit 15 – URSEL : Register Select b. BIT 14:12 – Tidak digunakan c. Bit 11:0 – UBRR11:0 : USART Baut Rate Register
2.5.4.1 .Prosedur Penggunaan USART 1. Memilih Mode Komunikasi yang digunakan Pemilihan mode komunikasi yang digunakan menyangkut mode sinkron dan asinkron diatur melalui bit UMSEL (USART Mode Select) pada register UCSRC
28
(gambar 2.28) 2. Memilih Jalur Komunikasi yang digunakan Pemilihan jualur komukasi yang digunakan menyangkut jalur komunikasi pengiriman data (Tx) atau penerimaan data (Rx) diatur melalui bit TXEN dan RXEN pada register UCSRB (gambar 2.27) 3. Memilih Lebar Data yang digunakan Pemilihan lebar data komunikasi diatur melalui bit UCSZ2 pada register UCSRA (gambar2.28) serta bit UCSZ1 dan bit UCSZ0 pada register UCSRC dengan format seperti ditunjukan pada table 2.10.
Table 2.10 Pengaturan Lebar Data
UCSZ2
UCSZ1
UCSZ0
Ukuran Karakter
0
0
0
5-Bit
0
0
1
6-Bit
0
1
0
7-Bit
0
1
1
8-Bit
1
0
0
Reserved
1
0
1
Reserved
1
1
0
Reserved
1
1
1
9-Bit
4. Memilih Parity dan Stop bit yang digunakan Pemilihan mode parity yang digunakan diatur melalui bit UPM1 dan UPM0 pada register UCSRC dengan susunan dengan format seperti ditunjukan pada table 2.11 ,sedangkan penggunaan stop bit diatur melalui bit USBS pada register UCSRC, jika diset 0 maka menggunakan 1 stop bit tetapi bila diset 1 maka menggunakan 2 stop bit Tabel 2.11 Mode Paritas
29
UPM1
UPM0
Mode Paritas
0
0
Disabled
0
1
Reserved
1
0
Enabled, Even Parity
1
1
Enabled, odd Parity
5. Menentukan Baut-Rate yang digunakan Penentuan nilai baut-rate diatur melalui register UBRRH dan UBRRL. Pengaturan baut-rate pada register UBRR dapat hitung dengan rumus dibawah ini : a
Mode Asynchronous Normal Mode (U2X = 0)
UBRR
b
FXTAL 1 .......................................................(2.20) 16.Bautrate.
Mode Asynchronous Double Speed (U2X =1)
UBRR
c
FXTAL 1 ........................................................(2.21) 8.Bautrate.
Mode Synchronous Master
UBRR
FXTAL 1 .......................................................(2.22) 2.Bautrate.
Dimana : FXTAL adalah frekuensi kristal yang digunakan (Mhz). 6. Penggunaan rutin Interupsi atau Pooling Penggunaan rutin Interupsi serial untuk pengiriman data (Tx) dapat diatur melalui bit TXCIE pada register UCSRB dengan cara memberi nilai 1, sehingga interupsi serial untuk pengiriman data (Tx) akan terjadi saat data yang dikirim oleh register UDR sudah lengkap. Sedangkan jika menggunakan pooling dilakukan dengan mengawasi bit TXC pada register UCSRA. Penggunaan rutin
30
Interupsi serial untuk penerimaan data (Rx) dapat diatur melalui bit RXCIE pada register UCSRB dengan cara memberi nilai 1, sehingga interupsi serial untuk penerimaan data (Tx) akan terjadi saat data yang diterima dalam register UDR sudah lengkap, penggunaan pooling dilakukan dengan mengawasi bit RXC pada register UCSRA.
2.5.5. Memory Mikrokontroller ATMega8535 memiliki tiga jenis memori yaitu memori program, memori data, dan EEPROM (Electrically Erasable Programmable Read Only Memory). Ketiganya memiliki ruang sendiri dan terpisah.
2.5.5.1 .Memori Data ATMega8535 memiliki memori data sebesar 608 byte yang terbagi menjadi tiga bagian, yaitu 32 buah register serba guna, 64 buah register I/O dan 512 byte SRAM. Register serba guna menempati ruang data pada alamat terbawah yaitu $00 sampai $1F. Register I/O menempati 64 alamat berikutnya
mulai dari $ 20 sampai $5F.
Register tersebut digunakan untuk mengatur fungsi peripheral seperti register kontrol,
timer/counter, fungsi-fungsi I/O. Alamat memori berikutnya digunakan untuk SRAM sebesar 512 byte pada lokasi $60 sampai $25F. Konfigurasi untuk memori data dapat dilihat pada gambar 2.30
Gambar 2.30. Memori data ATMega 8535 2.5.5.2 .Memori Program Memori program terletak pada Flash Perom dengan ukuran 8 kbyte yang dipetakan dari alamat $0000 sampai $0FFF, dimana masing-masing alamat memiliki lebar data 16 bit. Memori program ini terdiri dari dua bagian yaitu bagian program boot
31
dan bagian program aplikai. Jika menggunakan tidak fitur boot loader flash maka semua kapasitas memori program dapat digunakan untuk program aplikasi, tetapi jika menggunakan fitur boot loader flash maka pembagian ukuran memori ditentukan oleh
BOOTSZ fuse. Konfigurasi untuk memori program dapat dilihat pada gambar 2.31
Gambar 2.31. Memori program Atmega8535
2.5.5.3 .EEPROM (Electrically Erasable Programmable Read Only Memory) EEPROM adalah memori data yang dapat menetap ketika chip mati, digunakan untuk keperluan penyimpanan data yang tahan terhadap gangguan catu daya. EEPROM memiliki ukuran sebesar 512 byte, memori tersebut hanya dapat diakses dengan menggunakan register I/O, yaitu EEPROM Data register (EEDR), EEPROM Address
(EEARH-EEARL) dan EEPROM Control register (EECR). Untuk mengakses memori EEPROM ini diperlakukan seperti mengakses data external sehingga memerlukan waktu eksekusi yang lebih lama bila dibandingkan dengan mengakses data dari SRAM. Konfigurasi untuk memori EEPROM dapat dilihat pada gambar 2.32.
Gambar 2.32. Memori EEPROM Atmega8535 2.6.
LCD (Liquid Crystal Display)
32
Penampil LCD (Liquid Crystal Display) digunakan sebagai display untuk menampilkan data dengan ukuran 2x16, seperti terlihat pada gambar 2.33. Adapun fungsi dari tiap pinnya dapat dilihat pada tabel 2.12. Pada LCD terdapat beberapa memori diantaranya adalah DDRAM (Display Data Random Access Memory),
CGRAM
(Character Generator Random Access Memory) dan CGROM (Character Generator Read Only Memory).
Gambar 2.33 Struktur Pin LCD Matriks 2x16
Tabel 2.12 PIN LCD dan Fungsinya
PIN
NAMA PIN
KETERANGAN
33
1
VSS
Ground Voltage
2
VCC
+5 V
3
VEE
Contras Voltage Register Select
4
RS
0 = Intruksi Register 1 = Data Register Read/Write Mode
5
R/W
0 = Write Mode 1 = Read Mode Enable
6
E
0 = enable 1 = disable
7
DB0
Data bit ke 0 (LSB)
8
DB1
Data bit ke 1
9
DB2
Data bit ke 2
10
DB3
Data bit ke 3
11
DB4
Data bit ke 4
12
DB5
Data bit ke 5
13
DB6
Data bit ke 6
14
DB7
Data bit ke 7 (MSB)
15
BPL
Back Plane Light
16
GND
Ground Voltage
2.6.1. DDRAM Merupakan memori tempat karakter ditampilkan berada. Pada LCD 2x16 alamat awal baris pertama dimulai dari 00h sampai 39h, sedangkan alamat awal dari baris kedua dimulai dari 40h sampai 79h.
2.6.2
CGRAM Merupakan memori untuk menggambarkan pola dari sebuah karakter dimana
bentuk dari karakter tersebut dapat diubah-ubah. Namun isi memori akan hilang saat catu daya dimatikan sehingga pola kerakter ikut hilang
2.6.3. CGROM
34
Merupakan memori untuk menggambarkan pola sebuah karakter dimana pola tersebut sudah ditentukan secara permanen sehingga pengguna tidak dapat merubahnya lagi. Adapun pola karakter yang tersimpan dalam CGROM dapat dilihat pada tabel 2.13.
Tabel 2.13 Pola Karakter CGROM
35
Dari tabel 2.13 diatas misal diinginkan LCD 2x16 menampilkan data 61h atau 01100001b yang berada pada DDRAM kemudian ditampilkan maka data yang diambil berada pada alamat 61h yang berada pada CGROM yaitu pola karakter ‘a’.
2.7.
Level Converter TTL to RS232 (IC MAX 232) Istilah RS232 sudah begitu populer sehingga sering dianggap RS232 mengatur
semua hal tentang komunikasi data serial, meskipun sesungguhnya RS232 tidak mengatur sejauh ini. RS232 dibuat pada tahun 1962, jauh sebelum IC TTL populer, maka level tegangan yang ditentukan untuk RS232 tidak ada hubungannya dengan level tegangan TTL bahkan jauh berbeda. Berikut ini adalah spesifikasi dari RS232 yang merujuk pada Electronic Industry
Association (EIA) : a. Space (logika 0) adalah tegangan antara +3V hingga +25V.
36
b. Mark (logika 1) adalah tegangan antara -3V hingga -25V. c. Daerah antara +3V hingga -3V tidak didefinisikan. d. Arus hubung singkat tidak boleh melebihi 500mA. Berdasarkan spesifikasi diatas, IC digital termasuk pengontrol mikro umumnya bekerja pada level TTL yang dibuat atas dasar tegangan catu daya +5 Volt. Hampir semua komponen digital bekerja pada level TTL dengan demikian dalam membentuk saluran RS 232 dibutuhkan pengubah level tegangan timbal balik antara TTL dan RS 232. Di pasaran banyak IC untuk aplikasi ini misalnya untuk mengubah level TTL ke RS 232 adalah MC1488 dan MC1489. Tetapi saat ini banyak digunakan IC MAX 232 yang mempunyai dua fungsi sekaligus sehingga hanya dibutuhkan satu IC saja. Untuk bentuk
on-chip dari IC MAX232 terlihat pada gambar 2.34.
1 2 3 4 5 6 7 8
C1+ V+ C1C2+ C2VTr2out Re2in
VCC GND Tr1out Re1in Re1out Tr1in Tr2in Re2out
16 15 14 13 12 11 10 9
Gambar 2.34. Struktur Pin IC Max232 2.8.
Konfigurasi Serial DB 9 Selain mendeskripsikan level tagangan, standar RS 232 menentukan pula jenis-
jenis sinyal yang dipakai mengatur pertukaran informasi. Konektor yang dipakai ditentukan dalam standar RS232, untuk sinyal yang lengkap maka dipakai DB9 seperti terlihat pada gambar 2.35.
1 6 2 7 3 8 4 9 5 DB9
Gambar 2.35. Konektor DB 9
37
Untuk dapat menggunakan port serial dalam hal ini COM1 maka kita perlu mengetahui alamatnya. Base address COM1 biasanya adalah 1016 (3F8h). Alamat tersebut adalah alamat yang biasanya digunakan, tergantung dari komputer yang digunakan, tepatnya kita bisa melihat pada peta memori tempat menyimpan alamat tersebut, yaitu memori 0000h:0400h untuk base address COM1. Tabel 2.13 dibawah ini memperlihatkan alamat dan IRQ (Interrupt ReQuest) serial port
Tabel 2.13 Alamat dan IRQ Serial Port
Nama
Alamat
IRQ
COM1
3F8
4
COM2
2F8
3
COM3
3E8
4
COM4
2E8
3