Arduino Intermediete
-
Upload
prabu-siliwangi -
Category
Documents
-
view
35 -
download
13
description
Transcript of Arduino Intermediete
USAID-SMART Lab Program
1 Modul Mobile Programming
PENGANTAR
Alhamdulillah, segala puji dan syukur kepada Allah SWT atas segala rahmat, taufik
dan hidayah hingga penulis dapat menyelesaikan modul basic untuk pelatihan arduino di smart
lab. Modul ini berisi tiga bab pembahasan yaitu Komponen Elektro, Pengenalan Arduino dan
Sensor serta Aplikasinya.
Dengan modul basic ini, penulis mengucapkan terima kasih kepada seluruh pihak
terkait seperti teman teman di dunia maya yang telah memberikan share ilmunya pada pada
dunia maya. Selain itu penulis juga memberikan pengahrgaan yang sebesar-besarnya kepada
para penulis panduan arduino yang tidak bisa disebutkan satu persatu. Mudah-mudahan dengan
modul ini bisa menjadi ladang amal buat teman teman di dunia maya yang telah memberikan
ilmunya untuk saya.
saya menyadari bahwa dalam penyusunan Modul ini masih terdapat kelemahan yang
perlu diperkuat dan kekurangan yang perlu dilengkapi. Dengan rendah hati penulis
mengharapkan masukan, untuk memperkuat dan melengkapi kekurangan tersebut.
Jakarta, September 2015.
USAID-SMART Lab Program
2 Modul Mobile Programming
DAFTAR ISI
Halaman
1. Pengantar Modul .................................................................................... 1
2. Daftar Isi ................................................................................................. 2
3. BAB I PROGRAMMING ARDUINO ............................................. 3
A. Target Belajar ............................................................... 3
B. Teori ............................................................................. 3
Struktur .......................................................................... 3
Setup ............................................................................. 3
Loop .............................................................................. 3
Syntax ........................................................................... 4
Operator Matematika .................................................... 4
Operator Pembanding ................................................... 4
Digital dan Analog ....................................................... 6
C. Project .......................................................................... 6
D. Chalengge ..................................................................... 9
4. BAB II ARDUINO DAN SENSOR KELEMBABAN ....................... 10
A. Target Belajar ............................................................... 10
B. Teori ............................................................................. 10
Sensor Kelembaban Udara ........................................... 10
Sensor Kelembaban Tanah ........................................... 11
C. Project .......................................................................... 11
D. Chalengge ..................................................................... 14
5. BAB III ARDUINO DAN SENSOR KARBONMONOKSIDA ........ 15
A. Target Belajar ............................................................... 15
B. Teori ............................................................................. 15
C. Project .......................................................................... 16
D. Chalengge ..................................................................... 16
6. BAB IV ARDUINO DAN MOTOR
A. Target Belajar ............................................................... 17
B. Teori ............................................................................. 17
C. Project .......................................................................... 17
D. Chalengge ..................................................................... 18
6. DAFTAR PUSTAKA ............................................................................ 19
USAID-SMART Lab Program
3 Modul Mobile Programming
BAB I
PROGRAMMING ARDUINO
A. Target Belajar
Target dari modul satu pada tahap intermediet adalah diharapkan pesert training
dapat memahami sebagai berikut:
1. Programming arduino
2. Programming arduino dan sensor
3. Programming arduino,sensor dan aplikasinya untuk dunia luar.
B. Teori
Struktur
Struktur program pada arduino ada dua part yaitu function dan close program
void setup () { statement } void loop () { statement } dmana setup merupakan persiapan untuk program dan loop merupakan eksekusi
program.
setup()
setup () digunakan pada saat anda akan memulai program. Untuk menginisialisasi
pin modes,serial begin. Semua kode didalam kurung kurawal akan dijalankan hanya satu
kali ketika program Arduino dijalankan untuk pertama kalinya.
void setup () { pinMode(pin,OUTPUT); } loop()
setelah melakukan setup, loop () berfungsi sebagai pemanggil yang sudah di
lakukan pada setup. Jika setupnya tidak tepat maka hasilnya pun akan tidak tepat juga.
Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan
satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya
(power) dilepaskan.
void loop () { digitalWrite(pin,HIGH); delay(1000); digitalWrite(pin,HIGH); delay(1000); }
USAID-SMART Lab Program
4 Modul Mobile Programming
Syntax
//(single line comment)
Code ini digunakan untuk membuat catatan pada program. Jika pada program kita
ketikkan // maka apapun yang diketik pada baris seletah tanda // tersebut tidak akan dibaca
oleh program.
void loop() { …program yang dibaca //baris ini tidak akan dibaca oleh program …program yang dibaca }
/* */(multi line comment)
Jika kita ingin membuat catatan pada program dan kata2nya cukup banyak maka kita
bisa menggunakan /**/ . Apapun yang diketikkan diantara dua tanda ini tidak akan
dijalankan oleh program.
void loop() {…program yang dibaca /* apapun yang diketik diantara tanda ini tidak akan dibaca oleh program */ …program yang dibaca }
{ }(kurung kurawal)
Digunakan untuk mendefinisikan awal dan akhir dari code program.
void loop() { …program …program …program }
;(semicolon)
Setiap baris code harus diakhiri dengan tanda ;
void loop() { digitalWrite(ledPin, HIGH); delay(1000); Syntax diakhiri dengan tanda ; (biasanya tanda ini yang sering
lupa digunakan oleh pemula sehingga program tidak bisa di compile)
Variabel
Variable adalah tempat untuk menyimpan data. Variable memiliki nama, nilai, dan
tipe data. Statementnya biasa disebut deklarasi.
int (integer)
Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak mempunyai angka
desimal dan menyimpan nilai dari -32,768 dan 32,767.
long (long)
Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit) dari memori
(RAM) dan mempunyai rentang dari -2,147,483,648 dan 2,147,483,647.
boolean (boolean)
Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar)
atauFALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari RAM.
float (float)
Digunakan untuk angka desimal (floating point). Memakai 4 byte (32 bit) dari RAM
dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38.
char (character)
USAID-SMART Lab Program
5 Modul Mobile Programming
Menyimpan 1 karakter menggunakan kode ASCII (misalnya ‘A’ = 65). Hanya
memakai 1 byte (8 bit) dari RAM.
Operator Matematika
Operator yang digunakan untuk memanipulasi angka bekerja seperti matematika
sederhana.
= Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2,
x sekarang sama dengan 20).
% Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain
(misalnya: 12 % 10, ini akan menghasilkan angka 2).
+ Penjumlahan
Pengurangan
* Perkalian
/ Pembagian
Operator Pembanding
Digunakan untuk membandingkan logika
== Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12
adalah TRUE (benar))
!= Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 != 12
adalah FALSE (salah))
< Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah
FALSE (salah) atau 12 < 14 adalah TRUE (benar))
Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah
FALSE (salah) atau 12 > 14 adalah FALSE (salah))
Struktur Pengaturan
Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya kecuali,
berikut ini adalah elemen dasar pengaturan.
if..else, dengan format seperti berikut ini:
if (kondisi) { }
else if (kondisi) { }
else { }
Dengan struktur seperti diatas program akan menjalankan kode yang ada di dalam kurung
kurawal jika kondisinya TRUE, dan jika tidak (FALSE) maka akan diperiksa apakah
kondisi pada else if dan jika kondisinya FALSE maka kode pada else yang akan dijalankan.
for, dengan format seperti berikut ini:
for (int i = 0; i < #pengulangan; i++) { }
Digunakan bila anda ingin melakukan pengulangan kode di dalam kurung kurawal
beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang diinginkan.
Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i–
USAID-SMART Lab Program
6 Modul Mobile Programming
Digital
1. pinMode(pin, mode)
Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin yang akan
digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa digunakan
adalahINPUT atau OUTPUT.
2. digitalWrite(pin, value)
Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH(ditarik
menjadi 5 volts) atau LOW (diturunkan menjadi ground).
3. digitalRead(pin)
Ketika sebuah pin ditetapkan sebagai INPUT maka anda dapat menggunakan kode ini
untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik menjadi 5 volts)
atau LOW(diturunkan menjadi ground).
Analog
Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi di dalam
alam analog (menggunakan trik). Berikut ini cara untuk menghadapi hal yang bukan
digital.
1. analogWrite(pin, value)
Beberapa pin pada Arduino mendukung PWM (pulse width modulation) yaitu pin 3, 5, 6,
9, 10, 11. Ini dapat merubah pin hidup (on)atau mati (off) dengan sangat cepat sehingga
membuatnya dapat berfungsi layaknya keluaran analog. Value (nilai) pada format kode
tersebut adalah angka antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% duty cycle ~ 5V).
2. analogRead(pin)
Ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran voltase-nya.
Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024 (untuk 5 volts).
C. Project
Dalam pembuatan project pada programming arduino kita akan membuata project yaitu:
1. Digital Input
2. PWM Output
3. Potensiometer Input
4. Servo Output
Digital Input
Pada rangkaian ini, kita mempraktekan dua kemungkinan yaitu on/off. Ketika swith
di tekan maka input pin menjadi HIGH(ON) dan sebaliknya. Berikut coding dari Digital
input.
const int buttonPin = 2; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin // variables will change: int buttonState = 0; // variable for reading the pushbutton status
USAID-SMART Lab Program
7 Modul Mobile Programming
void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); } void loop() { // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState == HIGH) { // turn LED on: digitalWrite(ledPin, HIGH); } else { // turn LED off: digitalWrite(ledPin, LOW); } }
PWM Output
PWM (Pulse Widh Modulation) merupakan cara melihat sinyal analog yang dapat
diperlihatkan seperti denyut. Dalam praktek ini PWM akan dibuktikan dengan sinyal
lampu led.
USAID-SMART Lab Program
8 Modul Mobile Programming
Potensiometer Input
Dengan menggunakan sebuah potensiometer dan satu arduino analog to digital coverter
Pin pada arduino ini memungkinkan untuk membaca nilai analog dari 0-1024. Coding
berikut merupakan contoh potensiometer yang mengontrol blink led.
Servo Output
Servo merupakan jenis motor yang dapat berputar sebanyak 1800, servo tersebut
membutuhkan waktu setiap 20 detik sekali untuk berputar sampai 1800.
USAID-SMART Lab Program
10 Modul Mobile Programming
BAB II
ARDUINO DAN SENSOR KELEMBABAN
A. Target Belajar
Target dari modul satu pada tahap intermediet adalah diharapkan pesert training
dapat memahami sebagai berikut:
1. Programming arduino
2. Programming arduino dan sensor
3. Programming arduino,sensor dan aplikasinya untuk dunia luar
B. Teori
Kelembaban adalah salah satu faktor yang menentukan kondisi cuaca pada suatu
daearah. Kelembaban dapat diukur dengan berbagai macam metode, salah satunya adalah
dengan menggunakan sensor kelembaban. Jenis-jenis kelembaban adalah :
1. Kelembaban absolut
Bilangan yang menunjukkan berapa gram uap air yang tertampung dalam satu
meter kubik udara
2. Kelembaban relatif
Bilangan yang menunjukkan berapa persen perbandingan antara uap air yang ada
dalam udara saat pengukuran dan jumlah uap air maksimum yang dapat
ditampung oleh udara tersebut.
Sensor kelembapan adalah suatu alat ukur yang digunakan untuk membantu dalam
proses pengukuran atau pendifinisian yang suatu kelembaban uap air yang terkandung dalam
udara.
Dalam modul ini, akan dibuat project sensor kelembaban, yaitu kelembaban tanah dan
kelmebaban udara.
Sensor Suhu dan Kelembaban Udara (DHT11)
Sensor suhu dan kelembaban udara(DHT11) merupakan sebuah sensor yang dapat
mengukur tingkat kelembaban udara dan suhu udara.
Gambar Sensor Kelembaban Udara
DHT11 adalah sensor digital yang dapat mengukur suhu dan kelembaban udara di
sekitarnya. Sensor ini sangat mudah digunakan bersama dengan Arduino. Memiliki tingkat
stabilitas yang sangat baik serta fitur kalibrasi yang sangat akurat. Koefisien kalibrasi disimpan
dalam OTP program memory, sehingga ketika internal sensor mendeteksi sesuatu, maka module
ini menyertakan koefisien tersebut dalam kalkulasinya. DHT11 termasuk sensor yang memiliki
kualitas terbaik, dinilai dari respon, pembacaan data yang cepat, dan kemampuan anti-
USAID-SMART Lab Program
11 Modul Mobile Programming
interference. Ukurannya yang kecil, dan dengan transmisi sinyal hingga 20 meter, membuat produk
ini cocok digunakan untuk banyak aplikasi-aplikasi pengukuran suhu dan kelembaban.
Sensor Kelembaban Tanah
Moisture sensor adalah sensor kelembaban yang dapat mendeteksi kelembaban dalam
tanah. Sensor ini sangat sederhana, tetapi ideal untuk memantau taman kota, atau tingkat air
pada tanaman pekarangan anda.
Sensor ini terdiri dua probe untuk melewatkan arus melalui tanah, kemudian membaca
resistansinya untuk mendapatkan nilai tingkat kelembaban. Semakin banyak air membuat
tanah lebih mudah menghantarkan listrik (resistansi kecil), sedangkan tanah yang kering sangat
sulit menghantarkan listrik (resistansi besar).
Sensor ini sangat membantu Anda untuk mengingatkan tingkat kelembaban pada
tanaman Anda atau memantau kelembaban tanah di kebun Anda. IO Expansion Shield adalah
shield yang sempurna untuk menghubungkan Sensor dengan Arduino.
C. Project
Dalam project ini, ada dua project yang akan dilakukan adalah mengukur suhu dan
kembaban udara menggunakan sensor DHT11 dan mengukur kelembaban tanah.
Mengukur Suhu dan Kelembaban Udara
Untuk membuat project penguku suhu dan kelembaban udara membutuhkan beberapa
bahan dan alat praktikum yaitu:
1. Arduino Uno
2. DHT 11
3. Dan Kabel Jumper
4. Resistor 5 K Jika dibutuhkan
Rangkai Arduino dan DHT11 seperti pada gambat berikut:
Rangkaian Sensor Kelembaban dan Arduino
Setelah di rangkai masukan code program berikut :
#include "DHT.h" #define DHTPIN 2 // definisikan pin yang digunakan utk sensor DHT11
void loop() { // Baca humidity dan temperature float h = dht.readHumidity();
USAID-SMART Lab Program
12 Modul Mobile Programming
// Tentukan jenis DHT yang digunakan (pilih salah satu) // Saat ini yang dipilih adalah DHT11 #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); Serial.println("DHTxx test!"); dht.begin(); }
float t = dht.readTemperature(); // Cek hasil pembacaan, dan tampilkan bila ok if (isnan(t) || isnan(h)) { Serial.println("Failed to read from DHT"); } else { Serial.print("Humidity: "); Serial.print(h); Serial.print(" %t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C"); } }
Mengukur Kelembaban Tanah
USAID-SMART Lab Program
14 Modul Mobile Programming
D. Chalengge
1. Buatlah sistem penyiram otomatis seperti pada rangkaian tersebut
2. Buatlah sistem otomatis menggunakan sensor kelembaban udara dan sensor
kelembaban tanah dengan TEMA “ LINGKUNGANKU”.
USAID-SMART Lab Program
15 Modul Mobile Programming
BAB III
ARDUINO DAN SENSOR KARBONMONOKSIDA
A. Target Belajar
Target dari modul satu pada tahap intermediet adalah diharapkan pesert training
dapat memahami sebagai berikut:
1. Programming arduino
2. Programming arduino dan sensor
3. Programming arduino,sensor dan aplikasinya untuk dunia luar
B. Teori
Sensor karbonmonoxida merupakan sensor yang dapat mengukur kualitas udara dan
kadar gas tertentu pada suatu area atau ruangan. Ada beberapa jenis gas sensor yang bisa
kita gunakan dalam mengukur kadar gas maupun kualitas udara. Antarmuka dan
komunikasi pada modul DT-Sense Gas Sensor series semuanya sama, ada dua cara
antarmuka yang bisa kita pake diantaranya adalah antarmuka menggunakan komunikasi
serial UART dan antarmuka menggunakan komunikasi I2C. Pada AN kali ini kita akan
membahas kedua antarmuka tersebut pada modul board ArduinoTMUno.
C. Project
Dalam project ini, kita akan membuat pengukur kualitas udara pada ruangan
tertutup dan terbuka. Berikut adalah kebutuhan alat untuk pengukur kualitas udara:
1. 1 unit modul board ArduinoTM Uno R3.
2. 1 unit modul DT-SENSE CARBON MONOXIDE SENSOR.
3. 1 power supply 5V.
4. 1 power supply 12V.
5. 1 LCD 16x2.
6. 1 Potensiometer 10K ohm.
7. Kabel jumper.
Blok Diagram
Gambar Blok Diagram
Berikut ini, rangkaian pengukur kualitas udara dalam ruangan sebagai berikut:
USAID-SMART Lab Program
16 Modul Mobile Programming
Gambar Rangkaian Pengukur Kualitas Udara
Setelah itu masukan coding berikut:
int limit; int value; void setup() { Serial.begin(115200);//sets the baud rate pinMode(DOUTpin, INPUT);//sets the pin as an input to the arduino pinMode(ledPin, OUTPUT);//sets the pin as an output of the arduino } void loop() { value= analogRead(AOUTpin); limit= digitalRead(DOUTpin);
Serial.print("CO value: "); Serial.println(value);//prints the CO value Serial.print("Limit: "); Serial.print(limit);//prints the limit reached as either LOW or HIGH (above or underneath) delay(100); if (limit == HIGH){
digitalWrite(ledPin, HIGH); } else{ digitalWrite(ledPin, LOW); } }
D. CHALENGGE
Tantangan dalam modul ini, yaitu
1. Pengukur kualitas udara pada ruangan tertutup dan terbuka dengan tampilan pada
LCD
USAID-SMART Lab Program
17 Modul Mobile Programming
BAB IV
ARDUINO DAN MOTOR
A. Target Belajar
Target dari modul satu pada tahap intermediet adalah diharapkan pesert training
dapat memahami sebagai berikut:
1. Programming arduino
2. Programming arduino dan Motor
3. Programming arduino,Motor dan aplikasinya untuk dunia luar
B. Teori
Motor adalah alat yang dapat bergerak berputar dari 0-360 derajat. Dalam dunia
elektronik biasanya motor digunakan untuk menggerakan roda, menggerakan pintu dan
lain sebgainya. Dalam project ini, kita akan membuat motor bergerak menggukaan
mikrocontroller arduino. Motor yang akan digerakan adalah motor servo dan motor dc.
C. Project
Motor Servo adalah motor yang dapata bergerak dari 0 sampai dengan 180 derajat.
Berikut rangakian motor servo yang akan digerakan oleh mikrocontroller.
Berikut adalah code program untuk menjalan servo.
include <Servo.h> Servo myservo; int pos = 0; void setup() { myservo.attach(9); }
void loop() { for(pos = 0; pos <= 180; pos += 1)
{ myservo.write(pos); delay(15); } for(pos = 180; pos>=0; pos-=1) { myservo.write(pos);
delay(15); }
USAID-SMART Lab Program
18 Modul Mobile Programming
}
D. Chalengge
Dalam tantangan kali ini, anda diharapkan dapat mengikuti gambar berikut dan
kodingnya setelaha itu aplikasikan rangkaian tersebut pada kehidupan sekeliling kita.
USAID-SMART Lab Program
19 Modul Mobile Programming
PUSTAKA
Evan, W.Brian. “ Arduino Programming Notebook”. 2007.
Simon MONK. “ 30 Arduino Project for the Evil Genius”.
Jhon-David Adam, Josh Adam, Harrald Mole.” Arduino Robotic”. 2009.
Ardiansyah.Deden. “Modul Praktikum Sistem Interface dan Mikrocontroller 1 dan 2”. 2014.
Ardiansyah.Deden. “Modul Praktikum Robotika”.2014.
Ardiansyah.Deden. “Modul Praktikum Sistem Mikroprocessor”.2014.
http:\\ www.arduino.cc
http:\\ www.arduino.cc/en/Booklet/HomePage
http:\\ www.geraicerdas.com
http:\\ www.garagelab.com