BAB I : TEORI MIKROKONTROLER ARDUINO UNO

Ukuran: px
Mulai penontonan dengan halaman:

Download "BAB I : TEORI MIKROKONTROLER ARDUINO UNO"

Transkripsi

1 BAB I : TEORI MIKROKONTROLER ARDUINO UNO Tujuan : 1. Mahasiswa mampu memahami board mikrokontroler Arduino 2. Mahasiswa mampu memprogram mikrokontroler Arduino 3. Mahasiswa mampu membuat aplikasi dengan mikrokontroler Arduino Teori Dasar Arduino Uno R3 dengan ATmega328P mempunyai 14 digital input/output (6 di antaranya dapat digunakan untuk PWM output), 6 analog input, 16 Mhz crystal oscillator, USB connection, power jack, ICSP header, dan reset button. Skema Arduino Uno R3 didasarkan pada blog diagram dari mikrokontroler jenis AVR ATmega328. Komponen utama di dalam papan Arduino adalah sebuah mikrokontroler 8 bit dengan merek ATmega yang dibuat oleh perusahaan Atmel Corporation. Skema Arduino Uno R3 dapat dilihat pada gambar 1.1. dibawah ini. Gambar 1.1. Skema Arduino Uno R3 Untuk memahami Arduino, terlebih dahulu kita harus memahami terlebih dahulu apa yang dimaksud dengan physical computing. Physical computing adalah membuat sebuah sistem atau perangkat fisik dengan menggunakan software dan hardware yang sifatnya interaktif yaitu dapat 1

2 menerima rangsangan dari lingkungan dan merespon balik. Physical computing adalah sebuah konsep untuk memahami hubungan yang manusiawi antara lingkungan yang sifat alaminya adalah analog dengan dunia digital. Pada prakteknya konsep ini diaplikasikan dalam desaindesain alat atau projekprojek yang menggunakan sensor dan microcontroller untuk menerjemahkan input analog ke dalam sistem software untuk mengontrol gerakan alat-alat elektro-mekanik seperti lampu, motor dan sebagainya. Pembuatan prototype atau prototyping adalah kegiatan yang sangat penting di dalam proses physical computing karena pada tahap inilah seorang perancang melakukan eksperimen dan uji coba dari berbagai jenis komponen, ukuran, parameter, program komputer dan sebagainya berulang-ulang kali sampai diperoleh kombinasi yang paling tepat. Dalam hal ini perhitungan angka-angka dan rumus yang akurat bukanlah satu-satunya faktor yang menjadi kunci sukses di dalam mendesain sebuah alat karena ada banyak faktor eksternal yang turut berperan, sehingga proses mencoba dan menemukan/mengoreksi kesalahan perlu melibatkan hal-hal yang sifatnya non-eksakta. Prototyping adalah gabungan antara akurasi perhitungan dan seni. Proses prototyping bisa menjadi sebuah kegiatan yang menyenangkan atau menyebalkan, itu tergantung bagaimana kita melakukannya. Misalnya jika untuk mengganti sebuah komponen, merubah ukurannya atau merombak kerja sebuah prototype dibutuhkan usaha yang besar dan waktu yang lama, mungkin prototyping akan sangat melelahkan karena pekerjaan ini dapat dilakukan berulang-ulang sampai puluhan kali bayangkan betapa frustasinya perancang yang harus melakukan itu. Idealnya sebuah prototype adalah sebuah sistem yang fleksibel dimana perancang bisa dengan mudah dan cepat melakukan perubahan-perubahan dan mencobanya lagi sehingga tenaga dan waktu tidak menjadi kendala berarti. Dengan demikian harus ada sebuah alat pengembangan yang membuat proses prototyping menjadi mudah. Pada masa lalu (dan masih terjadi hingga hari ini) bekerja dengan hardware berarti membuat rangkaian menggunakan berbagai komponen elektronik seperti resistor, kapasitor, transistor dan sebagainya. Setiap komponen disambungkan secara fisik dengan kabel atau jalur tembaga yang disebut dengan istilah hard wired sehingga untuk merubah rangkaian maka sambungansambungan itu harus diputuskan dan disambung kembali. Dengan hadirnya teknologi digital dan microprocessor fungsi yang sebelumnya dilakukan dengan hired wired digantikan dengan program-program software. Ini adalah sebuah revolusi di dalam proses prototyping. Software lebih mudah diubah dibandingkan hardware, dengan beberapa penekanan tombol kita dapat merubah logika alat secara radikal dan mencoba versi ke-dua, ke-tiga dan seterusnya dengan cepat tanpa harus mengubah pengkabelan dari rangkaian. Arduino dikatakan sebagai sebuah platform dari physical computing yang bersifat open source. Pertama-tama perlu dipahami bahwa kata platform di sini adalah sebuah pilihan kata yang tepat. Arduino tidak hanya sekedar sebuah alat pengembangan, tetapi ia adalah kombinasi dari hardware, bahasa pemrograman dan Integrated Development Environment (IDE) yang canggih. IDE adalah sebuah software yang sangat berperan untuk menulis program, meng-compile menjadi kode biner dan mengupload ke dalam memory microcontroller. Ada banyak projek dan alat-alat dikembangkan oleh 2

3 akademisi dan profesional dengan menggunakan Arduino, selain itu juga ada banyak modul-modul pendukung (sensor, tampilan, penggerak dan sebagainya) yang dibuat oleh pihak lain untuk bisa disambungkan dengan Arduino. Arduino berevolusi menjadi sebuah platform karena ia menjadi pilihan dan acuan bagi banyak praktisi. Salah satu yang membuat Arduino memikat hati banyak orang adalah karena sifatnya yang open source, baik untuk hardware maupun software-nya. Diagram rangkaian elektronik Arduino digratiskan kepada semua orang. Anda bisa bebas men-download gambarnya, membeli komponen-komponennya, membuat PCB-nya dan merangkainya sendiri tanpa harus membayar kepada para pembuat Arduino. Sama halnya dengan IDE Arduino yang bisa di-download dan diinstal pada komputer secara gratis. Kita patut berterima kasih kepada tim Arduino yang sangat dermawan membagi-bagikan kemewahan hasil kerja keras mereka kepada semua orang. Kita betul-betul kagum dengan desain hardware, bahasa pemrograman dan IDE Arduino yang berkualitas tinggi dan sangat berkelas. Arduino dikembangkan oleh sebuah tim yang beranggotakan orang-orang dari berbagai belahan dunia. Anggota inti dari tim ini adalah: Massimo Banzi Milano, Italy David Cuartielles Malmoe, Sweden Tom Igoe New York, US Gianluca Martino Torino, Italy David A. Mellis Boston, MA, USA Profil mengenai anggota tim tersebut dan kontribusinya bisa diakses pada situs web Saat ini komunitas Arduino berkembang dengan pesat dan dinamis di berbagai belahan dunia. Bermacam-macam kegiatan yang berkaitan dengan projek-projek Arduino bermunculan dimanamana, termasuk di Indonesia. Yang membuat Arduino dengan cepat diterima oleh orang-orang adalah karena: Harganya akan lebih murah dibandingkan dengan modul yang lain, mudah pengoperasiannya, library cukup banyak diinternet karena bersifat open source, dan koneksi dengan devais yang lain cukup mudah. Dibawah ini adalah modul Arduino Uno R3. Gambar 1.2. Modul Arduino Tampak Depan dan Belakang Secara umum Arduino terdiri dari dua bagian, yaitu: 3

4 1. Hardware _ papan input/output (I/O) 2. Software _ Software Arduino meliputi IDE untuk menulis program, driver untuk koneksi dengan komputer, contoh program dan library untuk pengembangan program. Selanjutnya kita akan mengenal masing-masing bagian ini lebih jauh. 1. Hardware Komponen utama di dalam papan Arduino adalah sebuah microcontroller 8 bit dengan merk ATmega yang dibuat oleh perusahaan Atmel Corporation. Berbagai papan Arduino menggunakan tipe ATmega yang berbeda-beda tergantung dari spesifikasinya, sebagai contoh Arduino Uno menggunakan ATmega328 sedangkan Arduino Mega 2560 yang lebih canggih menggunakan ATmega2560. Untuk memberikan gambaran mengenai apa saja yang terdapat di dalam sebuah microcontroller, pada gambar berikut ini diperlihatkan contoh diagram blok sederhana dari microcontroller ATmega328 (dipakai pada Arduino Uno). Gambar 1.3. Arsitektur Arduino Uno R3 Spesifikasi Arduino Uno R3 Microcontroller ATmega328 Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limits) 6-20V Digital I/O Pins 14 (of which 6 provide PWM output) Analog Input Pins 6 DC Current per I/O Pin 40 ma DC Current for 3.3V Pin 50 ma 4

5 Flash Memory SRAM EEPROM Clock Speed Length Width Weight 32 KB (ATmega328) of which 0.5 KB used by bootloader 2 KB (ATmega328) 1 KB (ATmega328) 16 MHz 68.6 mm 53.4 mm 25 g Blok-blok di atas dijelaskan sebagai berikut: Universal Asynchronous Receiver/Transmitter (UART) adalah antar muka yang digunakan untuk komunikasi serial seperti pada RS-232, RS-422 dan RS KB RAM pada memory kerja bersifat volatile (hilang saat daya dimatikan), digunakan oleh variable-variabel di dalam program. 32KB RAM flash memory bersifat non-volatile, digunakan untuk menyimpan program yang dimuat dari komputer. Selain program, flash memory juga menyimpan bootloader. Bootloader adalah program inisiasi yang ukurannya kecil, dijalankan oleh CPU saat daya dihidupkan. Setelah bootloader selesai dijalankan, berikutnya program di dalam RAM akan dieksekusi. 1KB EEPROM bersifat non-volatile, digunakan untuk menyimpan data yang tidak boleh hilang saat daya dimatikan. Tidak digunakan pada papan Arduino. Central Processing Unit (CPU), bagian dari microcontroller untuk menjalankan setiap instruksi dari program. Port input/output, pin-pin untuk menerima data (input) digital atau analog, dan mengeluarkan data (output) digital atau analog. Setelah mengenal bagian-bagian utama dari microcontroller ATmega sebagai komponen utama, selanjutnya kita akan mengenal bagian-bagian dari papan Arduino itu sendiri. 5

6 Gambar 1.4. Bagian-bagian Utama Arduino 14 pin input/output digital (0-13) Berfungsi sebagai input atau output, dapat diatur oleh program. Khusus untuk 6 buah pin 3, 5, 6, 9, 10 dan 11, dapat juga berfungsi sebagai pin analog output dimana tegangan output-nya dapat diatur. Nilai sebuah pin output analog dapat diprogram antara 0 255, dimana hal itu mewakili nilai tegangan 0 5V. USB Berfungsi untuk: Memuat program dari komputer ke dalam papan Komunikasi serial antara papan dan komputer Memberi daya listrik kepada papan Sambungan SV1 Sambungan atau jumper untuk memilih sumber daya papan, apakah dari sumber eksternal atau menggunakan USB. Sambungan ini tidak diperlukan lagi pada papan Arduino versi terakhir karena pemilihan sumber daya eksternal atau USB dilakukan secara otomatis. Q1 Kristal (quartz crystal oscillator) Jika microcontroller dianggap sebagai sebuah otak, maka kristal adalah jantung-nya karena komponen ini menghasilkan detak-detak yang dikirim kepada microcontroller agar melakukan sebuah operasi untuk setiap detak-nya. Kristal ini dipilih yang berdetak 16 juta kali per detik (16MHz). Tombol Reset S1 Untuk me-reset papan sehingga program akan mulai lagi dari awal. Perhatikan bahwa tombol reset ini bukan untuk menghapus program atau mengosongkan microcontroller. In-Circuit Serial Programming (ICSP) Port ICSP memungkinkan pengguna untuk memprogram microcontroller secara langsung, tanpa melalui bootloader. Umumnya pengguna Arduino tidak melakukan ini sehingga ICSP tidak terlalu dipakai walaupun disediakan. IC 1 Microcontroller Atmega Komponen utama dari papan Arduino, di dalamnya terdapat CPU, ROM dan RAM. 6

7 X1 sumber daya eksternal Jika hendak disuplai dengan sumber daya eksternal, papan Arduino dapat diberikan tegangan DC antara 9-12V. 6 pin input analog (0-5) Pin ini sangat berguna untuk membaca tegangan yang dihasilkan oleh sensor analog, seperti sensor suhu. Program dapat membaca nilai sebuah pin input antara , dimana hal itu mewakili nilai tegangan 0 5V. 2. Software Sekalipun sebuah papan Arduino dapat bekerja dengan mendapat asupan daya dari sebuah komputer, namun hal itu tidak berarti ia dapat berkomunikasi dengan komputer tersebut. Untuk memastikan Arduino telah terpasang dengan benar dan dapat berkomuniasi dengan interaktif maka ia perlu diuji. a. Jalankan IDE Arduino dengan menjalankan sebuah file bernama arduino.exe pada lokasi software Arduino. Walaupun tampak seperti program Windows pada umumnya, namun sebetulnya program ini adalah sebuah program Java. Jika Anda menemukan sebuah pesan kesalahan kemungkinan besar pada komputer belum terinstal Java Runtime Environment (JRE) atau Java Development Kit (JDK). Untuk mendapatkan salah satu software tersebut, silakan men-download-nya dari situs web b. Jalankan menu Tools Board kemudian pilih tipe papan yang sesuai. 7

8 c. Jalankan menu File Examples 1.Basic Blink. Ini adalah program sederhana yang fungsinya adalah membuat lampu LED menyala berkedip-kedip seperti yang telah dijelaskan sebelumnya. /* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13; // the setup routine runs once when you press reset: void setup() // initialize the digital pin as an output. pinmode(led, OUTPUT); // the loop routine runs over and over again forever: void loop() digitalwrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalwrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second d. Pada toolbar klik tombol Upload untuk memuat sketch tersebut ke dalam papan Arduino. 8

9 e. Jika berhasil akan memberikan informasi sebagai berikut Bahasa Pemrograman Arduino Bahasa pemrograman mikrokontroller Arduino, seperti bahasa pemrograman tingkat menegah pada umumnya. Arduino pun sama memiliki alur algoritma yang mirip dan yang beda adalah cara penulisan sintaknya. Struktur dasar dari bahasa pemrograman arduino itu sederhana hanya terdiri dari dua bagian. void setup() // Statement; void loop() // Statement; 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 di panggil satu kali ketika program pertama kali di jalankan. Ini digunakan untuk pendefinisian mode pin atau memulai komunikasi serial. Fungsi setup() harus di ikut sertakan dalam program walaupun tidak ada statement yang di jalankan. void setup() 9

10 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 Function (fungsi) adalah blok pemrograman yang mempunyai nama dan mempunyai statement yang akan di eksekusi ketika function di panggil. Fungsi void setup() dan void loop() telah di bahas di atas dan pembuatan fungsi yang lain akan di bahas selanjutnya. Cara pendeklarasian function type functionname(parameters) // Statement; Contoh: int delayval() int v; // membuat variable v bertipe integer // baca harga potentiometer v =analogread(pot); v/=4; // konversi ke return v; // return nilai v Pada contoh di atas fungsi tersebut memiliki nilai balik int (integer), karena kalau tidak menghendaki adanya nilai balik maka type function harus void. curly braces Curly brace 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. ; Semicolon Semicolon harus di berikan pada setiap statement program yang kita buat ini merupakan pembatas setiap statement program yang di buat. 10

11 /* */ blok comment Semua statement yang di tulis dalam block comments tidak akan di eksekusi dan tidak akan di compile sehingga tidak mempengaruhi besar program yang di buat untuk di masukan dalam board arduino. //Line Comments Sama halnya dengan block comments, line coments pun sama hanya saja yang di jadikan komen adalh perbaris.. Variable Variable adalah sebuah penyimpan nilai yang dapat di gunakan dalam program.variable dapat di rubah sesuai dengan instruksi yang kita buat.ketika mendeklarisikan variable harus di ikut sertakan type variable serta nilai awal variable. Contoh Type variablename = 0; 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 Variable scope Sebuah variable dapat di deklarasikan pada awal program sebelum void setup(), secara local di dalam sebuah function, dan terkadang di dalam sebuah block statement pengulangan. Sebuah variable global hanya satu dan dapat di gunakan pada semua block function dan statement di dalam program. Variable global di deklarasikan pada awal program sebelum fungstion setup(). Sebuah variable local di deklarasikan di setiap block function atau di setiap block statement pengulangan dan hanya dapat di gunakan pada block yang bersangkutan saja. Contoh penggunaan: int value; // value adalah variable global dan dapat di gunakan pada semua block function void setup() // no setup needed void loop() for (int i=0; i<20;) // 'i' hanya dapat di gunakan dalam pengulangan saja i++; float f; // 'f' sebagai variable local Tipe Data Byte type byte dapat menyimpan 8-bit nilai angka bilangan asli tanapa koma. Byte memiliki range Byte bitevariable = 180; // mendeklarasikan bitevariable sebagai type byte 11

12 Integer Integer adalah tipe data yang utama untuk menyimpan nilai bilangan bulat tanpa koma.penyimpanan integer sebesar 16- bit dengan range sampai Int integervariable = 1600;//mendeklarasikan integervariable sebagai type integer Long Integer Perluasan ukuran untuk long integer, penyimpanan long integer sebesar 32-bit dengan range sampai Float Long longvariable = ; // mendeklarasikan longvariable sebagai type long 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 E+38 sampai E+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 di gunakan. Int arraysname[] = nilai0, nilai1, nilai2... Contoh penggunaan array: Int arraysaya[] = 2,4,6,8,10 x = arraysaya[5]; // x sekarang sama dengan 10 Operator Aritmatika 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 Assignments Compound assignments merupakan kombinasi dari aritmatic dengan sebuah variable.ini biasanya dipakai pada pengulangan. 12

13 x ++; // sama seperti x = x + 1 atau menaikan nilai x sebesar 1 x --; // sama seperti x = x - 1 atau mengurangi nilai x sebesar 1 x += y; // sama seperti x = x + y x -= y; // sama seperti x = x y x *= y; // sama seperti x = x * y x /= y; // sama seperti x = x / y Comparison Statement ini membadingkan dua variable dan apabila terpenuhi akan bernilai 1 atau true. Statement ini banyak digunakan dalam operator bersyarat. x == y; // x sama dengan y x!= y; // x tidak sama dengan y x < y; // x leboh kecil dari y x > y; // x lebih besar dari y x <= y; // x lebih kecil dari sama dengan y x >= y; // x lebih besar dari sama dengan y logic Operator operator logical digunakan untuk membandingkan 2 expresi dan mengembalikan nilai balik benar atau salah tergantung dari operator yang di gunakan. Terdapat 3 operator logical AND,OR, dan NOT, yang biasanya di gunakan pada if statement. Contoh penggunaan: Logical AND If ( x> 0 && x < 5) // bernilai benar apabila kedua operator pembanding terpenuhi Logical OR If ( x> 0 y > 0)// bernilai benar apabila salah satu dari operator pembanding terpenuhi Logical NOT If (!x > 0 )// benilai benar apabila ekspresi operator salah 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 ); //dosomething HIGH / LOW Konstanta ini mendifinisikan aktifitas pin HIGH atau LOW dan di gunakan ketika membaca dan menulis ke digital pin. HIGH di definisikan sebagai 1 sedangkan LOW sebagai 0. 13

14 digitalwrite( 13, HIGH ); Input/Output Konstanta ini digunakan dengan fungsi pinmode() untuk mendifinisikam mode pin digital, sebagai input atau output pinmode( 13, OUTPUT ); Flow Control If If Operator if menguji sebuah kondisi seperti nilai analog sudah berada di bawah 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 ) //Laksanakan rencana A; Else //Laksanakan rencana B; For Operator for digunakan dalam blok pengulangan tertutup. For ( initialization; condition; expression ) //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. 14

15 Do //dosomething; While ( somevariable?? value ); 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. PinMode(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). pinmode (pin, OUTPUT); // mengset pin sebagai output digitalwrite(pin, HIGH); // pin sebagai source voltage digitalread(pin) membaca nilai dari pin yang kita kehendaki dengan hasil HIGH atau LOW. Value = digitalread(pin);// mengset value sama dengan pin digitalwrite(pin, value) digunakan untuk mengset pin digital. Pin digital arduino mempunyai 14 ( 0 13 ). digitalwrite ( pin, HIGH ); // set pin to HIGH Analog I/O Input / Ouput analog pada breadboard arduino ada 6 pengalamatnya 0 5 analogread(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 Value = analogread(pin); // mengset value sama dengan nilai analog pin analogwrite(pin,value) mengirimkan nilai analog pada pin analog. analogwrite(pin, value); // menulis ke pin analog Time delay(ms) Menghentikan program untuk sesaat sesuai dengan yang di kehendaki, satuanya dalam millisecond. Delay(1000);// menunggu selama satu detik 15

16 millis() Mengembalikan nilai dalam millisecond dihitung sejak arduino board menyala. Penapungnya harus long integer. Math Value = millis();// set value equal to millis() Min(x,y) Membadingkan 2 variable dan akan mengembalikan nilai yang paling kecil. value = min(value, 100);// 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 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.prinln(data) Mengirimkan data ke serial port Serial.println(100); // mengirimkan

17 BAB II : PERCOBAAN LED TUJUAN: 1. Mahasiswa memahami rangkaian mikrokontroller untuk menghidupkan dan mematikan LED. 2. Mahasiswa dapat memahami program Arduino untuk menghidupkan dan mematikan LED. 3. Mahasiswa memahami struktur program Arduino, void setup dan void loop. 4. Mahasiswa memahami beberapa instruksi Arduino dasar pinmode dan digitalwrite. 5. Mahasiswa memahami pembuatan instruksi waktu tunda, delay. PERALATAN 1. Sebuah Komputer 2. Satu set trainer mikrokontroler TEORI DASAR LED (Light Emitting Dioda) adalah dioda yang dapat memancarkan cahaya pada saat mendapat arus bias maju (forward bias). LED (Light Emitting Dioda) dapat memancarkan cahaya karena menggunakan dopping galium, arsenic dan phosporus. Jenis doping yang berbeda diata dapat menhasilkan cahaya dengan warna yang berbeda. LED (Light Emitting Dioda) merupakann salah satu jenis dioda, sehingga hanya akan mengalirkan arus listrik satu arah saja. LED akan memancarkan cahaya apabil diberikan tegangan listrik dengan konfigurasi forward bias. Berbeda dengan dioda pada umumnya, kemampuan mengalirkan arus pada LED (Light Emitting Dioda) cukup rendah yaitu maksimal 20 ma. Apabila LED (Light Emitting Dioda) dialiri arus lebih besar dari 20 ma maka LED akan rusak, sehingga pada rangkaian LED dipasang sebuah resistor sebgai pembatas arus. Simbol dan bentuk fisik dari LED (Light Emitting Dioda) dapat dilihat pada gambar berikut. Simbol Dan Bentuk Fisik LED. Gambar 2.1. Simbol LED Dari gambar diatas dapat kita ketahui bahwa LED memiliki kaki 2 buah seperti dengan dioda yaitu kaki anoda dan kaki katoda. Pada gambar diatas kaki anoda memiliki ciri fisik lebih panjang dari kaki katoda pada saat masih baru, kemudian kaki katoda pada LED (Light Emitting Dioda) ditandai dengan bagian body LED yang di papas rata. Kaki anoda dan kaki katoda pada LED (Light Emitting Dioda) disimbolkan 17

18 seperti pada gambar diatas. Pemasangan LED (Light Emitting Dioda) agar dapat menyala adalah dengan memberikan tegangan bias maju yaitu dengan memberikan tegangan positif ke kaki anoda dan tegangan negatif ke kaki katoda. Konsep pembatas arus pada dioda adalah dengan memasangkan resistor secara seri pada salah satu kaki LED (Light Emitting Dioda). Rangkaian dasar untuk menyalakan LED (Light Emitting Dioda) membutuhkan sumber tegangan LED dan resistor sebgai pembatas arus seperti pada rangkaian berikut. Rangkaian Dasar Menyalakan LED (Light Emitting Dioda) Gambar 2.2. Rangkaian Dasar LED Besarnya arus maksimum pada LED (Light Emitting Dioda) adalah 20 ma, sehingga nilai resistor harus ditentukan. Dimana besarnya nilai resistor berbanding lurus dengan besarnya tegangan sumber yang digunakan. Secara matematis besarnya nilai resistor pembatas arus LED (Light Emitting Dioda) dapat ditentukan menggunakan persamaan berikut. Dimana : R = resistor pembatas arus (Ohm) Vs = tegangan sumber yang digunakan untuk mensupply tegangan ke LED (volt) 2 volt = tegangan LED (volt) 0,02 A = arus maksimal LED (20 ma) 18

19 Gambar 2.3. Rangkaian Modul LED Percobaan 1. Percobaan led berkdip dan led berjalan (running led) yang dihubungkan pada Input/0utput board Arduino diperlihatkan pada gambar 4 dan gambar 5. Led akan menyala bila dikirimkan data HIGH ( 1 ) pada pin 10, karena anoda dari led mendapatkan level tegangan mendekati 5V sedangkan katodanya dihubungkan ke ground (0V). Gambar 2.4. Rangkaian Percobaan LED Blink Tuliskan program dibawah ini : //LED BERKEDIP intledpin = 10; void setup() pinmode(ledpin, OUTPUT); void loop() digitalwrite(ledpin, HIGH); delay(1000); digitalwrite(ledpin, LOW); delay(1000); 19

20 Percobaan 2. Untuk aplikasi menggeser LED diperlukan beberapa LED untuk dihubungkan dengan pin mikrokontroler. Rangkaian menggunakan common Katoda, sehingga untuk menyalakan LED membutuhkan nilai logika 1, sedangkan kalo ingin mematikan diberika nilai logika sebsar 0. Rangkailah rangkaian LED 4 bit seperti dibawah ini untuk mengaplikasikan LED bergeser dari kiri ke kanan atau dari kanan ke kiri. Gambar 2.5. Rangkaian 4 Bit LED Berikut ini program untuk LED Bergeser //Running LED int ledpin1 = 10; int ledpin2 = 11; int ledpin3= 12; int ledpin4 = 13; void setup() pinmode(ledpin1, OUTPUT); pinmode(ledpin2, OUTPUT); pinmode(ledpin3, OUTPUT); pinmode(ledpin4, OUTPUT); void loop() digitalwrite(ledpin1, HIGH); digitalwrite(ledpin2 LOW); digitalwrite(ledpin3, LOW); digitalwrite(ledpin4, LOW); delay(1000); digitalwrite(ledpin1, LOW); digitalwrite(ledpin2, HIGH); digitalwrite(ledpin3, LOW); digitalwrite(ledpin4, LOW); 20

21 delay(1000); digitalwrite(ledpin1, LOW); digitalwrite(ledpin2, LOW); digitalwrite(ledpin3, HIGH); digitalwrite(ledpin4, LOW); delay(1000); digitalwrite(ledpin1, LOW); digitalwrite(ledpin2, LOW); digitalwrite(ledpin3, LOW); digitalwrite(ledpin4, HIGH); delay(1000); LANGKAH-LANGKAH PERCOBAAN 1. Nyalakan computer dengan program Arduino! 2. Sambungkan Trainer mikrokontroler dengan computer menggunakan kabel USB! 3. Sambungkan kabel-kabel jumper sesuai dengan praktikum yang dilaksanakan! 4. Ketiklah program yang diatas pada software Arduino! 5. Lakukan verifikasi terhadap program, apakah terjadi error atau tidak! 6. Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam mikrokontroler! 7. Amati hasilnya apakah sudah sesuai dengan perintah instruktur atau belum, kalau belum lakukan editing program dan kembali ke langkah 5! 21

22 BAB III : PERCOBAAN PUSH BUTTON TUJUAN: 1 Mahasiswa memahami rangkaian mikrokontroller dengan interface ke saklar. 2. Mahasiswa dapat memahami program Arduino untuk mengambil data saklar dan mengeluarkan data ke LED. 3. Mahasiswa memahami beberapa instruksi Arduino dasar, digitalread, if, dan for. PERALATAN 1. Sebuah Komputer 2. Satu set trainer mikrokontroler TEORI DASAR Anda mungkin akrab dengan switch, salah satu jenis saklar yang Anda gunakan setiap hari adalah lampu. Sebuah lampu adalah perangkat sederhana dengan dua posisi, dan mematikan. Ketika di, dua kawat yang terhubung di dalam, yang memungkinkan arus mengalir. Ketika off, dua kabel yang terputus. Gambar 3.1. Fungsi Saklar Di sebelah kiri, saklar terbuka dan tidak ada arus mengalir. Di sebelah kanan, saklar ditutup, arus dan lampu menyala. Push Button adalah saklar tekan yang berfungsi untuk menghubungkan atau memisahkan bagian bagian dari suatu instalasi listrik satu sama lain (suatu sistem saklar tekan push button terdiri dari saklar tekan start. Pada dasarnya, terdapat 2 jenis Push-Button di pasaran: Push-On dan Push- Off. Tetapi yang kita gunakan pada tutorial ini adalah yang berjenis Push-On, yaitu komponen yang terdiri atas dua kutub yang saling terpisah / tidak terhubung, dan sebuah tombol yang ketika ditekan akan menghubungkan kedua kutub tersebut sehingga akan mengalirkan arus listrik dari satu sisi kutub ke sisi kutub berikutnya (Lihat gambar 3.2). 22

23 Gambar 3.2. Simbol dan Komponen Push Button Percobaan 3. Percobaan untuk membaca masukan data digital dilakukan dengan menggunakan saklar push botton. Rangkaian percobaan diperlihatkan pada gambar Gambar 3.3. Rangkaian Saklar dan LED Tuliskan program dibawah ini untuk menguji rangkaian diatas const int ledpin = 13; const int inputpin = 5; void setup() pinmode(ledpin, OUTPUT); pinmode(inputpin, INPUT); void loop() int val = digitalread(inputpin); if (val == HIGH) digitalwrite(ledpin, LOW); else digitalwrite(ledpin, HIGH); 23

24 Percobaan 4. Rangkaialah 4 buah LED dan 4 buah saklar push button untuk aplikasi penekanan tombol dan menyalakan lampu LED maupun menggeser lampu LED. Mula-mula mikrokontroler membaca kondisi saklar kemudian memprosesnya untuk diteruskan ke pin output berupa LED sesuai dengan program yang diberikan. Gambar 3.4. Saklar Push Button dan LED 4 bit Tuliskan program dibawah ini untuk menguji rangkaian diatas unsigned int inputpin[] = 2,3,4,5; unsigned int ledpin[] = 10,11,12,13; void setup() for(int indeks = 0; indeks < 4; indeks++) //declare LED as output pinmode(ledpin[indeks], OUTPUT); pinmode(inputpin[indeks], INPUT); //mengaktif resistor Pull-Up digitalwrite(inputpin[indeks],high); void loop() for(int indeks = 0; indeks < 4; indeks++) // read input value int val = digitalread(inputpin[indeks]); 24

25 if (val == LOW) // cek switch ditekan // switch ditekan LED on digitalwrite(ledpin[indeks], HIGH); else //LED off digitalwrite(ledpin[indeks], LOW); LANGKAH-LANGKAH PERCOBAAN 1. Nyalakan computer dengan program Arduino! 2. Sambungkan Trainer mikrokontroler dengan computer menggunakan kabel USB! 3. Sambungkan kabel-kabel jumper sesuai dengan praktikum yang dilaksanakan! 4. Ketiklah program yang diatas pada software Arduino! 5. Lakukan verifikasi terhadap program, apakah terjadi error atau tidak! 6. Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam mikrokontroler! 7. Amati hasilnya apakah sudah sesuai dengan perintah instruktur atau belum, kalau belum lakukan editing program dan kembali ke langkah 5! 25

26 BAB IV : PERCOBAAN SEVEN SEGMEN TUJUAN : 1. Mahasiswa memahami rangkaian interface mikrokontroller dengan 7 segmen 2. Mahasiswa dapat memahami program Arduino untuk menampilkan data ke 7 segment 3. Mahasiswa memahami beberapa instruksi Arduino dasar, array data dan bitread. PERALATAN 1. Sebuah Komputer 2. Satu set trainer mikrokontroler TEORI DASAR Seven segment merupakan segment-segment yang digunakan untuk menampilkan angka-angka atau huruf. Seven segment ini tersusun atas 7 buah LED yang membentuk membentuk angka atau huruf dimana penyusunnya menggunakan label dari a sampai g dan satu lagi untuk dot point (DP). Salah satu terminal LED dihubungkan menjadi satu sebagai kaki common (biasanya pin-nya berada ditengah) Gambar 4.1. Skematik Sebuah Seven Segment Pin 3 dan 8 = untuk mengaktifkan seven segment diberikan logika high (common anode) dan logika low (common cathode). Jenis-jenis Seven Segment: 1. Common Anoda Semua anoda dari LED dalam seven segment disatukan secara parallel dan semua itu dihubungkan ke VCC, dan kemudian LED dihubungkan melalui tahanan pembatas arus keluar dari penggerak LED. Karena dihubungkan ke VCC, maka COMMON ANODA ini berada pada kondisi AKTIF LOW (led akan menyala/aktif bila diberi logika 0). 2. Common Katoda 26

27 Merupakan kebalikan dari Common Anoda. Disini semua katoda disatukan secara parallel dan dihubungkan ke GROUND. Karena seluruh katoda dihubungkan ke GROUND, maka COMMON KATODA ini berada pada kondisi AKTIF HIGH (led akan menyala/aktif bila diberi logika 1). Gambar 4.2. Bentuk Fisik Seven Segment CC dan CA Prinsip Kerja : Prinsip kerja seven segment ialah input biner pada switch dikonversikan masuk ke dalam decoder, baru kemudian decoder mengkonversi bilangan biner tersebut menjadi decimal, yang nantinya akan ditampilkan pada seven segment. Seven segment dapat menampilkan angka-angka desimal dan beberapa karakter tertentu melalui kombinasi aktif atau tidaknya LED dalam seven segment. Untuk memudahkan penggunaan seven segment, umumnya digunakan sebuah decoder( mengubah/ mengkoversi input bilangan biner menjadi decimal) atau seven segment driver yang akan mengatur aktif tidaknya led-led dalam seven segment sesuai dengan nilai biner yang diberikan. Dekoder BCD ke seven segment digunakan untuk menerima masukan BCD 4-bit dan memberikan keluaran yang melewatkan arus melalui segmen untuk menampilkan angka desimal. Jenis dekoder BCD ke seven segment ada dua macam yaitu dekoder yang berfungsi untuk menyalakan seven segment mode common anoda dan dekoder yang berfungsi untuk menyalakan seven segment mode common katoda. Percobaan 5. Buatlah rangkaian seperti dibawah ini untuk sebuah seven segment Gambar 4.3. Rangkaian Ekivalen Seven Segment 27

28 Ketik program berikut dikomputer kemudian lakukan upload pada mikrokontroler const byte numeral[10] = //ABCDEFG /dp B , // 0 B , // 1 B , // 2 B , // 3 B , // 4 B , // 5 B , // 6 B , // 7 B , // 8 B , // 9 ; // pins segment dp,g,f,e,d,c,b,a const int segmentpins[8] = 5,9,8,7,6,4,3,2; void setup() for(int i=0; i < 8; i++) pinmode(segmentpins[i], OUTPUT); void loop() for(int i=0; i <= 10; i++) showdigit(i); delay(1000); delay(2000); void showdigit( int number) boolean isbitset; for(int segment = 1; segment < 8; segment++) if( number < 0 number > 9) isbitset = 0; // turn off all segments else // isbitset will be true if given bit is 1 isbitset = bitread(numeral[number], segment); isbitset =!isbitset; // digitalwrite( segmentpins[segment], isbitset); Percobaan 6. Untuk percobaan berikut ini hubungkan rangkaian seven segment 4 bit dengan pin mikrokontroler. Sambungkan C1 dengan dengan pin 11, C2 dengan pin 10, C3 dengan pin 9, dan C4 dengan pin 6, sedangkan datanya pada masing-masing segmen dihubungkan seperti dibawah ini : Pin pada seven segmen = pin di Arduino sega = A1; //Display pin 14 segb = 3; //Display pin 16 segc = 4; //Display pin 13 segd = 5; //Display pin 3 sege = A0; //Display pin 5 segf = 7; //Display pin 11 segg = 8; //Display pin 15 28

29 Gambar 4.4. Rangkaian Seven Segment 4 bit Ketiklah program dibawah ini kemudian lakukan upload pada mikrokontroler : int digit1 = 11; //PWM Display pin 1 int digit2 = 10; //PWM Display pin 2 int digit3 = 9; //PWM Display pin 6 int digit4 = 6; //PWM Display pin 8 int sega = A1; //Display pin 14 int segb = 3; //Display pin 16 int segc = 4; //Display pin 13 int segd = 5; //Display pin 3 int sege = A0; //Display pin 5 int segf = 7; //Display pin 11 int segg = 8; //Display pin 15 void setup() pinmode(sega, OUTPUT); pinmode(segb, OUTPUT); pinmode(segc, OUTPUT); pinmode(segd, OUTPUT); pinmode(sege, OUTPUT); pinmode(segf, OUTPUT); pinmode(segg, OUTPUT); pinmode(digit1, OUTPUT); pinmode(digit2, OUTPUT); pinmode(digit3, OUTPUT); pinmode(digit4, OUTPUT); pinmode(13, OUTPUT); 29

30 void loop() displaynumber(millis()/1000); void displaynumber(int todisplay) #define DISPLAY_BRIGHTNESS 500 #define DIGIT_ON HIGH #define DIGIT_OFF LOW long begintime = millis(); for(int digit = 4 ; digit > 0 ; digit--) //Turn on a digit for a short amount of time switch(digit) case 1: digitalwrite(digit1, DIGIT_ON); break; case 2: digitalwrite(digit2, DIGIT_ON); break; case 3: digitalwrite(digit3, DIGIT_ON); break; case 4: digitalwrite(digit4, DIGIT_ON); break; //Turn on the right segments for this digit lightnumber(todisplay % 10); todisplay /= 10; delaymicroseconds(display_brightness); //Display digit for fraction of a second (1us to 5000us, 500 is pretty good) //Turn off all segments lightnumber(10); //Turn off all digits digitalwrite(digit1, DIGIT_OFF); digitalwrite(digit2, DIGIT_OFF); digitalwrite(digit3, DIGIT_OFF); digitalwrite(digit4, DIGIT_OFF); while( (millis() - begintime) < 10) ; //Wait for 20ms to pass before we paint the display again //Given a number, turns on those segments //If number == 10, then turn off number void lightnumber(int numbertodisplay) #define SEGMENT_ON LOW #define SEGMENT_OFF HIGH 30

31 switch (numbertodisplay) case 0: digitalwrite(sega, SEGMENT_ON); digitalwrite(segb, SEGMENT_ON); digitalwrite(segc, SEGMENT_ON); digitalwrite(segd, SEGMENT_ON); digitalwrite(sege, SEGMENT_ON); digitalwrite(segf, SEGMENT_ON); digitalwrite(segg, SEGMENT_OFF); break; case 1: digitalwrite(sega, SEGMENT_OFF); digitalwrite(segb, SEGMENT_ON); digitalwrite(segc, SEGMENT_ON); digitalwrite(segd, SEGMENT_OFF); digitalwrite(sege, SEGMENT_OFF); digitalwrite(segf, SEGMENT_OFF); digitalwrite(segg, SEGMENT_OFF); break; case 2: digitalwrite(sega, SEGMENT_ON); digitalwrite(segb, SEGMENT_ON); digitalwrite(segc, SEGMENT_OFF); digitalwrite(segd, SEGMENT_ON); digitalwrite(sege, SEGMENT_ON); digitalwrite(segf, SEGMENT_OFF); digitalwrite(segg, SEGMENT_ON); break; case 3: digitalwrite(sega, SEGMENT_ON); digitalwrite(segb, SEGMENT_ON); digitalwrite(segc, SEGMENT_ON); digitalwrite(segd, SEGMENT_ON); digitalwrite(sege, SEGMENT_OFF); digitalwrite(segf, SEGMENT_OFF); digitalwrite(segg, SEGMENT_ON); break; case 4: digitalwrite(sega, SEGMENT_OFF); digitalwrite(segb, SEGMENT_ON); digitalwrite(segc, SEGMENT_ON); digitalwrite(segd, SEGMENT_OFF); digitalwrite(sege, SEGMENT_OFF); digitalwrite(segf, SEGMENT_ON); digitalwrite(segg, SEGMENT_ON); break; case 5: digitalwrite(sega, SEGMENT_ON); digitalwrite(segb, SEGMENT_OFF); digitalwrite(segc, SEGMENT_ON); digitalwrite(segd, SEGMENT_ON); digitalwrite(sege, SEGMENT_OFF); digitalwrite(segf, SEGMENT_ON); digitalwrite(segg, SEGMENT_ON); break; 31

32 case 6: digitalwrite(sega, SEGMENT_ON); digitalwrite(segb, SEGMENT_OFF); digitalwrite(segc, SEGMENT_ON); digitalwrite(segd, SEGMENT_ON); digitalwrite(sege, SEGMENT_ON); digitalwrite(segf, SEGMENT_ON); digitalwrite(segg, SEGMENT_ON); break; case 7: digitalwrite(sega, SEGMENT_ON); digitalwrite(segb, SEGMENT_ON); digitalwrite(segc, SEGMENT_ON); digitalwrite(segd, SEGMENT_OFF); digitalwrite(sege, SEGMENT_OFF); digitalwrite(segf, SEGMENT_OFF); digitalwrite(segg, SEGMENT_OFF); break; case 8: digitalwrite(sega, SEGMENT_ON); digitalwrite(segb, SEGMENT_ON); digitalwrite(segc, SEGMENT_ON); digitalwrite(segd, SEGMENT_ON); digitalwrite(sege, SEGMENT_ON); digitalwrite(segf, SEGMENT_ON); digitalwrite(segg, SEGMENT_ON); break; case 9: digitalwrite(sega, SEGMENT_ON); digitalwrite(segb, SEGMENT_ON); digitalwrite(segc, SEGMENT_ON); digitalwrite(segd, SEGMENT_ON); digitalwrite(sege, SEGMENT_OFF); digitalwrite(segf, SEGMENT_ON); digitalwrite(segg, SEGMENT_ON); break; case 10: digitalwrite(sega, SEGMENT_OFF); digitalwrite(segb, SEGMENT_OFF); digitalwrite(segc, SEGMENT_OFF); digitalwrite(segd, SEGMENT_OFF); digitalwrite(sege, SEGMENT_OFF); digitalwrite(segf, SEGMENT_OFF); digitalwrite(segg, SEGMENT_OFF); break; LANGKAH-LANGKAH PERCOBAAN 1. Nyalakan computer dengan program Arduino! 2. Sambungkan Trainer mikrokontroler dengan computer menggunakan kabel USB! 3. Sambungkan kabel-kabel jumper sesuai dengan praktikum yang dilaksanakan! 4. Ketiklah program yang diatas pada software Arduino! 5. Lakukan verifikasi terhadap program, apakah terjadi error atau tidak! 32

33 6. Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam mikrokontroler! 7. Amati hasilnya apakah sudah sesuai dengan perintah instruktur atau belum, kalau belum lakukan editing program dan kembali ke langkah 5! 33

34 BAB V : PERCOBAAN LCD TEXT TUJUAN: 1. Mahasiswa memahami rangkaian interface mikrokontroller dengan LCD Karakter 2 x Mahasiswa dapat memahami program Arduino untuk menampilkan data ke LCD Karakter 2 x Mahasiswa memahami beberapa instruksi pada library header liquidcrystal 4. Mahasiswa memahami mencetak karakter pada posisi baris dan kolom tertentu PERALATAN 1. Sebuah Komputer 2. Satu set trainer mikrokontroler DASAR TEORI Modul LCD Character dapat dengan mudah dihubungkan dengan mikrokontroller seperti Arduino Uno R3. LCD yang akan kita praktikumkan ini mempunyai lebar display 2 baris 16 kolom atau biasa disebut sebagai LCD Character 2x16, dengan 16 pin konektor, yang didifinisikan sebagai berikut: Gambar 5.1. Modul LCD Karakter 2x16 Display karakter pada LCD diatur oleh pin EN, RS dan RW: Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa anda sedang mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low 0 dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika 1 dan tunggu untuk sejumlah waktu tertentu (sesuai dengan datasheet dari LCD tersebut ) dan berikutnya set EN ke logika low 0 lagi. Jalur RS adalah jalur Register Select. Ketika RS berlogika low 0, data akan dianggap sebagai sebuah perintah atau instruksi khusus ( seperti clear screen, posisi kursor dll ). Ketika RS berlogika high 1, data yang dikirim adalah data text yang akan ditampilkan pada display LCD. Sebagai contoh, untuk menampilkan huruf T pada layar LCD maka RS harus diset logika high 1. 34

35 Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0), maka informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika high 1, maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin RW selalu diberi logika low 0. Tabel 5.1. Pin LCD dan Fungsi Pada akhirnya, bus data terdiri dari 4 atau 8 jalur ( bergantung pada mode operasi yang dipilih oleh user ). Pada kasus bus data 8 bit, jalur diacukan sebagai DB0 s/d DB7. Beberapa perintah dasar yang harus dipahami adalah inisialisasi LCD Character, Function Set Mengatur interface lebar data, jumlah dari baris dan ukuran font karakter 35

36 CATATAN: X : Don t care DL: Mengatur lebar data DL=1, Lebar data interface 8 bit ( DB7 s/d DB0) DL=0, Lebar data interface 4 bit ( DB7 s/d DB4) Ketika menggunakan lebar data 4 bit, data harus dikirimkan dua kali N=1, Display dua baris N=0, Display satu baris Entry Mode Set Mengatur increment/ decrement dan mode geser Catatan: I/D: Increment/ decrement dari alamat DDRAM dengan 1 ketika kode karakter dituliskan ke DDRAM. I/D = 0, decrement I/D= 1, increment S: Geser keseluruhan display kekanan dan kekiri S=1, geser kekiri atau kekanan bergantung pada I/D S=0, display tidak bergeser Display On/ Off Cursor Mengatur status display ON atau OFF, cursor ON/ OFF dan fungsi Cursor Blink D : Mengatur display D = 1, Display is ON D = 0, Display is OFF Pada kasus ini data display masih tetap berada di DDRAM, dan dapat ditampilkan kembali secara langsung dengan mengatur D=1. 36

37 C : Menampilkan kursor C = 1, kursor ditampilkan C = 0, kursor tidak ditampilkan B : Karakter ditunjukkan dengan kursor yang berkedip B=1, kursor blink Clear Display Perintah ini hapus layar Geser Kursor dan Display Geser posisi kursor atau display ke kanan atau kekiri tanpa menulis atau baca data display. Fungsi ini digunakan untuk koreksi atau pencarian display Catatan : x = Dont care Memori LCD 1. DDRAM ( Display Data RAM ) Memori DDRAM digunakan untuk menyimpan karakter yang akan ditampilkan. Semua teks yang kita tuliskan ke modul LCD adalah disimpan didalam memory ini, dan modul LCD secara berturutan membaca memory ini untuk menampilkan teks ke modul LCD itu sendiri. 37

38 Pada peta memori tersebut, daerah yang berwarna kuning ( 00 s/d 0F dan 40 s/d 4F ) adalah display yang tampak. Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter per baris dengan dua baris. Angka pada setiap kotak adalah alamat memori yang bersesuaian dengan posisi dari layar. Demikianlah karakter pertama di sudut kiri atas adalah menempati alamat 00h. Posisi karakter berikutnya adalah alamat 01h dan seterusnya. Akan tetapi, karakter pertama dari baris 2 sebagaimana yang ditunjukkan pada peta memori adalah pada alamat 40h. Dimikianlah kita perlu untuk mengirim sebuah perintah ke LCD untuk mangatur letak posisi kursor pada baris dan kolom tertentu. Instruksi Set Posisi Kursor adalah 80h. Untuk ini kita perlu menambahkan alamat lokasi dimana kita berharap untuk menempatkan kursor.sebagai contoh, kita ingin menampilkan kata World pada baris ke dua pada posisi kolom ke sepuluh. Sesuai peta memori, posisi karakter pada kolom 11 dari baris ke dua, mempunyai alamat 4Ah, sehingga sebelum kita tulis kata World pada LCD, kita harus mengirim instruksi set posisi kursor, dan perintah untuk instruksi ini adalah 80h ditambah dengan alamat 80h+4Ah =0Cah. Sehingga dengan mengirim perintah Cah ke LCD, akan menempatkan kursor pada baris kedua dan kolom ke 11 dari DDRAM. CGROM ( Character Generator ROM ) Sebuah peta karakter yang dapat ditampilkan, sesuai dengan lokasi dari masing-masing karakter. 38

39 39

40 Percobaan 7. Hubungkan Pin LCD dengan pin Mikrokontroler seperti ditunjukkan pada gambar dibawah ini. Gambar 5.2. Hubungan Pin LCD dan pin Mikrokontroler Arduino Ketik Program dibawah ini dan lihat hasilnya pada LCD 2X16 #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(8,9,4,5,6,7); void setup() lcd.begin(16,2); lcd.setcursor(0,0); lcd.print("hello World!"); lcd.setcursor(0,1); lcd.print("fasilkomnarotama"); void loop() Menampilkan angka dalam kisaran 0-9 dari samping yang berlawanan (di baris kiri atas). Selanjutnya, menampilkan nomor yang sama di baris bawah, tapi mulai dari kanan. #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(8,9,4,5,6,7); void setup() // set up the LCD's number of columns and rows: lcd.begin(16,2); void loop() // set the cursor to (0,0): 40

41 lcd.setcursor(0, 0); // print from 0 to 9: for (int thischar = 0; thischar < 10; thischar++) lcd.print(thischar); delay(500); // set the cursor to (16,1): lcd.setcursor(16,1); // set the display to automatically scroll: lcd.autoscroll(); // print from 0 to 9: for (int thischar = 0; thischar < 10; thischar++) lcd.print(thischar); delay(500); // turn off automatic scrolling lcd.noautoscroll(); // clear screen for the next loop: lcd.clear(); Ketik program dibawah ini untuk menampilkan I Fasilkom #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(8,9,4,5,6,7); // make some custom characters: byte heart[8] = 0b00000, 0b01010, 0b11111, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000 ; byte smiley[8] = 0b00000, 0b00000, 0b01010, 0b00000, 0b00000, 0b10001, 0b01110, 0b00000 ; 41

42 byte frownie[8] = 0b00000, 0b00000, 0b01010, 0b00000, 0b00000, 0b00000, 0b01110, 0b10001 ; byte armsdown[8] = 0b00100, 0b01010, 0b00100, 0b00100, 0b01110, 0b10101, 0b00100, 0b01010 ; byte armsup[8] = 0b00100, 0b01010, 0b00100, 0b10101, 0b01110, 0b00100, 0b00100, 0b01010 ; void setup() // create a new character lcd.createchar(1, heart); // create a new character lcd.createchar(2, smiley); // create a new character lcd.createchar(3, frownie); // create a new character lcd.createchar(4, armsdown); // create a new character lcd.createchar(5, armsup); // set up the lcd's number of columns and rows: lcd.begin(16, 2); // Print a message to the lcd. lcd.print("i "); lcd.write(1); 42

43 lcd.print(" Fasilkom "); lcd.write(2); void loop() lcd.setcursor(4, 1); lcd.write(4); // draw the little man, arms down: lcd.setcursor(4, 1); delay(400); // wait 400ms lcd.write(5); // draw the little man, arms up: delay(400); // wait 400ms Contoh sederhana untuk menampilkan symbol hati #include <LiquidCrystal.h> LiquidCrystal lcd(8,9,4,5,6,7); byte heart[8] = 0b00000, 0b01010, 0b11111, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000 ; void setup() lcd.createchar(1, heart); lcd.write(1); Teks muncul, program akan menunggu setengah detik, dan teks menghilang. Setelah itu, loop seluruh program. 43

44 #include <LiquidCrystal.h> LiquidCrystal lcd(8,9,4,5,6,7); void setup() lcd.begin(16, 2); and rows lcd.setcursor(0,0); lcd.print("blinking"); // set up the LCD's number of columns // First line lcd.setcursor(0,1); // Second line lcd.print(" sentence :)"); void loop() lcd.nodisplay(); // Turn OFF the display delay(500); // Wait 500 ms lcd.display(); // Turn ON the display delay(500); // Wait 500 ms Teks "Hello world!" Ditampilkan, yang dipindahkan antara tepi layar, dari kanan ke kiri. #include <LiquidCrystal.h> LiquidCrystal lcd(8,9,4,5,6,7); void setup() lcd.begin(16, 2); lcd.print("hello, world!"); delay(1000); void loop() // scroll 13 positions (string length) to the left // to move it offscreen left: for (int positioncounter = 0; positioncounter < 13; positioncounter++) // scroll one position left: lcd.scrolldisplayleft(); // wait a bit: delay(150); // scroll 29 positions (string length + display length) to the right // to move it offscreen right: for (int positioncounter = 0; positioncounter < 29; positioncounter++) // scroll one position right: lcd.scrolldisplayright(); 44

45 // wait a bit: delay(150); // scroll 16 positions (display length + string length) to the left // to move it back to center: for (int positioncounter = 0; positioncounter < 16; positioncounter++) // scroll one position left: lcd.scrolldisplayleft(); // wait a bit: delay(150); // delay at the end of the full loop: delay(1000); LANGKAH-LANGKAH PERCOBAAN 1. Nyalakan computer dengan program Arduino! 2. Sambungkan Trainer mikrokontroler dengan computer menggunakan kabel USB! 3. Sambungkan kabel-kabel jumper sesuai dengan praktikum yang dilaksanakan! 4. Ketiklah program yang diatas pada software Arduino! 5. Lakukan verifikasi terhadap program, apakah terjadi error atau tidak! 6. Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam mikrokontroler! 7. Amati hasilnya apakah sudah sesuai dengan perintah instruktur atau belum, kalau belum lakukan editing program dan kembali ke langkah 5! 45

46 BAB VI : PERCOBAAN KEYPAD TUJUAN: 1. Mahasiswa memahami rangkaian interface keypad 4x4 dengan mikrokontroller 2. Mahasiswa memahami library Arduino untuk pengambilan data keypad 3. Mahasiswa memahami library Arduino untuk pengambilan data keypad dan mengeluarkan ke LCD Karakter PERALATAN 1. Sebuah Komputer 2. Satu set trainer mikrokontroler DASAR TEORI Keypad sering digunakan sebagai suatu input pada beberapa peralatan yang berbasis mikroprosessor atau mikrokontroller. Keypad sesungguhnya terdiri dari sejumlah saklar, yang terhubung sebagai baris dan kolom dengan susuan seperti yang ditunjukkan pada gambar 6.1. Agar mikrokontroller dapat melakukan scan keypad, maka port mengeluarkan salah satu bit dari 4 bit yang terhubung pada kolom dengan logika low 0 dan selanjutnya membaca 4 bit pada baris untuk menguji jika ada tombol yang ditekan pada kolom tersebut. Sebagai konsekuensi, selama tidak ada tombol yang ditekan, maka mikrokontroller akan melihat sebagai logika high 1 pada setiap pin yang terhubung ke baris. Gambar 6.1. Skema Keypad 4X4 Konstruksi matrix keypad 4 4 diatas cukup sederhana, yaitu terdiri dari 4 baris dan 4 kolom dengan keypad berupas saklar push buton yang diletakan disetiap persilangan kolom dan barisnya. Rangkaian matrix keypad diatas terdiri dari 16 saklar push buton dengan konfigurasi 4 baris dan 4 kolom. 8 line yang terdiri dari 4 baris dan 4 kolom tersebut dihubungkan dengan port mikrokontroler 8 bit. Sisi baris dari matrix keypad ditandai dengan nama Row1, Row2, Row3 dan Row4 kemudian sisi kolom ditandai 46

47 dengan nama Col1, Col2, Col3 dan Col4. Sisi input atau output dari matrix keypad 4 4 ini tidak mengikat, dapat dikonfigurasikan kolom sebagi input dan baris sebagai output atau sebaliknya tergantung programernya. Proses Scaning Matrix Keypad 4 4 Untuk Mikrokontroler Proses scaning untuk membaca penekanan tombol pada matrix keypad 4 4 untuk mikrokontroler diatas dilakukan secara bertahap kolom demi kolom dari kolom pertama sampai kolom ke 4 dan baris pertama hingga baris ke 4. Program untuk scaning matrix keypad 4 4 dapat bermacam-macam, tapi pada intinya sama. Misal kita asumsikan keyapad aktif LOW (semua line kolom dan baris dipasang resistor pull-up) dan dihubungkan ke port mikrokontrolr dengan jalur kolom adalah jalur input dan jalur baris adalah jalur output maka proses scaning matrix keypad 4 4 diatas dapat dituliskan sebagai berikut. Mengirimkan logika Low untuk kolom 1 (Col1) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan Mengirimkan logika Low untuk kolom 2 (Col2) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan Mengirimkan logika Low untuk kolom 3 (Col3) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan Mengirimkan logika Low untuk kolom 4 (Col4) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan Kemudian data pembacaan baris ini diolah sebagai 47

48 pembacaan data penekanan tombol keypad. Sehingga tiap tombol pada matrix keypad 4 4 diatas dengan teknik scaning tersebut akan menghasilkan data penekanan tiap-tiap tombol sebagai berikut. SW1 = SW9 = SW2 = SW10 = SW3 = SW11 = SW4 = SW12 = SW5 = SW13 = SW6 = SW14 = SW7 = SW15 = SW8 = SW16 = Data port mikrokontroler, misalkan pada SW2 = tersebut terbagi dalam nible atas dan nible bawah dimana data nible atas (1011) merupakan data yang kita kirimkan sedangkan data nible bawah (0111) adalah data hasil pembacaan penekanan tombol keypad SW2 pada proses scaning matrix keypad 4 4 diatas. Gambar 6.2. Interfacing Keypad 4X4 ke Mikrokontroler Percobaan 8 Untuk memahami prinsip kerja dari sebuah keypad dengan program Arduino dapat dicoba untuk program dibawah ini. #include <Keypad.h> const byte ROWS = 4; //four rows const byte COLS = 4; //four columns char keys[rows][cols] = '1','2','3', 'A', 48

49 '4','5','6', 'B', '7','8','9', 'C', '*','0','#', 'D' ; byte rowpins[rows] = 5, 4, 3, 2; //connect to the row pinouts of the keypad byte colpins[cols] = 9, 8, 7, 6; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makekeymap(keys), rowpins, colpins, ROWS, COLS ); void setup() Serial.begin(9600); void loop() char key = keypad.getkey(); if (key) Serial.println(key); Untuk contoh program yang kedua dapat diketikkan program berikut ini. #include <Keypad.h> const byte ROWS = 4; //four rows const byte COLS = 4; // four columns char keys[rows][cols] = '1','2','3','A', '4','5','6','B', '7','8','9','C', '*','0','#','D' ; byte rowpins[rows] = 5, 4, 3, 2; //connect to the row pinouts of the keypad byte colpins[cols] = 9, 8, 7, 6; //connect to the column pinouts of the keypad Keypad kpd = Keypad( makekeymap(keys), rowpins, colpins, ROWS, COLS ); unsigned long loopcount = 0; unsigned long timer_t = 0; void setup() Serial.begin(9600); 49

50 // Try playing with different debouncetime settings to see how it affects // the number of times per second your loop will run. The library prevents // setting it to anything below 1 millisecond. kpd.setdebouncetime(10); // setdebouncetime(ms) void loop() char key = kpd.getkey(); // Report the number of times through the loop in 1 second. This will give // you a relative idea of just how much the debouncetime has changed the // speed of your code. If you set a high debouncetime your loopcount will // look good but your keypresses will start to feel sluggish. if ((millis() - timer_t) > 1000) Serial.print("Your loop code ran "); Serial.print(loopCount); Serial.println(" times over the last second"); loopcount = 0; timer_t = millis(); loopcount++; if(key) Serial.println(key); Berikut ini contoh untuk multi key dari sebuah keypad #include <Keypad.h> const byte ROWS = 4; //four rows const byte COLS = 4; //four columns char keys[rows][cols] = '1','2','3','A', '4','5','6','B', '7','8','9','C', '*','0','#','D' ; byte rowpins[rows] = 5, 4, 3, 2; //connect to the row pinouts of the kpd byte colpins[cols] = 9, 8, 7, 6; //connect to the column pinouts of the kpd Keypad kpd = Keypad( makekeymap(keys), rowpins, colpins, ROWS, COLS ); unsigned long loopcount; unsigned long starttime; String msg; 50

51 void setup() Serial.begin(9600); loopcount = 0; starttime = millis(); msg = ""; void loop() loopcount++; if ( (millis()-starttime)>5000 ) Serial.print("Average loops per second = "); Serial.println(loopCount/5); starttime = millis(); loopcount = 0; // Fills kpd.key[ ] array with up-to 10 active keys. // Returns true if there are ANY active keys. if (kpd.getkeys()) for (int i=0; i<list_max; i++) // Scan the whole key list. if ( kpd.key[i].statechanged ) // Only find keys that have changed state. switch (kpd.key[i].kstate) // Report active key state : IDLE, PRESSED, HOLD, or RELEASED case PRESSED: msg = " PRESSED."; break; case HOLD: msg = " HOLD."; break; case RELEASED: msg = " RELEASED."; break; case IDLE: msg = " IDLE."; Serial.print("Key "); Serial.print(kpd.key[i].kchar); Serial.println(msg); // End loop LANGKAH-LANGKAH PERCOBAAN 51

52 1. Nyalakan computer dengan program Arduino! 2. Sambungkan Trainer mikrokontroler dengan computer menggunakan kabel USB! 3. Sambungkan kabel-kabel jumper sesuai dengan praktikum yang dilaksanakan! 4. Ketiklah program yang diatas pada software Arduino! 5. Lakukan verifikasi terhadap program, apakah terjadi error atau tidak! 6. Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam mikrokontroler! 7. Amati hasilnya apakah sudah sesuai dengan perintah instruktur atau belum, kalau belum lakukan editing program dan kembali ke langkah 5! 52

53 BAB VII : PERCOBAAN ANALOG TO DIGITAL, DIGITAL TO ANALOG CONVERTER TUJUAN 1. Mahasiswa memahami input analaog pada mikrokontroller Arduino 2. Mahasiswa memahami perhitungan tegangan resolusi ADC mikrokontroler Arduino 3. Mahasiswa memahami perintah input analog, analogread(), analogreference(parameter) 4. Mahasiswa dapat memahami program Arduino untuk menampilkan data input analog 5. Mahasiswa dapat memahami output analog dan PWM (Pulse Width Modulation) 6. Mahasiswa memahami perintah output analog, analogwrite() PERALATAN 1. Sebuah Komputer 2. Satu set trainer mikrokontroler TEORI DASAR ADC (Analog to Digital Converter) Arduino khusus menyediakan 6 kanal (8 kanal pada model Uno, Mini dan Nano, dan 16 pada model Mega) untuk difungsikan sebagai analog input. Analog ke digital converternya menggunakan resolusi 10 bit yang berarti range nilai analog dari 0 volt sampai 5 volt akan dirubah kenilai integer 0 sampai 1023, atau resolusinya adalah 5 volt/1024=4,9mv per unit dimana itu berarti nilai digital yang dihasilkan akan berubah setiap perubahan 4,9mV dari tegangan input analognya. Akan tetapi range input analog dan resolusi tersebut dapat dirubah dengan fungsi analogreference(). Perintah yang digunakan untuk fungsi analog input ini adalah: 1. analogread(pin): berfungsi untuk membaca nilai analog pada input pin yang akan menghasilkan nilai integer antara analogreference(parameter): berfungsi untuk menentukan referensi yang digunakan. Parameternya meliputi: DEFAULT: default analog reference yaitu 5V (pada board Arduino 5V) atau 3,3 volt (pada board Arduino 3,3 V) INTERNAL: built-in referensi internal tergantung pada jenis mikrokontroler yang terpasang pada board Arduino, 1.1 volt pada ATmega168 atau ATmega328 dan 2.56 volt pada ATmega8. INTERNAL1V1: a built-in referensi internal 1.1V (khusus Arduino Mega) INTERNAL2V56: a built-in referensi internal 2,56V (khusus Arduino Mega) EXTERNAL: pilihan referensi yang tergantung pada tegangan yang diberikan pada pin AREF(hanya dengan range tegangan 0 sampai 5V). 53

54 Perlu untuk diperhatikan, jangan menggunakan referensi dibawah 0 volt atau lebih dari 5 volt dan pastikan memilih referensi external sebelum perintah analogread() jika menghubungkan pin AREF dengan referensi eksternal karena jika tidak akan bisa merusak mikrokontrol. Gambar 7.1. Rangkaian Input Analog dengan potensiometer DAC (Digital to Analog Converter) Percobaan 9 Input analog Menunjukkan input analog dengan membaca sensor analog pada analog pin 0 dan menghidupkan serta mematikan LED yang terhubung ke pin digital 13. Jumlah waktu LED akan on dan off tergantung pada nilai yang diperoleh oleh analogread (). Komponen Rangkaian: * Potensiometer dihubungkan ke analog input 0 * Pin tengah dari potensiometer ke pin analog Mikrokontroler Arduino * Satu sisi pin (salah satu) ke ground * Pin sisi lain untuk 5 V * LED anoda (kaki panjang) yang melekat pada keluaran digital 13 * LED katoda (kaki pendek) yang melekat pada ground * Catatan: karena sebagian Arduinos memiliki built-in LED yang terpasang untuk pin 13 di papan, LED adalah opsional. 54

55 int sensorpin = A0; // select the input pin for the potentiometer int ledpin = 13; // select the pin for the LED int sensorvalue = 0; // variable to store the value coming from the sensor void setup() // declare the ledpin as an OUTPUT: pinmode(ledpin, OUTPUT); void loop() // read the value from the sensor: sensorvalue = analogread(sensorpin); // turn the ledpin on digitalwrite(ledpin, HIGH); // stop the program for <sensorvalue> milliseconds: delay(sensorvalue); // turn the ledpin off: digitalwrite(ledpin, LOW); // stop the program for for <sensorvalue> milliseconds: delay(sensorvalue); Input analog yang ditampilkan secara serial lewat komponen serial monitor pada software editing Arduino const int analoginpin = A0; // Analog input pin that the potentiometer is attached to const int analogoutpin = 9; // Analog output pin that the LED is attached to int sensorvalue = 0; int outputvalue = 0; // value read from the pot // value output to the PWM (analog out) void setup() // initialize serial communications at 9600 bps: Serial.begin(9600); void loop() // read the analog in value: sensorvalue = analogread(analoginpin); 55

56 // map it to the range of the analog out: outputvalue = map(sensorvalue, 0, 1023, 0, 255); // change the analog out value: analogwrite(analogoutpin, outputvalue); // print the results to the serial monitor: Serial.print("sensor = " ); Serial.print(sensorValue); Serial.print("\t output = "); Serial.println(outputValue); // wait 2 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(2); Pada percobaan ADC ini dapat juga digabungkan dengan output analog yang berupa PWM (Pulse Width Modulation), kasus ini akan mengatur terang dan redupnya lampu LED yang terhubung pada pin 13 dari mikrokontroler Arduino. int ledpin = 9; // LED connected to digital pin 9 void setup() // nothing happens in setup void loop() // fade in from min to max in increments of 5 points: for(int fadevalue = 0 ; fadevalue <= 255; fadevalue +=5) // sets the value (range from 0 to 255): analogwrite(ledpin, fadevalue); // wait for 30 milliseconds to see the dimming effect delay(30); // fade out from max to min in increments of 5 points: for(int fadevalue = 255 ; fadevalue >= 0; fadevalue -=5) // sets the value (range from 0 to 255): 56

57 analogwrite(ledpin, fadevalue); // wait for 30 milliseconds to see the dimming effect delay(30); LANGKAH-LANGKAH PERCOBAAN 1. Nyalakan computer dengan program Arduino! 2. Sambungkan Trainer mikrokontroler dengan computer menggunakan kabel USB! 3. Sambungkan kabel-kabel jumper sesuai dengan praktikum yang dilaksanakan! 4. Ketiklah program yang diatas pada software Arduino! 5. Lakukan verifikasi terhadap program, apakah terjadi error atau tidak! 6. Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam mikrokontroler! 7. Amati hasilnya apakah sudah sesuai dengan perintah instruktur atau belum, kalau belum lakukan editing program dan kembali ke langkah 5! 57

58 BAB VIII : PERCOBAAN LCD GRAFIK Tujuan : 1. Mahasiswa memahami rangkaian interface mikrokontroller dengan LCD grafik 128X64 2. Mahasiswa dapat memahami program Arduino untuk menampilkan grafik ke LCD grafik 128X64 3. Mahasiswa memahami beberapa instruksi pada library header u8glib 4. Mahasiswa memahami koordinat untuk menampilkan tulisan atau gambar pada LCD PERALATAN 1. Sebuah Komputer 2. Satu set trainer mikrokontroler Teori Dasar Display elektronik adalah salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal Display) berfungsi sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik. Material LCD (Liquid Cristal Display) LCD adalah lapisan dari campuran organik antara lapisan kaca bening dengan elektroda transparan indium oksida dalam bentuk tampilan seven-segment dan lapisan elektroda pada kaca belakang. Ketika elektroda diaktifkan dengan medan listrik (tegangan), molekul organik yang panjang dan silindris menyesuaikan diri dengan elektroda dari segmen. Lapisan sandwich memiliki polarizer cahaya vertikal depan dan polarizer cahaya horisontal belakang yang diikuti dengan lapisan reflektor. Cahaya yang dipantulkan tidak dapat melewati molekul-molekul yang telah menyesuaikan diri dan segmen yang diaktifkan terlihat menjadi gelap dan membentuk karakter data yang ingin ditampilkan. Dalam modul LCD (Liquid Cristal Display) terdapat microcontroller yang berfungsi sebagai pengendali tampilan karakter LCD (Liquid Cristal Display). Microntroller pada suatu LCD (Liquid Cristal Display) dilengkapi dengan memori dan register. Memori yang digunakan microcontroler internal LCD adalah : DDRAM (Display Data Random Access Memory) merupakan memori tempat karakter yang akan ditampilkan berada. 58

59 CGRAM (Character Generator Random Access Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan. CGROM (Character Generator Read Only Memory) merupakan memori untuk menggambarkan pola sebuah karakter dimana pola tersebut merupakan karakter dasar yang sudah ditentukan secara permanen oleh pabrikan pembuat LCD (Liquid Cristal Display) tersebut sehingga pengguna tinggal mangambilnya sesuai alamat memorinya dan tidak dapat merubah karakter dasar yang ada dalam CGROM. Register control yang terdapat dalam suatu LCD diantaranya adalah. Register perintah yaitu register yang berisi perintah-perintah dari mikrokontroler ke panel LCD (Liquid Cristal Display) pada saat proses penulisan data atau tempat status dari panel LCD (Liquid Cristal Display) dapat dibaca pada saat pembacaan data. Register data yaitu register untuk menuliskan atau membaca data dari atau keddram. Penulisan data pada register akan menempatkan data tersebut keddram sesuai dengan alamat yang telah diatur sebelumnya. Pin, kaki atau jalur input dan kontrol dalam suatu LCD (Liquid Cristal Display) diantaranya adalah : Pin data adalah jalur untuk memberikan data karakter yang ingin ditampilkan menggunakan LCD (Liquid Cristal Display) dapat dihubungkan dengan bus data dari rangkaian lain seperti mikrokontroler dengan lebar data 8 bit. Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan jenis data yang masuk, apakah data atau perintah. Logika low menunjukan yang masuk adalah perintah, sedangkan logika high menunjukan data. Pin R/W (Read Write) berfungsi sebagai instruksi pada modul jika low tulis data, sedangkan high baca data. Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar. Pin VLCD berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini dihubungkan dengan trimpot 5 Kohm, jika tidak digunakan dihubungkan ke ground, sedangkan tegangan catu daya ke LCD sebesar 5 Volt. GLCD (Graphic Liquid Crystal Display) 128 x 64 pixel adalah perangkat penampil berbahan kristal cair yang dapat memendarkan cahaya berupa titik titik cahaya(pixel) tersusun secara matriks berjumlah 128 x 64 pixel. GLCD dapat menampilkan gambar (bitmap), angka, huruf dan simbol-simbol tertentu. WG12864C-TMI VN adalah modul dengan tampilan grafik 128 x 64 pixel tipe STN Negative Transmissive Blue dengan white led backlight 59

60 Gambar 8.1. Bentuk Fisik LCD Grafik 128X64 Modul GLCD ini dilengkapi dengan mikroprosesor KS0107-KS0108 buatan Samsung sebagai driver 64 channel output pada penampil matriksglcd. Perangkat ini terdiri dari display RAM ( Random Access Memmory)kapasitas 512 bytes, 64 bit data lacth 64 bit drivers dan decoder logic. GLCD128 x 64 memerlukan program (library) khusus untuk mikroprosesor KS0108 agar dapat berkomunikasi dengan mikrokontroler. Percobaan 10 Menghubungkan arduino dengan LCD grafik menggunakan serial programming interface seperti terlihat pada tabel dibawah ini Pin LCD Fungsi Arduino 1 GND GND 2 VCC VCC 5 Volt 3 VO (adjustable) Potensio adjustable 4 RS PIN 4 5 RW PIN 5 6 Enable PIN 6 15 Comunikasi Paralel (HIGH) / Serial (LOW) GND 17 Reset PIN 7 19 Backlight V atau 5 Volt 20 Backlight - GND #include "U8glib.h" U8GLIB_ST7920_128X64_1X u8g(6, 5, 4,7); //Enable, RW, RS, RESET int display = 1; 60

61 void u8g_prepare() u8g.setfont(u8g_font_6x10); u8g.setfontrefheightextendedtext(); u8g.setdefaultforegroundcolor(); u8g.setfontpostop(); void u8g_tela1() //Tela 1 u8g.setfont(u8g_font_unifont); u8g.drawstr( 11, 35, "FASILKOM SBY"); u8g.drawstr( 12, 35, "FASILKOM SBY"); u8g.drawframe(0,0,128,64); u8g.drawframe(2,2,124,60); void u8g_tela2() //Tela 2 u8g.drawrframe(0,0,128,64,3); u8g.drawstr( 3, 10, "Waktu:13:00"); u8g.drawstr( 3, 25, "Temp: 27"); char s[2] = " "; s[0] = 176; u8g.drawstr(51, 25, s); u8g.drawstr( 3, 40, "Lembab: 25%"); u8g.drawcircle(95,32,28); u8g.drawcircle(95,32,29); u8g.drawline(95, 9, 95, 4); u8g.drawline(123, 32, 118, 32); u8g.drawline(95, 55, 95, 60); u8g.drawline(67, 32, 72, 32); u8g.drawline(95, 32, 95, 12); u8g.drawline(95, 32, 100.8, ); u8g.setfont(u8g_font_04b_03); u8g.drawstr(89,43, "Jam"); u8g.drawstr(85,50, "Menit"); 61

62 void u8g_tela3() //Tela 3 char s[2] = " "; u8g.drawstr( 0, 0, "ASCII page 1"); for(int y = 0; y < 6; y++ ) for(int x = 0; x < 16; x++ ) s[0] = y*16 + x + 32; u8g.drawstr(x*7, y*10+10, s); void u8g_tela4() //Tela 3 char s[2] = " "; uint8_t x, y; u8g.drawstr( 0, 0, "ASCII page 2"); for( y = 0; y < 6; y++ ) for( x = 0; x < 16; x++ ) s[0] = y*16 + x + 160; u8g.drawstr(x*7, y*10+10, s); void u8g_tela5() //Tela 5 u8g.setfont(u8g_font_unifont); u8g.drawbox(0,0,128,64); u8g.drawbox(2,2,124,60); u8g.setcolorindex(0); u8g.drawstr( 11, 35, "FASILKOM Sby"); u8g.drawstr( 12, 35, "FASILKOM Sby"); 62

63 u8g.drawframe(2,2,124,60); void u8g_tela6() //Tela 6 u8g.setfont(u8g_font_helvb08); u8g.drawstr(50,31, " Siskom"); u8g.drawstr90(50,31, " Sby"); u8g.drawstr270(50,31, " ***."); void u8g_tela7() //Tela 7 u8g.setfont(u8g_font_robot_de_niro); u8g.drawstr(5,13, "FASILKOM Sby!"); u8g.setfont(u8g_font_helvb08); u8g.drawstr(5,25, "FASILKOM Sby!"); u8g.drawbox(5,31, 118,11); u8g.setcolorindex(0); u8g.setfont(u8g_font_8x13); u8g.drawstr(5,41, "FASILKOM Sby!"); u8g.setcolorindex(1); u8g.setfont(u8g_font_ncenb10); u8g.drawstr(5,60, "FASILKOM Sby!"); void draw() u8g_prepare(); switch(display) case 1: u8g_tela1(); break; case 2: u8g_tela2(); break; case 3: 63

64 u8g_tela3(); break; case 4: u8g_tela4(); break; case 5: u8g_tela5(); break; case 6: u8g_tela6(); break; case 7: u8g_tela7(); break; void setup() if ( u8g.getmode() == U8G_MODE_R3G3B2 ) u8g.setcolorindex(255); // white else if ( u8g.getmode() == U8G_MODE_GRAY2BIT ) u8g.setcolorindex(1); // max intensity else if ( u8g.getmode() == U8G_MODE_BW ) u8g.setcolorindex(1); // pixel on //u8g.setcontrast(0x30); void loop() // picture loop for (display =1; display < 8; display++) u8g.firstpage(); do 64

65 draw(); while( u8g.nextpage() ); delay(3000); LANGKAH-LANGKAH PERCOBAAN 1. Nyalakan computer dengan program Arduino! 2. Sambungkan Trainer mikrokontroler dengan computer menggunakan kabel USB! 3. Sambungkan kabel-kabel jumper sesuai dengan praktikum yang dilaksanakan! 4. Ketiklah program yang diatas pada software Arduino! 5. Lakukan verifikasi terhadap program, apakah terjadi error atau tidak! 6. Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam mikrokontroler! 7. Amati hasilnya apakah sudah sesuai dengan perintah instruktur atau belum, kalau belum lakukan editing program dan kembali ke langkah 5! 65

66 BAB IX : PERCOBAAN SENSOR LDR, LM35, DAN NTC TUJUAN: 1. Mahasiswa mengenal beberapa sensor cahaya dan sensor suhu 2. Mahasiswa mampu memprogram aplikasi untuk sensor-sensor tersebut 3. Mahasiswa mampu menghitung konversi ADC ke dalam bentuk besaran yang terukur PERALATAN 1. Sebuah Komputer 2. Satu set trainer mikrokontroler TEORI DASAR Light Dependent Resistor atau yang biasa disebut LDR adalah jenis resistor yang nilainya berubah seiring intensitas cahaya yang diterima oleh komponen tersebut. Biasa digunakan sebagai detektor cahaya atau pengukur besaran konversi cahaya.light Dependent Resistor, terdiri dari sebuah cakram semikonduktor yang mempunyai dua buah elektroda pada permukaannya.pada saat gelap atau cahaya redup, bahan dari cakram tersebut menghasilkan elektron bebas dengan jumlah yang relatif kecil.sehingga hanya ada sedikit elektron untuk mengangkut muatan elektrik.artinya pada saat cahaya redup LDR menjadi konduktor yang buruk, atau bisa disebut juga LDR memiliki resistansi yang besar pada saat gelap atau cahaya redup.pada saat cahaya terang, ada lebih banyak elektron yang lepas dari atom bahan semikonduktor tersebut. Sehingga akan ada lebih banyak elektron untuk mengangkut muatan elektrik. Artinya pada saat cahaya terang LDR menjadi konduktor yang baik, atau bisa disebut juga LDR memiliki resistansi yangkecil pada saat cahaya terang. Prinsip Kerja LDR Pada sisi bagian atas LDR terdapat suatu garis atau jalur melengkung yang menyerupai bentuk kurva.jalur tersebut terbuat dari bahan cadmium sulphida yang sangat sensitiv terhadap pengaruh dari cahaya.jalur cadmium sulphida yang terdapat pada LDR.Jalur cadmium sulphida dibuat melengkung menyerupai kurva agar jalur tersebut dapat dibuat panjang dalam ruang (area) yang sempit. Cadmium sulphida (CdS) merupakan bahan semi-konduktor yang memiliki gap energi antara elektron konduksi dan elektron valensi. Ketika cahaya mengenai cadmium sulphida, maka energi proton dari cahaya akan diserap sehingga terjadi perpindahan dari band valensi ke band konduksi. Akibat perpindahan elektron tersebut mengakibatkan hambatan dari cadmium sulphida berkurang dengan hubungan kebalikan dari intensitas cahaya yang mengenai LDR.Lihat gambar dibawah ini. 66

67 Gambar 9.1. Bentuk Fisik LDR Karakteristik LDR A. Laju Recovery Bila sebuah LDR dibawa dari suatu ruangan dengan level kekuatan cahayatertentu kedalam suatu ruangan yang gelap sekali, 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 dikegelapan setelah mengalami selang waktu tertentu. dan suatu kenaikan nilai resistansi dalam waktu tertentu. Harga ini ditulis dalam K Ω /detik. untuk LDR type arus harganya lebih besar dari 200 K Ω /detik (selama 20 menitpertama mulai dari level cahaya 100 lux), kecepatan tersebut akan lebih tinggi pada arahsebaliknya, yaitu pindah dari tempat gelap ke tempat terang yang memerlukan waktukurang dari 10 ms untuk mencapai resistansi yang sesuai dengan level cahaya 400 lux. B. Respon Spektral LDR 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, alumunium, baja, emas, dan perak.dari kelima bahan tersebut tembaga merupakan penghantar yang paling banyak digunakan karena mempunyai daya hantar yang baik.sensor ini sebagai pengindera yang merupakan eleman yang pertama tama menerima energi dari media untuk memberi keluaran berupa perubahan energi.sensor terdiri berbagai macam jenis serta media yang digunakan untuk melakukan perubahan. Media yang digunakan misalnya: panas, cahaya, air, angin, tekanan, dan lain sebagainya. Sedangkan pada rangkaian ini menggunakan sensor LDR yang menggunakan intensitas cahaya, selain LDR dioda foto juga menggunakan intensitas cahaya atau yang peka terhadap cahaya (photo conductivecell).pada rangkaian elektronika, sensor harus dapat mengubah bentuk bentuk energi cahaya ke energi listrik, sinyal listrik ini harus sebanding dengan besar energi sumbernya. Gambar dibawah ini merupakan karakteristik dari sensor LDR. 67

68 9.2. Kurva LDR Pada karakteristik diatas dapat dilihat bila cahaya mengenai sensor itu maka harga tahanan akan berkurang. Perubahan yang dihasilkan ini tergantung dari bahan yang digunakan serta dari cahaya yang mengenainya. LM35 Untuk mendeteksi suhu digunakan sebuah sensor suhu LM 35 yang dapat dikalibrasikan langsung dalam, LM 35 ini difungsikan sebagai basic temperature sensor seperti pada gambar 9.3 Gambar 9.3. Skematik Sensor 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 temperature ruang. Jangka sensor mulai dari 55 C sampai dengan 150 C, IC LM35 penggunaannya sangat mudah, difungsikan sebagai kontrol dari indicator 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. 68

69 Gambar 9.4. Mengukur Suhu LM35 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 C. LM35D juga tersedia pada paket 8 kaki dan paket TO-220. Sensor LM35 umunya akan naik sebesar 10mV setiap kenaikan 1 C (300mV pada 30 C). Gambar 9.5. Bentuk Fisik Sensor Suhu LM35 Sensor suhu LM35 berfungsi untuk mengubah besaran fisis yang berupa suhu menjadi besaran elektri tegangan. Sensor ini memiliki parameter bahwa setiap kenaikan 1 C tegangan keluarannya naik sebesar 10mV dengan batas maksimal keluaran sensor adalah 1,5V pada suhu 150 C. Pada perancangan kita tentukan keluaran ADC mencapai full scale pada saat suhu 100 C, sehingga tegangan keluaran tranduser (10mV/ C x 100 C) = 1V. Pengukuran secara langsung saat suhu ruang, keluaran LM35 adalah 0,3V (300mV). Tengan ini diolah dengan mengunakan rangkaian pengkondisi sinyal agar sesuai dangan tahapan masukan ADC. LM35 memiliki kelibihan kelebihan sebagai berikut: 1. Di kalibrasi langsung dalam celsius 2. Memiliki faktor skala linear mv/ C 3. Memiliki ketetapan 0,5 C pada suhu 25 C 4. Jangkauan maksimal suhu antara -55 C sampai 150 C 5. Cocok untuk applikasi jarak jauh 69

70 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,08 C diudara diam 11. Ketidak linearanya hanya sekitar ±¼ C 12. 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 memilik 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 proses interface untuk membaca atau mengotrol sirkuit lebuh mudah. Pin V+ dari LM35 dihubungkan kecatu daya, pin GND dihubungkan ke Ground dan pin Vout- yang menghasilkan tegangan analog hasil pengindera suhu dihubungkan ke pin analog Arduino. NTC Sensor adalah komponen yang dapat digunakan untuk mengkonversi suatu besaran tertentu menjadi satuan analog sehingga dapat dibaca oleh suatu rangkaian elektronik. Sensor merupakan komponen utama dari suatu tranduser, sedangkan tranduser merupakan sistem yang melengkapi agar sensor tersebut mempunyai keluaran sesuai yang kita inginkan dan dapat langsung dibaca pada keluarannya. Suhu adalah salah satu gejala alam yang diukur dalam sebuah sistemkontrol. Derajat atau tingkat kepanasan sesuatu atau obyek yang diukur. Sehingga Sensor suhu adalah alat yang digunakan untuk merubah besaran panas menjadi besaran listrik yang dapat dengan mudah dianalisis besarnya. Ada beberapa metode yang digunakan untuk membuat sensor ini, salah satunya dengan cara menggunakan material yang berubah hambatannya terhadap arus listrik sesuai dengan suhunya. Sensor adalah alat yang digunakan untuk mengubah besaran mekanis, magnetis, panas, sinar, dan kimia menjadi tegangan dan arus listrik. Sensor sering digunakan untuk pendeteksian pada saat melakukan pengukuran atau pengendalian. Sensor suhu adalah alat atau komponen atau sensor elektronika yang dipakai untuk mengukur suhu. Pada percobaan ini kita menggunakan sensor suhu yang menggunakan termistor atau yang menggunakan resistor NTC atau PTC. Prinsip dasar dari termistor adalah perubahan nilai tahanan (atau hambatan atau werstan atau resistance) jika suhu atau temperatur yang mengenai termistor ini berubah. Termistor ini merupakan gabungan antara kata termo (suhu) dan resistor (alat pengukur tahanan). Sensor suhu termistor 70

71 ditemukan oleh Samuel Ruben pada tahun 1930, dan mendapat hak paten di Amerika Serikat dengan nomor # Ada dua macam termistor secara umum: Posistor atau PTC (Positive Temperature Coefficient), dan NTC (Negative Temperature Coefficien). Nilai tahanan pada PTC akan naik jika suhunya naik, sementara NTC justru kebalikannya. Termistor adalah salah satu jenis sensor suhu yang mempunyai koefisien temperatur yang tinggi.dimana komponen ini dapat mengubah nilai resistansi karena adanya perubahan temperatur. Dengan demikian dapat memudahkan kita untuk dijadikan sebagai mengubah energi panas menjadi energi listrik.termistor dibedakan dalam 3 jenis,yaitu termistor yang mempunyai koefisien negatif, yang disebut NTC ( Negative temperature Coefisient), temistor yang mempunyai koefisien positif, yang disebut PTC (positive Temperature Coefisient) dan termistor yang mempunyai tahanan kritis, yaitu CTR ( Critical Temperature Resistance). Metode Pembuatan Sensor Suhu 1. Menggunakan Bahan Logam Logam akan bertambah besar hambatannya terhadap arus listrik jika panasnya bertambah. Hal ini dapat dijelaskan dari sisi komponen penyusun logam. Logam dapat dikatakan sebagai muatan positif yang berada di dalam elektron yang bergerak bebas. Jika suhu bertambah, elektronelektron tersebut akan bergetar dan getarannya semakin besar seiring dengan naiknya suhu. Dengan besarnya getaran tersebut, maka gerakan elektron akan terhambat dan menyebabkan nilai hambatan dari logam tersebut bertambah. 2. Menggunakan Bahan Semi Konduktor Bahan semikonduktor mempunyai sifat terbalik dari logam, semakin besar suhu, nilai hambatan akan semakin turun. Hal ini dikarenakan pada suhu yang semakin tinggi, elektron dari semikonduktor akan berpindah ke tingkat yang paling atas dan dapat bergerak dengan bebas. Seiring dengan kenaikan suhu, semakin banyak elektron dari semikonduktor tersebut yang bergerak bebas, sehingga nilai hambatan tersebut berkurang. Untuk mendapatkan sinyal listrik yang baik dengan sedikit kegaduhan, dapat digunakan jembatan Wheatstone dan rangkaian Lock in Amplifier. NTC (Negative Temperature Coeficient ) adalah jenis resistor non linier yang nilai hambatannya terpengaruh oleh perubahan suhu. Makin tinggi suhu yang mempengaruhi makin kecil nilai hambatannya. NTC, termistor yang mempunyai koefisient negatif yang tinggi, termistor jenis ini dibuat dari oksida logam yang terdapat dar golongan transisi, seperti ZrO2 - Y2P3 NiAI2O3 Mg(Al, Cr,Fe). oksida-oksida ini sebenarnya mempunyai resistansi yang sangat tingg, tetapi dapat 71

72 diubah menjadi bahan semikonduktor dengan menambahkan beberapa ion lain yang mempunyai valensi yang berbeda disebut dengan doping. dan pengaruh dari resistansinya dipengaruhi perubahan temperatur yang diberikan. Gambar 9.6. Bentuk Fisik dan Simbol NTC Percobaan 11.A LDR (light Dependent Resistor) adalah suatu resistor yang nilai resistansinya bergantung pada cahaya (Jika mendapat cahaya terang, nilai resistansi kecil sekitar puluhan s/d ratusan Ohm, jika kondisi gelap nilai resistansi akan besar bisa mencapai puluhan-ratusan KOhm bahkan bisa mencapai MOhm), umumnya LDR digunakan sebagai sensor cahaya. sensor LDR merupakan sensor yang cukup murah dan mudah digunakan. Rangkaianlah rangkaian percobaan seperti pada gambar dibawah ini. Untuk program uji coba dari rangkaian diatas dapat dituliskan program berikut ini int LDR_Pin = A0; //analog pin 0 void setup() Serial.begin(9600); 72

73 void loop() int LDRReading = analogread(ldr_pin); Serial.println(LDRReading); delay(250); //just here to slow down the output for easier reading Contoh lain untuk aplikasi LDR sebagai berikut #include <LiquidCrystal.h> int led7 = 7; int led6 = 6; int led5 = 5; int led4 = 4; int led3 = 3; int led2 = 2; int led1 = 1; int led0 = 0; LiquidCrystal lcd(13,12,11,10,9,8); void setup() lcd.begin(16,2); pinmode(led0, OUTPUT); pinmode(led1, OUTPUT); pinmode(led2, OUTPUT); pinmode(led3, OUTPUT); 73

74 pinmode(led4, OUTPUT); pinmode(led5, OUTPUT); pinmode(led6, OUTPUT); pinmode(led7, OUTPUT); void loop() // put your main code here, to run repeatedly: int LDR= analogread(a0); int temp=map(ldr,0,1023,0,255); lcd.setcursor(0,0); lcd.print("nilai data ADC :"); lcd.setcursor(0,1); lcd.print(temp); delay(10); lcd.clear(); if(temp==0) digitalwrite(led1, LOW); digitalwrite(led2, LOW); digitalwrite(led3, LOW); digitalwrite(led4, LOW); digitalwrite(led5, LOW); digitalwrite(led6, LOW); digitalwrite(led7, LOW); if(temp>0) digitalwrite(led7, HIGH); if(temp>32) digitalwrite(led6, HIGH); if(temp>64) digitalwrite(led5, HIGH); if(temp>96) digitalwrite(led4, HIGH); 74

75 if(temp>128) digitalwrite(led3, HIGH); if(temp>160) digitalwrite(led2, HIGH); if(temp>192) digitalwrite(led1, HIGH); if(temp>224) digitalwrite(led0, HIGH); //////////////////////////////// if(temp<0) digitalwrite(led7, LOW); if(temp<32) digitalwrite(led6, LOW); if(temp<64) digitalwrite(led5, LOW); if(temp<96) digitalwrite(led4, LOW); if(temp<128) digitalwrite(led3, LOW); if(temp<160) digitalwrite(led2, LOW); if(temp<192) digitalwrite(led1, LOW); if(temp<224) digitalwrite(led0, LOW); 75

76 Percobaan 11B Seri sensor suhu LM35 memiliki keluaran tegangan (Vout) yang linearly proportionalterhadap suhu Celcius (Centigrade); faktor skala-nya +10mV/derajat Celcius. Kenaikan Vout 10mV menunjukkan ada kenaikan suhu sebesar 1 derajat Celcius. Menghitung Vout: Vout dalam milivolt = sensorvalue * (5 * 1000/1024) 1024 adalah resolusi ADC: 10bit. 5 adalah Analog Reference (ARef); dalam milivolt menjadi: 5 * Default library arduino menggunakan resolusi ADC 10bit dan ARef = Vcc (+5V pada Sasakala-M328). Menghitung Suhu (Celcius): suhucelcius = Vout dalam milivolt / 10 = sensorvalue * (500/1024) void setup() // put your setup code here, to run once: Serial.begin(9600); void loop() // put your main code here, to run repeatedly: int sensorvalue = analogread(a0); float volt = sensorvalue/ * 5; float suhu = 100 * volt; Serial.print("Sensor Value : "); Serial.println(sensorValue); 76

77 Serial.print("Input Volt : "); Serial.println(volt); Serial.print("Suhu : "); Serial.println(suhu); delay(1000); Percobaan 11C Thermistor NTC-3950 dengan nilai hambatan 100 KΩ ini berpresisi tinggi (nilai toleransi hanya 1%), dengan rentang suhu operasional yang lebar antara -45 C hingga +395 C ideal untuk digunakan sebagai sensor temperatur pada sistem injeksi plastik semacam 3D Reprap Printer. NTC atau Negative-Temperature-Coefficient Thermistor adalah komponen elektronika yang termasuk dalam kelompok resistive transducer, di mana nilai hambatan dari termistor ini menurun sesuai dengan perubahan suhu. Artinya semakin panas temperatur yang terpapar pada komponen sensor ini, semakin kecil hambatan dan semakin besar arus yang dapat melewatinya. Perubahan ini juga dapat dibaca sebagai perubahan tegangan dengan memasangkan termistor dalam sirkuit pembagi tegangan (voltage divider circuit). Thermistor ini berukuran sangat kecil dengan lebar hanya 0,8 mm dan panjang 1,5 mm sehingga fleksibel untuk ditempatkan pada ruang terbatas, misalnya pada sisi injector nozzle. Angka "3950" merupakan konstanta thermistor (istilahnya "B-Constant" atau sering juga direferensikan sebagai "B- Value") yang merupakan fungsi thermistor terhadap temperatur absolut, yang dapat digunakan pada perhitungan berdasarkan rumus sbb.: R = R 0 x exp(b) x ( 1/T - 1/T 0 ) R adalah nilai resistansi yang terukur / terdeteksi saat sensor ini difungsikan. R 0 (dalam Ω) adalah resistansi pada suhu T 0 (dalam Kelvin). Thermistor ini memiliki nilai R 0 = 100KΩ pada T 0 = 25 C = 323K. dengan B 25/50 = 3950K. Dengan demikian, rumus tersebut dapat diturunkan dan disederhanakan menjadi (T dalam Kelvin): T = 3950 / ln( R / x e (-3950 / 323) ) 77

78 Untuk mendapatkan suhu dalam Celcius, cukup kurangkan nilai T di atas dengan 298. void setup() // put your setup code here, to run once: Serial.begin(9600); void loop() // put your main code here, to run repeatedly: int sensorvalue = analogread(a2); float volt = sensorvalue/ * 5; float suhu = 100 * volt; Serial.print("Sensor Value : "); Serial.println(sensorValue); Serial.print("Input Volt : "); Serial.println(volt); Serial.print("Suhu : "); Serial.println(suhu); delay(1000); LANGKAH-LANGKAH PERCOBAAN 1. Nyalakan computer dengan program Arduino! 2. Sambungkan Trainer mikrokontroler dengan computer menggunakan kabel USB! 3. Sambungkan kabel-kabel jumper sesuai dengan praktikum yang dilaksanakan! 4. Ketiklah program yang diatas pada software Arduino! 5. Lakukan verifikasi terhadap program, apakah terjadi error atau tidak! 6. Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam mikrokontroler! 7. Amati hasilnya apakah sudah sesuai dengan perintah instruktur atau belum, kalau belum lakukan editing program dan kembali ke langkah 5! 78

79 BAB X : PERCOBAAN MOTOR DC DAN SERVO TUJUAN 1. Mahasiswa mamahami rangkaian interface mikrokontroller dengan motor DC dan motor Servo 2. Mahasiswa memahami rangkaian driver motor DC L293D 3. Mahasiswa memahami program Arduino untuk mengatur arah putaran motor DC 4. Mahasiswa memahami program Arduino untuk mengatur arah sudut putaran motor Servo 5. Mahasiswa memahami program Arduino untuk mengatur arah kecepatan motor DC PERALATAN 1. Sebuah Komputer 2. Satu set trainer mikrokontroler TEORI DASAR MOTOR DC Motor DC merupakan jenis motor yang menggunakan tegangan searah sebagai sumber tenaganya. Dengan memberikan beda tegangan pada kedua terminal tersebut, motor akan berputar pada satu arah, dan bila polaritas dari tegangan tersebut dibalik maka arah putaran motor akan terbalik pula seperti pada gambar Polaritas dari tegangan yang diberikan pada dua terminal menentukan arah putaran motor sedangkan besar dari beda tegangan pada kedua terminal menentukan kecepatan motor Gambar Konstruksi motor DC Konstruksi motor DC pada gambar 10.1 memiliki 2 bagian dasar,yaitu : 1. Bagian yang tetap/stasioner yang disebut stator. Stator ini menghasilkan medan magnet, baik yang dibangkitkan dari sebuah koil (elektro magnet) ataupun magnet permanen. 2. Bagian yang berputar disebut rotor. Rotor ini berupa sebuah koil dimana arus listrik mengalir. 79

80 Gaya elektromagnet pada motor DC timbul saat ada arus yang mengalir pada penghantar yang berada dalam medan magnet. Medan magnet itu sendiri ditimbulkan oleh megnet permanen. Garis-garis gaya magnet mengalir diantara dua kutub magnet dari kutub utara ke kutub selatan. Menurut hukum gaya Lourentz, arus yang mengalir pada penghantar yang terletak dalam medan magnet akan menimbulkan gaya. Gaya F, timbul tergantung pada arah arus I, dan arah medan magnet B. Driver Motor DC dengan IC L293D Pada dasarnya beberapa aplikasi yang menggunakan motor DC harus dapat mengatur kecepatan dan arah putar dari motor DC itu sendiri. Untuk dapat melakukan pengaturan kecepatan motor DC dapat menggunakan metode PWM (Pulse Width Modulation) sedangkan untuk mengatur arah putarannya dapat menggunakan rangkaian H-bridge yang tersusun dari 4 buah transistor. Tetapi dipasaran telah disediakan IC L293D sebagai driver motor DC yang dapat mengatur arah putar dan disediakan pin untuk input yang berasal dari PWM untuk mengatur kecepatan motor DC. Untuk lebih memahami tentang membangkitkan sinyal PWM menggunakan fitur Timer pada mikrokontroler AVR dapat membacanya pada postingan tutorial AVR tentang PWM. Sebelum membahas tentang IC L293D, alangkah baiknya jika kita membahas driver motor DC menggunakan rangkaian analog terlebih dahulu. Jika diinginkan sebuah motor DC yang dapat diatur kecepatannya tanpa dapat mengatur arah putarnya, maka kita dapat menggunakan sebuah transistor sebagai driver. Untuk mengatur kecepatan putar motor DC digunakan PWM yang dibangkitkan melalui fitur Timer pada mikrokontroler. Sebagian besar power supply untuk motor DC adalah sebesar 12 V, sedangkan output PWM dari mikrokontroler maksimal sebesar 5 V. Oleh karena itu digunakan transistor sebagai penguat tegangan. Dibawah ini adalah gambar driver motor DC menggunakan transistor. Salah satu jenis motor yang sering digunakan dalam bidang kontrol yaitu Motor DC. Motor DC akan berputar jika dialiri tegangan dan arus DC. Berikut gambar 10.2 adalah motor DC dan jembatan H yang digunakan pada rancangan alat ini: Gambar Rangkaian Jembatan H Sistem pengaturan motor DC yang sering digunakan pada sistem kontrol seperti pada gambar 10.2 yaitu dengan H-Bridge yang pada pada dasarnya adalah 4 buah transistor yang difungsikan sebagai saklar. Pengaturan motor DC yaitu meliputi kecepatan dan arah. Pengaturan arah yaitu dengan cara membalik 80

81 tegangan logika masukan H-bridge. Sedangkan sistem pengendalian kecepatan motor DC digunakan prinsip PWM (Pulse Width Modulator) yaitu suatu metode pengaturan kecepatan putaran motor DC dengan mengatur lamanya waktu pensaklaran aktif (Duty Cycle). Motor DC merupakan sebuah komponen yang memerlukan arus yang cukup besar untuk menggerakannya. Oleh karena itu motor DC biasanya memiliki penggerak tersendiri. Pada tugas akhir ini motor DC akan digerakkan dengan menggunakan PWM yang telah terintegrasi dengan rangkaian HBridge. Dengan rangkaian H-Bridge yang memiliki input PWM ini, maka selain arah kita juga bisa mengendalikan kecepatan putar motor DC tersebut. Motor Servo Motor servo adalah motor yang mampu bekerja dua arah (clockwise dan counter clockwise), dengan arah dan sudut pergerakan rotornya dapat dikontrol hanya dengan memberikan sinyal PWM pada bagian pin kontrolnya. Motor Servo merupakan sebuah motor DC yang memiliki rangkaian kontrol elektronika dan internal gear, untuk mengontrol pergerakan serta sudut angularnya. Motor servo dapat berputar dengan lambat, yang biasanya ditunjukkan oleh rate putarannya yang lambat. Akan tetapi, motor servo memiliki torsi yang kuat karena internal gear nya. Motor servo mempunyai beberapa ukuran dan tipe yang dapat digunakan untuk segala kebutuhan mulai dari mesin fotokopi, model pesawat terbang, dan model mobil. Aplikasi terbaru dari motor servo yaitu digunakan untuk aplikasi pembuatan robot. Motor servo pada awalnya dibuat untuk dioperasikan melewati saluran radio kontrol dan biasanya mengacu pada radio kontrol. Motor servo tersebut bergerak dengan sinyal yang berasal dari penerima. Adapun jenis-jenis motor servo yaitu : a) Motor Servo Standar 180 Motor servo jenis ini mampu bergerak dua arah (clockwise dan counter - clockwise) dengan defleksi masing-masing sudut mencapai 90, sehingga total defleksi sudut dari kanan-tengah-kiri adalah 180. b) Motor Servo Continuous Motor servo jenis ini mampu bergerak dua arah (clockwise dan counter - clockwise) tanpa batasan defleksi sudut putar (dapat berputar secara kontinu). Untuk beroperasi, motor servo membutuhkan catu daya 5V DC. Kabel merah dihubungkan ke Vdd (+), kabel hitam dihubungksn ke Vss (ground), dan sinyal kontrol PWM dihubungkan dengan kabel putih. Pada Gambar 10.3 dan Gambar 10.4 menunjukkan bentuk beserta koneksi kabel motor servo. 81

82 Gambar Komponen Motor Servo Gambar Skema Motor Servo Secara umum, motor servo terdiri atas sebuah rangkaian pengontrol, sebuah potensiometer, dan sejumlah gear untuk memperbesar torsi. Motor dan potensiometer dihubungkan ke rangkaian pengontrol dan ketiganya membentuk sistem loop tertutup. Untuk mengaktifkan motor, sebuah sinyal digital dikirim ke rangkaian pengontrol. Potensiometer ini bertugas memonitor sudut poros motor servo. Motor akan berputar ke arah sudut yang diinginkan sampai sudut poros motor servo sesuai dengan yang diinginkan, kemudian motor akan berhenti bergerak. Pada umumnya motor servo didesain untuk rotasi yang terbatas yaitu berkisar antara 0 sampai 180. Sebuah motor servo yang normal tidak dapat berputar lebih jauh, dikarenakan sebuah penghalang mekanik yang diselipkan pada roda gigi keluaran utama. Motor servo dapat berotasi secara penuh dengan melakukan suatu modifikasi. Gambar Bagian dari Motor Servo Gambar adalah bagian dalam motor servo yang memperlihatkan poros motor servo yang terhubung dengan potensiometer. Gear di tengah digunakan sebagai penghubung antara gear poros motor servo, dan gear potensiometer. Setiap perubahan sudut poros motor servo akan mengubah posisi potensiometer. Hal ini membuat posisi poros motor servo dapat diketahui dengan tepat. Besar daya yang dibutuhkan motor servo sebanding dengan sudut yang perlu ditempuh poros. Motor servo menerapkan sistem kontrol proporsional. Jika poros perlu berputar jauh maka poros akan bergerak dengan kecepatan penuh, namun jika sudut tempuh poros dekat maka poros akan bergerak perlahan. 82

83 Untuk mendapatkan sudut yang diinginkan maka motor servo harus mendapatkan input lebar pulsa yang tepat. Motor Servo diharapkan menerima pulsa setiap 20 milidetik. Sudut keluaran motor servo ditentukan oleh lebar pulsa yang diterima motor servo. Misalnya untuk menghasilkan sudut 90 O (posisi netral) maka motor servo perlu menerima pilsa setiap 20 milidetik dengan masing-masing lebar pulsa sebesar 1,5 milidetik. Jika pulsa yang diterima kurang dari 1,5 milidetik maka poros akan berputar ke arah 0. Sebaliknya, jika pulsa yang diterima motor servo lebih dari 1,5 milidetik maka poros akan berputar ke arah kiri. Gambar Lebar Pulsa Gambar 10.6 adalah sinyal untuk mengontrol sudut motor servo. Sinyal ini berupa sinyal persegi (square) dengan lebar pulsa high berkisar antara 0,6 milidetik sampai 2,4 milidetik. Pulsa dengan pulsa high sebesar 0,6 milidetik akan membuat poros motor servo berada pada posisi 0. Pulsa dengan pulsa high sebesar 1,5 milidetik akan membuat poros motor servo berada pada posisi 90 dan pulsa dengan pulsa high sebesar 2,4 milidetik akan membuat poros motor servo berada pada posisi 180. Poros motor servo dapat menduduki posisi lainnya dengan memberikan lebar pulsa high dengan perbandingan perubahan satu derajat poros setiap perubahan sepuluh mikrodetik pulsa high. Percobaan 12 83

84 int switchpin = 2; // switch input int motor1pin1 = 3; // pin 2 on L293D int motor1pin2 = 4; // pin 7 on L293D int enablepin = 9; // pin 1 on L293D void setup() // set the switch as an input: pinmode(switchpin, INPUT); // set all the other pins you're using as outputs: pinmode(motor1pin1, OUTPUT); pinmode(motor1pin2, OUTPUT); pinmode(enablepin, OUTPUT); // set enablepin high so that motor can turn on: digitalwrite(enablepin, HIGH); void loop() // if the switch is high, motor will turn on one direction: if (digitalread(switchpin) == HIGH) digitalwrite(motor1pin1, LOW); // set pin 2 on L293D low digitalwrite(motor1pin2, HIGH); //set pin 7 on L293D high //if the switch is low,motor will turn inthe opposite direction: else digitalwrite(motor1pin1, HIGH); //set pin 2 on L293D high digitalwrite(motor1pin2, LOW); // set pin 7 on L293D low Percobaan 13 Mengontrol motor servo langsung dari Arduino cukup mudah. Berikut ini contoh menggunakan servo ukuran standar (tanpa beban) didukung langsung dari Arduino via USB. 84

85 #include <Servo.h> // membuat nama objek servo untuk pengontrolan servo Servo myservo; // variable untuk menyimpan posisi servo int pos = 0; void setup() // objek servo diletakan pada pin 9 myservo.attach(9); void loop() // start dari 0 derajar sampai 180 derajat for(pos = 0; pos < 180; pos += 1) // pada posisi 1 derajat // memberitahu servo untuk pergi ke posisi 'pos' myservo.write(pos); // tunggu 15ms untuk pencapaian posisi servo delay(15); // start dari 180 derajat ke 0 derajat for(pos = 180; pos>=1; pos-=1) // memberitahu servo untuk pergi ke posisi 'pos' myservo.write(pos); // tunggu 15ms untuk pencapaian posisi servo delay(15); LANGKAH-LANGKAH PERCOBAAN 1. Nyalakan computer dengan program Arduino! 2. Sambungkan Trainer mikrokontroler dengan computer menggunakan kabel USB! 3. Sambungkan kabel-kabel jumper sesuai dengan praktikum yang dilaksanakan! 4. Ketiklah program yang diatas pada software Arduino! 5. Lakukan verifikasi terhadap program, apakah terjadi error atau tidak! 6. Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam mikrokontroler! 7. Amati hasilnya apakah sudah sesuai dengan perintah instruktur atau belum, kalau belum lakukan editing program dan kembali ke langkah 5! 85

86 BAB XI : PERCOBAAN REMOTE CONTROL TUJUAN : 1. Mahasiswa mampu memahami rangkaian interface Infra merah 2. Mahasiswa mampu mengenali berbagai macam remote control 3. Mahasiswa mampu memprogram mikrokontroler untuk membaca kode remote control 4. Mahasiswa mampu mengendalikan devias dari jarak jauh PERALATAN 1. Sebuah Komputer 2. Satu set trainer mikrokontroler TEORI DASAR Cahaya Infra Merah Infra Merah sebenarnya cahaya normal dengan warna tertentu. Kita tidak bisa melihat warna ini karena panjang gelombang 950 nm nya di bawah spektrum cahaya tampak. Itulah salah satu alasan mengapa IR dipilih untuk tujuan remote control, kita ingin menggunakannya, tapi kita tidak tertarik melihatnya. Meskipun kita tidak dapat melihat cahaya Infra Merah yang dipancarkan dari remote control bukan berarti kita tidak dapat membuatnya terlihat. Sebuah kamera video atau kamera foto digital dapat membuat kita melihat cahaya Infra Merah. Cukup arahkan remote ke kamera tersebut, tekan sembarang tombol maka kita akan melihat kedipan LED Infra Merah. Gambar Remote Control Matahari adalah sumber cahaya dan memancar cahaya infra merah. Beberapa sumber cahaya lain misal bola lampu, lilin, sumber pemanas dan bahkan tubuh kita memancarkan cahaya Infra Merah serta segala sesuatu yang memancarkan panas juga memancarkan cahaya Infra Merah. Oleh karena itu harus diambil beberapa tindakan sebagai pencegahan untuk menjamin bahwa pesan IR yang akan dikirim ke penerima tidak mengalami error dikarenakan banyak sumber cahaya infra merah disekitar kita sehingga mempengaruhi data yang dikirim melalui Remote Control Infra Merah. Tindakan yang dilakukan untuk mencegah pengaruh cahaya infra merah dari sumber lain beberapa vendor menggunakan protokol komunikasi data untuk Remote Control Infra Merah yakni dengan cara 86

87 memodulasi dengan frekuensi tertentu pada data dijital (berbentuk kedipan) sehingga dengan menset protokol yang sama antara Transmitter dan Receiver maka sumber cahaya infra merah yang lain tidak dapat mempengaruhi data yang dikirim. Modulasi Gambar 11.2 Modulasi Data Pada gambar di atas sinyal termodulasi mengendalikan IR LED dari pemancar sinyal ke penerima. Dalam komunikasi data dijital kita mengenal kondisi 1 dan 0 dimana 1 mewakili on(lampu menyala) dan 0 mewakili off (lampu mati). Sinyal 1 dan 0 ini dimodulasi dengan ferekunsi antara 30kHz dan 60kHz. Transmitter Gambar Pemancar Remote Control Gambar diatas merupakan contoh umum pemancar (transmitter) pada Remote Control Infra Merah. Masukan pada basis transistor merupakan data digital yang sudah termodulasi dengan frekuensi tertentu dari mikrokontroller. Receiver Gambar Penerima Remote Control Pada gambar di atas merupakan diagram blok dari penerima IR dan semuanya dibangun dalam satu rangkaian terpadu. 87

88 Sinyal yang diterima IR deteksi photo dioda penerima. Sinyal ini diperkuat dan dibatasi oleh pertama 2 tahap. Limiter bertindak sebagai rangkaian AGC untuk mendapatkan tingkat pulsa konstan. Sinyal gelomang kotak dikirim ke Band Pass Filter. Band Pass Filter diset pada frekuensi modulasi unit penerima dan umumnya Frekuensi berkisar antara 30kHz sampai 60kHz. Tahap berikutnya adalah detektor, integrator dan komparator. Tujuan dari tiga blok adalah untuk mendeteksi keberadaan frekuensi modulasi. Percobaan 14 Ketiklah program dibawah ini untuk menangkap sinyal infra merah dari remote control dan selanjutnya memproses menjadi kode hexadecimal dan ditampilkan pada layar serial monitor #include <IRremote.h> int RECV_PIN = 11; IRrecv irrecv(recv_pin); decode_results results; void setup() Serial.begin(9600); irrecv.enableirin(); // Start the receiver void loop() if (irrecv.decode(&results)) Serial.println(results.value, HEX); irrecv.resume(); // Receive the next value Percobaan 15 Ketik Program dibawah ini untuk latihan mengenali tombol-tombol remote control merk Sony dan Chung He dan hasilnya ditampilkan dalam sebuah led pada pin 13 dari mikrokontroler Arduino #include <IRremote.h> int RECV_PIN = 11; IRrecv irrecv(recv_pin); decode_results results; 88

89 long data; char alamat, remote; void setup() Serial.begin(9600); irrecv.enableirin(); // Start the receiver pinmode(2,input_pullup); pinmode(3,input_pullup); pinmode(4,input_pullup); pinmode(5,input_pullup); pinmode(13,output); void baca_dip_switch() if ((digitalread(2) == LOW)&&(digitalRead(3) == LOW)&&(digitalRead(4) == LOW)&&(digitalRead(5) == LOW)) alamat = '0'; if ((digitalread(2) == HIGH)&&(digitalRead(3) == LOW)&&(digitalRead(4) == LOW)&&(digitalRead(5) == LOW)) alamat = '1'; if ((digitalread(2) == LOW)&&(digitalRead(3) == HIGH)&&(digitalRead(4) == LOW)&&(digitalRead(5) == LOW)) alamat = '2'; if ((digitalread(2) == HIGH)&&(digitalRead(3) == HIGH)&&(digitalRead(4) == LOW)&&(digitalRead(5) == LOW)) alamat = '3'; if ((digitalread(2) == LOW)&&(digitalRead(3) == LOW)&&(digitalRead(4) == HIGH)&&(digitalRead(5) == LOW)) alamat = '4'; if ((digitalread(2) == HIGH)&&(digitalRead(3) == LOW)&&(digitalRead(4) == HIGH)&&(digitalRead(5) == LOW)) alamat = '5'; if ((digitalread(2) == LOW)&&(digitalRead(3) == HIGH)&&(digitalRead(4) == HIGH)&&(digitalRead(5) == LOW)) alamat = '6'; 89

90 if ((digitalread(2) == HIGH)&&(digitalRead(3) == HIGH)&&(digitalRead(4) == HIGH)&&(digitalRead(5) == LOW)) alamat = '7'; if ((digitalread(2) == LOW)&&(digitalRead(3) == LOW)&&(digitalRead(4) == LOW)&&(digitalRead(5) == HIGH)) alamat = '8'; if ((digitalread(2) == HIGH)&&(digitalRead(3) == LOW)&&(digitalRead(4) == LOW)&&(digitalRead(5) == HIGH)) alamat = '9'; if ((digitalread(2) == LOW)&&(digitalRead(3) == HIGH)&&(digitalRead(4) == LOW)&&(digitalRead(5) == HIGH)) alamat = 'A'; if ((digitalread(2) == HIGH)&&(digitalRead(3) == HIGH)&&(digitalRead(4) == LOW)&&(digitalRead(5) == HIGH)) alamat = 'B'; if ((digitalread(2) == LOW)&&(digitalRead(3) == LOW)&&(digitalRead(4) == HIGH)&&(digitalRead(5) == HIGH)) alamat = 'C'; if ((digitalread(2) == HIGH)&&(digitalRead(3) == LOW)&&(digitalRead(4) == HIGH)&&(digitalRead(5) == HIGH)) alamat = 'D'; if ((digitalread(2) == LOW)&&(digitalRead(3) == HIGH)&&(digitalRead(4) == HIGH)&&(digitalRead(5) == HIGH)) alamat = 'E'; if ((digitalread(2) == HIGH)&&(digitalRead(3) == HIGH)&&(digitalRead(4) == HIGH)&&(digitalRead(5) == HIGH)) alamat = 'F'; void banding() baca_dip_switch(); if (remote == alamat) digitalwrite(13,high); if (remote == 'X') digitalwrite(13,low); void RC_Sony_RM827S() 90

91 // //Remote Sony RM-827S // if (results.value == 0x10) Serial.println('1'); remote = '1'; else if (results.value == 0x810) Serial.println('2'); remote = '2'; else if (results.value == 0x410) Serial.println('3'); remote = '3'; else if (results.value == 0xC10) Serial.println('4'); remote = '4'; else if (results.value == 0x210) Serial.println('5'); remote = '5'; else if (results.value == 0xA10) Serial.println('6'); remote = '6'; else if (results.value == 0x610) Serial.println('7'); remote = '7'; else if (results.value == 0xE10) Serial.println('8'); remote = '8'; else if (results.value == 0x110) Serial.println('9'); remote = '9'; else if (results.value == 0x910) Serial.println('0'); remote = '0'; else if (results.value == 0x310) Serial.println('A'); remote = 'A'; else if (results.value == 0xB10) 91

92 Serial.println('B'); remote = 'B'; else if (results.value == 0x490) Serial.println('C'); remote = 'C'; else if (results.value == 0xC90) Serial.println('D'); remote = 'D'; else if (results.value == 0x90) Serial.println('E'); remote = 'E'; else if (results.value == 0x890) Serial.println('F'); remote = 'F'; else if (results.value == 0xA90) Serial.println('X'); remote = 'X'; else Serial.print(' '); void RC_chung_he_SMG1() // //Remote CHUNG HE SMG-1 D A-0028B // if (results.value == 0xE13DDA28) Serial.println('1'); remote = '1'; else if (results.value == 0xAD586662) Serial.println('2'); remote = '2'; else if (results.value == 0x273009C4) Serial.println('3'); remote = '3'; else if (results.value == 0xF ) Serial.println('4'); remote = '4'; else if (results.value == 0x731A3E02) 92

93 Serial.println('5'); remote = '5'; else if (results.value == 0x2C452C6C) Serial.println('6'); remote = '6'; else if (results.value == 0x4592E14C) Serial.println('7'); remote = '7'; else if (results.value == 0x6825E53E) Serial.println('8'); remote = '8'; else if (results.value == 0x8B8510E8) Serial.println('9'); remote = '9'; else if (results.value == 0xB9F56762) Serial.println('0'); remote = '0'; else if (results.value == 0x52A5A66) Serial.println('A'); remote = 'A'; else if (results.value == 0xCA8CBCC6) Serial.println('B'); remote = 'B'; else if (results.value == 0x83B19366) Serial.println('C'); remote = 'C'; else if (results.value == 0x68733A46) Serial.println('D'); remote = 'D'; else if (results.value == 0x189D7928) Serial.println('E'); remote = 'E'; else if (results.value == 0x5F12E8C4) Serial.println('F'); remote = 'F'; else if (results.value == 0xF4BA2988) Serial.println('X'); remote = 'X'; 93

94 else Serial.print(' '); void loop() if (irrecv.decode(&results)) //data = results.value; RC_Sony_RM827S(); RC_chung_he_SMG1(); irrecv.resume(); // Receive the next value banding(); // Serial.print(alamat); delay(500); LANGKAH-LANGKAH PERCOBAAN 1. Nyalakan computer dengan program Arduino! 2. Sambungkan Trainer mikrokontroler dengan computer menggunakan kabel USB! 3. Sambungkan kabel-kabel jumper sesuai dengan praktikum yang dilaksanakan! 4. Ketiklah program yang diatas pada software Arduino! 5. Lakukan verifikasi terhadap program, apakah terjadi error atau tidak! 6. Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam mikrokontroler! 7. Amati hasilnya apakah sudah sesuai dengan perintah instruktur atau belum, kalau belum lakukan editing program dan kembali ke langkah 5! 94

95 BAB XII : PERCOBAAN MOTOR STEPPER TUJUAN 1. Mahasiswa mamahami rangkaian interface mikrokontroller dengan motor stepper 2. Mahasiswa memahami rangkaian driver motor stepper ULN Mahasiswa memahami bahasa C Arduino untuk mengatur arah putaran motor stepper 4. Mahasiswa memahami bahasa C Arduino untuk mengatur arah putaran motor stepper dengan menggunakan saklar. PERALATAN 1. Sebuah Komputer 2. Satu set trainer mikrokontroler TEORI DASAR Motor stepper adalah perangkat elektromekanis yang bekerja dengan mengubah pulsa elektronis menjadi gerakan mekanis diskrit. Motor stepper bergerak berdasarkan urutan pulsa yang diberikan kepada motor. Karena itu, untuk menggerakkan motor stepper diperlukan pengendali motor stepper yang membangkitkan pulsa-pulsa periodik. Penggunaan motor stepper memiliki beberapa keunggulan dibandingkan dengan penggunaan motor DC biasa. Keunggulannya antara lain adalah : Sudut rotasi motor proporsional dengan pulsa masukan sehingga lebih mudah diatur. Motor dapat langsung memberikan torsi penuh pada saat mulai bergerak Posisi dan pergerakan repetisinya dapat ditentukan secara presisi Memiliki respon yang sangat baik terhadap mulai, stop dan berbalik (perputaran) Sangat realibel karena tidak adanya sikat yang bersentuhan dengan rotor seperti pada motor DC Dapat menghasilkan perputaran yang lambat sehingga beban dapat dikopel langsung ke porosnya Frekuensi perputaran dapat ditentukan secara bebas dan mudah pada range yang luas. Pada dasaranya terdapat 3 tipe motor stepper yaitu: 1. Motor stepper tipe Variable reluctance (VR) Motor stepper jenis ini telah lama ada dan merupakan jenis motor yang secara struktural paling mudah untuk dipahami. Motor ini terdiri atas sebuah rotor besi lunak dengan beberapa gerigi dan sebuah lilitan stator. Ketika lilitan stator diberi energi dengan arus DC, kutub-kutubnya menjadi termagnetasi. Perputaran terjadi ketika gigi-gigi rotor tertarik oleh kutub-kutub stator. Berikut ini adalah penampang melintang dari motor stepper tipe variable reluctance (VR): 95

96 Gambar Penampang melintang dari motor stepper tipe variable reluctance (VR) 2. Motor stepper tipe Permanent Magnet (PM) Motor stepper jenis ini memiliki rotor yang berbentuk seperti kaleng bundar (tin can) yang terdiri atas lapisan magnet permanen yang diselang-seling dengan kutub yang berlawanan (perhatikan gambar 12.2). Dengan adanya magnet permanen, maka intensitas fluks magnet dalam motor ini akan meningkat sehingga dapat menghasilkan torsi yang lebih besar. Motor jenis ini biasanya memiliki resolusi langkah (step) yang rendah yaitu antara 7,50 hingga 150 per langkah atau 48 hingga 24 langkah setiap putarannya. Berikut ini adalah ilustrasi sederhana dari motor stepper tipe permanent magnet: Gambar Ilustrasi sederhana dari motor stepper tipe permanent magnet (PM) 3. Motor stepper tipe Hybrid (HB) Motor stepper tipe hibrid memiliki struktur yang merupakan kombinasi dari kedua tipe motor stepper sebelumnya. Motor stepper tipe hibrid memiliki gigi-gigi seperti pada motor tipe VR dan juga memiliki magnet permanen yang tersusun secara aksial pada batang porosnya seperti motor tipe PM. Motor tipe ini paling banyak digunkan dalam berbagai aplikasi karena kinerja lebih baik. Motor tipe hibrid dapat menghasilkan resolusi langkah yang tinggi yaitu antara 3,6 0 hingga 0,9 0 per langkah atau

97 langkah setiap putarannya. Berikut ini adalah penampang melintang dari motor stepper tipe hibrid: Gambar Penampang melintang dari motor stepper tipe hybrid Berdasarkan metode perancangan rangkain pengendalinya, motor stepper dapat dibagi menjadi jenis unipolar dan bipolar. Rangkaian pengendali motor stepper unipolar lebih mudah dirancang karena hanya memerlukan satu switch / transistor setiap lilitannya. Untuk menjalankan dan menghentikan motor ini cukup dengan menerapkan pulsa digital yang hanya terdiri atas tegangan positif dan nol (ground) pada salah satu terminal lilitan (wound) motor sementara terminal lainnya dicatu dengan tegangan positif konstan (VM) pada bagian tengah (center tap) dari lilitan (perhatikan gambar 12.4). Gambar Motor stepper dengan lilitan unipolar Untuk motor stepper dengan lilitan bipolar, diperlukan sinyal pulsa yang berubah-ubah dari positif ke negatif dan sebaliknya. Jadi pada setiap terminal lilitan (A & B) harus dihubungkan dengan sinyal yang mengayun dari positif ke negatif dan sebaliknya (perhatikan gambar 12.5). Karena itu dibutuhkan rangkaian pengendali yang agak lebih kompleks daripada rangkaian pengendali untuk motor unipolar. Motor stepper bipolar memiliki keunggulan dibandingkan dengan motor stepper unipolar dalam hal torsi yang lebih besar untuk ukuran yang sama. 97

98 Gambar Motor stepper dengan lilitanbipolar Berikut ini adalah ilustrasi struktur motor stepper sederhana dan pulasa yang dibutuhkan untuk menggerakkannya:.gambar (a) bentuk pulsa keluaran dari pengendali motor stepper (b) penerapan pulsa pengendali pada motor stepper dan arah putaran yang bersesuaian Percobaan 16 Mengatur kecepatan motor stepper dengan potensio meter (VR), yaitu potensio mengatur besar tegangan (0-5 volt) yang jadi inputan port ADC Arduino. Pada saat potensio diputar ke kanan maka tegangan keluaran potensio meningkat mendekati 5 volt dan bila diputar ke kiri tegangan keluaran potensio semakin kecil mendekati 0 volt. Sehingga kecepatan putar motor stepper berbanding lurus dengan tegangan input analog dari potensio. Motor stepper merupakan motor dengan sinyal DC yang diatur arah putaran dan kecepatannya dengan pengaturan sinyal yang diberikan. Berikut gambar skematik diagram motor stepper unipolar 4 phase dengan 8 dan 6 kabel output. 98

99 Gambar Lilitan Motor Stepper Komponen yang diperlukan : 1. Lampu led merah 4x 2. Resistor 1KΩ 4x 3. Dioda in4001 (1A) 4. Potensio/trimpot (VR) 10K 1 5. IC ULN Breadboard 7. Kabel Jumper 8. Motor Stepper Unipolar 4 phase 9. Power Supply 5V 1A 10. Minimum sistem board Arduino Koneksi Rangkaian 99

100 Penulisan Program //Kendali Kecepatan Motor Stepper dengan Potensio int tunda = 0; //deklarasi variabel tunda int sensorvalue = 0; //deklarasi variabel sensor value int outputvalue = 0; const int phase1 = 2; //deklarasi pin phase1 pada kaki port D2 const int phase2 = 4; const int phase3 = 3; const int phase4 = 5; const int analogin = A4; //deklarasi pin analogin pada pin 18 / ADC 4 void setup() pinmode (phase1, OUTPUT); pinmode (phase2, OUTPUT); pinmode (phase3, OUTPUT); pinmode (phase4, OUTPUT); pinmode (analogin, INPUT); Serial.begin (9600); //phase1 sebagai output //analogin sebagai input analog //inisialisasi komunikasi serial pada 9600 bps 100

101 void loop() siklusadc(); powerstepper(); //loping / pengulangan terus menerus //deklarasi void siklus ADC //deklarasi void powerstepper void siklusadc() //kode program void siklusadc sensorvalue = analogread (analogin); //membaca sinyal analog pada pin analogin outputvalue = map (sensorvalue, 0, 1023, 0, 255); //maping dari nilai 1023 jadi 255 Serial.print ("outputvalue= "); //mencetak pada serial monitor Serial.println (outputvalue, DEC); //menulis nilai dalam desimal if (outputvalue < 20) tunda = 500; else if (outputvalue < 30) tunda = 300; else if (outputvalue < 70) tunda = 200; else if (outputvalue < 100) tunda = 100; else if (outputvalue < 140) tunda = 50; else if (outputvalue < 170) tunda = 20; else if (outputvalue < 200) tunda = 10; else if (outputvalue < 240) tunda = 5; else tunda = 2; //membuat tingkatan dengan metode if //memberikan nilai pada variabel tunda 101

102 delaymicroseconds (tunda); //jeda waktu delay sama dengan nilai tunda void powerstepper() digitalwrite (phase1, HIGH); digitalwrite (phase2, LOW); digitalwrite (phase3, LOW); digitalwrite (phase4, LOW); delay (tunda); digitalwrite (phase1, LOW); digitalwrite (phase2, LOW); digitalwrite (phase3, LOW); digitalwrite (phase4, HIGH); delay (tunda); digitalwrite (phase1, LOW); digitalwrite (phase2, LOW); digitalwrite (phase3, HIGH); digitalwrite (phase4, LOW); delay (tunda); digitalwrite (phase1, LOW); digitalwrite (phase2, HIGH); digitalwrite (phase3, LOW); digitalwrite (phase4, LOW); delay (tunda); //susunan program void powerstepper //tahap sinyal pertama phase1 diberi sinyal high //tahap sinyal pertama phase2 diberi sinyal low // tahap sinyal pertama phase3 diberi sinyal low // tahap sinyal pertama phase4 diberi sinyal low //jeda waktu delay sama dengan nilai tunda //tahap sinyal kedua // tahap sinyal ketiga // tahap sinyal ke empat LANGKAH-LANGKAH PERCOBAAN 1. Nyalakan computer dengan program Arduino! 2. Sambungkan Trainer mikrokontroler dengan computer menggunakan kabel USB! 3. Sambungkan kabel-kabel jumper sesuai dengan praktikum yang dilaksanakan! 4. Ketiklah program yang diatas pada software Arduino! 5. Lakukan verifikasi terhadap program, apakah terjadi error atau tidak! 6. Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam mikrokontroler! 7. Amati hasilnya apakah sudah sesuai dengan perintah instruktur atau belum, kalau belum lakukan editing program dan kembali ke langkah 5! 102

103 BAB XIII : SENSOR ULTRASONIC TUJUAN 1. Mahasiswa mampu membuat interface mikrokontroler Arduino dengan modul sensor ultra sonic HC-SR04 2. Mahasiswa mampu membuat program untuk mengendalikan modul Sensor Ultrasonic 3. Mahasiswa mampu menggunakan modul sensor ultrasonic sebagai alat ukur jarak PERALATAN 1. Sebuah Komputer 2. Satu set trainer mikrokontroler TEORI DASAR Sensor jarak ultrasonik sangat cocok dipakai untuk aplikasi-aplikasi yang perlu melakukan pengukuran jarak. Secara umum, sensor ini sangat populer untuk dipakai pada aplikasi-aplikasi robotika. Selain itu, sensor ini juga bisa bermanfaat dalam sistem security dan sebagai alternatif lain penggantian sensor jarak infrared. Sensor jarak ultrasonik yang dipakai dalam tugas akhir ini adalah sensor Parallax's PING))) Ultrasonic Range Finder atau biasa disebut dengan sensor PING. Berdasarkan datasheet, sensor PING ini dapat digunakan untuk mengukur jarak benda sejauh 3cm sampai 300cm. Dimensi dan kaki pin sensor PING ditunjukkan pada Gambar Gambar Sensor Ultrasonic Sensor PING mendeteksi jarak objek dengan cara memancarkan gelombang ultrasonik (40kHz) selama tburst (200µs) kemudian mendeteksi pantulannya. Sensor PING memancarkan gelombang ultrasonik sesuai dengan sinyal kontrol dari pengontrol mikro (sinyal kontrol berupa pulsa trigger dengan tout min 2µs). Gelombang ultrasonik ini melalui udara dengan kecepatan 344m/s, mengenai objek, kemudian memantul kembali ke sensor. Sensor PING mengeluarkan pulsa output high pada pin SIG setelah memancarkan gelombang ultrasonik. Setelah gelombang pantulan terdeteksi, sensor PING akan membuat output low pada pin SIG. Lebar pulsa high (tin) akan sama dengan lama waktu dipancarkan sampai diterima kembali pantulan gelombang 103

104 ultrasonik akibat objek. Maka jarak yang diukur dapat dilihat pada Persamaan berikut. Ilustrasi cara kerja sensor PING ditunjukkan pada Gambar Untuk dapat lebih memahami penggunaan cara kerja sensor PING, pada Gambar 2.13 ditunjukkan diagram waktu sensor PING. Gambar Diagram Waktu Sensor Ultrasonic Hal-hal yang dapat menyebabkan sensor PING tidak teliti untuk mengukur jarak suatu objek adalah sebagai berikut : 1. Jarak objek tersebut diluar jangkauan ukur ( < 3cm atau > 300cm ). 2. Sudut objek terhadap sensor (θ) < 45, sudut yang terlalu kecil antara sensor jarak ultrasonik dan objek sehingga gelombang ultrasonik tidak dapat dipantulkan kembali ke sensor. 3. Objek tersebut terlalu kecil untuk memantulkan gelombang ultrasonik kembali ke sensor, 4. Jenis material objek yang bersifat meredam suara, bentuk permukaan yang tidak beraturan, sudut ruangan, dan lain- lain sehingga mungkin tidak dapat memantulkan gelombang ultrasonik yang cukup untuk dideteksi dengan teliti. 104

105 Selain itu, sensor PING dapat digunakan untuk mendeteksi permukaan air, tetapi tidak dianjurkan untuk digunakan di lingkungan yang basah. Gambar Deteksi Permukaan Percobaan 17 HC-SR04 Ultrasonic Sensor adalah sensor jarak / jarak yang sangat terjangkau yang telah digunakan terutama untuk menghindari objek dalam berbagai proyek robotika. Ini pada dasarnya memberikan Arduino mata / kesadaran spasial dan dapat mencegah robot dari menabrak atau jatuh dari meja. Ini juga telah digunakan dalam aplikasi menara, tingkat air penginderaan, dan bahkan sebagai sensor parkir. Proyek sederhana ini akan menggunakan sensor HC-SR04 dengan Arduino dan sketsa Processing untuk memberikan tampilan interaktif kecil yang rapi pada layar komputer Anda. #define echopin 7 // Echo Pin #define trigpin 8 // Trigger Pin #define LEDPin 13 // Onboard LED int maximumrange = 200; // Maximum range needed int minimumrange = 0; // Minimum range needed long duration, distance; // Duration used to calculate distance 105

Structure dasar dari bahasa pemrograman arduino adalah sederhana yang

Structure dasar dari bahasa pemrograman arduino adalah sederhana yang Structuer Pemrograman 1. Structure Structure dasar dari bahasa pemrograman arduino adalah sederhana yang hanya terdiri dari dua bagian. void setup( ) // Statement; void loop( ) // Statement; Dimana setup

Lebih terperinci

andri_mz Pengenalan Arduino Copyright Andri Marzuki Pengenalan Arduino

andri_mz Pengenalan Arduino Copyright Andri Marzuki  Pengenalan Arduino Pengenalan Arduino Untuk memahami Arduino, terlebih dahulu kita harus memahami terlebih dahulu apa yang dimaksud dengan physical computing. Physical computing adalah membuat sebuah system atau perangkat

Lebih terperinci

BAB IV ANALISA DAN PENGUJIAN ALAT

BAB IV ANALISA DAN PENGUJIAN ALAT 37 BAB IV ANALISA DAN PENGUJIAN ALAT 4.1 Tujuan Pengukuran dan Pengujian Pengukuran dan pengujian alat bertujuan agar dapat diketahui sifat dan karakteristik tiap blok rangkaian dan fungsi serta cara kerja

Lebih terperinci

BAB II LANDASAN TEORI. berupa papan informasi yang dilakukan oleh Fatoni (2005) dan dot matrix display

BAB II LANDASAN TEORI. berupa papan informasi yang dilakukan oleh Fatoni (2005) dan dot matrix display BAB II LANDASAN TEORI 2.1 Tinjauan Pustaka Hal yang mendasari penelitian yang dilakukan dalam penyusunan laporan Tugas Akhir ini adalah melihat pada alat yang telah dibuat sebelumnya yaitu berupa papan

Lebih terperinci

BAB III PERANCANGAN. Microcontroller Arduino Uno. Power Supply. Gambar 3.1 Blok Rangkaian Lampu LED Otomatis

BAB III PERANCANGAN. Microcontroller Arduino Uno. Power Supply. Gambar 3.1 Blok Rangkaian Lampu LED Otomatis BAB III PERANCANGAN Bab ini membahas perancangan Lampu LED otomatis berbasis Platform Mikrocontroller Open Source Arduino Uno. Microcontroller tersebut digunakan untuk mengolah informasi yang telah didapatkan

Lebih terperinci

BAB II DASAR TEORI. open-source, diturunkan dari Wiring platform, dirancang untuk. software arduino memiliki bahasa pemrograman C.

BAB II DASAR TEORI. open-source, diturunkan dari Wiring platform, dirancang untuk. software arduino memiliki bahasa pemrograman C. BAB II DASAR TEORI 2.1 ARDUINO Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang.

Lebih terperinci

Tutorial Singkat Bahasa Pemrograman Arduino

Tutorial Singkat Bahasa Pemrograman Arduino Tutorial Singkat Bahasa Pemrograman Arduino JUNE 22, 2011 ZERFANI YULIAS 28 COMMENTS Arduino menggunakan pemrograman dengan bahasa C. Berikut ini adalah sedikit penjelasan yang ditujukan kepada anda yang

Lebih terperinci

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB III PERANCANGAN DAN PEMBUATAN ALAT BAB III PERANCANGAN DAN PEMBUATAN ALAT 3.1 Uraian Umum Dalam perancangan alat akses pintu keluar masuk menggunakan pin berbasis mikrokontroler AT89S52 ini, penulis mempunyai pemikiran untuk membantu mengatasi

Lebih terperinci

PRAKTIKUM MATA KULIAH MIKROPROSESSOR DAN BAHA ASSEMBLY INPUT/OUTPUT PADA ARDUINO

PRAKTIKUM MATA KULIAH MIKROPROSESSOR DAN BAHA ASSEMBLY INPUT/OUTPUT PADA ARDUINO I. Tujuan PRAKTIKUM MATA KULIAH MIKROPROSESSOR DAN BAHA ASSEMBLY INPUT/OUTPUT PADA ARDUINO Mengamati keluaran data berupa nyala LED dari Arduino Memanfaatkan Port Input dan Output pada Arduino untuk transfer

Lebih terperinci

BAB III PERANCANGAN ALAT DAN PROGRAM

BAB III PERANCANGAN ALAT DAN PROGRAM BAB III PERANCANGAN ALAT DAN PROGRAM 3.1. Gambaran Umum Pada bab ini akan dibahas mengenai perencanaan perangkat keras (hardware) dan perangkat lunak (software). Pembahasan ini meliputi pembahasan perangkat

Lebih terperinci

BAB II DASAR TEORI. mikrokontroler yang berbasis chip ATmega328P. Arduino Uno. memiliki 14 digital pin input / output (atau biasa ditulis I/O,

BAB II DASAR TEORI. mikrokontroler yang berbasis chip ATmega328P. Arduino Uno. memiliki 14 digital pin input / output (atau biasa ditulis I/O, BAB II DASAR TEORI 2.1 Arduino Uno R3 Arduino Uno R3 adalah papan pengembangan mikrokontroler yang berbasis chip ATmega328P. Arduino Uno memiliki 14 digital pin input / output (atau biasa ditulis I/O,

Lebih terperinci

PEMBUATAN PROTOTIPE ALAT PENDETEKSI LEVEL AIR MENGGUNAKAN ARDUINO UNO R3

PEMBUATAN PROTOTIPE ALAT PENDETEKSI LEVEL AIR MENGGUNAKAN ARDUINO UNO R3 PEMBUATAN PROTOTIPE ALAT PENDETEKSI LEVEL AIR MENGGUNAKAN ARDUINO UNO R3 Sofyan 1), Catur Budi Affianto 2), Sur Liyan 3) Program Studi Teknik Informatika, Fakultas Teknik, Universitas Janabadra Jalan Tentara

Lebih terperinci

BAB II ANALISIS DAN PERANCANGAN. Untuk mendapatkan tujuan sebuah sistem, dibutuhkan suatu

BAB II ANALISIS DAN PERANCANGAN. Untuk mendapatkan tujuan sebuah sistem, dibutuhkan suatu BAB II ANALISIS DAN PERANCANGAN 2.1 Analisa Kebutuhan Sistem Untuk mendapatkan tujuan sebuah sistem, dibutuhkan suatu kesatuan sistem yang berupa perangkat lunak, perangkat keras, dan manusianya itu sendiri.

Lebih terperinci

Membuat kontrol display seven segment Membuat program Counter baik Up Counter maupun Down Counter dengan media tampilan 7-Segment.

Membuat kontrol display seven segment Membuat program Counter baik Up Counter maupun Down Counter dengan media tampilan 7-Segment. DISPLAY 7SEGMENT Menggunakan Arduino Uno Membuat kontrol display seven segment Membuat program Counter baik Up Counter maupun Down Counter dengan media tampilan 7-Segment. A. Hardware Arduino Uno Arduino

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA IV.1. Tampilan Hasil Dalam bab ini akan dijelaskan dan ditampilkan bagaimana hasil dari pengujian rancangan alat yang dibuat beserta pembahasan tentang hasil sensor berat dan

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Arduino Uno Arduino dikatakan sebagai sebuah platform dari physical computing yang bersifat open source. Arduino tidak hanya sekedar sebuah alat pengembangan, tetapi ia adalah

Lebih terperinci

PENGENALAN ARDUINO. SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport komunikasi SPI menggunakan SPI library.

PENGENALAN ARDUINO. SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport komunikasi SPI menggunakan SPI library. PENGENALAN ARDUINO Arduino merupakan board mikrokontroller yang berbasis opensource. Ada beberapa macam arduino, salah satunya adalah arduino uno yang akan di gunakan pada kesempatan kali ini. SPESIFIKASI

Lebih terperinci

BAB III PERANCANGAN ALAT

BAB III PERANCANGAN ALAT BAB III PERANCANGAN ALAT Pada bab ini menjelaskan tentang perancangan sistem alarm kebakaran menggunakan Arduino Uno dengan mikrokontroller ATmega 328. yang meliputi perancangan perangkat keras (hardware)

Lebih terperinci

BAB III PERANCANGAN. Sensor Ultrasonik. Microcontroller Arduino Uno. Buzzer LED LCD. Gambar 3.1 Blok Rangkaian

BAB III PERANCANGAN. Sensor Ultrasonik. Microcontroller Arduino Uno. Buzzer LED LCD. Gambar 3.1 Blok Rangkaian BAB III PERANCANGAN Bab ini membahas perancangan sensor parkir mobil berbasis Platform Mikrocontroller Open Source Arduino Uno. Microcontroller tersebut digunakan untuk mengolah informasi yang telah dikirimkan

Lebih terperinci

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM BAB III PERANCANGAN SISTEM 3.1. Gambaran Umum Pada bab ini akan membahas mengenai langkah - langkah perancangan sistem pebuatan kontrol fluida yang meliputi perancangan perangkat keras atau hardware dan

Lebih terperinci

PANDUAN PRAKTIKUM DASAR ARDUINO

PANDUAN PRAKTIKUM DASAR ARDUINO BBROBOTINDONESIA PANDUAN PRAKTIKUM DASAR ARDUINO www.belajarbikinrobot.weebly.com Praktikum 1 Belajar Arduino Blink LED Blinking LED adalah pelajaran pemrograman yang paling sederhana dari pelajaran pemrograman

Lebih terperinci

BAB III PERANCANGAN ALAT DAN PROGRAM

BAB III PERANCANGAN ALAT DAN PROGRAM BAB III PERANCANGAN ALAT DAN PROGRAM 3.1 Persiapan Perancangan Alat Bab ini akan membahas mengenai perancangan alat mulai dari perangkat lunak (Software) hingga ke perangkat Keras (Hardware), mengenai

Lebih terperinci

BAB 3 PERANCANGAN ALAT. Gambar 3.1 diagram blok rangkaian

BAB 3 PERANCANGAN ALAT. Gambar 3.1 diagram blok rangkaian BAB 3 PERANCANGAN ALAT 3.1 Diagram blok rangkaian alat SENSOR 1 LCD SENSOR 2 ARDUINO UNO TOMBOL BUZZER Gambar 3.1 diagram blok rangkaian Fungsi dari masing masing blok sebagai berikut: 1. blok sensor reed

Lebih terperinci

Logika pemrograman sederhana

Logika pemrograman sederhana Logika pemrograman sederhana Setelah belajar materi 1, 2 dan 3 sekarang saatnya mengenal logika pemrograman sederhana, di materi 1 sudah di bahas sedikit apa itu algoritma pemrograman, sekarang saatnya

Lebih terperinci

PRAKTIKUM 9 Penulisan dan Pembacaan ADC pada Mikrokontroler

PRAKTIKUM 9 Penulisan dan Pembacaan ADC pada Mikrokontroler PRAKTIKUM 9 Penulisan dan Pembacaan ADC pada Mikrokontroler 1. TUJUAN Mahasiswa dapat memahami pola pemrograman ADC pada Arduino Memahami pembacaan dan penulisan ADC pada mikrokontroler. 2. DASAR TEORI

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA IV.1. Tampilan Hasil Dalam bab ini akan dijelaskan dan ditampilkan bagaimana hasil dari pengujian rancangan alat yang dibuat beserta pembahasan tentang pergerakan, cara kerja

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA IV.1. Software Software arduino merupakan software yang sangat penting karena merupakan proses penginputan data dari komputer ke dalam mikrokontroler arduino menggunakan software

Lebih terperinci

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM BAB III PERANCANGAN SISTEM Pada bab ini membahas perencanaan dan pembuatan dari alat yang akan dibuat yaitu Perencanaan dan Pembuatan Pengendali Suhu Ruangan Berdasarkan Jumlah Orang ini memiliki 4 tahapan

Lebih terperinci

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM BAB III PERANCANGAN SISTEM 3.1 Rancangan Perangkat Keras 3.1.1 Blok Diagram Sistem Blok diagram dari sistem AVR standalone programmer adalah sebagai berikut : Tombol Memori Eksternal Input I2C PC SPI AVR

Lebih terperinci

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB III PERANCANGAN DAN PEMBUATAN ALAT BAB III PERANCANGAN DAN PEMBUATAN ALAT Dalam bab ini akan dibahas mengenai proses perancangan mekanik pintu gerbang otomatis serta penyusunan rangkaian untuk merealisasikan sistem alat. Dalam hal ini sensor

Lebih terperinci

Belajar mikrokontroler Arduino untuk tingkat Pemula.

Belajar mikrokontroler Arduino untuk tingkat Pemula. Belajar mikrokontroler Arduino untuk tingkat Pemula. Arduino sudah menjadi salah satu modul mikrokontroler yang cukup populer sejak beberapa tahun ini. Sifatnya yang open source dan semakin banyak dukungan

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA IV.1. Software Software arduino merupakan software yang sangat penting karena merupakan proses penginputan data dari komputer ke dalam mikrokontroler arduino menggunakan software

Lebih terperinci

BAB IV PENGUJIAN. Gambar 4.1 Rangkaian Pengujian Arduino Uno.

BAB IV PENGUJIAN. Gambar 4.1 Rangkaian Pengujian Arduino Uno. BAB IV PENGUJIAN Untuk mengetahui apakah tujuan-tujuan dari pembuatan alat ini telah telaksana atau tidak maka perlu dilakukan pengujian dan analisa terhadap alat yang dibuat. Dan sebagai bagian yang tak

Lebih terperinci

BAB II DASAR TEORI. open-source, diturunkan dari Wiring platform, dirancang untuk. memudahkan penggunaan elektronik dalam berbagai

BAB II DASAR TEORI. open-source, diturunkan dari Wiring platform, dirancang untuk. memudahkan penggunaan elektronik dalam berbagai BAB II DASAR TEORI 2.1 Arduino Uno R3 Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai

Lebih terperinci

BAB III METODE PENELITIAN. mengetahui alat dan bahan yang digunakan agar alat. terancang seperti apa yang diharapkan.

BAB III METODE PENELITIAN. mengetahui alat dan bahan yang digunakan agar alat. terancang seperti apa yang diharapkan. BAB III METODE PENELITIAN 3.1 Perancangann Alat Perancangan alat adalah tahap dimana kita membuat atau merancang alat, mulai dari mengetahui alat dan bahan yang digunakan agar alat terancang seperti apa

Lebih terperinci

BAB IV PENGUJIAN DAN ANALISA ALAT

BAB IV PENGUJIAN DAN ANALISA ALAT BAB IV PENGUJIAN DAN ANALISA ALAT 4.1 Tujuan Setelah perancangan software dan alat telah selesai, untuk tahap selanjutnya yaitu pengujian dan analisa alat, tujuan dari pengujian ini adalah untuk mengetahui

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA IV.1. Hasil Pada bab ini, penulis akan menampilkan tampilan hasil perancangan yang telah dijelaskan pada bab sebelumnya dari perancangan sistem keamanan pada kendaraan roda dua

Lebih terperinci

BAB 3 METODE PENELITIAN. Sikonek, rumah tinggal Sunggal, dan Perpustakaan Universitas Sumatera Utara.

BAB 3 METODE PENELITIAN. Sikonek, rumah tinggal Sunggal, dan Perpustakaan Universitas Sumatera Utara. BAB 3 METODE PENELITIAN 3.1 Waktu dan Tempat Perancangan ini telah dilakukan pada bulan Februari sampai April 2017 di Sikonek, rumah tinggal Sunggal, dan Perpustakaan. 3.2 Alat dan Bahan 3.2.1 Alat yang

Lebih terperinci

BAB IV HASIL PENGUKURAN DAN PENGUJIAN ALAT SISTEM PENGONTROL BEBAN DAYA LISTRIK

BAB IV HASIL PENGUKURAN DAN PENGUJIAN ALAT SISTEM PENGONTROL BEBAN DAYA LISTRIK BAB IV HASIL PENGUKURAN DAN PENGUJIAN ALAT SISTEM PENGONTROL BEBAN DAYA LISTRIK 4.1 Pengukuran Alat Pengukuran dilakukan untuk melihat apakah rangkaian dalam sistem yang diukur sesuai dengan spesifikasi

Lebih terperinci

BAB III PEMBUATAN SOFTWARE

BAB III PEMBUATAN SOFTWARE 20 BAB III PEMBUATAN SOFTWARE 3.1. Diagram Blok Secara umum, diagram blok sistem pada perancangan inkubator penetas telur terdiri dari enam buah blok rangkaian utama. Diagram blok dari perancangan sistem

Lebih terperinci

Gambar 1. Rangkaian interface ke LCD Karakter 2 x16

Gambar 1. Rangkaian interface ke LCD Karakter 2 x16 PERCOBAAN 4 LCD KARAKTER TUJUAN: 1. Memahami rangkaian interface mikrokontroller dengan LCD Karakter 2 x 16 2. Dapat memahami program assembly untuk menampilkan data ke LCD Karakter 2 x 16 3. Memahami

Lebih terperinci

BAB 3 PERANCANGAN SISTEM. ruangan yang menggunakan led matrix dan sensor PING))). Led matrix berfungsi

BAB 3 PERANCANGAN SISTEM. ruangan yang menggunakan led matrix dan sensor PING))). Led matrix berfungsi BAB 3 PERANCANGAN SISTEM 3.1 Pengertian Umum Perancangan Media Penyampaian Informasi Otomatis Dengan LED Matrix Berbasis Arduino adalah suatu sistem media penyampaian informasi di dalam ruangan yang menggunakan

Lebih terperinci

PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN LCD

PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN LCD PERTEMUAN IV PEMOGRAMAN SEVEN SEGMEN DAN LCD TUJUAN: - Mahasiswa mampu memprogram mikrokontroller untuk menampilkan Informasi pada perangkan output Seven Segmen dan LCD. PERALATAN: Modul-modul/perangkat

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI Pada bab ini akan dibahas mengenai teori-teori dasar yang digunakan untuk pembuatan pintu gerbang otomatis berbasis Arduino yang dapat dikontrol melalui komunikasi Transifer dan Receiver

Lebih terperinci

Light Dependent Resistor LDR Menggunakan Arduino Uno Minsys

Light Dependent Resistor LDR Menggunakan Arduino Uno Minsys Light Dependent Resistor LDR Menggunakan Arduino Uno Minsys Mahasiswa mampu memahami pemrograman C pada Arduino Uno MinSys Mahasiswa mampu membuat program pembacaan LDR Arduino Uno MinSys A. Hardware Arduino

Lebih terperinci

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM BAB III ANALISIS DAN DESAIN SISTEM III.1. Analisis Masalah Dalam perancangan dan implementasi timbangan digital daging ayam beserta harga berbasis mikrokontroler ini terdapat beberapa masalah yang harus

Lebih terperinci

BAB III PERANCANGAN. Pada bab ini akan menjelaskan perancangan alat yang akan penulis buat.

BAB III PERANCANGAN. Pada bab ini akan menjelaskan perancangan alat yang akan penulis buat. BAB III PERANCANGAN Pada bab ini akan menjelaskan perancangan alat yang akan penulis buat. Perancangan tersebut mulai dari: blok diagram sampai dengan perancangan rangkaian elektronik, sebagai penunjang

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 PENDAHULUAN Pengukuran tinggi badan menggunakan ARDUINO adalah alat yang digunakan untuk mengukur tinggi badan seseorang dengan cara digital. Alat ini menggunakan sebuah IC yang

Lebih terperinci

BAB III PERANCANGAN SISTEM. perancangan mekanik alat dan modul elektronik sedangkan perancangan perangkat

BAB III PERANCANGAN SISTEM. perancangan mekanik alat dan modul elektronik sedangkan perancangan perangkat BAB III PERANCANGAN SISTEM 3.1 Gambaran Umum Pada bab ini akan dibahas mengenai perencanaan perangkat keras (hardware) dan perangkat lunak ( Software). Pembahasan perangkat keras meliputi perancangan mekanik

Lebih terperinci

BAB II KAJIAN PUSTAKA

BAB II KAJIAN PUSTAKA 4 BAB II KAJIAN PUSTAKA 2.1 Tinjauan Mutakhir Penelitian ini di peruntukan untuk tugas akhir dengan judul Rancang Bangun Sistem Monitoring Output dan Pencatatan Data pada Panel Surya Berbasis Mikrokontroler

Lebih terperinci

What is it? 3 x 4 Keypad 4 x 4 Keypad

What is it? 3 x 4 Keypad 4 x 4 Keypad KEYPAD & LCD What is it? 3 x 4 Keypad 4 x 4 Keypad Identifikasi Pin Keypad Pada keypad 3x4, terdapat 14 pin. Tidak semua pin digunakan. Library Keypad di Arduino Library keypad di arduino memiliki sifat

Lebih terperinci

TOILET PINTAR ABSTRAK

TOILET PINTAR ABSTRAK TOILET PINTAR Fely Candra 1227001 Program Studi Sistem Komputer, Fakultas Teknik, Universitas Kristen Maranatha, Jl. Prof.Drg.Suria Sumantri, MPH No. 65, Bandung, Indonesia. ABSTRAK Penyediaan fasilitas

Lebih terperinci

Display LCD. Menggunakan Arduino Uno MinSys

Display LCD. Menggunakan Arduino Uno MinSys Display LCD Menggunakan Arduino Uno MinSys Mahasiswa mampu memahami pemrograman C pada Arduino Uno MinSys Mahasiswa mampu membuat program Display dengan Arduino Uno MinSys A. Hardware Arduino Uno Minsys

Lebih terperinci

BAB IV HASIL DAN PEMBAHASAN. Berikut ini merupakan penjelasan dari rangkaian power supply:

BAB IV HASIL DAN PEMBAHASAN. Berikut ini merupakan penjelasan dari rangkaian power supply: BAB IV HASIL DAN PEMBAHASAN 4.1 Penjelasan Rangkaian 4.1.1 Rangkaian Power Supply Berikut ini merupakan penjelasan dari rangkaian power supply: Gambar 4.1 Rangkaian Power Supply Pada rangkaian diatas menggunakan

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA IV.1. Tampilan Hasil Dalam bab ini akan dijelaskan dan ditampilkan hasil dari pengujian rancangan alat yang dibuat beserta pembahasan tentang sistem dan cara kerja perancangan

Lebih terperinci

BAB III PERENCANAAN PERANGKAT KERAS DAN LUNAK

BAB III PERENCANAAN PERANGKAT KERAS DAN LUNAK 21 BAB III PERENCANAAN PERANGKAT KERAS DAN LUNAK 3.1 Gambaran umum Perancangan sistem pada Odometer digital terbagi dua yaitu perancangan perangkat keras (hardware) dan perangkat lunak (software). Perancangan

Lebih terperinci

BAB III PERANCANGAN DAN PEMBUATAN

BAB III PERANCANGAN DAN PEMBUATAN BAB III PERANCANGAN DAN PEMBUATAN 3.1. Diagram Blok Sistem Suplly Display Card RF RFID Atmega328 Buzzer Driver motor Motor Gambar 3.1 Diagram blok system 3.1.1. Fungsi-fungsi diagram blok 1. Blok card

Lebih terperinci

TUTORIAL DASAR MEMBUAT PROJECT ARDUINO UNO

TUTORIAL DASAR MEMBUAT PROJECT ARDUINO UNO TUTORIAL DASAR MEMBUAT PROJECT ARDUINO UNO Pendahuluan Arduino merupakan suatu perangkat yang dirancang dengan kemampuan komputasi yang dapat berinteraksi secara lebih dekat dengan dunia nyata dibandingkan

Lebih terperinci

PANDUAN PRAKTIKUM DASAR ARDUINO

PANDUAN PRAKTIKUM DASAR ARDUINO BBROBOTINDONESIA PANDUAN PRAKTIKUM DASAR ARDUINO www.belajarbikinrobot.weebly.com Praktikum 7 Belajar Arduino Menggunakan FOR LOOP Pada praktikum kita kali ini, kita akan membahas sebuah fungsi yang sangat

Lebih terperinci

BAB 3 PERANCANGAN SISTEM. Computer. Parallel Port ICSP. Microcontroller. Motor Driver Encoder. DC Motor. Gambar 3.1: Blok Diagram Perangkat Keras

BAB 3 PERANCANGAN SISTEM. Computer. Parallel Port ICSP. Microcontroller. Motor Driver Encoder. DC Motor. Gambar 3.1: Blok Diagram Perangkat Keras BAB 3 PERANCANGAN SISTEM 3.1 Blok Diagram Perangkat Keras Sistem perangkat keras yang digunakan dalam penelitian ini ditunjukkan oleh blok diagram berikut: Computer Parallel Port Serial Port ICSP Level

Lebih terperinci

Analog to Digital Convertion Menggunakan Arduino Uno Minsys

Analog to Digital Convertion Menggunakan Arduino Uno Minsys Analog to Digital Convertion Menggunakan Arduino Uno Minsys Mahasiswa mampu memahami pemrograman C pada Arduino Uno MinSys Mahasiswa mampu membuat program Analog to Digital Convertion dengan Arduino Uno

Lebih terperinci

Contoh Bentuk LCD (Liquid Cristal Display)

Contoh Bentuk LCD (Liquid Cristal Display) Display elektronik adalah salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik

Lebih terperinci

BAB IV PEMBAHASAN. 27

BAB IV PEMBAHASAN. 27 BAB IV PEMBAHASAN 4.1 Perancangan Kendali Back Gauge Berbasis Arduino Sistem yang akan dirancang akan terbagi menjadi dua bagian, yaitu perancangan perangkat keras ( Hardware ) dan perancangan perangkat

Lebih terperinci

BAB IV ANALISA DAN PENGUJIAN DATA

BAB IV ANALISA DAN PENGUJIAN DATA BAB IV ANALISA DAN PENGUJIAN DATA Pada bab ini akan di bahas mengenai pengujian peralatan yang dipergunakan untuk membangun sistem navigasi pada robot berjalan. Pengujian ini untuk bertujuan apakah peralatan

Lebih terperinci

BAB II ANALISIS DAN PERANCANGAN. Arduino adalah pengendali mikro single-board yang bersifat opensource,

BAB II ANALISIS DAN PERANCANGAN. Arduino adalah pengendali mikro single-board yang bersifat opensource, BAB II ANALISIS DAN PERANCANGAN 2.1 Arduino Uno R3 Arduino adalah pengendali mikro single-board yang bersifat opensource, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik

Lebih terperinci

MODUL 3 Pengenalan Arduino & Bit Control

MODUL 3 Pengenalan Arduino & Bit Control MODUL 3 Pengenalan Arduino & Bit Control I. TUJUAN Mahasiswa mampu mengenal dan memahami maksud maupun penerapan Arduino Mahasiswa dapat menciptakan sebuah karya berbasis Arduino Mahasiswa dapat mengontrol

Lebih terperinci

Komunikasi Serial. Menggunakan Arduino Uno MinSys

Komunikasi Serial. Menggunakan Arduino Uno MinSys Komunikasi Serial Menggunakan Arduino Uno MinSys Mahasiswa mampu memahami pemrograman C pada Arduino Uno MinSys Mahasiswa mampu membuat program komunikasi serial di Arduino Uno MinSys A. Hardware Arduino

Lebih terperinci

PANDUAN PRAKTIKUM DASAR ARDUINO

PANDUAN PRAKTIKUM DASAR ARDUINO BBROBOTINDONESIA PANDUAN PRAKTIKUM DASAR ARDUINO www.belajarbikinrobot.weebly.com Praktikum 3 Belajar Arduino analogread() dan Komunikasi Serial Setelah sebelumnya kita belajar tentang penggunaan pin digital

Lebih terperinci

PROJECT LED SINYAL MORSE SOS

PROJECT LED SINYAL MORSE SOS PROJECT LED SINYAL MORSE SOS Agustus 2015 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Platform: Arduino Uno IDE Arduino versi 1.6.5 Objektif: Tujuan projek ini adalah menghasilkan sebuah program

Lebih terperinci

BAB IV PENGUJIAN ALAT. Pengujian Arduino Board Pengujian Sensor Ultrasonic (ping) Pengujian Tombol Pengujian LCD Pengujian Alat Keseluruhan

BAB IV PENGUJIAN ALAT. Pengujian Arduino Board Pengujian Sensor Ultrasonic (ping) Pengujian Tombol Pengujian LCD Pengujian Alat Keseluruhan 30 P a g e BAB IV PENGUJIAN ALAT Pengujian alat dilakukan untuk mengetahui apakah alat yang dibuat sudah sesuai atau belum sesuai dengan perancangan yang telah dirancang sebelumnya. Perlu dilakukan pengujian

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA Dalam Bab ini akan dibahas tentang pengujian berdasarkan perencanaan dari sistem yang dibuat. Program pengujian disimulasikan di suatu sistem yang sesuai. Pengujian ini dilaksanakan

Lebih terperinci

BAB III PERANCANGAN ALAT

BAB III PERANCANGAN ALAT BAB III PERANCANGAN ALAT 3.1 Persiapan Perancangan Alat Bab ini akan membahas mengenai perancangan alat mulai dari perangkat lunak ( software ) hinggan ke perangkat keras ( Hardware ), mengenai sistem

Lebih terperinci

BAB IV CARA KERJA DAN PERANCANGAN SISTEM. ketiga juri diarea pertandingan menekan keypad pada alat pencatat score, setelah

BAB IV CARA KERJA DAN PERANCANGAN SISTEM. ketiga juri diarea pertandingan menekan keypad pada alat pencatat score, setelah BAB IV CARA KERJA DAN PERANCANGAN SISTEM 4.1 Diagram Blok Sistem Blok diagram dibawah ini menjelaskan bahwa ketika juri dari salah satu bahkan ketiga juri diarea pertandingan menekan keypad pada alat pencatat

Lebih terperinci

Output LED. Menggunakan Arduino Uno MinSys

Output LED. Menggunakan Arduino Uno MinSys Output LED Menggunakan Arduino Uno MinSys Mahasiswa mampu memahami pemrograman C pada Arduino Uno MinSys Mahasiswa mampu membuat program output LED dengan Arduino Uno MinSys A. Hardware Arduino Uno Minsys

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI Pada bab ini akan dibahas dasar teori yang berhubungan dengan perancangan skripsi antara lain motor servo, LCD Keypad Shield, rangkaian pemantik, mikrokontroler arduino uno dan kompor

Lebih terperinci

BAB III PERANCANGAN SISTEMKENDALI PADA EXHAUST FAN MENGGUNAKAN SMS GATEWAY

BAB III PERANCANGAN SISTEMKENDALI PADA EXHAUST FAN MENGGUNAKAN SMS GATEWAY BAB III PERANCANGAN SISTEMKENDALI PADA EXHAUST FAN MENGGUNAKAN SMS GATEWAY 3.1 Perancangan Alat Dalam merealisasikan sebuah sistem elektronik diperlukan tahapan perencanaan yang baik dan matang. Tahapan-tahapan

Lebih terperinci

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM 31 BAB III PERANCANGAN SISTEM 3.1 Diagram Blok Air ditampung pada wadah yang nantinya akan dialirkan dengan menggunakan pompa. Pompa akan menglirkan air melalui saluran penghubung yang dibuat sedemikian

Lebih terperinci

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB III PERANCANGAN DAN PEMBUATAN ALAT BAB III PERANCANGAN DAN PEMBUATAN ALAT Dalam bab ini akan dibahas mengenai proses perancangan mekanik gorden dan lampu otomatis serta penyusunan rangkaian untuk merealisasikan sistem alat. Dalam hal ini

Lebih terperinci

BAB III DESKRIPSI DAN PERANCANGAN SISTEM

BAB III DESKRIPSI DAN PERANCANGAN SISTEM BAB III DESKRIPSI DAN PERANCANGAN SISTEM 3.1. DESKRIPSI KERJA SISTEM Gambar 3.1. Blok diagram sistem Satelit-satelit GPS akan mengirimkan sinyal-sinyal secara kontinyu setiap detiknya. GPS receiver akan

Lebih terperinci

BAB III METODE PENELITIAN

BAB III METODE PENELITIAN BAB III METODE PENELITIAN Penelitian ini menggunakan metode penelitian eksperimen (uji coba). Tujuan dari penelitian ini yaitu membuat suatu alat yang dapat mengontrol piranti rumah tangga yang ada pada

Lebih terperinci

BAB 3 PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM BAB 3 PERANCANGAN SISTEM 3.1 Perancangan Perangkat Keras Perancangan perangkat keras pada sistem keamanan ini berupa perancangan modul RFID, modul LCD, modul motor. 3.1.1 Blok Diagram Sistem Blok diagram

Lebih terperinci

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM 24 BAB III PERANCANGAN SISTEM 3.1 Diagram Blok Rangkaian Perancangan system monitoring Thermometer data logger menggunakan Arduino uno, yang berfungsi untuk mengontrol atau memonitor semua aktifitas yang

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN BAB III ANALISIS DAN PERANCANGAN 3.1. ANALISIS 3.1.1 Analisis Masalah Berdasarkan permasalahan yang dijelaskan oleh penulis sebelumnya, bahwa dengan perkembangan kemajuan kehidupan manusia di tuntut untuk

Lebih terperinci

BAB II LANDASAN TEORI. berinteraksi dengan mudah dan interaksi dengan masyarakat umum juga menjadi

BAB II LANDASAN TEORI. berinteraksi dengan mudah dan interaksi dengan masyarakat umum juga menjadi BAB II LANDASAN TEORI 2.1 Bahasa Isyarat Abjad Bahasa isyarat adalah media komunikasi bagi para penderita tuna-rungu agar dapat berinteraksi dengan para penderita tuna-rungu lainnya dan manusia normal,

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA Pada bab ini, akan dibahas pengujian alat mulai dari pengujian alat permodul sampai pengujian alat secara keseluruhan, antara lain : 1. Instalasi Software Arduino IDE 2. Pengujian

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Baggage Arrival System Baggage Arrival System merupakan sebuah sistem konveyor penanganan bagasi pada area kedatangan di bandara. Adapun fungsi konveyor ini adalah memindahkan

Lebih terperinci

PANDUAN PRAKTIKUM DASAR ARDUINO

PANDUAN PRAKTIKUM DASAR ARDUINO BBROBOTINDONESIA PANDUAN PRAKTIKUM DASAR ARDUINO www.belajarbikinrobot.weebly.com Praktikum 13 Belajar Arduino Deteksi Perubahan Kondisi dan Operator Modulo Pada praktikum sebelumnya, kita telah belajar

Lebih terperinci

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB III PERANCANGAN DAN PEMBUATAN ALAT BAB III PERANCANGAN DAN PEMBUATAN ALAT Dalam bab ini akan dibahas mengenai prinsip kerja rangkaian yang disusun untuk merealisasikan sistem alat, dalam hal ini Bluetooth sebagai alat komunikasi penghubung

Lebih terperinci

BAB II TINJAUAN PUSTAKA. 2.1PHOTODIODA Dioda foto adalah jenis dioda yang berfungsi mendeteksi cahaya. Berbeda dengan

BAB II TINJAUAN PUSTAKA. 2.1PHOTODIODA Dioda foto adalah jenis dioda yang berfungsi mendeteksi cahaya. Berbeda dengan 4 BAB II TINJAUAN PUSTAKA 2.1PHOTODIODA Dioda foto adalah jenis dioda yang berfungsi mendeteksi cahaya. Berbeda dengan dioda biasa, komponen elektronika ini akan mengubah cahaya menjadi arus listrik. Cahaya

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA Pembahasan dalam Bab ini meliputi pengujian dari setiap bagian kemudian dilakukan pengujian secara keseluruhan. Ada beberapa tahapan pengujian untuk yang harus dilakukan untuk

Lebih terperinci

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM BAB III PERANCANGAN SISTEM Pada bab ini akan dibahas mengenai perancangan dan realisasi dari perangkat keras maupun perangkat lunak dari setiap modul yang dipakai pada skripsi ini. 3.1. Perancangan dan

Lebih terperinci

BAB III METODE PENELITIAN. Penelitian ini menggunakan metode eksperimen, yaitu membuktikan hasil

BAB III METODE PENELITIAN. Penelitian ini menggunakan metode eksperimen, yaitu membuktikan hasil BAB III METODE PENELITIAN Penelitian ini menggunakan metode eksperimen, yaitu membuktikan hasil penelitian dengan cara melakukan percobaan. Pada bab ini akan dijelaskan langkah langkah yang ditempuh dalam

Lebih terperinci

PENGENALAN ARDUINO Juli 2011 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir

PENGENALAN ARDUINO Juli 2011 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir PENGENALAN ARDUINO Juli 2011 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir DAFTAR ISI: 1. MENGENAL ARDUINO... 1 2. JENIS-JENIS PAPAN ARDUINO... 5 3. BAGIAN-BAGIAN PAPAN ARDUINO... 9 4. SOFTWARE ARDUINO...

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA Pada bab ini, akan dibahas pengujian alat mulai dari pengujian alat permodul sampai pengujian alat secara keseluruhan. Pengujian tersebut akan dilakukan secara bertahap dengan

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI Pada bab ini akan dibahas dasar teori yang berhubungan dengan perancangan skripsi antara lain fungsi dari function generator, osilator, MAX038, rangkaian operasional amplifier, Mikrokontroler

Lebih terperinci

BAB III DESKRIPSI MASALAH

BAB III DESKRIPSI MASALAH BAB III DESKRIPSI MASALAH 3.1 Perancangan Hardware Perancangan hardware ini meliputi keseluruhan perancangan, artinya dari masukan sampai keluaran dengan menghasilkan energi panas. Dibawah ini adalah diagram

Lebih terperinci

BAB III PERANCANGAN ALAT DAN PROGRAM

BAB III PERANCANGAN ALAT DAN PROGRAM 29 BAB III PERANCANGAN ALAT DAN PROGRAM 3.1 Persiapan Perancangan Alat Dalam bab ini membahas mengenai perancangan alat mulai dari perancangan perangkat keras ( Hardware ) hingga perancangan perangkat

Lebih terperinci

PANDUAN PRAKTIKUM DASAR ARDUINO

PANDUAN PRAKTIKUM DASAR ARDUINO BBROBOTINDONESIA PANDUAN PRAKTIKUM DASAR ARDUINO www.belajarbikinrobot.weebly.com Praktikum 2 Belajar Arduino digitalread () dan Komunikasi Serial Pada praktikum kali ini, kita akan mencoba menggunakan

Lebih terperinci

BAB IV PENGUJIAN DAN ANALISA ALAT

BAB IV PENGUJIAN DAN ANALISA ALAT 37 BAB IV PENGUJIAN DAN ANALISA ALAT 4.1 Tujuan Setelah perancangan sistem, tahap selanjutnya adalah pengujian, pengujian dilakukan dengan tujuan apakah sistem yang dirancang sudah berjalan dengan perencanaan.

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN BAB III ANALISIS DAN PERANCANGAN III.1. Analisis Permasalahan Dalam Perancangan dan Implementasi Alat Pendeteksi Uang Palsu Beserta Nilainya Berbasis Mikrokontroler ini, terdapat beberapa masalah yang

Lebih terperinci