5 BAB II TINJAUAN PUSTAKA 2.1 Mikrokontroller 2.1.1 Pengertian Mikrokontroller

Teks penuh

(1)

5 BAB II

TINJAUAN PUSTAKA

2.1 Mikrokontroller

2.1.1 Pengertian Mikrokontroller

Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM, memori program, atau keduanya), dan perlengkapan input output. Dengan kata lain, mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis data. Sekedar contoh, bayangkan diri Anda saat mulai belajar membaca dan menulis, ketika Anda sudah bisa melakukan hal itu Anda bisa membaca tulisan apapun baik buku, cerpen, artikel dan sebagainya, dan Andapun bisa pula menulis hal-hal sebaliknya. Begitu pula jika Anda sudah mahir membaca dan menulis data maka Anda dapat membuat program untuk membuat suatu sistem pengaturan otomatik menggunakan mikrokontroler sesuai keinginan Anda. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatanelektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem elektronik yangsebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini.

(2)

Dengan penggunaan mikrokontroler ini maka :  Sistem elektronik akan menjadi lebih ringkas

 Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari sistem adalah perangkat lunak yang mudah dimodifikasi

 Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak Agar sebuah mikrokontroler dapat berfungsi, maka mikrokontroler tersebut memerlukan komponen eksternal yang kemudian disebut dengan sistem minimum. Untuk membuat sistem minimal paling tidak dibutuhkan sistem clock dan reset, walaupun pada beberapa mikrokontroler sudah menyediakan sistem clock internal, sehingga tanpa rangkaian eksternal pun mikrokontroler sudah beroperasi. Yang dimaksud dengan sistem minimal adalah sebuah rangkaian mikrokontroler yang sudah dapat digunakan untuk menjalankan sebuah aplikasi. Sebuah IC mikrokontroler tidakakan berarti bila hanya berdiri sendiri. Pada dasarnya sebuah sistem minimal mikrokontroler AVR memiliki prinsip yang sama.

2.1.2 Fitur AVR ATMega328

ATMega328 adalah mikrokontroller keluaran dari atmel yang mempunyai arsitektur RISC (Reduce Instruction Set Computer) yang dimana setiap proses eksekusi data lebih cepat dari pada arsitektur CISC (Completed Instruction Set Computer).

Mikrokontroller ini memiliki beberapa fitur antara lain :

 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock.

 32 x 8-bit register serba guna.

 Kecepatan mencapai 16 MIPS dengan clock 16 MHz.

 32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2 KB dari flash memori sebagai bootloader.

(3)

 Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width Modulation) output.

 Master / Slave SPI Serial interface.

Mikrokontroller ATmega 328 memiliki arsitektur Harvard, yaitu memisahkan memori untuk kode program dan memori untuk data sehingga dapat memaksimalkan kerja dan parallelism. Instruksi – instruksi dalam memori program dieksekusi dalam satu alur tunggal, dimana pada saat satu instruksi dikerjakan instruksi berikutnya sudah diambil dari memori program. Konsep inilah yang memungkinkan instruksi – instruksi dapat dieksekusi dalam setiap satu siklus clock. 32 x 8-bit register serba guna digunakan untuk mendukung operasi pada ALU ( Arithmatic Logic unit ) yang dapat dilakukan dalam satu siklus. 6 dari register serbaguna ini dapat digunakan sebagai 3 buah register pointer 16-bit pada mode pengalamatan tidak langsung untuk mengambil data pada ruang memori data. Ketiga register pointer 16-bit ini disebut dengan register X ( gabungan R26 dan R27 ), register Y ( gabungan R28 dan R29 ), dan register Z ( gabungan R30 dan R31 ). Hampir semua instruksi AVR memiliki format 16-bit.

(4)

2.1.3 Arsitektur dan Konfigurasi Pin ATMega 328

Gambar 2.1(a) berikut ini adalah gambar arsitektur dari ATMega 328 dan Gambar 2.1(b) adalah gambar konfigurasi Pin ATMega328

(a)

(b)

(5)

2.1.4 Fungsi tiap Pin pada ATMega328

ATMega 328 memiliki 3 buah Port I/O dan fungsinya dapat dilihat pada tabel 2.1 – 2.3 . (Universitas Sumatera Utara,2013:1-7)

Tabel 2.1 Fungsi Pin Port B

Port Pin Alternate Functions

PB7 XTAL2 (Chip Clock Oscilator pin 2)

TOSC2 (Timer Oscilator pin 2) PCINT7 (Pin Chane Interrupt 7)

PB6 XTAL1 (Chip Clock Oscilator pin 1 or External Clock Input)

TOSC1 (Timer Oscilator pin 1) PCINT7 (Pin Chane Interrupt 6)

PB5 SCK (SPI Bus Master Clock Input)

PCINT5 (Pin Change Interrupt 5)

PB4 MISO (SPI Bus Master Input/Slave Output)

PCINT4 (Pin Change Interrupt 4)

PB3 MOSI (SPI Bus Master Input/Slave Output)

OC2A (Timer/Counter2 Output Compare Match A Output) PCINT3 (Pin Change Interrupt 3)

PB2 ̅̅̅ (SPI Bus Master Slave select)

OC1B ( Timer/Counter1 Output Compare Match B Output) PCINT2 (Pin Change Interrupt 2)

PB1 OC1A (Timer/Counter2 Output Compare Match A Output)

PCINT1 (Pin Change Interrupt 1)

PB0 ICP1 (Timer/Counter1 Input Capture Input)

CLKO(Divided System Clock Output) PCINT1 (Pin Change Interrupt 0)

Tabel 2.2 Fungsi Pin Port C Port Pin Alternate Functions

PC6 ̅̅̅̅̅̅̅̅̅ (Reset Point)

PCINT14 (Pin Change Interrupt 14)

PC5 ADC5 ( ADC Input Channel 5)

SCL (2-Wire Serial Bus Clock Line) PCINT13(Pin Change Interrupt13)

PC4 ADC4 ( ADC Input Channel 4)

(6)

Tabel 2.3 Fungsi Pin Port D Port Pin Alternate Functions

PD7 AIN1 ( Analog Comparator Negative Input)

PCINT23 (Pin Change Interrupt23)

PD6 AIN0 ( Analog Comparator Negative Input)

OC0A (Timer/Counter0 Output Compare Match A Output) PCINT22 (Pin Change Interrupt22)

PD5 T1 (Timer/Counter 1 External Counter Input)

OC0B (Timer/Counter0 Output Compare Match B Output) PCINT21 (Pin Change Interrupt21)

PD4 XCK (USART External Clock Input/Output)

T0(Timer/Counter 0 External Counter Input)

PD3 INT1 (External Interrupt 1 Input)

OC2B(Timer/Counter2 Output Compare Match B Output) PCINT19 (Pin Change Interrupt 19)

P2 INT0 (External Interrupt 0 Input)

PCINT18 (Pin Change Interrupt 18)

PD1 TXD (USART Output Pin)

PCINT17 (Pin Change Interrupt 17)

PD0 RXD (USART Input Pin)

PCINT16 (Pin Change Interrupt 16)

2.2 Arduino Uno

2.2.1 Pengertian Arduino Uno

Arduino adalah sebuah board mikrokontroller yang berbasis ATmega328. Arduino memiliki 14 pin input/output yang mana 6 pin dapat digunakan sebagai output PWM, 6 analog input, crystal osilator 16 MHz, koneksi USB, jack power, kepala ICSP, dan tombol reset. Arduino mampu men-support mikrokontroller; dapat dikoneksikan dengan komputer menggunakan kabel USB. Gambar 2.2 berikut adalah gambar mikrokontroller Arduino Uno.

(7)

Apakah arduino? Arduino adalah merupakan sebuah board minimum system mikrokontroler yang bersifat open source. Didalam rangkaian board arduino terdapat mikrokontroler AVR seri ATMega 328 yang merupakan produk dari Atmel.

Arduino memiliki kelebihan tersendiri disbanding board mikrokontroler yang lain selain bersifat open source, arduino juga mempunyai bahasa pemrogramanya sendiri yang berupa bahasa C. Selain itu dalam board arduino sendiri sudah terdapat loader yang berupa USB sehingga memudahkan kita ketika kita memprogram mikrokontroler didalam arduino.

Sedangkan pada kebanyakan board mikrokontroler yang lain yang masih membutuhkan rangkaian loader terpisah untuk memasukkan program ketika kita memprogram mikrokontroler. Port USB tersebut selain untuk loader ketika memprogram, bisa juga difungsikan sebagai port komunikasi serial. Arduino menyediakan 20 pin I/O, yang terdiri dari 6 pin input analog dan 14 pin digital input/output. Untuk 6 pin analog sendiri bisa juga difungsikan sebagai output digital jika diperlukan output digital tambahan selain 14 pin yang sudah tersedia. Untuk mengubah pin analog menjadi digital cukup mengubah konfigurasi pin pada program. Dalam board kita bisa lihat pin digital diberi keterangan 0-13, jadi untuk menggunakan pin analog menjadi output digital, pin analog yang pada keterangan board 5 kita ubah menjadi pin 14-19. dengan kata lain pin analog 0-5 berfungsi juga sebagi pin output digital 14-16. Sifat open source arduino juga banyak memberikan keuntungan tersendiri untuk kita dalam menggunakan board ini, karena dengan sifat open source komponen yang kita pakai tidak hanya tergantung pada satumerek, namun memungkinkan kita bisa memakai semua komponen yang ada dipasaran. Bahasa pemrograman arduino merupakan bahasa C yang sudah disederhanakan syntax bahasa pemrogramannya sehingga mempermudah kita dalam mempelajari dan mendalami mikrokontroler.

2.2.2 Keunggulan board Arduino Uno Revision 3

(8)

AVR yang beroperasi pada tegangan kerja 5V dan Arduino Due tegangan operasi 3.3V

 Rangkaian RESET yang lebih mantap.

 Penerapan ATmega 16U2 pengganti 8U2.

Bahasa "UNO" berasal dari bahasa Italia yang artinya SATU, ditandai dengan peluncuran pertama Arduino 1.0, Uno pada versi 1.0 sebagai referensi untuk Arduino yang selanjutnya, seri Uno versi terbaru dilengkapi USB. Berikut spesifikasi Arduino Uno

 Mikrokontroller : ATmega328  Tegangan Kerja : 5V

 Tegangan Masukan(saran) : 7-12V  Tegangan Masukan(batas) : 6-20V

 Pin-Pin Digital I/O : 14 Pin (6 Pin output PWM)  Pin Input Analog : 6 Pin

 Arus DC per pin I/O : 40mA

 Arus DC per pin I/O : 50mA Untuk pin 3.3 V

Flash Memory : 32KB,0,5 KB untuk Bootloader

SRAM : 2KB (ATmega328)

EEPROM : 1KB (ATmega328)

Clock Speed : 16 MHz

 Panjang : 68,6 mm

(9)

Gambar 2.3 berikut adalah gambar print out diagram Pin Arduino Uno R3 dengan menggunakan mikrokontroller ATMega328 beserta keterangannya

(10)

2.2.3 Power

Arduino dapat diberikan power melalui koneksi USB atau power supply.

Powernya diselek secara otomatis. Power supply dapat menggunakan adaptor DC

atau baterai. Adaptor dapat dikoneksikan dengan mencolok jack adaptor pada koneksi port input supply. Board Arduino dapat dioperasikan menggunakan supply dari luar sebesar 6 - 20 volt. Jika supply kurang dari 7V, kadangkala pin 5V akan menyuplai kurang dari 5 volt dan board bisa menjadi tidak stabil. Jika menggunakan lebih dari 12 V, tegangan di regulator bisa menjadi sangat panas dan menyebabkan kerusakan pada board. Rekomendasi tegangan ada pada 7 sampai 12 volt. Gambar 2.4 berikut adalah gambar port power supply dari Arduino Uno.

Gambar 2.4 Port Power Supply Arduino

Penjelasan pada pin power adalah sebagai berikut : 2.2.3.1Pin Vin

Tegangan input ke board arduino ketika menggunakan tegangan dari luar (seperti yang disebutkan 5 volt dari koneksi USB atau tegangan yang diregulasikan). Pengguna dapat memberikan tegangan melalui pin ini, atau jika tegangan suplai menggunakan power jack, aksesnya menggunakan pin ini. 2.2.3.2Pin 5V

Regulasi power supply digunakan untuk power mikrokontroller dan komponen lainnya pada board. 5V dapat melalui Vin menggunakan regulator pada board, atau supply oleh USB atau supply regulasi 5V lainnya.

2.2.3.3Pin 3V3

(11)

2.2.3.4Pin Ground

Berfungsi sebagai jalur ground pada arduino IOREF. Pin ini penyedia referensi tengangan agar mikrokontrol beroperasi dengan baik. Memilih sumber daya yang tepat atau mengaktifkan penerjemah tegangan pada output untuk bekerja dengan 5V atau 3.3V.

2.2.4 Memory

ATmega328 memiliki 32 KB flash memori untuk menyimpan kode, juga 2 KB yang digunakan untuk bootloader. ATmega328 memiliki 2 KB untuk SRAM dan 1 KB untuk EEPROM

2.2.5 Input dan Output

Masing-masing dari 14 pin UNO dapat digunakan sebagai input atau output, menggunakan perintah fungsi pinMode(), digitalWrite(), dan digitalRead() yang menggunakan tegangan operasi 5 volt. Tiap pin dapat menerima arus maksimal hingga 40mA dan resistor internal pull-up antara 20-50kohm, beberapa pin memiliki fungsi kekhususan antara lain:

2.2.5.1Serial: Pin 0 (RX) dan Pin 1 (TX)

Sebagai penerima (RX) dan pemancar (TX) TTL serial data. Pin ini terkoneksi untuk pin korespondensi chip ATmega8U2 USB-toTTL Serial.

2.2.5.2 External Interrupts: Pin 2 dan Pin 3

Pin ini berfungsi sebagai konfigurasi trigger saat interupsi value low, naik, dan tepi, atau nilai value yang berubah-ubah.

2.2.5.3PWM: Pin 3, 5, 6, 9, 10, dan Pin 11

Melayani output 8-bit PWM dengan fungsi analogWrite(). 2.2.5.4SPI: Pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).

Pin yang support komunikasi SPI menggunakan SPI library. 2.2.5.5LED: Pin 13

Terdapat LED indikator bawaan (built-in) dihubungkan ke digital pin 13, ketika nilai value HIGH led akan ON, saat value LOW led akan OFF.

(12)

dari jarak yang digunakan oleh pin AREF dengan fungsi analog Reference(). (Maulana, 2014:16)

2.3 Motor DC

2.3.1 Pengertian Motor DC

Motor DC adalah motor listrik yang memerlukan suplai tegangan arus searah pada kumparan medan untuk diubah menjadi energy gerak mekanik. Kumparan medan pada motor DC disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar). Motor arus searah, sebagai namanya, menggunakan arus langsung dan tidak langsung (direct-undirectional). Motor DC memiliki 3 bagian atau komponen utama untuk dapat berputar. Gambar 2.5 berikut adalah gambar simbol motor DC.

Gambar 2.5 Simbol Motor DC

Adapun ketiga komponen-komponen yang terdapat pada motor DC adalah sebagai berikut:

 Kutub medan

Motor DC sederhana memiliki dua kutub medan: kutub utara dan kutub selatan. Garis magnetik energi membesar melintasi ruang terbuka diantara kutub-kutub dari utara ke selatan. Untuk motor yang lebih besar atau lebih komplek terdapat satu atau lebih elektromagnet.

Current Elektromagnet atau Dinamo

(13)

Commutator

Komponen ini terutama ditemukan dalam motor DC. Kegunaannya adalah untuk transmisi arus antara dinamo dan sumber daya.

Keuntungan utama motor DC adalah sebagai pengendali kecepatan, yang tidak mempengaruhi kualitas pasokan daya. Motor ini dapat dikendalikan dengan mengatur:

 Tegangan dynamo : meningkatkan tegangan dinamo akan meningkatkan kecepatan

 Arus medan : menurunkan arus medan akan meningkatkan kecepatan.(Irawan,Wanda,2014:5-7)

2.3.2 Jenis-jenis Motor DC 2.3.2.1Motor DC Lilitan Seri

Pada motor lilitan seri (seri-wound motor), lilitan armatur dan lilitan medan dibuat seri sehingga torsi awal motor menjadi sangat besar contohnya adalah motor starter mobil. Torsi terbesar terjadi pada saat beban sangat besar dan motor tidak dapat bergerak. Torsi maksimum ini disebut Torsi diam (Stall Torque). Beberapa sistem pengaturan dirancang untuk menggerakkan motor pada

kondisi stall torsi misal untuk membuat penggerak lengan robot dari posisi diam. Karena posisi diam membutuhkan torsi yang sangat besar. Gambar 2.6 berikut ini adalah gambar rangkaian dari motor DC lilitan Seri.

(a) (b)

Gambar 2.6 a. Motor DC Lilitan Seri Dipasang normal b. Motor DC Lilitan Seri Dipasang Terbalik

(14)

Gambar 2.7 Grafik Arus Motor DC Terhadap Torsi

2.3.2.2Motor DC Lilitan Shunt

Pada Motor lilitan shunt (shunt-wound motor), lilitan armatur dan lilitan medan dihubungkan secara paralel akibatnya arus medan tidak berpengaruh pada perubahan arus suplai dan hanya terpengaruh oleh tegangan suplai. Shunt-wound motor digunakan untuk keperluan dengan laju yang relatif konstan misalnya pada

kipas angin, blower, ban berjalan (conveyer belt).

Motor lilitan shunt memiliki stall torque dan no-load speed yang rendah dibandingkan motor lilitan seri. Gambar 2.8 berikut adalah gambar rangkaian motor DC lilitan Shunt

(a) (b)

Gambar 2.8 a. Rangkaian Motor DC Lilitan Shunt normal

b. Rangkaian Motor DC lilitan Shunt Dipasang Terbalik

2.3.2.3 Motor lilitan gabungan

Motor lilitan gabungan menggabungkan kelebihan dari seri dan shunt motor. Jenis ini ada dua yaitu short shunt dan long shunt. Lilitan seri membuat motor memiliki torsi awal yang besar, setelah berjalan CEMF mengurangi tegangan pada lilitan seri sehingga lilitan shunt lebih dominan dan terjadi self-regulation speed yang menyebabkan laju putar motor menjadi konstan. Gambar

(15)

(a) (b)

Gambar 2.9 a. Rangkaian Motor DC Lilitan Gabungan Shunt Pendek b. Rangkaian Motor DC Lilitan Gabungan Shunt Panjang

2.4 Driver Motor DC

Terdapat beberapa rangkaian untuk mengatur laju putar motor. Sebenarnya penggunaan istilah pengaturan laju kurang tepat karena yang diubah adalah energi listrik menjadi torsi, sedangkan laju ditentukan oleh torsi dan bebannya.

Terdapat dua teknik untuk menggerakan (drive) motor yang pertama disebut analog drive yaitu suatu rangkaian interfacing yang digunakan untuk memperkuat sinyal dari pengatur (controller) agar cukup untuk menggerakkan motor. Biasanya berupa Linear Power Amplifier. Sedangkan teknik kedua adalah untuk menggerakan motor adalah Pulse-width modulation (PWM). Pada teknik ini daya disuplai ke motor dalam bentuk pulsa DC dengan tegangan yang tetap. Lebar pulsa divariasikan untuk mengatur laju motor, semakin besar lebar pulsa maka semakin besar laju rata-rata motor. Frekuensi pulsa sangat besar sehingga membuat motor berputar secara halus.

2.4.1 Pengaturan Motor Dc Menggunakan Penggerak Analog

Sistem penggerak analog berupa linier power amplifier yang ditempatkan diantara pengatur dan motor. Biasanya berupa penguat arus sedangkan tegangan keluaran boleh lebih kecil atau lebih besar dari tegangan input motor.

(16)

Gambar 2.10 a. Driver Motor DC Common Emitter b. Driver Motor DC Common Collector

Cara kerja kedua rangkaian penggerak ini adalah sama, saat tegangan basis (VB) naik melampau tegangan maka forward-bias ransistor akan on dan membiarkan arus collector mengalir. Arus collector 30 – 100 kali lebih besar dari arus basis tergantung dari gain transistor (hfe). Saat transistor on arus collector ditentukan oleh VB. Tetapi amplifier kelas A sangat tidak efisien saat transistor on penuh arus collector mengalir sepenuhnya tetapi saat transistor setengah

menyala (half-on) menyebabkan arus collector yang mengalir menjadi setengah juga. Half-on terjadi karena panas yang ditimbulkan oleh transistor menyebabkan dayanya berkurang.

Penggerak analog lainnya adalah Power IC, Darlington Power Transistor dan Mosfet Power. Power IC Driver berupa paket amplifier DC dengan arus output yang relatif besar, misalnya LM12.

2.4.2 Pengaturan Motor DC Menggunakan Pulse-Width Modulation

Pulse-Width Modulation (PWM) memiliki cara yang sangat berbeda dalam

(17)

Gambar 2.11 Gelombang PWM

Pada laju terendah daya mensuplai ¼ dari waktu siklus (cycle time). Frekuensi dari pulsa diatur untuk mengatasi inersia (kelembaban) motor sehingga motor berputar dengan laju yang konstan. Pada 50% duty cycle motor berputar dengan laju setengah penuh. Rangkaian PWM bisa juga berupa rangkaian penggerak analog seperti rangkaian power transistor, power Darlington, Power

MOSFET dan POWER IC. IC Allegro A3952 sangat cocok untuk digunakan

sebagai PWM Driver Motor.

Tetapi agar tidak menyulitkan prosesor untuk menghasilkan sinyal perulangan ini biasanya digunakan IC khusus atau dengan Rangkaian pengatur waktu yang telah dipasang di dalam mikroprosesor .

(18)

(a) (b) Gambar 2.12 a. Rangkaian pengatur PWM

b. Gelombang yang dihasilkan rangkaian gambar (a)

2.5 Motor Servo

2.5.1 Pengetian Motor Servo

Motor servo adalah sebuah motor dengan sistem closed feedback di mana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor ini terdiri dari sebuah motor, serangkaian gear, potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor.

Motor servo biasanya hanya bergerak mencapai sudut tertentu saja dan tidak kontinyu seperti motor DC maupun motor stepper. Walau demikian, untuk beberapa keperluan tertentu, motor servo dapat dimodifikasi agar bergerak kontinyu. Pada robot, motor ini sering digunakan untuk bagian kaki, lengan atau bagianbagian lain yang mempunyai gerakan terbatas dan membutuhkan torsi cukup besar.

Gambar 2.13 dibawah ini adalah gambar motor servo yang umum dipakai.

(19)

2.5.2 Keunggulan Motor Servo

Keunggulan dari penggunaan motor servo adalah :  Tidak bergetar dan tidak ber-resonansi saat beroperasi.

 Daya yang dihasilkan sebanding dengan ukuran dan berat motor.  Penggunaan arus listik sebanding dengan beban yang diberikan.

 Resolusi dan akurasi dapat diubah dengan hanya mengganti encoder yang dipakai.

2.5.3 Kegunaan Motor Servo

Kebanyakan motor servo digunakan sebagai  Manipulators

 Penggerak Kamera  Tangan Robot

2.5.4 Jenis-Jenis Motor Servo 2.5.4.1Motor Servo Standar 180°

Motor servo jenis ini hanya mampu bergerak dua arah (CW dan CCW) dengan defleksi masing-masing sudut mencapai 90° sehingga total defleksi sudut dari kanan – tengah – kiri adalah 180°. Gambar 2.14 merupakan gambar contoh motor servo yang bergerak 180o

2.5.4.2Motor Servo Continuous

Motor servo jenis ini mampu bergerak dua arah (CW dan CCW) tanpa batasan defleksi sudut putar (dapat berputar secara kontinyu).

Gambar 2.14 Motor Servo Standar 180o 2.5.5 Pensinyalan Motor Servo

(20)

Gambar 2.15 Contoh Posisi dan Waktu Pemberian Pulsa

 Motor Servo akan bekerja secara baik jika pada bagian pin kontrolnya diberikan sinyal PWM dengan frekuensi 50Hz.

 Dimana pada saat sinyal dengan frekuensi 50Hz tersebut dicapai pada kondisi Ton duty cycle 1.5ms, maka rotor dari motor akan berhenti tepat di tengah-tengah (sudut 0° / netral).

 Pada saat Ton duty cycle dari sinyal yang diberikan kurang dari 1.5ms, maka rotor akan berputar ke arah kiri dengan membentuk sudut yang besarnya linier terhadap besarnya Ton duty cycle, dan akan bertahan diposisi tersebut.

 Dan sebaliknya, jika Ton duty cycle dari sinyal yang diberikan lebih dari 1.5ms, maka rotor akan berputar ke arah kanan dengan membentuk sudut yang linier pula terhadap besarnya Ton duty cycle, dan bertahan diposisi tersebut.(Iswanto,2008:297-299)

Terlihat pada gambar, bahwa sinyal PWM adalah sinyal digital yang amplitudonya tetap, namun lebar pulsa yang aktif (duty cycle) per periodenya dapat diubah-ubah. Dimana periodenya adalah waktu pulsa high (1) Ton ditambah waktu pulsa low (0) Toff. Atau dapat dijabarkan dengan rumus :

…...(1)

Duty cycle adalah lamanya pulsa high (1) Ton dalam satu perioda. maka besar duty cycle-nya adalah :

(21)

Sehingga

PWM = 255 x D ………(3)

2.6 Kontroller (Gctrl)

Gctrl ini adalah sebuah program open source pada PC yang berfungsi sebagai pengendali kerja Arduino Uno. Gctrl ini memberikan perintah langsung ke Arduino Uno. Perintah tersebut dapat berupa memilih serial port, menambahkan

kecepatan motor atau mengurangi kecepatan motor. Gambar 2.24 berikut ini adalah gambar Interface pada program GCtrl

Gambar 2.16 Interface Kontroller alat PCB

2.7 Inkscape

Inkscape adalah sebuah open-source editor grafis vektor yang mirip

dengan Adobe Illustrator, Corel Draw, Freehand, atau Xara X. Apa yang membuat Inkscape berbeda adalah penggunaan Scalable Vector Graphics (SVG), sebuah berbasis XML standar W3C terbuka, sebagai format asli. Dengan memanfaatkan program Inkscape inilah kita dapat membuat GCode. Gambar 2.25 berikut adalah gambar ikon program Inkscape.

(22)

2.7.1 Pengenalan Menu dan Ikon Pada Inkscape

Setelah menjalankan Inkscape, akan ada tampilan jendela Inkscape. Pada tampilan inilah segala kegiatan desain dilakukan . Gambar 2.26 berikut memperlihatkan tampilan jendela Inkscape dan bagian-bagiannya. (Fadrullah,2014:1)

Gambar 2.18 Jendela Inkscape

2.8 Bahasa Pemrograman Arduino 2.8.1 Struktur Pemrograman

Structure

Structure dasar dari bahasa pemrograman arduino adalah sederhana yang hanya terdiri dari dua bagian.

void setup( ) {

// Statement; }

void loop( ) {

(23)

Dimana setup () bagian untuk inisialisasi yang hanya dijalankan sekali di awal program, sedangkan loop () untuk mengeksekusi bagian program yang akan dijalankan berulang-ulang untuk selamanya.

Setup ( )

Fungsi setup() hanya dipanggil satu kali ketika program pertama kali di jalankan. Ini digunakan untuk pendefinisian mode pin atau memulai komunikasi serial.Fungsi setup() harus diikutsertakan dalam program walaupun tidak ada statement yang di jalankan.

void setup() {

pinMode(13,OUTPUT); // mengset „pin‟ 13 sebagai output }

Loop

Setelah melakukan fungsi setup() maka secara langsung akan melakukan fungsi loop() secara berurutan dan melakukan instruksi-instruksi yang ada dalam fungsi loop().

void loop() {

digitalWrite(13, HIGH);// nyalakan „pin‟ 13 delay(1000);// pause selama 1 detik

digitalWrite(13, LOW);// matikan „pin‟ 13 delay(1000);// pause selama 1 detik

}  Function

(24)

Contoh: int delayVal() {

Int v; // membuat variable „v‟ bertipe integer v = analogRead(pot); // baca harga potentiometer v /= 4; // konversi 0-1023 ke 0-255

return v; // return nilai v }

Pada contoh di atas fungsi tersebut memiliki nilai balikint(integer), karena jika tidak menghendaki adanya nilai balik maka type function harus void.

Kurung Kurawal { }

Curly brace atau Kurung kurawal mendefinisikan awal dan akhir dari

sebuah blok fungsi. Apabila ketika memprogram dan progremer lupa memberi curly brace tutup maka ketika di-compile akan terdapat laporan error.

Titik koma ;

Semicolon atau titik koma harus di berikan pada setiap statement program

yang kita buat ini merupakan pembatas setiap statement program yang di buat  /*...*/ blok comment

Semua statement yang ditulis dalam block comments tidak akan dieksekusi dan tidak akan di compile sehingga tidak mempengaruhi besar program yang dibuat untuk di masukkan dalam board arduino.

Line Comment //

Sama halnya dengan block comments, line comments pun sama hanya saja yang dijadikan komentar adalah perbaris.

2.8.2 Variable Variable

Variable adalah sebuah penyimpan nilai yang dapat di gunakan dalam program.Variable dapat diubah sesuai dengan instruksi yang dibuat. Ketikamendeklarisikan variable harus diikutsertakan type variable serta nilai awal variable.

(25)

Contoh ;

Int inputVariable = 0;

// mendefinisikan sebuah variable bernama inputVariable dengan nilai awal 0

inputVariable = analogRead(2); // menyimpan nilai yang ada di analog pin 2 ke inputVariable global dideklarasikan pada awal program sebelum fungstion setup (). Sebuah variable local dideklarasikan di setiap block function atau di setiap block statement pengulangan dan hanya dapat di gunakan pada block yang bersangkutan saja.

for (int i=0; i<20;) // 'i' hanya dapat di gunakan dalam pengulangan saja

{ i++; }

(26)

2.8.3 Data Type ByteTipe

Byte dapat menyimpan 8-bit nilai angka bilangan asli tanpa koma. Byte memiliki range 0 –255

Byte biteVariable= 180; // mendeklarasikan„biteVariable‟ sebagai type byte

Integer

Integer adalah tipe data yang utama untuk menyimpan nilai bilangan bulat tanpa koma. Penyimpanan integer sebesar 16bit dengan range 32.767 sampai -32.768.

Int integerVariable = 1600; // mendeklarasikan „integerVariable‟ sebagai type integer

Long

Perluasan ukuran untuk long integer, penyimpanan long integer sebesar 32-bit dengan range 2.147.483.647 sampai -2.147.483.648

Long longVariable = 500000; // mendeklarasikan „longVariable‟ sebagai type long

Float

Float adalah tipe data yang dapat menampung nilai decimal, float merupakan penyimpan yang lebih besar dari integer dan dapat menyimpan sebesar 32-bit dengan range 3.4028235E+38 sampai -3.4028235E+38

Float floatVariable = 3.14; // mendeklarasikan „floatVariable‟ sebagai type float

Array

Array adalah kumpulan nilai yang dapat di akses dengan index number, nilai yang terdapat dalam array dapat di panggil dengan cara menuliskan nama array dan index number. Array dengan index 0 merupakan nilai pertama dari array. Array perlu di deklarasikan dan kalau perlu di beri nilai sebelum digunakan.

(27)

Int arraySaya[] = {2,4,6,8,10}

x = arraySaya[5]; // x sekarang sama dengan 10 2.8.4 Operator Aritmetic

Aritmetic

Operator aritmatik terdiri dari penjumlahan, pengurangan, pengkalian, dan pembagian.

y = y + 3; x = x -8; i = i * 5; r = r / 9;

Dalam menggunakan operan aritmatik harus hati-hati dalam menentukan tipe data yang digunakan jangan sampai terjadi overflow range data.

Compound Ansignments

Compound assignments merupakan kombinasi dari aritmatic dengan sebuah variable. Ini biasanya dipakai pada pengulangan.

x ++; // sama seperti x = x + 1 atau menaikan nilaix sebesar 1

Statement ini membadingkan dua variable dan apabila terpenuhi akan bernilai 1 atau true. Statement ini banyak digunakan dalam operator bersyarat.

(28)

Logic Operator

Operator logical digunakan untuk membandingkan 2 expresi dan mengembalikan nilai balik benar atau salah tergantung dari operator yang digunakan. Terdapat 3 operator logical AND, OR, dan NOT, yang biasanya

If ( x > 0 || y > 0)// bernilai benar apabila salah satu dari operator pembanding terpenuhi

o Logical NOT

If (!x > 0 )// benilai benar apabila ekspresi operator salah 2.8.5 Konstanta

Arduino mempunyai beberapa variable yang sudah di kenal yang kita sebut konstanta. Ini membuat memprogram lebih mudah untuk di baca. Konstanta di kelasifikasi berdasarkan group.

True/False

Merupakan konstanta Boolean yang mendifinisikan logic level. False mendifinisikan 0 dan True mendifinisikan 1.

If ( b == TRUE ); gunakan ketika membaca dan menulis ke digital pin. HIGH di definisikan sebagai 1 sedangkan LOW sebagai 0.

(29)

Input/Output

Konstanta ini digunakan dengan fungsi pinMode() untuk mendifinisikan mode pin digital, sebagai input atau output

pinMode( 13, OUTPUT ) 2.8.6 Flow Control

If

If Operator, if mengtest sebuah kondisi seperti nilai analog sudah berada dibawah nilai yang kita kehendaki atau belum, apabila terpenuhi maka akan mengeksekusi baris program yang ada dalam brackets kalau tidak terpenuhi maka akan mengabaikan baris program yang ada dalam brackets.

If ( someVariable?? value ) {

//DoSomething; }

If...else

Operator if...else mengtest sebuah kondisi apabila tidak sesuai dengan kondisi yang pertama maka akan mengeksekusi baris program yang ada di else.

If ( inputPin == HIGH )

Operator for digunakan dalam blok pengulangan tertutup.

(30)

//doSomethig; }

While

Operator while akan terus mengulang baris perintah yang ada dalam bracket sampai ekspresi sebagai kondisi pengulangan benilai salah

While ( someVariable?? value ) {

//doSomething; }

Do....while

Sama halnya dengan while() hanya saja pada operator Do...while tidak melakukan pengecekan pada awal tapi di akhir, sehingga otomatis akan melakukan satu kali baris perintah walaupun pada awalnya sudah terpenuhi.

Do {

//doSomething; }

While ( someVariable?? value ); 2.8.7 Digital I/O

Input / Output Digital pada breadboard arduino ada 14, pengalamatnya 0 -13, ada saat tertentu I/O 0 dan 1 tidak bisa di gunakan karena di pakai untuk komunikasi serial, sehingga harus hati-hati dalam pengalokasian I/O.

Pin Mode (Pin, Mode)

Digunakan dalam void setup() untuk mengkonfigurasi pin apakah sebagai Input atau Output. Arduino digital pins secara default di konfigurasi sebagai input sehingga untuk merubahnya harus menggunakan operator pinMode(pin, mode).

(31)

Digital Read (pin)

Membaca nilai dari pin yang kita kehendaki dengan hasil HIGH atau LOW.

Value = digitalRead(pin);// mengset „value‟ sama dengan pin  Digital Write (pin, Value)

Digunakan untuk mengset pin digital. Pin digital arduino mempunyai 14 ( 0 –13 ).

digitalWrite ( pin, HIGH );// set pin to HIGH 2.8.8 Analog I/O

Input / Ouput analog pada breadboard arduino ada 6 pengalamatnya 0 –5  Analog Read (pin)

Membaca nilai pin analog yang memiliki resolusi 10-bit. Fungsi ini hanya dapat bekerja pada analog pin (0-5). Hasil dari pembacaan berupa nilai integer dengan range 0 sampai 1023.

Value = analogRead(pin);// mengset „value‟ sama dengan nilai analog pin  Analog Write (pin, value)

Mengirimkan nilai analog pada pin analog. analogWrite(pin, value);// menulis ke pin analog 2.8.9 Time

Delay (ms)

Menghentikan program untuk sesaat sesuai dengan yang di kehendaki, satuanya dalam millisecond.

Delay(1000);// menunggu selama satu detik  Millis ()

Mengembalikan nilai dalam millisecond dihitung sejak arduino board menyala. Penapungnya harus long integer.

Value = millis();// set „value‟ equal to millis() 2.8.10 Math

Min (x,y)

Membadingkan 2 variable dan akan mengembalikan nilai yang paling kecil.

(32)

// set „value‟ sebagai nilai yang paling kecil dari kedua nilai  Max (x,y)

Max merupakan kebalikan dari min. value = max(value, 100);

//set „value‟ sebagai nilai yang paling besar dari kedua nilai 2.8.11 Serial

Serial.begin (rate)

Statement ini di gunakan untuk mengaktifkan komunikasi serial dan mengset baudrate

void setup() {

Serial.begin(9600);//open serial port and set baudrate 9600 bps  Serial Printing (data)

Figur

Gambar 2.1.  a. Arsitektur ATMega328

Gambar 2.1.

a. Arsitektur ATMega328 p.4
Tabel 2.3 Fungsi Pin Port D

Tabel 2.3

Fungsi Pin Port D p.6
Gambar 2.2  Arduino Uno R3

Gambar 2.2

Arduino Uno R3 p.6
Gambar 2.3 Print Out Diagram Pin Arduino Uno R3

Gambar 2.3

Print Out Diagram Pin Arduino Uno R3 p.9
Gambar 2.4 Port Power Supply Arduino

Gambar 2.4

Port Power Supply Arduino p.10
Gambar 2.6    a. Motor DC Lilitan Seri Dipasang normal

Gambar 2.6

a. Motor DC Lilitan Seri Dipasang normal p.13
Gambar 2.7 Grafik Arus Motor DC Terhadap Torsi

Gambar 2.7

Grafik Arus Motor DC Terhadap Torsi p.14
Gambar 2.8  a. Rangkaian Motor DC Lilitan Shunt normal             b. Rangkaian Motor DC lilitan Shunt Dipasang Terbalik

Gambar 2.8

a. Rangkaian Motor DC Lilitan Shunt normal b. Rangkaian Motor DC lilitan Shunt Dipasang Terbalik p.14
Gambar 2.9 a. Rangkaian Motor DC Lilitan Gabungan Shunt Pendek   b. Rangkaian Motor DC Lilitan Gabungan Shunt Panjang

Gambar 2.9

a. Rangkaian Motor DC Lilitan Gabungan Shunt Pendek b. Rangkaian Motor DC Lilitan Gabungan Shunt Panjang p.15
Gambar 2.10  a. Driver Motor DC Common Emitter     b. Driver Motor DC Common Collector

Gambar 2.10

a. Driver Motor DC Common Emitter b. Driver Motor DC Common Collector p.16
Gambar 2.11 Gelombang PWM

Gambar 2.11

Gelombang PWM p.17
Gambar 2.12 a. Rangkaian pengatur PWM              b. Gelombang yang dihasilkan rangkaian gambar (a)

Gambar 2.12

a. Rangkaian pengatur PWM b. Gelombang yang dihasilkan rangkaian gambar (a) p.18
Gambar 2.13 dibawah ini adalah gambar motor servo yang umum dipakai.

Gambar 2.13

dibawah ini adalah gambar motor servo yang umum dipakai. p.18
Gambar 2.15 Contoh Posisi dan Waktu Pemberian Pulsa

Gambar 2.15

Contoh Posisi dan Waktu Pemberian Pulsa p.20
Gambar 2.16 Interface Kontroller alat PCB

Gambar 2.16

Interface Kontroller alat PCB p.21
Gambar 2.18 Jendela Inkscape

Gambar 2.18

Jendela Inkscape p.22

Referensi

Memperbarui...