Arduino Intermediete

20

description

Arduino, tutorial ardunino, sensor kelembaban udara, sensor kelembaban tanah.

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

9 Modul Mobile Programming

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

13 Modul Mobile Programming

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