7
kemungkinan mode RGB ada 256x256x256 = 16.777.216 warna, sedangkan mode HSL ada 360x100x100 warna. Jadi akan ada warna-warna yang jika dikonversikan hasilnya akan sama akibat
pembulatan.
2.5 Perangkat Keras Hardware
2.5.1 Mikrokontroler AT89S51 Mikrokontroler adalah mikroprosesor yang dirancang khusus untuk aplikasi kontrol, dan
dilengkapi dengan ROM, RAM dan fasilitas IO pada satu chip. AT89S51 adalah salah satu anggota keluarga dari keluarga MCS-5152 yang dilengkapi dengan internal 4 Kbyte flash PEROM
Programmable and Erasable Read Only Memory, yang memungkinkan memori program untuk dapat diprogram kembali. AT89S51 dirancang oleh Atmel sesuai dengan instruksi standard dan
susunan pin 80C51 Atmel Datasheet.
Gambar 3. Mikrokontroler AT89S51
Gambar 4. Konfigurasi Pin pada mikrokontroler AT89S51 AT89S51 memiliki sebuah CPU Central Processing Unit 8 bit, 128 byte RAM Random
Access Memory internal, 4 buah port IO, yang masing-masing terdiri dari 8 bit, osilator internal dan ragkaian pewaktu, 2 buah timercounter 16 bit, 6 buah jalur interupsi 2 buah interupsi eksternal dan 4
interupsi internal, sebuah serial port dengan full duplex UART Universal Asynchronous Receiver Transmitter, EPROM yang besarnya 4 kbyte untuk memori program, kecepatan maksimum
pelaksanaan instruksi per siklus adalah 0.5 µs pada frekuensi clock 24 MHz. AT89S51 mampu melaksanakan proses perkalian, pembagian, dan boolean.
8
a. Konfigurasi Pin Konfigurasi pin pada mikrokontroler AT89S51 dijelaskan pada Gambar 4.
b. Deskripsi Pin Tabel 2 menjelaskan seluruh pin yang ada pada mikrokontroler AT89S51.
c. Register dengan fungsi spesial Mikrokontroler AT89S51 memiliki beberapa fungsi spesial yang secara khusus
dialamatkan pada register tertentu. Tabel 3 menunjukkan seluruh register dengan fungsi spesial yang dimiliki mikrokontroler ini.
d. Operasi Timer Counter AT89S51 menyediakan fasilitas Timer 16 bit sebanyak 2 buah yaitu Timer0 dan Timer1.
Timer digunakan untuk membuat tundaan waktudelay. Timer ini juga bisa berfungsi sebagai pencacah counter.
Timer bekerja dengan cara menghitung pulsa clock internal mikrokontroler yang dihasilkan dari rangkaian osilator. Jumlah pulsa clock akan dibandingkan dengan sebuah nilai yang terdapat
dalam register timer TH dan TL. Jika jumlah pulsa clock sama dengan nilai timer, maka sebuah interupsi akan terjadi ditandai oleh flag TF. Interupsi ini dapat dipantau oleh program sebagai
tanda bahwa timer telah overflow. Pencacah bekerja dengan cara menghitung pulsa eksternal pada P3.4 T0 dan P3.5 T1.
Jumlah pulsa ini akan disimpan dalam register Timer yaitu pada TH dan TL.
Gambar 5. Logika Kontrol TimerCounter Timer akan menghitung pulsa clock dari osilator yang sebelumnya telah dibagi 12. Agar
berfungsi sebagai timer maka pada register TMOD, bit CT harus bernilai 0 dan bit Gate bernilai 0 atau pin INTx harus bernilai 1 dan pada TCON, bit TRx harus bernilai 1.
Pencacah menghitung pulsa dari pin input T0 dan T1. Agar berfungsi sebagai pencacah maka pada TMOD, bit CT harus bernilai 0 dan bit Gate bernilai 0 atau pin INTx bernilai 1 dan
pada TCON, bit TRx bernilai 1.
9
Tabel 2. Deskripsi pin mikrokontroler AT89S51 Atmel Datasheet Nama Pin
Keterangan VCC
Tegangan supply +5V GND
Ground
Port 0 Port 0 merupakan port paralel 8 bit dua arah bi-directional
yang dapat digunakan untuk berbagai keperluan. Port 0 juga memultipleks alamat dan data jika digunakan untuk mengakses
memori eksternal.
Port 1 Port 1 merupakan port paralel 8 bit dua arah dengan internal
pull-up. Port 1 juga digunakan dalam proses pemrograman
P1.5 MOSI P1.6 MISO
P1.7 SCK
Port 2 Port 2 merupakan port paralel 8 bit dua arah dengan internal
pull-up. Port 2 akan mengirim byte alamat jika digunakaan untuk
mengakses memori eksternal.
Port 3 Port 3 merupakan port paralel 8 bit dua arah dengan internal
pull-up. Port 3 juga bida difungsikan untuk keperluan khusus yaitu :
P3.0 RXD Receive Data P3.1 TXD Transmit Data
P3.2 INT0 Interrupt 0 P3.3 INT1 Interrupt 1
P3.4 T0 Timer 0 P3.5 T1 Timer 1
P3.6 WR Write Strobe P3.7 RD Read Strobe
RST Pulsa dari low ke high akan mereset mikrokontroler
ALEPROG Address Latch Enable, digunakan untuk menahan alamat
memori eksternal selama pelaksanaan instruksi PSEN
Program Store Enable, merupakan sinyal kendali yang memperbolehkan program memori eksternal masuk ke dalam
bus selama proses pengambilan instruksi
EAVPP Jika EA=1 maka mikrokontroler akan melaksanakan instruksi
dari ROM internal Jika EA=0 maka mikrokonttoler akan melaksanakan instruksi
dari ROM eksternal XTAL1
Intput ke rangkaian osilator internal XTAL 2
Output dari rangkaian osilator internal
10
Tabel 3. Special function register Atmel Datasheet Simbol
Nama Alamat
Nilai Awal ACC
Akumulator E0H
00000000 B
B Register F0H
00000000 PSW
Program Status Word D0H
00000000 SP
Stack Pointer 81H
00000111 DPTR0
Data Pointer 0 16 bit DP0L Byte Rendah
DP0H Byte Tinggi 82H
83H 00000000
00000000 DPTR1
Data Pointer 1 16 bit DP1L Byte Rendah
DP1H Byte Tinggi 84H
85H 00000000
00000000 P0
Port 0 80H
11111111 P1
Port 1 90H
11111111 P2
Port 2 A0H
11111111 P3
Port 3 B0H
11111111 IP
Interrupt Priority Control B8H
xx000000 IE
Interrupt Enable Control A8H
0x000000 TMOD
TimerCounter Mode Control 89H
00000000 TCON
TimerCounter Control 88H
00000000 TH0
TimerCounter 0 High Byte 8CH
00000000 TL0
TimerCounter 0 Low Byte 8AH
00000000 TH1
TimerCounter 1 High Byte 8DH
00000000 TL1
TimerCounter 1 Low Byte 8BH
00000000 SCON
Serial Control 98H
00000000 SBUF
Serial Data Buffer 99H
xxxxxxxx PCON
Power Control 87H
0xxx0000 WDTRST
Watchdog Timer Reset A6H
xxxxxxxx AUXR
Auxiliary Register 8EH
xxx00xx0 Tabel 4. Timer Mode Atmel Datasheet
TxM1 TxM0
Mode Timer Deskripsi
13-bit Timer 1
1 16-bit Timer
1 2
8-bit auto reload 1
1 3
Split timer
11
Tabel 5. Register TCON Atmel Datasheet Bit
Nama Fungsi
Timer 7
TF1 Timer 1 Overflow. Bit ini diatur oleh
mikrokontroler 1
6 TR1
Timer 1 Run. Timer akan aktif jika bit ini bernilai 1 1
5 TF0
Timer 0 Overflow. Bit ini diatur oleh mikrokontroler
4 TR0
Timer 1 Run. Timer akan aktif jika bit ini bernilai 1 Tabel 6. Register TMOD Atmel Datasheet
Bit Nama
Fungsi Timer
7 GATE1
Jika bernilai 1, timer hanya akan mulai ketika INT1 pada kondisi high. Jika bernilai 0, timer akan
mulai tanpa pengaruh kondisi INT1. 1
6 CT1
Timer akan mencacah kejadian melalui T1 ketika bit ini bernilai 1 dan akan mencaca setiap siklus
mesin jika bit bernilai 0. 1
5 T1M1
Penentu mode timer yang akan digunakan 1
4 T1M0
Penentu mode timer yang akan digunakan 1
3 GATE0
Jika bernilai 1, timer hanya akan mulai ketika INT1 pada kondisi high. Jika bernilai 0, timer akan
mulai tanpa pengaruh kondisi INT1. 2
CT0 Timer akan mencacah kejadian melalui T1 ketika
bit ini bernilai 1 dan akan mencaca setiap siklus mesin jika bit bernilai 0.
1 T0M1
Penentu mode timer yang akan digunakan T0M0
Penentu mode timer yang akan digunakan e. Komunikasi Data Serial
Komunikasi serial memiliki keuntungan dari segi efektifitasnya karena hanya membutuhkan 2 jalur komunikasi, jalur data dan clock. Data dikirimditerima per bit secara
bergantian. Pada MCS-51, data ditampung sementara dalam register SBUF Serial Buffer sebelum dikirimditerima.
Untuk mengatur mode komunikasi data serial dilakukan oleh SCON Serial Control register. Untuk mengatur baudrate dilakukan oleh register PCON Power Control register. Pada
AT89S51, port serial terdapat pada pin P3.0RXD dan P3.1TXD. Terdapat 4 mode komunikasi data serial yang dapat dilakukan mikrokontroler
AT89S51yang dapat dipilih dengan kombinasi nilai pada bit SM0 dan SM1 dalam SCON. Dalam SCON, terdapat flag TI Transmit Interrupt dan RI Receive Interrupt yang menandakan sedang
terjadi pengiriman atau penerimaan data. Pengiriman data serial dimulai ketika sebuah byte data dikirimkan ke SBUF. TI akan 1
ketika data telah selesai dikirimkan. Penerimaan data serial dimulai ketika REN dalam SCON
12
bernilai 1. RI akan 1 ketika data telah selesai diterima. Baik pada pengiriman maupun penerimaan, data akan disimpan dalam register SBUF.
Tabel 7. Mode pilihan komunikasi data serial Atmel Datasheet SM1
SM0 Mode
Deskripsi Shift register, baud = f12
1 1
8-bit UART, baud = variabel 1
2 9-bit UART, baud = f32 atau f64
1 1
3 9-bit UART, baud = variabel
Tabel 8. Register SCON Atmel Datasheet Bit
Simbol Fungsi
7 SM0
Serial port mode bit 0 6
SM1 Serial port mode bit 1
5 SM2
Pengaktif komunikasi multiprosesor 4
REN Receive Enable bit. Beri nilai 1 untuk mengaktifkan penerimaan
data serial 3
TB8 Transmitted bit 8. Pengaturan dilakukan oleh program pada
mode 2 dan 3 2
RB8 Received bit 8. Bit ke-8 dari data yang diterima pada mode 2
dan 3. Berupa stopbit pada mode 1 dan tidak digunakan pada mode 0
1 TI
Transmit Interrupt flag. Harus dikontrol oleh program
RI Receive Interrupt flag. Harus dikontrol oleh program
Tabel 9. Register PCON Atmel Datasheet Bit
Simbol Fungsi
7 SMOD
Serial baudrate modify bit. Bernilai 1, program akan menggandakan timer 1 sebagai baudrate pada mode 1,2 dan 3.
Bernilai 0, untuk menggunakan baudrate timer 1. 6-4
- Tidak digunakan
3 GF1
General purpose user flag bit 1 2
GF0 General purpose user flag bit 0
1 PD
Power down bit. Beri nilai 1, untuk masuk konfigurasi power down
IDL Idle mode bit. Beri nilai 1, jika ingin masuk konfigurasi mode
idle
13
f. Operasi Interupsi Interupsi adalah kondisi yang memaksa mikrokontroler menghentikan sementara eksekusi
program utama untuk mengeksekusi interupsi rutin tertentu Interrupt Service Routine ISR. Setelah melaksanakan ISR secara lengkap, maka mikrokontroler akan kembali melanjutkan
eksekusi program utama yang tadi ditinggalkan. Pada mikrokontroler AT89S51, terdapat 6 sumber interupsi yaitu System reset, External 0,
Timer 0, External 1, Timer 1, Serial Port. Untuk mengatur kerja interupsi dapat dilakukan pengaturan pada register Interrupt Enable IE dan Interrupt Priority IP.
Tabel 10. Register IE Atmel Datasheet Bit
Simbol Fungsi
7 EA
Enable Interrupts bit. Beri nilai 1, untuk mengaktifkan interrupt sesuai enable bit interrupt terkait.
6 -
Tidak digunakan 5
ET2 Penggunaan pada 8052
4 ES
Enable serial port interrupt. Beri nilai 1 untuk mengaktifkan interrupt
3 ET1
Enable timer1 overflow interrupt. Beri nilai 1 untuk mengaktifkan interrupt
2 EX1
Enable external1 interrupt. Beri nilai 1 untuk mengaktifkan interrupt INT1
1 ET0
Enable timer0 overflow interrupt. Beri nilai 1 untuk mengaktifkan interrupt
EX0 Enable external0 interrupt. Beri nilai 1 untuk mengaktifkan interrupt INT0
Tabel 11. Register IP Atmel Datasheet Bit
Simbol Fungsi
7-6 -
Tidak digunakan 5
PT2 Penggunaan pada 8052
4 PS
Prioritas interrupt untuk serial port 3
PT1 Prioritas interrupt untuk timer1 overflow
2 PX1
Prioritas interrupt untuk external1 1
PT0 Prioritas interrupt untuk timer0 overflow
PX0 Prioritas interrupt untuk external0
2.5.2 DTHiQ USB ISP Flash Programmer Merupakan salah satu perangkat keras yang digunakan untuk membaca, menulis, dan
menghapus memori flash yang ada pada mikrokontroler AT89S51. 2.5.3 Embedded Module Series EMS
EMS 30 A H-Bridge merupakan driver H-Bridge berbasis VNH3SP30 yang didisain untuk menghasilkan drive 2 arah dengan arus kontinyu sampai dengan 30 A pada tegangan 5,5 Volt sampai
36 Volt . Modul ini dilengkapi dengan rangkaian sensor arus beban yang dapat digunakan sebagai
14
umpan balik ke pengendali. Modul ini mampu menngelola beban-beban induktif seperti relay, solenoid, motor DC, motor stepper, dan berbagai macam beban lainnya.
Gambar 6. Modul EMS H-Bridge 30 A Modul ini terdiri dari 1 driver full H-Bridge beserta rangkaian current sensor, mampu
melewatkan arus kontinyu 30 A, berinterval tegangan output untuk beban antara 5,5 V sampai 36 V, input kompatibel dengan level tegangan TTL dan CMOS, jalur catu daya input VCC terpisah dari
jalur catu daya untuk bebean V Mot, output tri-state, frekuensi PWM sampai dengan 20KHz, fault detection, proteksi hubungan singkat, proteksi overtemperature, undervoltage dan overvoltage
shutdown, reverse battery protection. a. Driver Motor Transistor
Motor DC biasanya dikontrol menggunakan konfigurasi transistor yang dikenal dengan istilah H-Bridge. Konfigurasi ini biasanya menggunakan 4 buah transistor NPN atau dua transistor
NPN dan dua transistor PNP.
Gambar 7. Konfigurasi H-Bridge Gambar 5 menunjukkan konfigurasi transistor NPN yang digunakan sebagai pengontrol
motor DC. Arus yang mengalir ke motor DC polaritasnya dapat diatur dengan memberikan logika ke transistor Q1 sampai Q4. Pengaturannya seperti pada tabel kebenaran pada tabel 12. Transistor
Q1 dan Q2 atau Q3 dan Q4 tidak diperbolehkan kondidi keduanya dalam keadaan high karena akan menyebabkan short circuit terhadap baterai.
b. IC Driver Motor VNH3SP30 merupakan salah satu IC Integrated Circuit yang dapat digunakan sebagai
driver motor DC. IC ini menggunakan prinsip kerja H-Bridge. Tiap H-Bridge dikontrol menggunakan level tegangan TTL yang berasal dari output mikrokontroler. IC ini hanya dapat
15
mengendalikan 1 buah motor DC. Kelebihan dari IC ini adalah dapat melewatkan arus kontinyu sampai dengan 30A dan tegangan maksimum sampai dengan 36 Volt.
Tabel 12. Tabel Kebenaran konfigurasi H-Bridge Maju
Mundur Stop
Q1 1
Q2 1
Q3 1
Q4 1
Pengaturan kecepatan motor DC dilakukan dengan cara pengontrolan lama pulsa aktif metode PWM
– Pulse Width Modulation yang dikirimkan ke rangkaian driver motor oleh modul kendali motor. Duty cycle PWM yang dikirimkan menentukan kecepatan putar motor DC.
Gambar 8. Integrated Circuit VNH30SP30 2.5.4 Modulasi Lebar Pulsa PWM
Buldan 2006 menyebutkan bahwa PWM digunakan untuk mengatur kecepatan motor DC sesuai dengan yang diinginkan oleh penggunanya. Dalam PWM gelombang kotak, frekuensi tinggi
dibangkitkan sebagai output digital. Sebagai contoh, sebuah port bit secara kontinyu melakukan kegiatan saklar on dan off pada frekuensi yang relatif tinggi. Selanjutnya, bila sinyal diumpankan pada
Low Pass Filter LPF, tegangan pada output filter akan sama dengan Root Mean Square RMS dari sinyal gelombang kotak.Tegangan RMS inilah yang dapat divariasikan dengan mengubah duty cycle
dari sinyal. Duty cycle menyatakan fraksi waktu sinyal pada keadaan logika high dalam satu siklus. Satu
siklus diawali oleh transisi low to high dari sinyal dan berakhir pada transisi berikutnya. Selama satu siklus, jika waktu sinyal pada keadaan high sama dengan low maka dinyatakan sinyal mempunyai
duty cycle 50. Duty cycle 20 menyatakan sinyal berada pada logika 1 selama 15 dari waktu total. Gambar 7 memberikan ilustrasi dari duty cycle yang dimaksud.
Pada sistem kontrol dengan PWM perlu ditambahkan speed encoder sebagai umpan balik dari sistem. kecepatan rotasi dari sebuah motor listrik bergantung pada tingkat pengulangan dan waktu
switching dari relay penghubung dengan asumsi beban motor adalah konstan. Dengan kondisi tersebut, sistem akan menemukan keseimbangan antara kecepatan putaran motor dan beban motor.
Akan tetapi, jika beban motor berubah maka kecepatan motor akan terpengaruh. Hal ini tidak terjadi pada sistem dengan umpan balik Krokar, 2008.
16
Gambar 9. Duty cycle 30 2.5.5 Catu Daya
Catu daya memiliki peranan yang sangat penting dalam perancangan elektronika. Modul- modul elektronik tidak dapat berfungsi tanpa bagian ini. Sama halnya jika penggunaan catu daya yang
tidak tepat, modul tidak akan bekerja sebagaimana mestinya. Menurut Buldan 2006, Penentuan sistem catu daya yang akan digunakan ditentukan oleh
banyak faktor, diantaranya: a. Tegangan
Setiap modul sensor atau aktuator tidak memiliki tegangan yang sama. Hal ini akan berpengaruh terhadap desain catu daya. Tegangan tertinggi dari salah satu modul sensor atau
actuator akan menentukan nilai tegangan catu daya. b. Arus
Arus memiliki satuan Ah Ampere-hour. Semakin besar Ah, semakin lama daya tahan baterai bila digunakan pada beban yang sama.
c. Teknologi Baterai Baterai isi ulang ada yang dapat diisi hanya apabila benar-benar kosong, dan ada pula yang
dapat diisi ulang kapan saja tanpa harus menunggu baterai benar-benar kosong.
2.6 Perangkat Lunak Software