Modul Sistem Mikroprosesor [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

DAFTAR ISI



Daftar Isi



ii



1



PENGENALAN ARDUINO



1



2



BASIC ARDUINO I 18 2.1 Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 Teori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3 Prosedur Percobaan . . . . . . . . . . . . . . . . . . . . . . . . . . 19



3



BASIC ARDUINO II 21 3.1 Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2 Teori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3 Prosedur Percobaan . . . . . . . . . . . . . . . . . . . . . . . . . . 24



4



OUTPUT I 27 4.1 Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2 Teori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.3 Prosedur Percobaan . . . . . . . . . . . . . . . . . . . . . . . . . . 29



5



OUTPUT II 33 5.1 Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.2 Teori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.3 Prosedur Percobaan . . . . . . . . . . . . . . . . . . . . . . . . . . 38



6



ADC 44 6.1 Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.2 Teori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.3 Prosedur Percobaan . . . . . . . . . . . . . . . . . . . . . . . . . . 48



7



KOMUNIKASI SERIAL 54 7.1 Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.2 Teori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.3 Prosedur Percobaan . . . . . . . . . . . . . . . . . . . . . . . . . . 58



ii



iii 8



SISTEM MONITORING 65 8.1 Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 8.2 Teori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 8.3 Prosedur Percobaan . . . . . . . . . . . . . . . . . . . . . . . . . . 65



9



KREATIF APLIKASI 71 9.1 Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 9.2 Teori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 9.3 Prosedur Percobaan . . . . . . . . . . . . . . . . . . . . . . . . . . 71



Universitas Islam Negeri Sunan Gunung Djati Bandung



MODUL 1 PENGENALAN ARDUINO • Sistem Mikroprosesor dan Mikrokontroller Sistem mikroprosesor adalah sebuah sistem yang dibangun dari komponen utama yaitu mikroprosesor atau CPU, dan komponen tambahan yaitu Memory Unit, Input Output Unit (I/O), yang berfungsi sebagai pengolah data elektronik digital.



Gambar 1.1: Diagram Sistem Mikroprosesor.



Jadi sistem mikroprosesor merupakan gabungan berbentuk interkoneksi dari CPU, unit memori, dan unit I/O. Secara blok diagram sistem mikroprosesor dapat digambarkan seperti Gambar 1.1. Dari Gambar 1.1. diagram sistem mikroprosesor tersusun dari tiga komponen utama dan tiga komponen pendukung. Keenam komponen pembentuk sistem mikroprosesor adalah sebagai berikut: – Unit mikroprosesor atau Microprocessor Unit ( MPU) atau CPU – Unit memori baca atau Read Only Memory (ROM) – Unit memori baca tulis atau Read Write Memory (RWM) – Unit Input output terprogram atau Programmable Input Output (PIO) – Peralatan input dapat berupa keypad, keyboard, mouse, joystick, scanner, kamera, modem, dan sebagainya. – Peralatan output dapat berupa display LED, monitor, printer, ploter, dan sebagainya. – Unit detak/Clock sebagai penggerak sinkronisasi sistem 1



2 Sampai disini menjadi jelas bahwa sistem mikroprosesor sangat luas jenis dan ragamnya. Sebuah komputer pribadi (personal computer) apakah jenis desktop, laptop, notebook, palmtop adalah sebuah sistem mikroprosesor. Disamping itu peralatan HP, kendali elektronik pompa bensin, pengaturan pencetakan pada mesin fotokopi, kendali lampu lalu lintas dan sebagainya adalah sistem mikroprosesor. Masih banyak lagi sistem-sistem yang menggunakan sistem mikroprosesor terutama sistem kendali otomasi yang memerlukan perhitungan dalam pengambilan keputusan. Di lapangan sistem mikroprosesor banyak digunakan dalam peralatanperalatan komunikasi, komputasi, kendali, peralatan rumah tangga, dan berbagai peralatan lainnya. Lalu bagaimana cara mengenali sistem mikroprosesor itu. Sangat sederhana sebenarnya untuk mengenali sistem mikroprosesor itu. Jika sebuah peralatan menggunakan mikroprosesor, memori, dan I/O beserta program yang bekerja menjalankan fungsi sistem adalah sistem mikroprosesor. Berbagai bentuk peralatan dengan tingkat kecanggihan yang berbeda dan dengan kompleksitas fungsi yang semakin komplek sangat efektif dibangun dari sistem mikroprosesor. Sistem mikroprosesor juga memiliki efisiensi yang tinggi karena ukurannya kecil dan konsumsi dayanya juga kecil. Pada Gambar 1.2 disajikan contoh-contoh sistem mikroprosesor.



Gambar 1.2: Contoh Sistem Mikroprosesor.



Sumber: http://id.wikipidea.org Mikrokontroler Jika kita bicara tentang Mikrokontroler, maka tidak terlepas dari pengertian atau definisi tentang Komputer itu sendiri, mengapa? Ada kesamaan-kesamaan antara Mikrokontroler dengan Komputer (atau Mikrokomputer), antara lain: Universitas Islam Negeri Sunan Gunung Djati Bandung



3 – Sama-sama memiliki unit pengolah pusat atau yang lebih dikenal dengan CPU (Central Processing Unit); – CPU tersebut sama-sama menjalankan program dari suatu lokasi atau tempat, biasanya dari ROM (Read Only Memory)1 atau RAM (Random Access Memory)2 ; – Sama-sama memiliki RAM yang digunakan untuk menyimpan datadata sementara atau yang lebih dikenal dengan variabel-variabel; – Sama-sama memiliki beberapa luaran dan masukan (I/O) yang digunakan untuk melakukan komunikasi timbal-balik dengan dunia luar, melalui sensor (masukan) dan aktuator (luaran), perhatikan bagan yang ditunjukkan pada Gambar 1.3.



Gambar 1.3: Bagan masukan, pemrosesan hingga luaran.



Lantas apa yang membedakan antara Mikrokontroler dengan Komputer atau Mikrokomputer? Mikrokontroler adalah versi mini dan untuk aplikasi khusus dari Mikrokomputer atau Komputer! Berikut daftar kesamaan yang pernah kemukakan sebelumnya dengan menekankan pada perbedaan antara Mikrokontroler dan Mikrokomputer: – CPU pada sebuah Komputer berada eksternal dalam suatu sistem, sampai saat ini kecepatan operasionalnya sudah mencapai lebih dari 2,5 GHz, sedangkan CPU pada Mikrokontroler berada didalam (internal) sebuah chip, kecepatan kerja atau operasionalnya masih cukup rendah, dalam orde MHz (misalnya, 24 MHz, 40 MHz dan lain sebagainya). Kecepatan yang relatif rendah ini sudah mencukupi untuk aplikasi-aplikasi berbasis mikrokontroler. 1 Memori 2 Memori



yang hanya bisa dibaca saja. yang bisa dibaca juga bisa ditulisi.



Universitas Islam Negeri Sunan Gunung Djati Bandung



4 – Jika CPU pada mikrokomputer menjalankan program dalam ROM atau yang lebih dikenal dengan BIOS (Basic I/O System) pada saat awal dihidupkan, kemudian mengambil ataumenjalankan program yang tersimpan dalam hard disk. Sedangkan mikrokontroler sejak awal menjalankan program yang tersimpan dalam ROM internal-nya (bisa berupa Mask ROM atau Flash PEROM atau Flash ROM). Sifat memori program dalam mikrokontroler ini non-volatile, artinya tetap akan tersimpan walaupun tidak diberi catu daya. – RAM pada mikrokomputer bisa mencapai ukuran sekian GByte dan bisa di-upgrade ke ukuran yang lebih besar dan berlokasi di luar CPUnya, sedangkan RAM pada mikrokontroler ada di dalam chip dan kapasitasnya rendah, misalnya 128 byte, 256 byte dan seterusnya dan ukuran yang relatif kecil inipun dirasa cukup untuk aplikasi-aplikasi mikrokontroler. – Luaran dan masukan (I/O) pada mikrokomputer jauh lebih kompleks dibandingkan dengan mikrokontroler, yang jauh lebih sederhana, selain itu, pada mikrokontroler akses keluaran dan masukan bisa per bit. – Jika diamati lebih lanjut, bisa dikatakan bahwa Mikrokomputer atau Komputer merupakan komputer serbaguna atau general purpose computer, bisa dimanfaatkan untuk berbagai macam aplikasi (atau perangkat lunak). Sedangkan mikrokontroler adalah special purpose computer atau komputer untuk tujuan khusus, hanya satu macam aplikasi saja. Perhatikan Gambar 1.4, agar mendapatkan gambaran tentang mikrokontroler lebih jelas.



Gambar 1.4: Diagram Blok mikrokontroler (yang) disederhanakan. Universitas Islam Negeri Sunan Gunung Djati Bandung



5 ALU, Instruction Decoder, Accumulator dan Control Logic, sebagaimana ditunjukkan pada Gambar 1.4, merupakan Otak-nya mikrokontroler yang bersangkutan. Jantungnya berasal dari detak OSC (lihat pada Gambar 1.4 sebelah kiri atas). Sedangkan di sekeliling Otak terdapat berbagai macam periferal seperti SFR (Special Function Register) yang bertugas menyimpan data-data sementara selama proses berlangsung). Instruction Decoder bertugas menerjemahkan setiap instruksi yang ada di dalam Program Memory (hasil dari pemrograman yang kita buat sebelumnya). Hasil penerjemahan tersebut merupakan suatu operasi yang harus dikerjakan oleh ALU (Arithmetic Logic Unit), mungkin dengan bantuan memori sementara Accumulator yang kemudian menghasilkan sinyal-sinyal kontrol ke seluruh periferal yang terkait melalui Control Logic. Memori RAM atau RAM Memory bisa digunakan sebagai tempat penyimpan sementara, sedangkan SFR (Special Function Register) sebagian ada yang langsung berhubungan dengan I/O dari mikrokontroler yang bersangkutan dan sebagian lain berhubungan dengan berbagai macam operasional mikrokontroler. ADC atau Analog to Digital Converter (tidak setiap mikrokontroler memiliki ADC internal), digunakan untuk mengubah data-data analog menjadi digital untuk diolah atau diproses lebih lanjut. Timer atau Counter digunakan sebagai pewaktu atau pencacah, sebagai pewaktu fungsinya seperti sebuah jam digital dan bisa diatur cara kerjanya. Sedangkan pencacah lebih digunakan sebagai penghitung atau pencacah event atau bisa juga digunakan untuk menghitung berapa jumlah pulsa dalam satu detik dan lain sebagainya. Biasanya sebuah mikrokontroler bisa memiliki lebihd dari 1 timer. EEPROM (sama seperti RAM hanya saja tetap akan menyimpan data walaupun tidak mendapatkan sumber listrik/daya) dan port-port I/O untuk masukan/luaran, untuk melakukan komunikasi dengan periferal eksternal mikrokontroler seperti sensor dan aktuator. 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)



Universitas Islam Negeri Sunan Gunung Djati Bandung



6 Berikut ini ringkaskan berbagai macam fitur-fitur untuk Mikrokontroler AVR ATMega328 – 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. – Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 1KB sebagai tempat penyimpanan data semi permanent karena EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan. – Memiliki SRAM (Static Random Access Memory) sebesar 2KB. – Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width Modulation) output. – Master / Slave SPI Serial interface. Diagram Pin dan Diagram Blok Mikrokontroler AVR ATMega328 Pada Gambar 1.5 ditunjukkan diagram pin untuk Mikrokontroler AVR ATMega328 tipe PDIP.



Gambar 1.5: Diagram blok (Konfigurasi Pin ATMega328.



Universitas Islam Negeri Sunan Gunung Djati Bandung



7 Pada Gambar 1.6 ditunjukkan diagram blok untuk Mikrokontroler AVR ATMega328, perhatikan begitu banyaknya fitur-fitur dalam diagram blok tersebut, sebagaimana juga sudah dikutipkan pada bagian sebelumnya.



Gambar 1.6: Diagram blok (Architecture) Mikrokontroler AVR ATMega328.



Penjelasan Singkat Pin-pin pada Mikrokontroler AVR ATMega328



Konfigursi pin ATMega328 dengan kemasan DIP( Dual inline Package ) dapat dijelaskan fungsi dari masing-masing pin ATMega328 sebagai berikut : VCC merupakan pin yang berfungsi sebagi masukan catu daya. GND merupakan pin ground.



Universitas Islam Negeri Sunan Gunung Djati Bandung



8 Tabel 1.1: Konfigurasi Port B



Tabel 1.2: Konfigurasi Port C



Universitas Islam Negeri Sunan Gunung Djati Bandung



9 Tabel 1.3: Konfigurasi Port D



• Arduino Penulisan Program Penulisan program atau biasanya disebut coding ditulis dengan software Arduino dengan downloader Arduino Board Arduinouno mengunakan bahasa C,bahasa C lebih mudah dimengerti. ARDUINO Arduino adalah sebuah board mikrokontroler yang didasarkan pada IC Atmega328 (datasheet ATmega328). Salah satu contoh yang akan dibahas kali ini yaitu arduino uno. Arduino uno mempunyai 14 pin digital input/output (6 di antaranya dapat digunakan sebagai output PWM), 6 input analog, sebuah osilator Kristal 16 MHz, sebuah koneksi USB, sebuah power jack, sebuah ICSP header, dan sebuat tombol reset. Arduino uno memuat semua yang dibutuhkan untuk menunjang mikrokontroler, mudah menghubungkannya ke sebuah computer dengan sebuah kabel USB atau mensuplainya dengan sebuah adaptor AC ke DC atau menggunakan baterai untuk memulainya. Arduino menggunakan pemrograman dengan bahasa C. Berikut ini adalah sedikit penjelasan yang ditujukan kepada anda yang hanya mempunyai sedikit pengalaman pemrograman dan membutuhkan penjelasan singkat mengenai karakter bahasa C dan software Arduino. Untuk penjelasan yang lebih mendalam, web Arduino.cc adalah sumber yang lengkap.



Universitas Islam Negeri Sunan Gunung Djati Bandung



10 Struktur Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada. – void setup( ) {



}



Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya. – void loop( ) {



}



Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan. Syntax Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan. – //(komentar satu baris) Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program. – /* */(komentar banyak baris) Jika punya banyak catatan, maka hal itu dapat dituliskan pada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program. – {



} (kurung kurawal)



Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan). – ;(titk koma) Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan). Variabel Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang digunakan untuk memindahkannya.



Universitas Islam Negeri Sunan Gunung Djati Bandung



11 – int (integer) Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767. – long (long) Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit) dari memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan 2,147,483,647. – boolean (boolean) Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar) atau FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari RAM. – float (float) Digunakan untuk angka desimal (floating point). Memakai 4 byte (32 bit) dari RAM dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38. – char (character) Menyimpan 1 karakter menggunakan kode ASCII (misalnya A = 65). Hanya memakai 1 byte (8 bit) dari RAM. Operator Matematika Operator yang digunakan untuk memanipulasi angka (bekerja seperti matematika yang sederhana). – = Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20). – % Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2). – + Penjumlahan – Pengurangan – * Perkalian



Universitas Islam Negeri Sunan Gunung Djati Bandung



12 – / Pembagian Operator Pembanding Digunakan untuk membandingkan nilai logika. – == Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12 adalah TRUE (benar)) – != Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12 adalah FALSE (salah)) – < Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar)) – > Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah)) Struktur Pengaturan Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan (banyak lagi yang lain dan bisa dicari di internet). 1. if..else, dengan format seperti berikut ini: if (kondisi) { } else if (kondisi) { } else { } Dengan struktur seperti diatas program akan menjalankan kode yang ada di dalam kurung kurawal jika kondisinya TRUE, dan jika tidak (FALSE) Universitas Islam Negeri Sunan Gunung Djati Bandung



13 maka akan diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode pada else yang akan dijalankan. 2. for, dengan format seperti berikut ini: for (int i = 0; i < #pengulangan; i++) { } Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i. Digital 1. pinMode(pin, mode) Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa digunakan adalah INPUT atau OUTPUT. 2. digitalWrite(pin, value) Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground). 3. digitalRead(pin) Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground). Analog Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi di dalam alam analog (menggunakan trik). Berikut ini cara untuk menghadapi hal yang bukan digital. 1. analogWrite(pin, value) Beberapa pin pada Arduino mendukung PWM (pulse width modulation) yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup (on)atau mati (off) dengan sangat cepat sehingga membuatnya dapat berfungsi layaknya keluaran analog. Value (nilai) pada format kode tersebut adalah angka antara 0 ( 0% duty cycle 0V) dan 255 (100% duty cycle 5V).



Universitas Islam Negeri Sunan Gunung Djati Bandung



14 2. analogRead(pin) Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024 (untuk 5 volts). Penulisan Coding Penulisan coding menggunakan bahasa C seperti yang dijelaskan sebelumnya,berikut ini gambar codding yang sudah ditulis menggunakan bahasa C pada software Arduino. // send an intro: Serial.println("\n\nString length():"); Serial.println(); } void loop() { // add any incoming characters to the String: while (Serial.available() > 0) { char inChar = Serial.read(); txtMsg += inChar; } // print the message and a notice if it’s changed: if (txtMsg.length() != lastStringLength) { Serial.println(txtMsg); Serial.println(txtMsg.length()); // if the String’s longer than 140 characters, complain: if (txtMsg.length() < 140) { Serial.println("That’s a perfectly acceptable text message"); } else { Serial.println("That’s too long for a text message."); } // note the length for next time through the loop: lastStringLength = txtMsg.length(); } } Instalasi IDE Untuk mulai memprogram, dibutuhkan IDE Arduino. Langsung saja download versi terbaru dari Arduino.cc. Download sesuai dengan OS yang akan Universitas Islam Negeri Sunan Gunung Djati Bandung



15 digunakan. Pada modul ini digunakan windows dan IDE versi 1.0.5. Ekstrak hasil download, dan ada akan mendapatkan folder arduino-1.0.5, kemudian double-click arduino.exe untuk mulai melakukan penginstallan. Berikut penampakan IDE Arduino:



Pada gambar diatas, terdapat, beberapa tombol yang mempunyai fungsi sebagai berikut: Verify: Cek error dan lakukan kompilasi kode



Upload: Upload kode anda ke board/kontroler. Asumsi bahwa board dan serial port telah disetting dengan benar. New: Membuat aplikasi baru. Universitas Islam Negeri Sunan Gunung Djati Bandung



16



Open: Buka proyek yang telah ada atau dari contohcontoh/examples.



Save: Simpan proyek anda.



Serial Monitor: Membuka serial port monitor untuk melihat feedback/umpan balik dari board anda. Proses kerja Arduino ialah melakukan pemrograman pada IDE, compile, dan upload binary/hex file ke kontroler. Berbeda dengan Processing yang kode hasil compile langsung dijalankan di komputer, kode hasil compile Arduino harus diupload ke kontroler sehingga dapat dijalankan Install USB drivers Untuk menjalankan Arduino, pertama-tama hubungkan USB cable yang terpasang pada board Arduino ke PC. Ketika pertama kali dihubungkan, maka akan muncul kotak dialog Add New Hardware wizard, kemudian arahkan folder driver kedalam drivers/FTDI USB Drivers yang terdapat pada folder Arduino berada.



Setelah melakukan install drivers, maka kamu telah siap untuk menguplod program yang akan dibuat ke dalam mikrokontroler Arduino. Insert libraries Dalam beberapa kondisi, nantinya kadangkala diperlukan libraries tambahan Universitas Islam Negeri Sunan Gunung Djati Bandung



17 apabila libraries yang telah ada tidak mencukupi project yang akan dibuat. Berikut cara menambahkan libraries ke dalam IDE Arduino. 1. Copy files libraries yang telah di download 2. Letakkan pada folder libraries yang terdapat di dalam folder Arduino 3. Jalankan ulang software Arduino IDE Pada contoh dibawah ialah menambahkan libraries keypad ke dalam libraries yang sebelumnya telah ada kemudian menjalankan ulang software IDE Arduino.



Universitas Islam Negeri Sunan Gunung Djati Bandung



MODUL 2 BASIC ARDUINO I 2.1



Tujuan



1. Memahami rangkaian mikrokontroler Arduino untuk menyalakan dan mematikan LED. 2. Memahami Pemograman Arduino untuk menyalakan dan mematikan LED. 3. Memahami pembuatan Program waktu tunda (delay)



2.2



Teori



LED Light Emitting Diode (LED) Led adalah salah satu jenis diode yang dapat menghasilkan cahaya. Led dapat menghasilkan cahaya berbagai macam warna tergantung dari jenisnya. Warna yang umum dihasilkan adalah merah, kuning, hijau, biru atau ungu, dan putih. Sama halnya dengan diode led mempunyai 2 kaki yaitu kaki anoda yang dihubungkan dengan tegangan positif dan kaki katoda yang dihubungkan dengan tegangan negatif. Untuk lebih mudah menghafalkannya sering digunakan singkatan KNAP (katoda negatif anoda positif). Adapun kaki dan simbol led dapat dilihat pada Gambar 10. Arus maksimum yang dapat diterima oleh Led adalah sekitar 20 mA (miliampere).



Gambar 2.1: Simbol dan kaki led.



Pada aplikasi mikrokontroler yang digunakan kaki anoda dihubungkan dengan tegangan Vcc, dan kaki katoda dihubungkan dengan port mikrokontroler. Skema 18



19 rangkaian aplikasi led diperlihatkan pada Gambar 10. Port X merupakan simbol Port yang bersangkutan, seperti Port A, Port B, Port C, ataupun Port D.



Gambar 2.2: Skema rangkaian led pada sistem mikrokontroler.



2.3



Prosedur Percobaan



1. Skematik



2. Alat dan Bahan • 1 unit komputer dengan dilengkapi software Arduino. • 1 unit modul hadware mikrokontroler Arduino dengan USB. • 1 buah LED. • 1 buah resistor 220ohm. 3. Langkah Percobaan (a) Hubungkan modul aplikasi Led pada Digital PIN 13 Arduino dengan kabel data. (b) Bukalah program Arduino (c) Buatlah project baru dengan ketentuan PIN 13 sebagai output. Universitas Islam Negeri Sunan Gunung Djati Bandung



20 (d) Beri nama project ini Praktek-led. (e) Ketiklah program sebagai berikut. int led1 = 13; // lampu LED pada pin 13 arduino void setup(){ pinMode(led1, OUTPUT); //pin13 sebagai output } void loop(){ digitalWrite(led1, HIGH); //led on delay(1000); // jeda 1 detik digitalWrite(led1, LOW); //led of delay(1000); //jeda 1 detik } (f) Simpan, compile dan upload program tersebut. Perhatikan informasi yang disampaikan. 4. Hasil Percobaan (a) Amati yang terjadi pada modul hardware. (b) Apa yang terjadi pada Led jika delay dihilangkan? (c) Gantilah delay dengan waktu 3000ms. Apa yang terjadi dengan Led? (d) Gantilah posisi LED pada digital pin 13 menjadi 9.Apa yang terjadi dengan Led? 5. Tugas dan Pertanyaan (a) Apakah perbedaan common anode dan common katode? (b) Sebutkan keunggulan common anode dibandingkan dengan common katode dalam aplikasi led! (c) Apakah perbedaan satuan ms dan us dalam aplikasi ini?



Universitas Islam Negeri Sunan Gunung Djati Bandung



MODUL 3 BASIC ARDUINO II 3.1



Tujuan



1. mengenal dan memahami perangkat keluaran dan masukan digital. 2. Memahami rangkaian mikrokontroler Arduino untuk interface dengan saklar. 3. Memahami Pemograman Arduino untuk mengambil data dari saklar dan mengeluarkan data ke LED dan relay. 4. Memahami pembuatan Program waktu tunda (delay)



3.2



Teori



pushbutton (Saklar) Tombol push button merupakan rangkaian saklar yang berfungsi untuk menyambung dan memutus rangkaian. Yang membedakan tombol ini dengan tombol saklar biasa (toggle) adalah fungsinya yang tidak bersifat tetap. Hal ini menyebabkan keadaan akan menjadi kembali ke keadaan semula jika tombol sudah tidak ditekan. Ada dua jenis tombol ini, yaitu yang secara normal (tidak diapaapakan) adalah dalam keadaan terbuka/tidak tersambung (normally open) dan yang secara noemal kondisi saklar dalam keadaan tersambung/tertutup (normally close). Gambar 17 menunjukkan bentuk fisik dan simbol saklar NO serta NC.



Gambar 3.1: Bentuk fisik dan Simbol tombol push button NO-NC.



RELAY Relay adalah komponen elektronika berupa saklar elektronik yang digerakkan oleh arus listrik. Secara prinsip, relay merupakan tuas saklar dengan lilitan kawat pada batang besi ( solenoid ) di dekatnya. Ketika solenoid di aliri arus listrik, tuas akan



21



22 tertarik karena adanya gaya magnet yang terjadi pada solenoid sehingga kontak saklar akan menutup. Pada saat arus dihentikan, gaya magnet akan hilang, tuas akan kembali ke posisi semula dan kontak saklar kembali terbuka.Relay biasanya digunakan untuk menggerakkan arus / tegangan yang besar ( misalnya peralatan listrik 4 ampere AC 220 V ) dengan memakai arus / tegangan yang kecil ( misalnya 0.1 ampere 12 Volt DC ). Relay yang paling sederhana ialah relay elektromekanis yang memberikan pergerakan mekanis saat mendapatkan energi listrik. Secara sederhana relay elektromekanis ini didefinisikan sebagai berikut : 1. Alat yang menggunakan gaya elektromagnetik untuk menutup ( atau membuka ) kontak saklar. 2. Saklar yang digerakkan ( secara mekanis ) oleh daya/energi listrik. Dalam pemakaiannya biasanya relay yang digerakkan dengan arus DC dilengkapi dengan sebuah dioda yang di-paralel dengan lilitannya dan dipasang terbalik yaitu anoda pada tegangan (-) dan katoda pada tegangan (+). Ini bertujuan untuk mengantisipasi sentakan listrik yang terjadi pada saat relay berganti posisi dari on ke off agar tidak merusak komponen di sekitarnya. Konfigurasi dari kontak-kontak relay ada tiga jenis, yaitu: 1. Normally Open (NO), apabila kontak-kontak tertutup saat relay dicatu 2. Normally Closed (NC), apabila kontak-kontak terbuka saat relay dicatu. Change Over (CO), relay mempunyai kontak tengah yang normal tertutup, tetapi ketika relay dicatu kontak tengah tersebut akan membuat hubungan dengan kontakkontak yang lain.



Universitas Islam Negeri Sunan Gunung Djati Bandung



23



Gambar 3.2: Struktur Relay.



Penggunaan relay perlu memperhatikan tegangan pengontrolnya serta kekuatan relay men-switch arus / tegangan. Biasanya ukurannya tertera pada body relay. Misalnya relay 12 VDC/4 A 220V, artinya tegangan yang diperlukan sebagai pengontrolnya adalah 12 Volt DC dan mampu men-switch arus listrik (maksimal) sebesar 4 ampere pada tegangan 220 Volt. Sebaiknya relay difungsikan 80% saja dari kemampuan maksimalnya agar aman, lebih rendah lagi lebih aman.Relay jenis lain ada yang namanya reedswitch atau relay lidi. Relay jenis ini berupa batang kontak terbuat dari besi pada tabung kaca kecil yang dililitin kawat. Pada saat lilitan kawat di aliri arus, kontak besi tersebut akan menjadi magnet dan saling menempel sehingga menjadi saklar yang (ON). Ketika arus pada lilitan dihentikan medan magnet hilang dan kontak kembali terbuka (OFF). Prinsip Kerja Relay Relay terdiri dari Coil dan Contact. Coil adalah gulungan kawat yang mendapat arus listrik, sedang contact adalah sejenis saklar yang pergerakannya tergantung dari ada tidaknya arus listrik dicoil. Contact ada dua jenis : Normally Open (kondisi awal sebelum diaktifkan open), dan Normally Closed (kondisi awal sebelum diaktifkan close). Secara sederhana berikut ini prinsip kerja dari relay : ketika Coil mendapat energi listrik (energized), akan timbul gaya elektromagnet yang akan menarik armature yang berpegas, dan contact akan menutup.



Universitas Islam Negeri Sunan Gunung Djati Bandung



24



Gambar 3.3: Relay AC-DC.



Gambar 3.4: a. Tampak bagian dalam relay b.Scematik Symbol.



3.3



Prosedur Percobaan



1. Skematik



Universitas Islam Negeri Sunan Gunung Djati Bandung



25



2. Alat dan Bahan • 1 unit komputer dengan dilengkapi software Arduino • 1 unit modul hadware mikrokontroler Arduino • 1 buah LED dan Resistor 220ohm/330ohm • 1 buah Relay • 1 buah Pushbutton 3. Langkah Percobaan (a) Hubungkan modul LED dengan Digital Pin 13, Push Botton dengan Digital Pin 7. (b) Bukalah program Arduino. (c) Buatlah project baru dengan ketentuan LED dengan Digital Pin 13, Push Botton sebagai Input. (d) Beri nama project ini Praktek-button (e) Ketiklah program sebagai berikut: int buttonPin = 7; //pin signal-modul switch dihubungkan ke pin 7 arduino int ledPin = 13; // lampu LED pada pin 13 arduino int buttonState=0; //nama variable status switch void setup(){ pinMode(buttonPin, INPUT);//tombol tekan (button) sebagai input Universitas Islam Negeri Sunan Gunung Djati Bandung



26 pinMode(ledPin, OUTPUT); //pin13 sebagai output } void loop(){ buttonState = digitalRead(buttonPin); //membaca nilai tombol tekan (sensor digital) if (buttonState == HIGH){ digitalWrite(ledPin, HIGH); //led on } else { digitalWrite(ledPin, LOW); //led of } } (f) Simpan, compile dan upload program tersebut. Perhatikan informasi yang disampaikan. 4. Hasil Percobaan (a) Amatilah jika push button tidak ditekan apa yang akan muncul pada LED? (b) Amatilah jika push button ditekan apa yang terjadi pada LED? (c) Jelaskan kenapa terjadi hal demikian ! 5. Tugas dan Pertanyaan (a) Modifikasi program agar LED menyala sema 10s dan mati 5s. (b) Jelaskan program yang anda buat ! (c) hubungkan relay pada pin digital 13 untuk menyalakan lampu.



Universitas Islam Negeri Sunan Gunung Djati Bandung



MODUL 4 OUTPUT I 4.1



Tujuan



1. Memahami rangkaian mikrokontroler Arduino untuk buzzer, dan seven segment. 2. Memahami Pemograman Arduino untuk buzzer, dan seven segment.



4.2



Teori



Buzzer Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hampir sama dengan loud speaker, jadi buzzer juga terdiri dari kumparan yang terpasang pada diafragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar, tergantung dari arah arus dan polaritas magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan diafragma secara bolak-balik sehingga membuat udara bergetar yang akan menghasilkan suara. Buzzer biasa digunakan sebagai indikator bahwa proses telah selesai atau terjadi suatu kesalahan pada sebuah alat (alarm).



Gambar 4.1: Bentuk fisik buzzer.



Seven Segment (7-segment) 27



28 Seven-segment adalah gabungan lampu Led yang membentuk suatu angka desimal. Sesuai dengan namanya maka alat ini terdiri atas 7 ruas yang menjadi satu kesatuan. Akan tetapi seringkali seven-segment sendiri terdiri atas 8 lampu Led karena dilengkapi dengan tanda titik (dp=dot-point). Ada 2 jenis seven-segment yang umum yaitu common anode dan common catode. Pada praktikum ini digunakan common anode karena seven segment ini relatif lebih mudah didapatkan di pasaran. Gambar 4.2 menunjukkan skema rangkaian seven-segment yang dihubungkan dengan port mikrokontroler. Untuk bentuk-bentuk angka yang dihasilkan oleh seven-segment ditunjukkan pada Gambar 4.3. Angka-angka yang dihasilkan adalah berdasarkan pada kombinasi logika pada tiap-tiap kaki sevensegment. Rangkuman angka biner dan heksadesimal ditunjukkan pada Tabel 4.1.



Gambar 4.2: Skema rangkaian seven-segment common anode.



Gambar 4.3: Skema rangkaian seven-segment common anode.



Universitas Islam Negeri Sunan Gunung Djati Bandung



29 Tabel 4.1: Kombinasi logika untuk tampilan seven-segment



4.3



Prosedur Percobaan



1. Skematik (a) buzzer



Gambar 4.4: Buzzer dengan Arduino.



(b) seven segmen



Gambar 4.5: Buzzer dengan Arduino.



Universitas Islam Negeri Sunan Gunung Djati Bandung



30 2. Alat dan Bahan • 1 unit komputer dengan dilengkapi software Arduino • 1 unit modul hadware mikrokontroler Arduino • 1 buah Buzzer • 1 Buah seven segment 3. Langkah Percobaan • Buzzer



(a) Hubungkan modul Buzzer pada Digital Pin 9 Arduino dengan kabel data. (b) Bukalah program Arduino (c) Buatlah project baru dengan ketentuan Pin 9 sebagai output. (d) Beri nama project ini Praktek-buzzer. (e) Ketiklah program sebagai berikut: int buzz = 9; // Buzzer kutub positiv (+) di pin 9 void setup(){ pinMode(buzz, OUTPUT); //pin9 sebagai output } void loop(){ digitalWrite(buzz, HIGH); delay(1000); // jeda 1 detik digitalWrite(buzz, LOW); delay(1000); //jeda 1 detik } (f) Simpan, compile dan upload program tersebut. Perhatikan informasi yang disampaikan. • Seven Segmen (a) Hubungkan modul seven Segment pada Digital Pin 2,3,4,5,6,7,8,9 Arduino dengan kabel data. (b) Bukalah program Arduino (c) Buatlah project baru dengan ketentuan Pin 2,3,4,5,6,7,8,9 sebagai output. (d) Beri nama project ini Praktek-7segment. Universitas Islam Negeri Sunan Gunung Djati Bandung



31 (e) Ketiklah program sebagai berikut: void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); // pinMode(9, OUTPUT); // digitalWrite(9, 0); // start with the "dot" off Serial.begin(9600); } void loop() { // write ’0’ Serial.println("0\n"); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 0); digitalWrite(5, 0); digitalWrite(6, 0); digitalWrite(7, 0); digitalWrite(8, 1); delay(500); // write ’2’ Serial.println("2\n"); digitalWrite(2, 0); digitalWrite(3, 0); digitalWrite(4, 1); digitalWrite(5, 0); digitalWrite(6, 0); digitalWrite(7, 1); digitalWrite(8, 0); delay(500); // write ’3’ Serial.println("3\n"); digitalWrite(2, 0);



Universitas Islam Negeri Sunan Gunung Djati Bandung



32 digitalWrite(3, digitalWrite(4, digitalWrite(5, digitalWrite(6, digitalWrite(7, digitalWrite(8, delay(500); }



0); 0); 0); 1); 1); 0);



(f) Simpan, compile dan upload program tersebut. Perhatikan informasi yang disampaikan. 4. Hasil Percobaan (a) Amatilah hasil output dari buzzer, apa yang terjadi? (b) Amatilah hasil tampilan seven segment, apa yang terjadi? 5. Tugas dan Pertanyaan • buzzer Buatlah program untuk nada lagu untuk buzzer. • seven segmen



(a) Modifikasi program agar menghitung naik sampai dengan angka 4 (b) Modifikasi program agar menghitung turun dari angka 9 sampai dengan 0 (c) Modifikasi program agar tampilan menghitung dari 0 ke 9 secara berulang-ulang. (d) Jelaskan maksud program Praktek-buzzer dan Praktek-7segment.



Universitas Islam Negeri Sunan Gunung Djati Bandung



MODUL 5 OUTPUT II 5.1



Tujuan



1. Memahami rangkaian mikrokontroler Arduino untuk LCD, Motor DC dan Motor stepper, dan Driver Motor H-Bright. 2. Memahami Pemograman Arduino untuk LCD, Motor DC dan Motor stepper, dan Driver Motor H-Bright. 3. Memahami Penggunaan Librari Arduino untuk LCD, Motor DC dan Motor stepper, dan Driver Motor H-Bright.



5.2



Teori



LCD (Liquid Crystal Display) LCD merupakan perangkat output yang sering digunakan dalam dunia elektronik. Teknologi terkini untuk keperluan output sebagian besar sudah menggunakan LCD. Baik untuk keperluan televisi, layar ponsel, osiloskop, serta keperluan lain. Bentuk LCD ada berbagai macam baik mulai dari layar lebar, layar sedang, maupun layar kecil. Untuk aplikasi dipraktikum ini digunakan LCD 16x2. Maksudnya adalah LCD ini mempunyai 16 kolom dan 2 baris. LCD ini dapat digunakan dengan tegangan + 5 volt. Gambar 5.1 menunjukkan LCD 16x2.



Gambar 5.1: Modul LCD 16x2.



Adapun fitur yang disajikan dalam LCD ini adalah : 1. Terdiri dari 16 karakter dan 2 baris. 2. Mempunyai 192 karakter tersimpan. 33



34 3. Terdapat karakter generator terprogram. 4. Dapat dialamati dengan mode 4-bit dan 8-bit. 5. Dilengkapi dengan back light. Tabel 5.1: Deskripsi Pin LCD



Cara kerja LCD (Liquid Crystal Display) Pada aplikasi umumnya RW diberi logika rendah 0. Bus data terdiri dari 4-bit atau 8-bit. Jika jalur data 4-bit maka yang digunakan ialah DB4 sampai dengan DB7. Sebagaimana terlihat pada table diskripsi, interface LCD merupakan sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang 8-bit dikirim ke LCD secara 4-bit atau 8 bit pada satu waktu. Jika mode 4-bit yang digunakan, maka 2 nibble data dikirim untuk membuat sepenuhnya 8-bit (pertama dikirim 4-bit MSB lalu 4-bit LSB dengan pulsa clock EN setiap nibblenya). Jalur kontrol EN digunakan untuk memberitahu LCD bahwa mikrokontroller mengirimkan data ke LCD. Untuk mengirim data ke LCD program harus menset EN ke kondisi high 1 dan kemudian menset dua jalur kontrol lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus. Saat jalur lainnya sudah siap, EN harus diset ke 0 dan tunggu beberapa saat (tergantung pada datasheet Universitas Islam Negeri Sunan Gunung Djati Bandung



35 LCD), dan set EN kembali ke high 1. Ketika jalur RS berada dalam kondisi low 0, data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau instruksi khusus (seperti bersihkan layar, posisi kursor dan lain-lain). Ketika RS dalam kondisi high atau 1, data yang dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Misal, untuk menampilkan huruf A pada layar maka RS harus diset ke 1. Jalur kontrol R/W harus berada dalam kondisi low (0) saat informasi pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high 1, maka program akan melakukan query (pembacaan) data dari LCD. Instruksi pembacaan hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan instruksi penulisan. Jadi hampir setiap aplikasi yang menggunakan LCD, R/W selalu diset ke 0. Jalur data dapat terdiri 4 atau 8 jalur (tergantung mode yang dipilih pengguna), DB0, DB1, DB2, DB3, DB4, DB5, DB6 dan DB7. Mengirim data secara parallel baik 4-bit atau 8-bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan mode operasi merupakan hal yang paling penting. Mode 8-bit sangat baik digunakan ketika kecepatan menjadi keutamaan dalam sebuah aplikasi dan setidaknya minimal tersedia 11 pin I/O (3 pin untuk kontrol, 8 pin untuk data).Sedangkan mode 4 bit minimal hanya membutuhkan 7-bit (3 pin untuk kontrol, 4 pin untuk data). Bit RS digunakan untuk memilih apakah data atau instruksi yang akan ditransfer antara mikrokontroller dan LCD. Jika bit ini di set (RS = 1), maka byte pada posisi kursor LCD saat itu dapat dibaca atau ditulis. Jika bit ini di reset (RS = 0), merupakan instruksi yang dikirim ke LCD atau status eksekusi dari instruksi terakhir yang dibaca. Motor DC Piranti elektronik yang dapat mengubah energi listrik menjadi energi mekanik/gerak disebut dengan motor. Jenis motor ada 2 yaitu motor AC dan motor DC. Motor DC mempunyai keunggulan dibandingkan dengan motor AC disisi kemudahan pengendaliannya. Motor ini dapat diubah arah putarannya dengan membalik polaritasnya saja. Kecepatan motor DC dapat diatur salah satunya adalah dengan cara mengatur tegangan yang masuk ke dalamnya. Hal ini sering disebut dengan istilah pulse width modulation (PWM). Bagian motor terdiri atas stator (bagian yang diam) dan bagian rotor (bagian yang berputar). Salah satu jenis motor dan bagianbagiannya ditunjukkan pada Gambar 5.2.



Universitas Islam Negeri Sunan Gunung Djati Bandung



36



Gambar 5.2: Contoh satu jenis motor DC dan bagian-bagiannya.



Driver Motor IC L298 Port-port mikrokontroler dapat difungsikan sebagai input maupun output. Ketika difungsikan sebagai output maka port yang bersangkutan akan menghasilkan suatu arus. Akan tetapi arus yang dihasilkan masih terlalu kecil jika digunakan untuk menggerakkan suatu motor. Oleh karena itu diperlukanlah sebuah driver yang berfungsi memperkuat arus. Driver dapat disusun dengan menggunakan rangkaian H- bridge transistor, mosfet, maupun IC. Salah satu jenis IC driver yang umum dipasaran adalah L298. Gambar 5.3 memperlihatkan IC driver L298 dan fungsi masing-masing pin.



Gambar 5.3: Bentuk fisik dan Susunan pin IC L298.



IC ini mampu dibebani hingga 4A pada tegangan 6V 46V. Dalam L298 terdapat dua rangkaian H-Bridge sehingga mampu mengendalikan 2 motor sekaligus dengan arus beban masing-masing 2 A. Motor Stepper



Gambar 5.4: Blok diagram steper motor.



Stepper motor, baik yang mempunyai magnet permanen dan hybrid mempunyai Universitas Islam Negeri Sunan Gunung Djati Bandung



37 5 atau 6 kabel sebagaimana yang ditunjukkan Gambar 5.4, kedua stepping motor tersebut mempunyai center tap pada dua winding-nya. Pada saat digunakan center tap dari kedua winding tersebut dihubungkan dengan power negatif, dan kedua kabel winding dihubungkan ke power positif untuk membalik arah. Gambar 2.3 menunjukkan bagian motor yang mempunyai magnet permanen maupun hybrid yang bergerak 30 derajat tiap step, dalam hal tersebut perbedaan antara kedua tipe motor ini tidak begitu besar. Winding motor nomor 1 akan didistribusikan antara kutub stator bagian atas dan bawah, sementara winding motor no 2 akan didistribusikan pada kutub bagian kanan dan kiri. Rotor ini bersifat permanen dengan 6 kutub, 3 kiri dan 3 kanan, disusun melingkar. Untuk memperoleh sudut stepping yang lebih akurat, rotor harus mempunyai kutub-kutub yang lebih banyak dan haruslah proporsional. Motor 30 derajat pada Gambar 2.3 adalah design motor permanen yang paling umum. Meskipun untuk stepping sebesar 15 dan 7.5 derajat juga dapat dilakukan. Motor magnet permanen dengan step 1.8 derajat juga bisa dibuat, deimikian juga dengan motor hybrid yang memiliki stepping sebesar 3.6 dan 1.8 dengan ketepatan resolusi stepping sebesar 0.72 juga dapat dibuat. Untuk memutar stepper motor ada beberapa cara sebagai berikut: 1. Half step yaitu dengan menggeser 1 bit baik ke arah kanan ataupun sebaliknya tergantung dari arah putaran yang diinginkan. Contohnya manipulasi bitnya adalah sebagai berikut: 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 kembali



Step 1 Step 2 Step 3 Step 4 ke Step 1



Untuk memutar ke arah yang berlawanan perlu manipulasi bit sebagai berikut: 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 kembali



Step 1 Step 2 Step 3 Step 4 ke Step 1



2. Full step dengan meggeser 2 bit yang saling berdekatan sebanyak 1 pergeseran baik ke arah kanan maupun kiri tergantung putaran motornya. Contoh manipulasi bitnya adalah sebagai berikut: Universitas Islam Negeri Sunan Gunung Djati Bandung



38 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 kembali



Step 1 Step 2 Step 3 Step 4 ke Step 1



Untuk memutar ke arah yang berlawanan perlu manipulasi bit sebagai berikut: 0 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 kembali



5.3



Step 1 Step 2 Step 3 Step 4 ke Step 1



Prosedur Percobaan



1. Skematik dan diagram (a) LCD



Gambar 5.5: pemasangan LCD dengan arduino.



(b) driver motor dengan motor DC



Universitas Islam Negeri Sunan Gunung Djati Bandung



39



Gambar 5.6: pemasangan Driver l298 dengan arduino.



2. Alat dan Bahan • 1 unit komputer dengan dilengkapi software Arduino • 1 unit modul hadware mikrokontroler Arduino • 1 buah LCD • 1 buah Motor DC • 1 buah Motor stepper • driver motor l298 3. Langkah Percobaan • LCD (a) Hubungkan modul LCD dengan Digital Pin 12, 11, 5, 4, 3, 2 mikrokontroler Arduino. (b) Bukalah program Arduino (c) Buatlah project baru dengan ketentuan LCD ke Pin 12, 11, 5, 4, 3, 2. (d) Beri nama project ini Praktek-lcd. (e) Ketiklah program utama sebagai berikut: http://www.arduino.cc/en/Tutorial/LiquidCrystal // include the library code: #include // initialize the library with the numbers of the interface pins Universitas Islam Negeri Sunan Gunung Djati Bandung



40 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // set up the LCD’s number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("hello, world!"); } void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 1); // print the number of seconds since reset: lcd.print(millis()/1000); } (f) Simpan, compile dan upload program tersebut. Perhatikan informasi yang disampaikan. • motor DC (a) Hubungkan modul motor driver dengan Digital Pin 2,3,4,5 mikrokontroler Arduino. (b) Bukalah program Arduino (c) Buatlah project baru dengan ketentuan motor driver ke Pin 2,3,4,5. (d) Beri nama project ini Praktek-motordc (e) Ketiklah program utama sebagai berikut: int int int int



motor1a motor1b motor2a motor2b



= = = =



5; 4; 3; 2;



void setup() { pinMode(motor1a, pinMode(motor1b, pinMode(motor2a, pinMode(motor2b, }



OUTPUT); OUTPUT); OUTPUT); OUTPUT);



Universitas Islam Negeri Sunan Gunung Djati Bandung



41 void loop() { digitalWrite(motor1a, digitalWrite(motor1b, digitalWrite(motor2a, digitalWrite(motor2b,



HIGH); LOW); HIGH); LOW);



} (f) Simpan, compile dan upload program tersebut. Perhatikan informasi yang disampaikan. • motor stepper (a) Hubungkan modul motor driver dengan Digital Pin 2,3,4,5 mikrokontroler Arduino. (b) Bukalah program Arduino (c) Buatlah project baru dengan ketentuan motor driver ke Pin 2,3,4,5. (d) Beri nama project ini Praktek-motorstepper. (e) Ketiklah program utama sebagai berikut: //mendefinisikan l298 int input1 = 5; int input2 = 4; int input3 = 3; int input4 = 2; void setup() { pinMode(input1, pinMode(input2, pinMode(input3, pinMode(input4, }



OUTPUT); OUTPUT); OUTPUT); OUTPUT);



void loop() { //1st Step digitalWrite(input1, HIGH); digitalWrite(input2, LOW); Universitas Islam Negeri Sunan Gunung Djati Bandung



42 digitalWrite(input3, digitalWrite(input4, delay(10); //2nd Step digitalWrite(input1, digitalWrite(input2, digitalWrite(input3, digitalWrite(input4, delay(10); //3rd Step digitalWrite(input1, digitalWrite(input2, digitalWrite(input3, digitalWrite(input4, delay(10); //4th Step digitalWrite(input1, digitalWrite(input2, digitalWrite(input3, digitalWrite(input4, delay(10); }



LOW); HIGH);



LOW); HIGH); LOW); HIGH);



LOW); HIGH); HIGH); LOW);



HIGH); LOW); HIGH); LOW);



(f) Simpan, compile dan upload program tersebut. Perhatikan informasi yang disampaikan. 4. Hasil Percobaan • LCD (a) Apa yang terjadi pada LCD? (b) Buatlah tulisan pada baris pertama LCD: Lab.Tek.Elektro pada LCD baris kedua tulisan: UIN SGD BDG. (c) Amati apa yang terjadi pada LCD dan jelaskan kenapa terjadi hal demikian • motor dc (a) Amati yang terjadi pada motor robot beroda dalam keadaan diangkat dengan tangan. (b) Letakkan robot beroda pada lantai dan amati apa yang terjadi! Universitas Islam Negeri Sunan Gunung Djati Bandung



43 • motor stepper 5. Tugas dan Pertanyaan • LCD (a) Berdasarkan setting pada Arduino sebutkan hubungan pin arduino dengan pin LCD dan motor driver (b) Jelaskan maksud program Praktek-lcd. • driver motor (a) Modifikasilah program agar robot berjalan maju sejauh 100 cm dan kemudian mundur ke tempat semula. (b) Buatlah program agar robot beroda bergerak maju membentuk lintasan persegi dengan panjang sisi 50 cm. (c) Jelaskan maksud program praktek-motordc, prektek-motorstepper.



Universitas Islam Negeri Sunan Gunung Djati Bandung



MODUL 6 ADC 6.1



Tujuan



1. Memahami rangkaian mikrokontroler Arduino untuk mengakses ADC dan menerima input dari sensor Suhu, sensor Cahaya, dan sensor jarak. 2. Memahami Pemograman Arduino untuk untuk mengakses ADC dan menerima input dari sensor Suhu, sensor Cahaya, dan sensor jarak.



6.2



Teori



ADC (Analog to Digital Convertion) ADC berfungsi untuk mengubah signal analog menjadi signal digital, agar komputer dapat membaca signal analog maka diperlukan ADC untuk mengubah signal analog menjadi signal digital. ADC mempunyai input analog maksimal 5 volt, untuk setiap kenaikan bit pada ADC adalah 0,02 volt. sensor LDR Sensor Cahaya LDR (Light Dependent Resistor) adalah salah satu jenis resistor yang dapat mengalami perubahan resistansinya apabila mengalami perubahan penerimaan cahaya. Besarnya nilai hambatan pada Sensor Cahaya LDR (Light Dependent Resistor) tergantung pada besar kecilnya cahaya yang diterima oleh LDR itu sendiri. LDR sering disebut dengan alat atau sensor yang berupa resistor yang peka terhadap cahaya. Biasanya LDR terbuat dari cadmium sulfida yaitu merupakan bahan semikonduktor yang resistansnya berupah-ubah menurut banyaknya cahaya (sinar) yang mengenainya. Resistansi LDR pada tempat yang gelap biasanya mencapai sekitar 10 M, dan ditempat terang LDR mempunyai resistansi yang turun menjadi sekitar 150 . Seperti halnya resistor konvensional, pemasangan LDR dalam suatu rangkaian sama persis seperti pemasangan resistor biasa. Simbol LDR dapat dilihat seperti pada gambar berikut.



44



45



Gambar 6.1: Sensor Cahaya LDR (Light Dependent Resistor)



Karakteristik Sensor Cahaya LDR (Light Dependent Resistor) Sensor Cahaya LDR (Light Dependent Resistor) adalah suatu bentuk komponen yang mempunyai perubahan resistansi yang besarnya tergantung pada cahaya. Karakteristik LDR terdiri dari dua macam yaitu Laju Recovery dan Respon Spektral sebagai berikut : Laju Recovery Sensor Cahaya LDR (Light Dependent Resistor) Bila sebuah Sensor Cahaya LDR (Light Dependent Resistor) dibawa dari suatu ruangan dengan level kekuatan cahaya tertentu ke dalam suatu ruangan yang gelap, maka bisa kita amati bahwa nilai resistansi dari LDR tidak akan segera berubah resistansinya pada keadaan ruangan gelap tersebut. Namun LDR tersebut hanya akan bisa mencapai harga di kegelapan setelah mengalami selang waktu tertentu. Laju recovery meru-pakan suatu ukuran praktis dan suatu ke-naikan nilai resistansi dalam waktu tertentu. Harga ini ditulis dalam K/detik, untuk LDR tipe arus harganya lebih besar dari 200K/detik(selama 20 menit pertama mulai dari level cahaya 100 lux), kecepatan tersebut akan lebih tinggi pada arah sebaliknya, yaitu pindah dari tempat gelap ke tempat terang yang memerlukan waktu kurang dari 10 ms untuk mencapai resistansi yang sesuai den-gan level cahaya 400 lux. Respon Spektral Sensor Cahaya LDR (Light Dependent Resistor) Sensor Cahaya LDR (Light Dependent Resistor) tidak mempunyai sensitivitas yang sama untuk setiap panjang gelombang cahaya yang jatuh padanya (yaitu warna). Bahan yang biasa digunakan sebagai penghantar arus listrik yaitu tembaga, aluminium, baja, emas dan perak. Dari kelima bahan tersebut tembaga merupakan penghantar yang paling banyak, digunakan karena mempunyai daya hantar yang baik (TEDC,1998) Prinsip Kerja Sensor Cahaya LDR (Light Dependent Resistor) Universitas Islam Negeri Sunan Gunung Djati Bandung



46 Resistansi Sensor Cahaya LDR (Light Dependent Resistor) akan berubah seiring den-gan perubahan intensitas cahaya yang mengenainya atau yang ada disekitarnya. Dalam keadaan gelap resistansi LDR seki-tar 10M dan dalam keadaan terang sebesar 1K atau kurang. LDR terbuat dari ba-han semikonduktor seperti kadmium sulfida. Dengan bahan ini energi dari cahaya yang jatuh menyebabkan lebih banyak mua-tan yang dilepas atau arus listrik meningkat. Artinya resistansi bahan telah men-galami penurunan. sensor suhu LM35 IC LM 35 sebagai sensor suhu yang teliti dan terkemas dalam bentuk Integrated Circuit (IC), dimana output tegangan keluaran sangat linear berpadanan dengan perubahan suhu. Sensor ini berfungsi sebagai pengubah dari besaran fisis suhu ke besaran tegangan yang memiliki koefisien sebesar 10 mV /C yang berarti bahwa kenaikan suhu 1 C maka akan terjadi kenaikan tegangan sebesar 10 mV. IC LM 35 ini tidak memerlukan pengkalibrasian atau penyetelan dari luar karena ketelitiannya sampai lebih kurang seperempat derajat celcius pada temperatur ruang. Jangka sensor mulai dari 55C sampai dengan 150C, IC LM35 penggunaannya sangat mudah, difungsikan sebagai kontrol dari indikator tampilan catu daya terbelah. IC LM 35 dapat dialiri arus 60 m A dari supplay sehingga panas yang ditimbulkan sendiri sangat rendah kurang dari 0 C di dalam suhu ruangan.



Gambar 6.2: Bentuk fisik sensor suhu LM 35



LM 35 ialah sensor temperatur paling banyak digunakan untuk praktek, karena selain harganya cukup murah, linearitasnya juga lumayan bagus. LM35 tidak membutuhkan kalibrasi eksternal yang menyediakan akurasi C pada temperatur ruangan dan C pada kisaran -55 C to +150 C. LM35 dimaksudkan untuk beroperasi pada -55 C hingga +150 C, sedangkan LM35C pada -40 C hingga +110 C, dan LM35D pada kisran 0-100C. LM35D juga tersedia pada paket 8 kaki dan paket TO- 220. Universitas Islam Negeri Sunan Gunung Djati Bandung



47 Sensor LM35 umunya akan naik sebesar 10mV setiap kenaikan 1C (300mV pada 30 C). Sensor suhu LM35 berfungsi untuk mengubah besaran fisis yang berupa suhu menjadi besaran elektrik tegangan. Sensor ini memiliki parameter bahwa setiap kenaikan 1C tegangan keluarannya naik sebesar 10mV dengan batas maksimal keluaran sensor adalah 1,5V pada suhu 150C. Pada perancangan kita tentukan keluaran ADC mencapai full scale pada saat suhu 100C, sehingga tegangan keluaran tranduser (10mV/C x 100C) = 1V. Pengukuran secara langsung saat suhu ruang, keluaran LM35 adalah 0,3V (300mV). Tegangan ini diolah dengan mengunakan rangkaian pengkondisi sinyal agar sesuai dangan tahapan masukan ADC. LM35 memiliki kelebihan kelebihan sebagai berikut:



1. Dikalibrasi langsung dalam celsius 2. Memiliki faktor skala linear + 10.0 mV/C 3. Memiliki ketetapan 0,5C pada suhu 25C 4. Jangkauan maksimal suhu antara -55C sampai 150C 5. Cocok untuk aplikasi jarak jauh 6. Harganya cukup murah 7. Bekerja pada tegangan catu daya 4 sampai 30Volt 8. Memiliki arus drain kurang dari 60 uAmp 9. Pemanasan sendiri yang lambat ( low self-heating) 10. 0,08C diudara diam 11. . Ketidaklinearanya hanya sekitar +-0,25C Memiliki Impedansi keluaran yang kecil yaitu 0,1 watt untuk beban 1 mAmp. Sensor suhu tipe LM35 merupakan IC sensor temperatur yang akurat yang tegangan keluarannya linear dalam satuan celcius. Jadi LM35 memiliki kelebihan dibandingkan sensor temperatur linear dalam satuan kelvin, karena tidak memerlukan pembagian dengan konstanta tegangan yang besar dan keluarannya untuk mendapatkan nilai dalam satuan celcius yang tepat. LM35 memiliki impedansi keluaran yang rendah, keluaran yang linear, dan sifat ketepatan dalam pengujian membuat Universitas Islam Negeri Sunan Gunung Djati Bandung



48 proses interface untuk membaca atau mengontrol sirkuit lebuh mudah. Pin V+ dari LM35 dihubungkan kecatu daya, pin GND dihubungkan ke Ground dan pin Voutyang menghasilkan tegangan analog hasil pengindera suhu dihubungkan ke vin (+) dan ADC. sensor ultrasonic PING



Gambar 6.3: Sensor PING



Sensor ultrasonik PING terdiri dari tiga bagian utama yaitu : Transmitter Gelombang Ultrasonik Receiver Gelombang Ultrasonik Rangkaian kontrol Transmitter berfungsi sebagai pemancar gelombang ultrasonik. Gelombang yang dipancarkan memiliki frekuensi 40KHz. Gelombang ini akan dipancarakan dengan kecepatan 344.424m/detik atau 29.034uS per centimeter. Jika didepan terdapat halangan atau objek maka gelombang tersebut akan memantul. Pantulan gelombang akan dideteksi oleh receiver. Rangkaian kontrol akan mendeteksi pantulan gelombang dan menghitung lama waktu saat gelombang dipancarkan dan gelombang terdeteksi pantulannya. Lama waktu pemantulan gelombang ini akan dikonversi menjadi sinyal digital dalam bentuk pulsa. Sinyal inilah yang nantinya diolah oleh mikrokontroler atau mikroprosesor sehingga didapat nilai jarak antara objek dan sensor. Nilai jarak dapat diperoleh melalui rumus berikut ini : Jarak (cm) = Lama Waktu Pantul (uS) / 29.034 / 2 Rumus jarak didapat dari pembagian lama waktu pantul dengan kecepatan gelombang ultrasonik dan dibagi 2 karena pada saat pemantulan terjadi dua kali jarak tempuh antara sensor dengan objek. Yaitu pada saat gelombang dipancarkan dari transmitter ke objek dan pada saat gelombang memantul ke receiver ultrasonik.



6.3



Prosedur Percobaan



1. Skematik



Universitas Islam Negeri Sunan Gunung Djati Bandung



49 (a) sensor cahaya



Gambar 6.4: LDR dengan Arduino.



(b) sensor suhu



Gambar 6.5: Sensor suhu dengan Arduino.



(c) sensor jarak



Gambar 6.6: Sensor PING dengan Arduino.



2. Alat dan Bahan • 1 unit komputer dengan dilengkapi software Arduino • 1 unit modul hadware mikrokontroler Arduino Universitas Islam Negeri Sunan Gunung Djati Bandung



50 • 1 buah LDR • 1 buah LM35 • 1 buah ultrasonic PING 3. Langkah Percobaan • Sensor Cahaya LDR (a) Hubungkan modul LDR dengan Analog Pin 0 mikrokontroler Arduino. (b) Bukalah program Arduino (c) Buatlah project baru dengan ketentuan LDR ke Pin 0 sebagai input. (d) Beri nama project ini Praktek-cahaya (e) Ketiklah program utama sebagai berikut: // Program Lampu otomatis gelap/terang Int sensorPin = 0; // pin signal LDR dihubungkan ke Port Analog 0 Arduino int sensorValue = 0; // variable nilai yg dihasilkan sensor void setup() { Serial.begin(9600); // untuk membaca data pada serial port di layar monitor } void loop() { sensorValue = analogRead(sensorPin); // membaca nilai dari sensor: Serial.println(sensorValue); // menulis nilai sensor di layar monitor } (f) Simpan, compile dan uplad program tersebut. Perhatikan informasi yang disampaikan. (g) buka terminal pada software Arduino. • Sensor suhu LM35 (a) Hubungkan modul LM35 dengan Analog Pin 0 mikrokontroler Arduino. (b) Bukalah program Arduino Universitas Islam Negeri Sunan Gunung Djati Bandung



51 (c) Buatlah project baru dengan ketentuan LM35 ke Pin 0 sebagai input. (d) Beri nama project ini Praktek-suhu. (e) Ketiklah program utama sebagai berikut: int potPin = 0; float temperature = 0; long val = 0; void setup() { Serial.begin(9600); } void loop() { if (Serial.available()) { val = analogRead(potPin); temperature = (5.0 * val * 100.0)/1024.0; Serial.println(temperature); // Serial.println((long)temperature); } delay(1000); } (f) Simpan, compile dan upload program tersebut. Perhatikan informasi yang disampaikan. (g) buka terminal pada software Arduino. • Sensor Jarak PING (a) Hubungkan modul PING dengan digital Pin 7 mikrokontroler Arduino. (b) Bukalah program Arduino (c) Buatlah project baru dengan ketentuan PING ke Pin 7 sebagai sensor. (d) Beri nama project ini Praktek-jarak. (e) Ketiklah program utama sebagai berikut: const int pingPin = 7; void setup() { Serial.begin(9600); Universitas Islam Negeri Sunan Gunung Djati Bandung



52 } void loop() { long duration, cm; pinMode(pingPin, OUTPUT); digitalWrite(pingPin, LOW); delayMicroseconds(2); digitalWrite(pingPin, HIGH); delayMicroseconds(5); digitalWrite(pingPin, LOW); pinMode(pingPin, INPUT); duration = pulseIn(pingPin, HIGH); cm = microsecondsToCentimeters(duration); Serial.print(cm); Serial.print("cm"); Serial.println(); delay(1000); } long microsecondsToCentimeters(long microseconds) { return microseconds / 29 / 2; } (f) Simpan, compile dan upload program tersebut. Perhatikan informasi yang disampaikan. (g) buka terminal pada software Arduino. 4. Hasil Percobaan • Sensor Cahaya (a) Amati sensor Apa yang terjadi pada layar terminal Arduino! (b) Apa yang terjadi pada terminal jika sensor LDR jika di tutup atasnya? • Sensor Suhu (a) Amati sensor Apa yang terjadi pada layar terminal Arduino! (b) Apa yang terjadi pada terminal jika sensor Suhu dimasukan pada air panas dan dinging secara bergantian? • Sensor Jarak (a) Amati sensor jika tidak terhalang oleh benda apapun ! Universitas Islam Negeri Sunan Gunung Djati Bandung



53 (b) Apa yang terjadi pada terminal jika sensor ultrasonik diberi halangan secara maju dan mundur? 5. Tugas dan Pertanyaan (a) Jelaskan maksud program Praktek-cahaya (b) Jelaskan maksud program Praktek-suhu (c) Jelaskan maksud program Praktek-jarak



Universitas Islam Negeri Sunan Gunung Djati Bandung



MODUL 7 KOMUNIKASI SERIAL 7.1



Tujuan



1. Memahami rangkaian mikrokontroler Arduino untuk komunikasi serial dengan PC melalui USB dan Bluetooth HC-05. 2. Memahami Pemograman Arduino untuk komunikasi serial dengan PC melalui USB dan Bluetooth HC-05. 3. Memahami fungsi serial untuk komunikasi antara mikrokontroler dengan komputer atau perangkat lain 4. telekontrol melalui komunikasi Bluetooth.



7.2



Teori



Arduino dilengkapi dengan port serial. Port serial memungkinkan kita mengirim data dalam format serial. Port serial dalam mikrokontroler Arduino memiliki sifat full duplex, yang berarti dapat mengirim dan menerima data secara bersamaan. Baudrate Baudrate menunjukkan laju kecepatan pengiriman data digital secara seri. Laju baudrate sama dengan banyaknya bit yang dikirim setiap detik. Pada Arduino pengiriman secara serial ditentukan oleh Mode yang telah ditentukan. Baudrate yang digunakan juga bersesuaian dengan Mode yang digunakan. Pada Mode baudrate yang digunakan adalah 9600. Definisi Bluetooth Bluetooth adalah teknologi yang memungkinkan dua perangkat yang kompatibel, seperti telepon dan PC untuk berkomunikasi tanpa kabel dan tidak memerlukan koneksi saluran yang terlihat. Teknologi ini memberikan perubahan yang signifikan terhadap peralatan elektronik yang kita gunakan. Jika kita melihat sekeliling kita dimana keyboard dihubungkan pada komputer. Demikian juga halnya dengan printer, mouse, monitor dan lain sebagainya. Semua peralatan itu dihubungkan dengan menggunakan kabel. Akibatnya terjadi masalah banyak kabel yang dibutuhkan di kantor, rumah atau tempat-tempat lainnya. Masalah lain yang ditemui adalah bagaimana menelusuri kabel-kabel yang terpasang jika ada suatu kesalahan atau 54



55 kerusakan. Bluetooth memperbaiki penggunaan teknologi kabel yang cenderung menyulitkan ini dengan cara menghubungkan beberapa peralatan tanpa menggunakan kabel. Bluetooth beroperasi dalam pita frekuensi 2,4 GHz (antara 2.402 GHz sampai 2.480 GHz) yang mampu menyediakan layanan komunikasi data dan suara secara real-time antara host to host bluetooth dengan jarak jangkauan layanan yang terbatas. Bluetooth dapat berupa card yang bentuk dan fungsinya hampir sama dengan card yang digunakan untuk wireless local area network (WLAN) dimana menggunakan frekuensi radio standar IEEE 802.11, hanya saja pada bluetooth mempunyai jangkauan jarak layanan yang lebih pendek dan kemampuan transfer data yang lebih rendah. Pada dasarnya bluetooth diciptakan bukan hanya menggantikan atau menghilangkan penggunaan kabel didalam melakukan pertukaran informasi, tetapi juga mampu menawarkan fitur yang baik untuk teknologi mobile wireless dengan biaya yang relatif rendah, konsumsi daya yang rendah, interoperability yang menjanjikan, mudah dalam pengoperasian dan mampu menyediakan layanan yang bermacammacam. Cara Kerja Bluetooth Terdapat berbagai cara yang berbeda bagaimana peralatan elektronik bisa berkoneksi dengan peralatan lainnya. Sebagai contoh: • Komponen kabel • Kabel listrik • Kabel Eternet • WiFi • Sinyal Infra Merah Ketika anda menggunakan komputer, sistem hiburan atau telepon maka sebagian sistem dari peralatan itu berkomunikasi dengan peralatan elektronik lainnya. Peralatan ini berkomunikasi dengan menggunakan kabel-kabel yang bervariasi, sinyal radio, cahaya infra merah, konektor, dan protokol. Seni menghubungkan sebuah benda dengan benda lainnya menjadi sesuatu yang sangat rumit setiap harinya. Pada artikel ini, kita akan lihat sebuah metode yang menghubungkan alat-alat elektronik, yang dinamakan dengan Bluetooth, yang bisa melakukan proses streamline. Koneksi bluetooth adalah tanpa kabel dan otomatis, dan juga bluetooth memiliki sejumlah fasilitas yang bisa memudahkan kehidupan Universitas Islam Negeri Sunan Gunung Djati Bandung



56 kita,hamper semua alat elektronika sudah memiliki fasilitas bluetooh sebagai media komunikasi. Pengoperasian Bluetooth. Jaringan bluetooth mentransmisikan data melalui gelombang radio. Jaringan ini berkomunikasi pada frekuensi 2,45 gigahertz (antara 2,402 GHz dan 2,480 GHz). Penggunaan frekuensi ini telah disetujui secara internasional untuk penggunaan industri, penelitian, dan medis. Beberapa peralatan yang menggunakan frekuensi ini adalah pembuka garasi, pemonitor bayi, dan telepon tanpa kawat. Proses agar penggunaan bluetooth tidak saling mengganggu antar alat-alat tersebut di atas, adalah sebuah proses yang sangat penting untuk terus dikembangkan. Satu cara agar bluetooth tidak saling mengganggu dengan sistem yang lain adalah dengan mengirim sinyal yang sangat kecil sekitar 1 miliwatt. Sebagai perbandingan, telepon seluler mampu mentransmisikan sinyal sekitar 3 watt. Daya yang kecil ini membatasi jangkauan penggunaan bluetooth, yaitu sekitar 10 meter. Meskipun begitu, tembok rumah anda tidak akan mampu menghentikan laju sinyal bluetooth, sehingga bluetooth bisa membuat peralatan-peralatan di ruangan berbeda mampu dikendalikan dari bagian rumah anda (asalkan rumah anda tidak terlalu besar). Bluetooth bisa berkoneksi dengan delapan alat sekaligus secara bersamaan. Dengan semua alat ini dalam radius 10 meter, anda mungkin berpikir bahwa sinyalnya mungkin akan menumpuk dan mengganggu proses kerja alat-alat itu. Sayangnya tidak, bluetooth menggunakan sebuah teknik yang dinamakan dengan harapan penyebaran spektrum frekuensi yang membuat sebuah alat untuk mentransmisikan data pada frekuensi yang sama dalam waktu yang bersamaan pula. Pada teknik ini, sebuah alat akan menggunakan salah satu dari 79 frekuensi. Pada bluetooth, transmiter mengubah frekuensi 1.600 kali tiap detik, yang berarti lebih banyak alat yang bisa digunakan pada spektrum radio ini. Karena tiap bluetooth mentransmisikan sinyal dengan menggunakan penyebaran spektrum secara otomatis, maka sangat kecil kemungkinan ada dua transmiter yang menggunakan frekuensi sama dalam waktu yang bersamaan. Teknik ini meminimalisir resiko penggunaan telepon yang akan mengganggu paralatan bluetooth, karena semua gangguan pada frekuensi yang sama hanya akan sedikit bergesekan pada satu detik saja. Spesifikasi Bluetooth



Universitas Islam Negeri Sunan Gunung Djati Bandung



57



Gambar 7.1: Bluetooth Module HC-05



• Bluetooth protocal: Bluetooth Specification v2.0+EDR • Frequency: 2.4GHz ISM band • Modulation: GFSK(Gaussian Frequency Shift Keying) • Emission power: ?4dBm, Class 2 • Sensitivity: ?-84dBm at 0.1% BER • Speed: Asynchronous: 2.1Mbps(Max) / 160 kbps, Synchronous: 1Mbps/1Mbps • Security: Authentication and encryption • Profiles: Bluetooth serial port • Power supply: +3.3VDC 50mA • Working temperature: -20C +75C • Dimension: 26.9mm x 13mm x 2.2 mm • Easy adaption on Seeeduino UartSB v2.1



Universitas Islam Negeri Sunan Gunung Djati Bandung



58



7.3



Prosedur Percobaan



1. Skematik dan diagram



Gambar 7.2: BT dengan Arduino.



Gambar 7.3: telekontrol LED dengan BT dan Arduino.



Universitas Islam Negeri Sunan Gunung Djati Bandung



59



Gambar 7.4: telekontrol robot dengan BT dan Arduino.



2. Alat dan Bahan • 1 unit komputer dengan dilengkapi software Arduino • 1 unit modul hadware mikrokontroler Arduino • 4 buah led • 4 buah resistor • 1 buah Bluetooth HC-05 • 1 buah base robot • 1 buah driver l298 • 2 buah motor dc • 1 buah batrai 9v • 1 buah modul power suplay 9v 3. Langkah Percobaan Universitas Islam Negeri Sunan Gunung Djati Bandung



60 • kontrol LED (a) Hubungkan modul LED dengan Digital Pin 2,3,4,5 mikrokontroler Arduino. (b) Hubungkan modul Bluetooth HC-05 dengan D0 dan D1. (c) Bukalah program Arduino (d) Buatlah project baru dengan ketentuan LED ke Pin 2,3,4,5 sebagai output. (e) Beri nama project ini Praktek-BT (f) Ketiklah program utama sebagai berikut: int int int int



led1 led2 led3 led4



= = = =



7; 6; 4; 2;



void setup() { Serial.begin(9600); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); } void loop() { while (Serial.available()>0) { int baca=Serial.read(); if (baca==11) { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, LOW); } else if (baca == 21) { Universitas Islam Negeri Sunan Gunung Djati Bandung



61 digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, LOW); } else if (baca== 41) { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, LOW); } else if (baca==31) { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, LOW); } else { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, LOW); } } } (g) Simpan, compile dan upload program tersebut. (h) Jalankan bluetooth pada hp android (i) jalankan eduinobot.apk di android dan (j) pairing dengan melakukan koneksi diaplikasi android (k) tekan tombol panah di aplikasi android eduinobot.apk (l) Perhatikan informasi yang disampaikan. • kontrol robot (a) Hubungkan modul LED dengan Digital Pin 2,3,4,5 mikrokontroler Arduino. Universitas Islam Negeri Sunan Gunung Djati Bandung



62 (b) Hubungkan modul Bluetooth HC-05 dengan D0 dan D1. (c) Bukalah program Arduino (d) Buatlah project baru dengan ketentuan LED ke Pin 2,3,4,5 sebagai output. (e) Beri nama project ini Praktek-BT (f) Ketiklah program utama sebagai berikut: int int int int



motor1a motor1b motor2a motor2b



= = = =



7; 6; 4; 2;



void setup() { Serial.begin(9600); pinMode(motor1a, OUTPUT); pinMode(motor1b, OUTPUT); pinMode(motor2a, OUTPUT); pinMode(motor2b, OUTPUT); } void loop() { while (Serial.available()>0) { int baca=Serial.read(); if (baca==11) { digitalWrite(motor1a, HIGH); digitalWrite(motor1b, LOW); digitalWrite(motor2a, HIGH); digitalWrite(motor2b, LOW); Serial.println( "Maju" ); } else if (baca == 21) { digitalWrite(motor1a, LOW); digitalWrite(motor1b, HIGH); Universitas Islam Negeri Sunan Gunung Djati Bandung



63 digitalWrite(motor2a, HIGH); digitalWrite(motor2b, HIGH); Serial.println( "Belok kiri" ); } else if (baca== 41) { digitalWrite(motor1a, HIGH); digitalWrite(motor1b, HIGH); digitalWrite(motor2a, LOW); digitalWrite(motor2b, HIGH); Serial.println( "Belok Kanan" ); } else if (baca==31) { digitalWrite(motor1a, LOW ); digitalWrite(motor1b, HIGH); digitalWrite(motor2a, LOW); digitalWrite(motor2b, HIGH); Serial.println( "Mundur" ); } else { digitalWrite(motor1a, LOW); digitalWrite(motor1b, LOW); digitalWrite(motor2a, LOW); digitalWrite(motor2b, LOW); Serial.println( "Berhenti" ); } } } (g) Simpan, compile dan upload program tersebut. (h) Jalankan bluetooth pada hp android (i) jalankan eduinobot.apk di android dan (j) pairing dengan melakukan koneksi diaplikasi android (k) tekan tombol panah di aplikasi android eduinobot.apk (l) Perhatikan informasi yang disampaikan.



Universitas Islam Negeri Sunan Gunung Djati Bandung



64 4. Hasil Percobaan (a) Amatilah hasil tampilan LED ketika tombol di tekan, apa yang terjadi? (b) Apa yang terjadi pada LED jika tombol ditekan semua? 5. Tugas dan Pertanyaan (a) Buatlah program agar LED menyala jika ditekan pada semua tombol. (b) Jelaskan maksud program Praktek-BT



Universitas Islam Negeri Sunan Gunung Djati Bandung



MODUL 8 SISTEM MONITORING 8.1



Tujuan



1. Memahami rangkaian mikrokontroler Arduino untuk monitoring sistem. 2. Memahami Pemograman Arduino untuk monitoring sistem.



8.2



Teori



Mengawali Membuat Aplikasi berbasis Mikrokontroler Arduino Monitoring System



8.3



Prosedur Percobaan



1. Skematik



Gambar 8.1: monitoring Jarak dengan Arduino.



65



66



Gambar 8.2: monitoring dengan LDR dengan Arduino.



Gambar 8.3: monitoring suhu dengan Arduino.



2. Alat dan Bahan • 1 unit komputer dengan dilengkapi software Arduino. • 1 unit modul hadware mikrokontroler Arduino. • 1 buah LCD. Universitas Islam Negeri Sunan Gunung Djati Bandung



67 • 1 buah sensor cahaya LDR. • 1 buah sensor suhu LM35. • 1 buah sensor jarak PING 3. Langkah Percobaan • sensor cahaya-LCD (a) Hubungkan aplikasi sensor pada Port Analog dan aplikasi LCD ke Port Digital mikrokontroler. (b) Bukalah program Arduino (c) Buatlah project baru dengan ketentuan Port A0 sebagai input dan port 2,3,4,5,11,12 sebagai output. (d) Beri nama project ini Praktek-lrdlcd: (e) Ketiklah program utama sebagai berikut: #include // include library for LCD LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // pin to LCD int potPin = 0; // select the input pin for the LDR long val = 0; void setup() { lcd.begin(16, 2); // set up the LCD’s number of rows and columns } void loop() { val = analogRead(potPin); // read the value from the sensor light = val; // convert to Celcius lcd.clear(); // clear LCD screen lcd.setCursor(0,0); // set text to LCD row 1 lcd.print("current temp. "); // some text to add meaning to the numbers lcd.setCursor(0,1); // set text to LCD row 2 lcd.print((long)light); // writing light value lcd.print(" aux"); delay(1000); }



Universitas Islam Negeri Sunan Gunung Djati Bandung



68 (f) Simpan, compile dan upload program tersebut. Perhatikan informasi yang disampaikan. • suhu-lcd (a) Hubungkan aplikasi sensor pada Port Analog dan aplikasi LCD ke Port Digital mikrokontroler. (b) Bukalah program Arduino (c) Buatlah project baru dengan ketentuan Port A0 sebagai input dan port 2,3,4,5,11,12 sebagai output. (d) Beri nama project ini Praktek-lrdlcd: (e) Ketiklah program utama sebagai berikut:



#include // include library for LCD LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // pin to LCD int potPin = 0; // select the input pin for the LM35 float temperature = 0; long val = 0; void setup() { lcd.begin(16, 2); // set up the LCD’s number of rows and columns } void loop() { val = analogRead(potPin); // read the value from the sensor temperature = (5.0 * val * 100.0)/1024.0; // convert to Celcius lcd.clear(); // clear LCD screen lcd.setCursor(0,0); // set text to LCD row 1 lcd.print("current temp. "); // some text to add meaning to the num lcd.setCursor(0,1); // set text to LCD row 2 lcd.print((long)temperature); // writing temperature value lcd.print(" deg.C"); delay(1000); } (f) Simpan, compile dan upload program tersebut. Perhatikan informasi yang disampaikan. • jarak-lcd (a) Hubungkan aplikasi sensor pada Port Analog dan aplikasi LCD ke Port Digital mikrokontroler. Universitas Islam Negeri Sunan Gunung Djati Bandung



69 (b) Bukalah program Arduino (c) Buatlah project baru dengan ketentuan Port A0 sebagai input dan port 2,3,4,5,11,12 sebagai output. (d) Beri nama project ini Praktek-lrdlcd: (e) Ketiklah program utama sebagai berikut: #include // include library for LCD LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // pin to LCD int pingPin = 7; void setup() { lcd.begin(16, 2); // set up the LCD’s number of rows and columns } void loop() { long duration, cm; pinMode(pingPin, OUTPUT); digitalWrite(pingPin, LOW); delayMicroseconds(2); digitalWrite(pingPin, HIGH); delayMicroseconds(5); digitalWrite(pingPin, LOW); pinMode(pingPin, INPUT); duration = pulseIn(pingPin, HIGH); cm = microsecondsToCentimeters(duration); lcd.clear(); lcd.setCursor(0, 0); lcd.print(cm); lcd.print("cm"); delay(1000); } long microsecondsToCentimeters(long microseconds) { return microseconds / 29 / 2; } (f) Simpan, compile dan upload program tersebut. Perhatikan informasi yang disampaikan. 4. Hasil Percobaan



Universitas Islam Negeri Sunan Gunung Djati Bandung



70 • sensor-LCD Amati perubahan pada LCD dengan sensor yang di pakai ! 5. Tugas dan Pertanyaan jelaskan program-sensor-lcd



Universitas Islam Negeri Sunan Gunung Djati Bandung



MODUL 9 KREATIF APLIKASI 9.1



Tujuan



1. Memahami Rangkaian Mikrokontroler Arduino untuk Akuisisi. 2. Memahami Pemograman Arduino untuk Akuisisi Data.



9.2



Teori



Mengawali Membuat Aplikasi berbasis Mikrokontroler Arduino Akuisisi System - sistem minimum - tranduser dan sensor - aktuator



9.3



Prosedur Percobaan



1. Skematik



Gambar 9.1: robot avoider dengan Arduino.



2. Diagram Robot 3. Alat dan Bahan • 1 unit komputer dengan dilengkapi software Arduino. 71



72 • 1 unit modul hadware mikrokontroler Arduino. • 1 buah sensor Jarak (PING). • 1 buah driver motor. • 1 buah base robot dengan motor dc. 4. Langkah Percobaan • sensor-robot (a) Hubungkan aplikasi ultrasonik pada Port 2 dan aplikasi driver motor ke port 8,9,10,11. mikrokontroler Arduino. (b) Bukalah program Arduino (c) Buatlah project baru dengan ketentuan port 8,9,10,11 sebagai output. (d) Beri nama project ini Praktek-roboavoider (e) Ketiklah program utama sebagai berikut: jarak_cm=300; const int pingPin = 7; int motor1a = 5; int motor1b = 4; int motor2a = 3; int motor2b = 2; void setup() { pinMode(motor1a, OUTPUT); pinMode(motor1b, OUTPUT); pinMode(motor2a, OUTPUT); pinMode(motor2b, OUTPUT); } void loop() { jarak_cm=ping(); if (jarak_cm > 300){ digitalWrite(motor1a, digitalWrite(motor1b, digitalWrite(motor2a, digitalWrite(motor2b, }else{jarak_cm