Daftar Isi............................................................................................................................0
1. Pendahuluan...............................................................................................................3
BARE MINIMUM........................................................................................................10
void setup.................................................................................................................11
void loop....................................................................................................................11
VARIABLES...............................................................................................................13
OPERATOR MATEMATIKA........................................................................................13
KODE DIGITAL..........................................................................................................14
KODE ANALOG..........................................................................................................15
7. Membaca Nilai dari Potensiometer dan Mengatur Terang Redup Cahaya LED
(AnalogInOut)..................................................................................................................22
NOTES:......................................................................................................................23
12. Alat Pengatur Suhu dan Kelembaban Otomatis Sensor DHT11, LCD, dan
Relay! 37
1
16. Driver Motor L298N...............................................................................................46
18. Cara Mudah Program RTC Module DS1302 Jam Digital Dengan Arduino...........56
Coding Smartconfig..................................................................................................74
2
1. Pendahuluan
Di Era millenial sekarang ini teknologi makin berkembang, termasuk Teknologi program yaitu Arduino, maka dari
artikel ini akan menjelaskan Belajar Program Arduino untuk Pemula Lengkap Beserta Fungsinya yang akan
memiliki tujuan untuk menjelaskan Apa itu Arduino tertutama pada programnya kepada pemula , karena ada banyak
sekali pengertian tentang Arduino dan jenis Arduino juga ada banyak sekali , Namuan Kita tidak akan membahasa
semua jenis-jenis Arduino satu persatu , saya akan menjelaskan dasar-dasar nya saja, Belajar Program Arduino
untuk Pemula sangat penting untekuk kita miliki ilmunya karena Arduino sudah menjadi andalan bagi para pakar
Teknologi didunia. oke mari kita mulai membahas Pengertian Arduino di bawah ada beberapa saja Pengertian
tentang Arduino salah satunya saya ambil dari Wikipedia .
Arduino adalah pengendali mikro single-board yang bersifat sumber terbuka, diturunkan dari Wiring platform,
dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Perangkat kerasnya memiliki prosesor
Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri.
Arduino juga merupakan senarai perangkat keras terbuka yang ditujukan kepada siapa saja yang ingin membuat
purwarupa peralatan elektronik interaktif berdasarkan hardware dan software yang fleksibel dan mudah digunakan.
Mikrokontroler diprogram menggunakan bahasa pemrograman arduino yang memiliki kemiripan syntax dengan
bahasa pemrograman C. Karena sifatnya yang terbuka maka siapa saja dapat mengunduh skema hardware arduino
dan membangunnya.
Arduino menggunakan keluarga mikrokontroler ATMega yang dirilis oleh Atmel sebagai basis, namun ada
individu/perusahaan yang membuat clone arduino dengan menggunakan mikrokontroler lain dan tetap kompatibel
3
dengan arduino pada level hardware. Untuk fleksibilitas, program dimasukkan melalui bootloader meskipun ada opsi
untuk mem-bypass bootloader dan menggunakan pengunduh untuk memprogram mikrokontroler secara langsung
melalui port ISP.
Platform Arduino telah menjadi sangat populer di kalangan orang-orang yang baru memulai dengan elektronik, dan
untuk alasan yang baik. Tidak seperti kebanyakan papan sirkuit yang dapat diprogram sebelumnya, Arduino tidak
memerlukan perangkat keras terpisah (disebut programmer) untuk memuat kode baru ke papan - Anda cukup
menggunakan kabel USB. Selain itu, Arduino IDE menggunakan versi yang disederhanakan dari C ++, membuatnya
lebih mudah untuk belajar memprogram. Akhirnya, Arduino memberikan faktor bentuk standar yang memecah fungsi
mikrokontroler menjadi paket yang lebih mudah diakses.
Percaya atau tidak, 10 baris kode itu adalah yang Anda perlukan untuk mengedipkan LED on-board pada Arduino
Anda. Kode ini mungkin tidak masuk akal saat ini, tetapi, setelah membaca tutorial ini dan banyak lagi tutorial
Arduino yang menunggu Anda di situs kami, kami akan mempercepat Anda dalam waktu singkat!
Arduino adalah alat yang hebat untuk orang-orang dari semua tingkat keahlian. Namun, Anda akan memiliki waktu
yang jauh lebih baik belajar bersama Arduino Anda jika Anda memahami beberapa dasar elektronik dasar
sebelumnya. Kami menyarankan Anda memiliki setidaknya pemahaman yang layak tentang konsep-konsep ini
sebelum Anda terjun ke dunia Arduino.
4
Perangkat keras dan perangkat lunak Arduino dirancang untuk seniman, perancang, penggemar, peretas, pemula,
dan siapa pun yang tertarik untuk membuat objek atau lingkungan interaktif. Arduino dapat berinteraksi dengan
tombol, LED, motor, speaker, unit GPS, kamera, internet, dan bahkan ponsel pintar atau TV Anda! Fleksibilitas ini
dikombinasikan dengan fakta bahwa perangkat lunak Arduino gratis, papan perangkat kerasnya cukup murah, dan
perangkat lunak maupun perangkat kerasnya mudah dipelajari telah menyebabkan komunitas besar pengguna yang
telah berkontribusi kode dan mengeluarkan instruksi untuk berbagai macam Proyek berbasis Arduino.
Murah – Papan (perangkat keras) Arduino biasanya dijual relatif murah (antara 125ribu hingga 400ribuan rupiah saja)
dibandingkan dengan platform mikrokontroler pro lainnya. Jika ingin lebih murah lagi, tentu bisa dibuat sendiri dan itu
sangat mungkin sekali karena semua sumber daya untuk membuat sendiri Arduino tersedia lengkap di website
Arduino bahkan di website-website komunitas Arduino lainnya. Tidak hanya cocok untuk Windows, namun juga
cocok bekerja di Linux.
Sederhana dan mudah pemrogramannya – Perlu diketahui bahwa lingkungan pemrograman di Arduino mudah
digunakan untuk pemula, dan cukup fleksibel bagi mereka yang sudah tingkat lanjut. Untuk guru/dosen, Arduino
berbasis pada lingkungan pemrograman Processing, sehingga jika mahasiswa atau murid-murid terbiasa
menggunakan Processing tentu saja akan mudah menggunakan Arduino.
Perangkat lunaknya Open Source – Perangkat lunak Arduino IDE dipublikasikan sebagai Open Source, tersedia bagi
para pemrogram berpengalaman untuk pengembangan lebih lanjut. Bahasanya bisa dikembangkan lebih lanjut
melalui pustaka-pustaka C++ yang beihrbasis pada Bahasa C untuk AVR.
Perangkat kerasnya Open Source – Perangkat keras Arduino berbasis mikrokontroler ATMEGA8, ATMEGA168,
ATMEGA328 dan ATMEGA1280 (yang terbaru ATMEGA2560). Dengan demikian siapa saja bisa membuatnya (dan
kemudian bisa menjualnya) perangkat keras Arduino ini, apalagi bootloader tersedia langsung dari perangkat lunak
Arduino IDE-nya. Bisa juga menggunakan breadoard untuk membuat perangkat Arduino beserta periferal-periferal
lain yang dibutuhkan.
5
2. Mempelajari Board Arduino
Setelah sekian banyaknya Pembahasan Pengertian Dasar Program Arduino untuk Pemula yang di jelaskan di atas
sekarang kita akan membaas ke bentuk komponen Arduino, coba perhatikan gambar pada Arduino di atas, Arduino
memiliki banyak papan (Arduino), Mempelajari lebih dalam Program Arduino untuk Pemula pasti membuat anda
bingung dengan banyaknya papan Arduino tersebut, saya sarankan menggunakan papan Arduino uno yang sudah
familiar, tipe Arduino ini merupakan tipe yang sangat compact memiliki port I/0 (Input/Output) baik jenis analog
maupun digital.
6
Power (USB / Barrel Jack)
Setiap papan Arduino membutuhkan cara untuk terhubung ke sumber daya. Arduino UNO dapat diaktifkan dari kabel
USB yang berasal dari komputer Anda atau catu daya dinding (seperti ini) yang diakhiri dengan jack barel. Pada
gambar di atas koneksi USB berlabel (1) dan jack laras diberi label (2).
CATATAN:
JANGAN gunakan catu daya yang lebih besar dari 20 Volt karena Anda akan mengalahkan (dan karenanya
menghancurkan) Arduino Anda. Tegangan yang disarankan untuk sebagian besar model Arduino adalah antara 6
dan 12 Volt.
Pin pada Arduino Anda adalah tempat di mana Anda menghubungkan kabel untuk membangun sirkuit (mungkin
bersamaan dengan papan tempat memotong roti dan beberapa kawat. Mereka biasanya memiliki 'header' plastik
hitam yang memungkinkan Anda untuk hanya memasukkan kabel tepat ke papan. Arduino memiliki beberapa jenis
pin, yang masing-masing dilabeli di papan dan digunakan untuk fungsi yang berbeda.
GND (3): Singkatan dari 'Ground'. Ada beberapa pin GND di Arduino, yang salah satunya dapat digunakan untuk
menghubungkan ke sirkuit Anda.
5V (4) & 3.3V (5): Seperti yang Anda duga, pin 5V memasok daya 5 volt, dan pin 3,3V memasok daya 3,3 volt.
Sebagian besar komponen sederhana yang digunakan dengan Arduino berjalan dengan gembira dari 5 atau 3,3 volt.
Digital (7): Di seberang pin analog adalah pin digital (0 hingga 13 pada UNO). Pin ini dapat digunakan untuk input
digital (seperti memberi tahu jika tombol ditekan) dan output digital (seperti menyalakan daya LED).
PWM (8): Anda mungkin telah memperhatikan tilde (~) di sebelah beberapa pin digital (3, 5, 6, 9, 10, dan 11 pada
UNO). Pin ini bertindak sebagai pin digital normal, tetapi juga dapat digunakan untuk sesuatu yang disebut Pulse-
Width Modulation (PWM). Kami memiliki tutorial tentang PWM, tetapi untuk saat ini, anggap pin ini mampu
mensimulasikan output analog (seperti memudarkan LED masuk dan keluar).
AREF (9): Singkatan dari Referensi Analog. Sebagian besar waktu Anda dapat meninggalkan pin ini sendirian.
Kadang- kadang digunakan untuk mengatur tegangan referensi eksternal (antara 0 dan 5 Volts) sebagai batas atas
untuk pin input analog.
Sama seperti Nintendo asli, Arduino memiliki tombol reset (10). Menekannya untuk sementara akan menghubungkan
pin reset ke ground dan me-restart kode yang dimuat pada Arduino. Ini bisa sangat berguna jika kode Anda tidak
berulang, tetapi Anda ingin mengujinya berulang kali. Berbeda dengan Nintendo yang asli, meniup Arduino biasanya
tidak memperbaiki masalah.
Tepat di bawah dan di sebelah kanan kata "UNO" di papan sirkuit Anda, ada LED kecil di sebelah kata 'ON' (11).
LED ini akan menyala setiap kali Anda mencolokkan Arduino ke sumber listrik. Jika lampu ini tidak menyala, ada
kemungkinan besar ada sesuatu yang salah. Saatnya memeriksa ulang sirkuit Anda!
LED TX RX
TX adalah kependekan dari pengiriman, RX adalah kependekan dari penerimaan. Tanda-tanda ini muncul sedikit di
elektronik untuk menunjukkan pin yang bertanggung jawab untuk komunikasi serial. Dalam kasus kami, ada dua
tempat di Arduino UNO di mana TX dan RX muncul - sekali dengan pin digital 0 dan 1, dan kedua kalinya di sebelah
TX dan
7
LED indikator RX (12). LED ini akan memberi kita beberapa indikasi visual yang bagus setiap kali Arduino kami
menerima atau mentransmisikan data (seperti ketika kami memuat program baru ke papan tulis).
IC utama
Benda hitam dengan semua kaki logam adalah IC, atau Integrated Circuit (13). Anggap saja sebagai otak Arduino
kita. IC utama pada Arduino sedikit berbeda dari jenis papan ke jenis papan, tetapi biasanya dari garis ATmega IC
dari perusahaan ATMEL. Ini bisa menjadi penting, karena Anda mungkin perlu mengetahui jenis IC (bersama dengan
jenis papan Anda) sebelum memuat program baru dari perangkat lunak Arduino. Informasi ini biasanya dapat
ditemukan secara tertulis di sisi atas IC. Jika Anda ingin tahu lebih banyak tentang perbedaan antara berbagai IC,
membaca lembar data seringkali merupakan ide yang bagus.
Regulator tegangan
Regulator tegangan (14) sebenarnya bukan sesuatu yang Anda dapat (atau harus) berinteraksi dengan Arduino.
Tetapi berpotensi bermanfaat untuk mengetahui bahwa itu ada dan untuk apa itu. Regulator tegangan melakukan
apa yang dikatakannya - ia mengontrol jumlah tegangan yang dibiarkan masuk ke papan Arduino. Anggap saja
sebagai semacam penjaga gerbang; itu akan mengubah tegangan ekstra yang dapat membahayakan sirkuit. Tentu
saja, ia memiliki batasnya, jadi jangan menghubungkan Arduino Anda dengan apa pun yang lebih besar dari 20 volt.
Bagaimana apakah kalian mulai memahami Dasar Program Arduino atau malah kalian bingung, jangan khawatir
coba anda baca ulang lagi Pengertian Dasar Program Arduino untuk Pemula yang sudah jelaskan di atas dengan
teliti, karena di bawah ini ada tips atau clue untuk mempelajari lebih dalam Dasar Program Arduino untuk Pemula ,
ada tigas tips berikut langkah-langkahnya :
1. Pelajari Mikrokontroller yang ada di papan Arduino, Karena ada banyak tipe mikrokontroller yang di gunakan
Arduino, cobalah pelajari tipe ATMEGA328 , dan pelajari bagian-bagian bagaimana mikrokontroller tersebut bekerja ,
masih bingung bentuk ATMEGA328 ??
2. Pelajari lebih dalam Papan Arduino Seperti yang sudah saya jelaskan diatas, Belajar Dasar Program Arduino
untuk pemula tidak cukup di jenis-jenis Arduino saja, papan (board) juga harus kalian pelajari lebih mendetail, coba
pelajar memorinya konfigurasi pin I/O baik digital maupun analog, coba perhatikan gambar di bawah yang
merupakan diagram Arduino
8
3. Pelajari software Arduino , terutama cara memprogram arduino dalam bahasa C, mengupload program, dan
pelajari bagian-bagian aplikasi Arduino IDE (Integrated development Environment) atau Skecth , Aplikasi tersebut
akan memudahkan semua hal yang berhubungan dengan software arduino , aplikasi tersebut dapat anda
download disitus webnya ,
9
3. Pemrograman Dasar Arduino
Seperti yang saya bilang pada postingan sebelumnya, bahasa pemrograman Arduino mirip bahasa C yang
digunakan pada AVR. Akan tetapi lebih sederhana, dan lebih mudah untuk dipelajari. Ada yang bilang juga bahwa
bahasa pemrograman Arduino adalah bahasa processing.
Nah pada kelas ini saya ingin mengajak kamu untuk belajar Bahasa Pemrograman Dasarnya. Penting sekali, supaya
saat dipembahasan selanjutnya saya kasih kamu contoh program. Kamu sudah bisa memahami dan tidak bingung,
karena kamu sudah tahu dasarnya. Ok!
BARE MINIMUM
void setup() {
// semua kode yang disini akan dibaca sekali oleh Arduino
}
void loop() {
//semua kode yang ada disini akan dibaca
//berulang kali (terus menerus) oleh Arduino
}
10
void setup
Semua kode program yang ada dalam void setup akan dibaca sekali oleh Arduino. Biasanya isinya berupa kode
perintah untuk menentukan fungsi pada sebuah pin. Contoh kodenya seperti:
void loop
Semua kode program yang ada di void loop akan dibaca setelah void setup dan akan dibaca terus menerus oleh
Arduino. Isinya berupa kode-kode perintah kepada pin INPUT dan OUTPUT pada Arduino. Contoh kodenya seperti:
Adapun untuk menampilkan nilai pada sebuah sensor di Serial Monitor, bisa menggunaka:
Serial.print(namasensor);
//menampilkan nilai sensor yang disimpan di variabel nama sensor
Serial.print("Selamat Datang");
//menampilkan teks Selamat Datang pada Serial Monitor
Dan untuk membuka Serial Monitor sendiri pada Arduino, bisa dengan memilih menu Tools kemudian pilih Serial
Monitor. Atau dengan menekan kombinasi CTRL+SHIFT+M di keyboard. Atau bisa juga dengan meng-klik ikon Kaca
Pembesar di Arduino, seperti gambar dibawah ini:
–––––––––––––––––––––––––––––––––––––––––––––––––––––––
11
MARI BAHAS LEBIH DETAIL LAGI!
CATATAN PADA PROGRAM
Kamu bisa membuat catatan pada program dan tidak akan dibaca oleh Arduino, dengan cara mengetikan //
kemudian mengetikan catatannya, seperti:
void loop() {
Tapi pemakaian tanda // hanya berfungsi untuk catatan satu baris saja, jika kamu ingin membuat catatan yang
panjang yaitu berupa paragraf. Maka pertama kamu ketikan /* lalu ketikan catatan kamu, dan jika sudah selesai tutup
dengan kode */ . Contohnya seperti:
void loop() {
KURUNG KURAWAL {}
Digunakan untuk menentukan awal dan akhir dari program. Karena seperti bahasa pemrograman pada umumnya,
Arduino membaca mulai dari atas hingga kebawah.
void loop()
{
….program
….program
….program
}
TITIK KOMA ;
Setiap baris kode pada Arduino harus diakhiri dengan tanda ;
void setup()
{ pinMode(13,
OUTPUT);
}
12
void loop()
{ digitalWrite(13,
HIGH);
}
VARIABLES
Variabel adalah kode program yang digunakan untuk menyimpan suatu nilai pada sebuah nama. Yang biasa digunakan
diantaranya adalah Integer, Long, Boolean, Float, Character.
int (integer)
Variabel yang paling sering digunakan dan dapat menyimpan data sebesar 2 bytes (16 bits).
long (long)
Biasa digunakan jika nilai datanya lebih besar dari integer. Menggunakan 4 bytes (32 bits).
boolean (boolean)
Variabel yang hanya menyimpan nila TRUE dan FALSE saja. Hanya menggunakan 1 bit saja
float(float)
Digunakan untuk floating point pada nilai decimal. Memory yang digunakan 4 bytes (32 bits).
char(character)
Menyimpan character berdasarkan ASCII kode (contoh: ‘A’=65). Menggunakan 1 byte (8 bits).
OPERATOR MATEMATIKA
Digunakan untuk memanipulasi nilai dengan perhitungan matematika sederhana seperti: penjumlahan, pengurangan,
sama dengan, dan sebagainya.
OPERATOR PERBANDINGAN
Digunakan untuk melakukan perbandingan secara logika.
13
STRUKTUR PENGENDALI
Program yang digunakan untuk menentukan sebuah kondisi, dan jika kondisinya sudah terpenuhi maka akan
melaksanakan perintah yang sudah ditentukan. Dan saat tidak memenuhi kondisinya juga ada perintah yang
dilaksanakan oleh Arduino.
if(kondisi A)
{
Kode Perintah A
}
else if(kondisi B)
{
Kode Perintah B
}
else
{
Kode Perintah C
}
Pertama Arduino akan lihat Kondisi A. Jika terpenuhi, maka akan melaksanakan Kode Perintah A.
Tapi jika TIDAK, Arduino akan lihat Kondisi B. Jika terpenuhi, maka akan melaksanakan Kode Perintah B.
Tapi jika TIDAK juga, maka Arduino akan melaksanakan Kode Perintah C.
Kode diatas digunakan saat kita ingin mengulangi kode atau nilai dalam beberapa kali. Penjelasan detailnya nanti
akan dibahas ketika mencoba membuat projek, biar lebih mudah dipahami.
KODE DIGITAL
Digunakan untuk pemrograman yang menggunakan Pin Digital pada Arduino.
Kode diatas digunakan untuk seting mode pin. Pin adalah nomer pin yang akan digunakan, kalo kamu pake Arduino
Uno, pin Digitalnya dari 0-13. dan mode sendiri bisa berupa INPUT atau OUTPUT.
Contoh:
Dan seperti yang sudah saya bilang untuk kode pinMode itu ada didalam void setup.
digitalRead(pin);
14
Kode diatas digunakan pin INPUT, untuk membaca nilai sensor yang ada pada pin. Dan nilainya hanya terbatas pada
1 (TRUE), atau 0 (FALSE).
Contoh:
digitalWrite(pin, nilai);
Kode diatas digunakan untuk pin OUTPUT yang sudah kita seting apakah akan diberikan HIGH (+5V), atau LOW
(Ground).
Contoh:
Dan untuk kode digitalWrite tentu saja kita masukan dalam void loop.
analogWrite(pin, nilai);
Meskipun Arduino adalah perangkat digital, tapi kita masih bisa menggunakan fungsi Analognya pada pin Digital
Arduino. Tapi hanya beberap pin saja, yang biasa kita sebut PWM (Pulse With Modulation). Pada Arduino Uno
memiliki 6 pin PWM, yaitu: 3,5,6,9, 10, dan 11.
Dengan begini nilai yang dihasilkan menjadi bervariasi dari 0-225, itu setara dengan 0-5V.
Contoh:
Dan untuk kode analogWrite juga kita masukan dalam void loop.
KODE ANALOG
Kode analog ini digunakan ketika ingin menggunakan pin Analog pada Arduino. Untuk Arduino Uno pin Analog dari
A0-A5. Dan karena ini pin Analog maka hanya bisa kita gunakan sebagai INPUT saja. Dan juga tidak perlu menulis
pinMode pada void setup.
analogRead(pin);
Kode diatas digunakan untuk membaca nilai pada sensor Analog. Yaitu antara 0-1024.
15
Contoh:
analogRead(A0); // artinya kode akan membaca nilai sensor pada pin AO.
CATATAN: Kode dalam Arduino adalah Case Sensitive. Maksudnya penggunaan huruf kecil atau huruf besar sangat
berpengaruh.
16
4. Program Arduino: Menyalakan LED dan BLINK!
NOTES:
Pembuatan sketch untuk BLINK sangatlah mudah, setelah masuk ke Program ARDUINO
kemudian klik FILE => EXAMPLE => BASIC => BLINK.
void setup()
{ pinMode(13,
OUTPUT);
}
void loop()
{ digitalWrite(13,
HIGH); delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
17
5. Sensor Cahaya LDR
Light Dependent Resistor (LDR) adalah jenis resistor yang nilai hambatannya di pengaruhi oleh
cahaya di sekitar. Maka kita bisa membuat LDR ini menjadi sensor cahaya. Karena memang
sudah banyak aplikasinya. Misalnya pada lampu jalan, tidak ada saklar untuk mematikan dan
menghidupkan lampu jalan.
Dengan menggunakan sensor cahaya LDR, lampu jalan akan mati ketika siang dan akan hidup
ketika malam secara otomatis.
Sekarang kita akan buat program Arduino yang akan melakukan, “Lampu LED menyala ketika
keadaan gelap dan mati ketika keadaan terang” (Automatic Lighting System).
NOTES:
Untuk pemrograman LDR, kamu bisa gunakan sketch program dibawah ini:
void setup()
{ pinMode(led,
OUTPUT);
Serial.begin(9600);
}
void loop() {
nilai = analogRead(ldr);
18
Serial.print("Nilai LDR: ");
Serial.println(nilai);
REVIEW NOTES:
int nilaiLDR= 0; membuat variabel nilaiLDR, dan akan membaca nilai mulai dari 0.
pinMode(LED, OUTPUT); memilih mode OUTPUT untuk pin yang disimpan di variabel LED.
Serial.begin(9600); digunakan agar Arduino bisa berkomunikasi dengan Komputer.
nilaiLDR= analogRead(LDR); menyimpan nilai yang dibaca oleh sensor LDR kedalam variabel nilaiLDR.
Serial.print(“NilaiLDR= “); digunakan untuk mencetak secara digital atau menampilkan teks nilaiLDR=,
untuk ini kita tampilkan pada Serial Monitor.
Serial.println(nilaiLDR); untuk menampilkan nilai yang dibaca oleh sensor LDR
if(nilaiLDR < 500) jika sensor membaca nilai 500 atau kurang dari 500
digitalWrite(LED, HIGH); lampu LED menyala
else jika tidak
digitalWrite(LED, LOW); lampu LED mati
1. Coba kamu buat program BLINK, dimana kecepatan BLINKnya diatur melalui nilai yang diterima oleh
Sensor LDR.
2. Pindahkan kaki positif LED dari pin 13 Arduino ke Pin 9 (PWM). Kemudian dengan perintah analogWrite,
buatlah lampu LED menyala terang dan redup berdasarkan nilai dari sensorLDR.
19
6. Analog Input Potensiometer!
Seperti yang kita tahu, Potensiometer adalah jenis resistor yang ukuran resistansinya atau nilai
hambatannya bisa kita rubah sesuai dengan kebutuhan kita. Nah pada Arduino, bahkan kita bisa
melihat berapa nilai yang dihasilkan oleh potensiometer pada posisi tertentu. Lalu bisa kita
manipulasi sesuai dengan kebutuhan kita.
NOTES:
***
void setup()
{ pinMode(led,
OUTPUT);
}
void loop(){
nilai= analogRead(sensor);
digitalWrite(led, HIGH);
delay(nilai);
digitalWrite(led, LOW);
delay(nilai);
}
NOTES:
20
int sensorPin = A0; digunakan untuk membuat pin A0 menjadi variabel sensorPin dan karena
pin AO adalah input analog, maka pada void setup tidak perlu dibuat program
pinMode(sensorPin, INPUT); karena kalau pin analog sudah pasti INPUT, tidak bisa
digunakan untuk OUTPUT.
mengingat kembali fungsi dari sensorValue = analogRead(sensorPin); adalah untuk menyimpan
nilai baca dari sensorPin kedalam variabel sensorValue.
delay(sensorValue); digunakan untuk memberikan waktu jeda berdasarkan nilai yang keluar
dari sensorPin, jadi kecepatan lampu berkedip berdasarkan potensiometer.
21
7. Membaca Nilai dari Potensiometer dan Mengatur Terang Redup
Cahaya LED (AnalogInOut)
Seperti yang kita tahu bahwa potensiometer adalah jenis resistor yang hambatannya dapat
berubah.
Masih dengan rangkaian yang sama (pin 13 dipindakan ke pin 9) kita akan membuat sketch
program, untuk membaca nilai dari potensiometer. Yang mana kisaran nilai dari potensiometer
adalah 0-225.
0 ketika tidak ada hambatan, dan 225 saat hambatan maksimal.
int nilai;
int output;
void setup()
{ pinMode(led,
OUTPUT);
Serial.begin(9600);
}
void loop(){
nilai= analogRead(sensor);
output= map(nilai, 0, 1023, 0, 255);
analogWrite(led, output);
Serial.print("sensor: ");
Serial.print(nilai);
Serial.print(" ");
Serial.print("output: ");
Serial.print(output);
delay(2);
}
untuk melihat nilai yang dihasilkan dari Potensiometer kamu bisa pilih TOOLS=>SERIAL
MONITOR atau CTRL+SHIFT+M , atau klik tombol yang ada di pojok kanan.
22
NOTES:
const int analogInPin = A0; program seperti sama seperti sebelumnya digunakan untuk membuat variabel,
tambahan kode const sebelum int adalah untuk penetapan nilai.
Serial.begin(9600); berfungsi agar arduino bisa berkomunikasi dengan komputer, 9600 adalah salah satu
nilai yang dipilih untuk komunikasi.
outputValue = map(sensorValue, 0, 1023, 0, 255); nilai yang dihasilkan dari sensorValue adalah 0-1023,
nilainya akan dikonversi menjadi 0-225 pada variabel outputValue.
analogWrite(analogOutPin, outputValue); menyalakan LED menggunakan PWM (agar bisa diatur
terang cahanya berdasarkan outputValue.
Serial.print(“sensor = ” ); berguna untuk menampilkan teks yang ada didalam tanda kutip “sensor=“.
Serial.print(sensorValue); untuk menampilkan nilai yang ada pada sensorValue.
Serial.print(“t output = “); berguna untuk menampilkan teks yang ada didalam tanda kutip “t output=“.
Serial.println(outputValue); untuk menampilkan nilai yang ada pada outputValue.
Dengan membuat rangkaian seperti pada Gambar 1.5 B, kamu bisa membuat sketch program seperti;
1. Jika nilai potensiometer < 100 lampu merah menyala, jika nilai potensiometer < 150 lampu kuning
menyala, jika nilai potensiometer < 200 lampu hijau menyala.
Untuk membuat program seperti diatas tentu kamu membutuhkan kode if. Sebagai contoh:
23
8. Digital Read Push Button
Hari ini kita akan mencoba membuat Program untuk Push Button, komponen elektronika jenis
Saklar yang pernah terbahas di Komponen Dasar Elektronika. Dimana kita mengetahui bahwa
Push Button ketika kita tekan akan menghubungkan arus listrik, dan terputus apabila dilepas
(tidak ditekan).
Saat ini kita akan membuat program sederhana untuk Push Button dengan logika program, “Jika
button ditekan LED menyala, jika tidak LED mati.”
NOTES:
Untuk sketch-nya kamu bisa ambil sampel pada FILE=>EXAMPLES=>DIGITAL=>BUTTON. Atau salin ulang
program dibawah ini:
byte tombol= 2;
byte led= 13;
int nilai;
void setup()
{ pinMode(led, OUTPUT);
pinMode(tombol, INPUT);
}
void loop(){
nilai= digitalRead(tombol);
24
if(nilai == 1)
{ digitalWrite(led,
HIGH);
}
else{
digitalWrite(led, LOW);
}
}
NOTES:
Variabel int nilai; digunakan untuk membuat variabel nilai untuk menyimpan data nilai dari tombol.
Variabel baru nilai = digitalRead(tombol); digunakan untuk menyimpan nilai baca dari tombol kedalam
variabel nilai.
digitalRead sendiri berfungsi untuk membaca nilai sensor secara digital (0=GND, 1=5V).
if (nilai == 1) digunakan untuk menampilkan jika nilai dari nilai adalah 1, maka lampu led akan menyala
digitalWrite(led, HIGH);
else jika tidak maka lampu led akan mati digitalWrite(led, LOW);
Dengan rangkaian yang sama, kamu bisa membuat sketch program seperti;
Menghidupkan Dan Mematikan LED dengan Satu Tombol – Program Kemudian rangkailah seperti gambar dibawah
ini:
Jika kamu sudah merangkai, sekarang kita masuk kebagian pemrograman. Buka Arduino IDE, kemudian ketik ulang
atau salin program dibawah ini:
int button= 2;
int nilaitombol;
int count;
25
void setup()
{ pinMode(button,
INPUT); pinMode(led,
OUTPUT);
}
void loop(){
nilaitombol= digitalRead(button);
if(nilaitombol == 1){
count++;
delay(300); if(count==1)
{ digitalWrite(led,
HIGH);
}
if(count==2)
{ digitalWrite(led,
LOW); count=0;
}
}
}
26
9. Tutorial Arduino Mengakses Sensor Hujan
Sensor hujan adalah jenis sensor yang berfungsi untuk mendeteksi terjadinya hujan atau tidak,
yang dapat difungsikan dalam segala macam aplikasi dalam kehidupan sehari – hari. Dipasaran
sensor ini dijual dalam bentuk module sehingga hanya perlu menyediakan kabel jumper untuk
dihubungkan ke mikrokontroler atau Arduino.
Prinsip kerja dari module sensor ini yaitu pada saat ada air hujan turun dan mengenai panel
sensor maka akan terjadi proses elektrolisasi oleh air hujan. Dan karena air hujan termasuk
dalam golongan cairan elektrolit yang dimana cairan tersebut akan menghantarkan arus listrik.
Pada sensor hujan ini terdapat ic komparator yang dimana output dari sensor ini dapat berupa
logika high dan low (on atau off). Serta pada modul sensor ini terdapat output yang berupa
tegangan pula. Sehingga dapat dikoneksikan ke pin khusus Arduino yaitu Analog Digital
Converter.
Dengan singkat kata, sensor ini dapat digunakan untuk memantau kondisi ada tidaknya hujan di
lingkungan luar yang dimana output dari sensor ini dapat berupa sinyal analog maupun sinyal
digital.
Pada tutorial ini akan dibuat 2 sekaligus contoh program yaitu menggunakan ADC dan pin
digital sebagai inputannya.
Instruksi :
Hubungkan module sensor ke power supply +5Vdc, setelah itu led indikator pada modul akan menyala.
Saat kondisi tidak adanya rintik hujan, output digital akan berlogika HIGH, dan membuat led deteksi akan
mati. Sedangkan saat kondisi terdeteksi adanya tetesan air hujan, output digital mengeluarkan logika LOW
dan led deteksi akan menyala.
Ketika tetesan air hujan menghilang, nilai output kembali menjadi tinggi.
27
Keluaran sinyal analog (AO) dihubungkan dengan Arduino melalui fitur ADC untuk mendeteksi intensitas
rintik air hujan ataupun disambungkan ke voltmeter DC dengan range maksimal 0-5v.
Keluaran sinyal digital (DO) bisa dihubungkan dengan Arduino maupun relay untuk mendeteksi adanya
hujan atau tidak
void setup () {
pinMode (sensor_hujan, INPUT);
pinMode (LED, OUTPUT); }
void loop() {
int kondisi_sensor = digitalRead(sensor_hujan);
if (kondisi_sensor == LOW)
digitalWrite(LED, HIGH);
else digitalWrite(LED, LOW);
delay (1000);
}
Jika sensor hujan mendeteksi akan adanya hujan yang terkena pada modul, maka akan
memberikan indikator pada Arduino Uno yaitu indikator LED akan menyala, dan sebaliknya.
void setup()
{
pinMode (Led, OUTPUT) ; //Defisini LED sebagai output
pinMode (OutputDO, INPUT) ; //Defisini OutputDO sebagai input
pinMode (OutputAO, INPUT) ; //Defisini OutputAO sebagai input
//inisialisasi komunikasi serial
Serial.begin(9600);
}
void loop()
{
sensor = analogRead(OutputAO);//Pembacaan nilai sensor
Serial.println(sensor); //hasil akan ditampilkan di serial monitor
28
if (val == LOW) //jika sensor hujan mendeteksi nyala api
{
//Lampu Led akan menyala
digitalWrite (Led, HIGH);
}
else
{
//Jika tidak mendeteksi, maka led akan padam
digitalWrite (Led, LOW);
}
delay(1000); //waktu tunda 1 detik
}
Selamat mencoba!
29
10. Program Sensor Suhu Dan Kelembaban DHT11 Dengan
Arduino
buatlah rangkaian seperti gambar dibawah ini:
NOTES:
Dengan rangkaian yang seperti diatas saya buat DHT11 saya menjadi DIY Modul. Yang mana hasil jadinya seperti
dibawah ini:
30
Untuk pemrogramannya kita akan menggunakan Library DHT. Untuk itu kamu perlu insert librarynya
terlebih dahulu ke Arduino. Tapi, kamu harus punya dulu Librarynya
1. Buka aplikasi Arduinonya, lalu Masuk ke menu SKETCH, pilih INCLUDE LIBRARY, pilih ADD.
ZIP Library…
2. Cari file Library yang tadi sudah kamu Download, lalu OPEN.
31
3. Jika berhasil, aplikasi Arduino kamu akan muncul keterangan seperti dibawah ini:
#include <DHT.h>
DHT dht(2, DHT11); //Pin, Jenis DHT
void setup(){
Serial.begin(9600);
dht.begin();
}
void loop(){
float kelembaban = dht.readHumidity();
float suhu = dht.readTemperature();
Serial.print("kelembaban: ");
Serial.print(kelembaban);
Serial.print(" ");
Serial.print("suhu: ");
Serial.println(suhu);
}
Jika sudah DONE UPLOADING, sekarang kamu sudah bisa lihat nilainya di Serial Monitor.
32
Dari Serial Monitor menunjukan Kelembaban 61% dan Suhunya 29 Derajat Celcius. Tentu saja
nilainya akan berbeda ditempat kamu, tergantung suhu dan kelembaban di lingkungan kamu.
Nah untuk melihat perubahan nilai atau membuat nilai menjadi naik. Kamu bisa pegang
sensornya, maka nilainya akan berubah.
Untuk mengendalikan LED berdasarkan suhu dan kelembaban kamu hanya tinggal
menambahkan program untuk LEDnya dan Pogram If. Silahkan salin program dibawah ini:
DHT dht(DHTPIN, DHTTYPE); //setting pin yang dipilih dan tipe DHT
int led= 13;
void setup() {
Serial.begin(9600); //komunikasi Serial dengan komputer
dht.begin(); //Komunikasi DHT dengan Arduino
pinMode(led, OUTPUT);
}
void loop() {
float kelembaban = dht.readHumidity(); //menyimpan nilai Humidity pada
variabel kelembaban
float suhu = dht.readTemperature(); //menyimpan nilai Temperature pada
variabel suhu
33
delay(500); //memberi jeda waktu baca selama 500 mili detik
//Jika Kelembaban lebih besar dari 65.00 atau suhu lebih besar dari 32.00 led
akan menyala
//Jika Kelembaban lebih kecil dari 66.00 atau suhu lebih kecil dari 33.00 led
akan mati
34
11. Memprogram LCD 16×2 Tanpa I2C Dengan Arduino
Sebelum mengerjakan barang kali dari kamu ada yang penasaran dengan pin out atau datasheet
dari LCD 16×2, lihatlah penampakan dibawah ini:
Pastikan tidak ada yang salah dengan rangkaiannya ya, silahkan cek ulang untuk memastikan
rangkaianya sudah benar. OK, jika sudah yakin benar, kita akan langsung menuju ke
pemrograman, dan untuk pemrogramannya, kita akan menggunakan library bawaan dari aplikasi
arduinonya.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{ lcd.begin(16,
2);
}
void loop() {
lcd.setCursor(0,0);
35
lcd.print("Test LCD");
lcd.setCursor(0, 1);
lcd.print("KelasRobot.com");
}
Catatan Program:
#include <LiquidCrystal.h> menambahkan library LCD pada program arduino, dengan library ini
pemrograman LCD pada arduino menjadi lebih sederhana dan mudah dipahami.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); serangkaian pin yang digunakan pada arduino yang dihubungkan
dengan LCD, cukup banyak kan dibandingkan dengan menambahkan i2c yang hanya pin SCL dan SDA
aja.
lcd.begin(16, 2); angka 16 dan 2 mengatur bahwa lcd yang kita gunakan adalah ukuran 16×2, jika kamu
menggunakan LCD 16×4, kamu tinggal ubah angka 2 nya menjadi angka 4.
lcd.setCursor(0,0); jika ingin menampilkan kata pada baris pertama gunakan kode ini, lalu selanjutnya
gunakanlah lcd.print untuk menampilkan kata pada baris pertama.
lcd.print(” Test LCD Tanpa I2C”); untuk menampilkan kata atau kalimat pada lcd.
36
12. Alat Pengatur Suhu dan Kelembaban Otomatis Sensor
DHT11, LCD, dan Relay!
DHT dht(DHTPIN, DHTTYPE); //deklarasi pin sensor dengan jenis sensor yang
dipilih
void setup() {
lcd.begin(16, 2); //mengatur ukuran lcd yang dipakai
dht.begin(); //program komunikasi atau setup untuk sensor DHT
pinMode(relay, OUTPUT); //mengatur relay sebagai OUTPUT
Serial.begin(9600);
}
void loop() {
float kelembaban = dht.readHumidity(); //menyimpan nilai kelembaban pada
variabel kelembaban
float suhu = dht.readTemperature(); //menyimpan nilai suhu pada variabel
suhu
delay(200); //mengatur jeda waktu pembacaan sensor selama 200 milidetik
37
Serial.print(kelembaban); //menampilkan nilai kelembaban pada Serial
Monitor
Serial.print(" "); //menambahkan spasi
Serial.println(suhu); //menampilkan nilai suhu pada Serial Monitor
else if( suhu > 30.10){ //jika suhu lebih besar dari 30.10
digitalWrite(relay, LOW); //relay menyala
}
38
13. Sensor Suhu DS18B20
Sensor DS18B20 merupakan sensor digital yang memiliki 12-bit ADC internal. Sangat presisi,
sebab jika tegangan referensi sebesar 5Volt, maka akibat perubahan suhu, ia dapat merasakan
perubahan terkecil sebesar 5/(212-1) = 0.0012 Volt ! Pada rentang suhu -10 sampai +85 derajat
Celcius, sensor ini memiliki akurasi +/-0.5 derajat. Sensor ini bekerja menggunakan protokol
komunikasi 1-wire (one-wire).
Amatilah Gambar 1. IC DS18B20 memiliki tiga kaki, yaitu GND (ground, pin 1), DQ (Data, pin
2), VDD (power, pin 3). Pada Arduino, VDD dikenal sebagai VCC. Dalam hal ini, kita
asumsikan VCC sama dengan VDD. Tergantung mode konfigurasi, ketiga kaki IC ini harus
dikonfigurasi terlebih dahulu. Sensor dapat bekerja dalam dua mode, yaitu mode normal power
dan mode parasite power.
Pada Mode Normal, GND akan terhubung dengan ground, VDD akan terhubung dengan 5V dan
DQ akan terhubung dengan pin Arduino, namun ditambahkan resistor pull-up sebesar 4,7k.
Mode ini sangat direkomendasikan pada aplikasi yang melibatkan banyak sensor dan
membutuhkan jarak yang panjang.
Pada Mode Parasite, GND dan VDD disatukan dan terhubung dengan ground. DQ akan
terhubung dengan pin Arduino melalui resistor pull-up. Pada mode ini, power diperoleh dari
power data. Mode ini bisa digunakan untuk aplikasi yang melibatkan sedikit sensor dalam jarak
yang pendek.
Siapkanlah sensor suhu DS18B20. Ada dua jenis packaging. Ada yang berupa single IC, ada
pula yang dikemas tahan air (waterproof). Penulis merekomendasikan yang tahan air, sebab
harga masih terjangkau, lebih aman secara teknis, dan lebih luas penggunaannya (dapat
digunakan untuk
39
mengukur suhu cairan). Pada tutorial kali ini, kita akan menggunakan satu buah sensor dengan
konfigurasi mode parasite. Konfigurasi ini cukup mudah untuk dilakukan.
Unduhlah library yang ikut disertakan pada tutorial ini. Bukalah IDE Arduino, kemudian
tambahkan pustaka dengan mencari: Sketch -> Include Library -> Add .ZIP Library.. .Pilihlah
library yang telah diunduh sebelumnya. Lakukan untuk kedua library.
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
// setup sensor
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensorSuhu(&oneWire);
40
float suhuSekarang;
void setup(void)
Serial.begin(9600);
sensorSuhu.begin();
void loop(void)
suhuSekarang = ambilSuhu();
Serial.println(suhuSekarang);
delay(2000);
float ambilSuhu()
sensorSuhu.requestTemperatures();
return suhu;
41
14. Program Sensor Ultrasonic Dengan Arduino TANPA
LIBRARY
Yang kiri itu adalah Transmitter (pengirim sinyal suara) sebutannya adalah Trigger, dan yang
kanan itu adalah Receiver (penerima sinyal suara) sebutannya adalah Echo.
So, cara kerja sensor ini adalah Trigger mengirimkan suara ultrasonic kedepan, dan jika didepan
ada benda, suara tersebut akan memantul dan diterima oleh Echo. Nah dari pantulan suara
(pulsa) ini, kita dapat mengetahui berapa jarak benda yang ada didepan sensor.
42
Klik gambar untuk memperbesar.
Catatan:
Jika sudah, sekarang silahkan salin atau ketik ulang sketch program dibawah ini…
void setup() {
pinMode(trig, OUTPUT); // set pin trig menjadi OUTPUT
pinMode(echo, INPUT); // set pin echo menjadi INPUT
Serial.begin(9600); // digunakan untuk komunikasi Serial dengan
komputer
}
void loop() {
Kalau sudah Done Uploading, kamu bisa buka Serial Monitor untuk melihat nilai jarak dari
sensornya, coba untuk mendekatkan dan menjauhkan tangan dari sensor, dan lihat angkanya.
43
15. Memprogram Servo Dengan Arduino
Servo bergerak berdasarkan sinyal pulse yang dikirimkan ke bagian input servo. Di arduino
sendiri sinyal pulse itu, dikirim berdasarkan derajat. Misal kita kirim 10 derajat, maka servo akan
berada di posisi 10 derajat, jika kita kirim 80 maka akan bergerak ke posisi 80.
Berdasarkan jenisnya servo ada yang bisa berputar continue atau 360 derajat, ada yang dibatasi
hanya sampai 180 derajat saja, seperti servo yang saya gunakan pada percobaan kali ini.
Jika sudah dirangkai selanjutnya kita masuk kebagian pemrograman. Untuk memprogram Servo
kita akan menggunakan library yang sudah ada, atau bawaan aplikasi Arduinonya. Jadi kamu
tidak perlu add library lagi.
#include <Servo.h>
Servo servoku;
void setup(){
servoku.attach(3);
}
void loop()
{ servoku.write(10
); delay(1000);
servoku.write(100);
delay(1000);
}
Catatan:
1. #include <Servo.h> digunakan untuk menyertakan library Servo pada program Arduino.
44
2. Servo servoku; membuat variabel servoku (bisa diubah terserah kamu), untuk servo.
3. servoku.attach(3); memilih atau mengatur pin 3 digital sebagai pin yang digunakan
untuk servo pada variabel servoku.
4. servoku.write(10); mengatur posisi servo pada 10 derajat, silahkan atur derajat sesuai
kebutuh pergerakan servo kamu
45
16. Driver Motor L298N
L298N Modul
46
IN1 IN2 IN3 IN4 Direction
0 0 0 0 Stop
1 0 1 0 Forward
0 1 0 1 Reverse
1 0 0 1 Left
0 1 1 0 Right
47
Rangkaian
48
// set speed to 150 out 255
analogWrite(EnB, 200);
delay(2000);
// now turn off motors
digitalWrite(In1, LOW);
digitalWrite(In2, LOW);
digitalWrite(In3, LOW);
digitalWrite(In4, LOW);
}
void loop()
{
goStraight();
delay(1000);
}
49
17. DETEKSI WARNA RGB MENGGUNAKAN TCS230
Module sensor warna TCS230 adalah module sensor yang mempunyai fungsi mengkonversi
warna yang akan dideteksi menjadi Frekuensi yang akan diolah oleh mikrokontroler.
Nama lain dari sensor ini yaitu Programmable Converter ‘Color Light’ Sensor to Frequency.
Yang dimana bahan pembuatannya berasal dari penggabungan antara Silicon Photodiode dan IC
CMOS single monolithic yang berfungsi sebagai pengkonversi arus menjadi frekuensi.
Keluaran dari sensor warna ini yaitu berupa gelombang persegi dengan modulasi 50% yang
dimana berbanding lurus dengan intensitas cahaya yang terbaca oleh sensor.
Bagian – bagian penting dari sensor warna TCS230 tertampil pada gambar dibawah
Pada sensor terdapat sebuah photodiode dengan array 8 x 8 yang mengkonversi warna menjadi
frekuensi, yang terdiri dari :
Dari kesemua dioda diatas terhubung ke dalam rangkaian paralel yang menggunakan metode
switching pin (S0,S1,S2,S3).
50
Blok diagram TCS230
Pada tiap ke-16 fotodioda tersebut terhubung secara paralel, melihat gambar diatas dengan
menggunakan 2 pin kontrol S2 dan S3 dapat memilih mana yang akan dibaca. Sehingga jika
mendeteksi warna merah, dapat menggunakan 16 red difference photodiodes dengan mengatur
dua pin ke tingkat logika rendah.
Sensor memiliki 2 pin kontrol, S0 dan S1 yang berfungsi untuk mengukur frekuensi keluaran.
Frekuensi ini dapat di adjust dengan 3 nilai preset yang berbeda yaitu 100%, 20% atau 2%.
Penskalaan frekuensi bertujuan untuk berbagai penghitung frekuensi dalam optimimalisasi
keluaran sensor.
51
Hasil dari trial dapat dilihat di serial monitor arduino, dan dipraktekan dengan menyediakan
kertas dengan warna merah, hijau dan biru. Yang dimana ketiga warna tersebut merupakan
warna dasar dari semua warna.
void TCS3200(){
pinMode(LED,OUTPUT);
pinMode(s2,OUTPUT);pinMode(s3,OUTPUT);pinMode(s0,OUTPUT);pinMode(s1,OUTPUT);
return;
}
void setup(){
//Prosedur pemanggilan fungsi sensor TCS3200
TCS3200();
Serial.begin(9600);
delay(200);
}
void loop(){
Serial.print(detectColor(out));
delay(200);
}
52
unsigned int detectColor(int taosOutPin){
double isPresentTolerance=1;
//range nilai tolerance yaitu 1 - 10
//Fungsi tolerance yaitu penghindar noise pembacaan sensor
double isPresent=colorRead(taosOutPin,0,0)/colorRead(taosOutPin,0,1);
Serial.print("isPresent:");Serial.println(isPresent,2);
if(isPresent<isPresentTolerance)
{ Serial.println("nothing is in front of
sensor"); return 0;
}
double red,blue,green;
double white = colorRead(taosOutPin,0,1);
unsigned int maxColor = white;
unsigned int red2, blue2, green2;
Serial.print("red :");Serial.println(red2);
53
Serial.print("green :");Serial.println(green2); if(green2>20)
{analogWrite (10, green2);}else {analogWrite (10, 0);}
delay(sensorDelay);
taosMode(0);
return readPulse;
}
54
if(mode==0){digitalWrite(LED,LOW);digitalWrite(s0,LOW);digitalWrite(s1,LOW);}
else if(mode==1){digitalWrite(s0,HIGH);digitalWrite(s1,HIGH);}
else if(mode==2){digitalWrite(s0,HIGH);digitalWrite(s1,LOW);}
else if(mode==3){digitalWrite(s0,LOW);digitalWrite(s1,HIGH);}
return;
}
55
18. Cara Mudah Program RTC Module DS1302 Jam Digital
Dengan Arduino
Module RTC (Real Time Clock) sangat penting dalam pembuatan Jam Digital menggunakan
Arduino. Selain mempermudah, dengan RTC data waktu dan tanggal akan terus berjalan,
walaupun Arduinonya kita matikan. Karena RTC mempunyai memori dan daya sendiri yaitu
baterai lithium.
Ada banyak jenis Module RTC, saya memilih tipe DS1302. Karena tipe ini adalah yang paling
populer dan mudah digunakan.
56
OK! Kalau library RTCnya sudah di masukin, sekarang kita masuk Kepemrograman. Silahkan
kamu copy paste Sketch dibawah ini, saran saya ketik ulang biar inget 😀
#include <virtuabotixRTC.h>
void setup() {
Serial.begin(9600);
//myRTC.setDS1302Time(00, 35, 16, 3, 14, 02, 2018);
}
void loop() {
myRTC.updateTime();
Serial.print("Tanggal / Waktu: ");
Serial.print(myRTC.dayofmonth); //menampilkan tanggal
Serial.print("/");
Serial.print(myRTC.month); //menampilkan bulan
Serial.print("/");
Serial.print(myRTC.year); //menampilkan tahun
Serial.print(" ");
Serial.print(myRTC.hours); //menampilkan jam
Serial.print(":");
Serial.print(myRTC.minutes); //menampilkan menit
Serial.print(":");
Serial.println(myRTC.seconds); //menampilkan detik
delay( 1000);
}
Jika sudah DONE UPLOADING, kamu bisa buka Serial Monitor untuk melihat data waktu dan
tanggalnya. Seperti gambar di bawah ini:
57
LITTLE NOTES:
58
19. Kontrol 4 Buah Relay menggunakan Infrared Remote
Diagram Blok
Schematics
59
Koneksi Arduino UNO dengan LCD
Koneksi Sensor
Koneksi Relay
Source Code/Sketch
#include <IRremote.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int IR_PIN = 8;
int Rl1 = 9;
60
int Rl2 = 10;
int Rl3 = 11;
int Rl4 = 12;
IRrecv irrecv(IR_PIN);
decode_results results;
void setup(){
for(char i=9; i<13; i++){
pinMode(i, OUTPUT);
digitalWrite(i, LOW);
}
lcd.begin(16, 2);
lcd.print(" Kontrol 4Relay");
lcd.setCursor(0, 1);
lcd.print(" dg Remot IR");
delay(2000);
irrecv.enableIRIn();
}
void loop()
{ lcd.setCursor(0,
1);
lcd.print("Tekan Tb 1 s/d 8");
if (irrecv.decode(&results))
{ irrecv.resume();
lcd.setCursor(0,1);
switch(results.value){
case 0xFF30CF: lcd.print("Relay 1 ON ");
digitalWrite(Rl1, HIGH);break;
case 0xFF18E7: lcd.print("Relay 2 ON ");
digitalWrite(Rl2, HIGH);break;
case 0xFF7A85: lcd.print("Relay 3 ON ");
digitalWrite(Rl3, HIGH);break;
case 0xFF10EF: lcd.print("Relay 4 ON ");
digitalWrite(Rl4, HIGH);break;
case 0xFF38C7: lcd.print("Relay 1 OFF ");
digitalWrite(Rl1, LOW);break;
case 0xFF5AA5: lcd.print("Relay 2 OFF ");
digitalWrite(Rl2, LOW);break;
case 0xFF42BD: lcd.print("Relay 3 OFF ");
digitalWrite(Rl3, LOW);break;
case 0xFF4AB5: lcd.print("Relay 4 OFF ");
digitalWrite(Rl4, LOW);break;
case 0xFF6897: lcd.print("Relay All ON ");
digitalWrite(Rl1, HIGH);
digitalWrite(Rl2, HIGH);
digitalWrite(Rl3, HIGH);
digitalWrite(Rl4, HIGH);break;
case 0xFF52AD: lcd.print("Relay All OFF ");
digitalWrite(Rl1, LOW);
digitalWrite(Rl2, LOW);
digitalWrite(Rl3, LOW);
digitalWrite(Rl4, LOW);break;
}
delay(2000);
61
}
}
Jalannya Alat
1. Koneksikan antara sistem Arduino dengan peripheral lain seperti pada rangkaian
(skematik).
2. Pasang power supply (adaptor 9 V) dan hidupkan (colokkan ke sumber PLN 220V)
sehingga lampu LED indikator nyala, LCD juga nyala.
3. Remot yang digunakan masih sama tipe remot NEC/remot mp3 player.
4. Selanjutnya upload program diatas.
5. Tampilan normal pada LCD
7. Selanjutnya tekan tombol pada remot, misal tombol Power ditekan maka pada LCD
menampilkan
8. Selanjutnya tekan tombol pada remot, misal tombol 1 ditekan maka relay 1 ON dan pada
LCD
menampilkan
62
9. Penekanan tombol berikutnya akan direspon setelah 2 detik dan LCD kembali pada
tampilan
normal.
63
20. NodeMCU ESP8266
NodeMCU ESP8266 merupakan modul turunan pengembangan dari modul platform IoT
(Internet of Things) keluarga ESP8266 tipe ESP-12. Modul ESP8266 dapat dipelajari dari artikel
sebelumnya.
Secara fungsi modul ini hampir menyerupai dengan platform modul arduino, tetapi yang
membedakan yaitu dikhususkan untuk “Connected to Internet“.
Untuk saat ini modul NodeMCU sudah terdapat 3 tipe versi antara lain :
Pada versi ini (v0.9) merupakan versi pertama yang memiliki memori flash 4 MB sebagai
(System on Chip) SoC-nya dan ESP8266 yang digunakan yaitu ESP-12.
Kelemahan dari versi ini yaitu dari segi ukuran modul board lebar, sehingga apabila ingin
membuat protipe menggunakan modul versi ini pada breadboard, pin-nya kan habis digunakan
hanya untuk modul ini.
Versi ini merupakan pengembangan dari versi 0.9. Dan pada versi 1.0 ini ESP8266 yang
digunakan yaitu tipe ESP-12E yang dianggap lebih stabil dari ESP-12.
Selain itu ukuran board modulnya diperkecil sehingga compatible digunakan membuat prototipe
projek di breadboard.
64
Serta terdapat pin yang dikhusukan untuk komunikasi SPI (Serial Peripheral Interface) dan PWM
(Pulse Width Modulation) yang tidak tersedia di versi 0.9.
Dikatakan unofficial board dikarenakan produk modul ini diproduksi secara tidak resmi terkait
persetujuan dari Developer Official NodeMCU.
Perbedaannya tidak begitu mencolok dengan versi 1.0 (official board) yaitu hanya penambahan V
usb power output.
Versi NodeMCU
Spesifikasi
Versi 0.9 Versi 1.0 (Official board) Versi 1.0 (Unofficial board)
GPIO Pin 11 13 13
ADC 1 pin (10 bit) 1 pin (10 bit) 1 pin (10 bit)
Ukuran Module 47 x 31 mm 47 x 24 mm 57 x 30 mm
* Note : saran saya untuk belajar lebih baik menggunakan NodeMCU Versi 1.0 dari
Amica. Dikarenakan performa dan kualitasnya lebih bagus dibanding lainnya.
65
Pin Out V.1 dengan ESP-12E yang menggunakan usb driver tipe CP212
1. NodeMCU V.1.0
2. Micro USB
3. Komputer + Software IDE Arduino
Langkah – langkah yang perlu dilakukan untuk installing library ESP8266 NodeMCU :
1. Download dan install software IDE Arduino (sesuai dengan Operation System)
2. Kemudian buka software tersebut
3. Pilih dan klik menu file -> preferences
4. Pada bagian “Additional Boards Manager URL’s” masukan link dibawah berikut ini :
66
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Modul ini juga memiliki LED pada boardnya seperti halnya Arduino. Tetapi perbedaan terletak
pada alamat I/O nya jika pada Arduino pada pin 13 sedangkan pada NodeMCU GPIO16 (D0).
Pada software Arduino IDE klik menu tools -> boards -> NodeMCU 1.0 (ESP12-E
Module)
masuk ke menu port dan pilih port mana yang digunakan si NodeMCU (COMxx)
Setelah itu ke menu File -> Examples -> ESP8266 -> Blink
klik tombol “upload“
Tunggu beberapa detik, program aakan mulai didownload kan ke module dengan ditandai
adanya “blinking” pada LED di NodeMCU ESP8266 nya
Pada modul akan menyala selama 1 detik karena diberi logic state “LOW” dan mati 1
detik karena diberi logic state “HIGH”
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // Inisialisasi pin LED_BUILTIN sebagai output
}
void loop() {
digitalWrite(LED_BUILTIN, LOW); //Perintah untuk menghidupkan lampu dengan
logika LOW
delay(1000); //Waktu jeda 1 detik
digitalWrite(LED_BUILTIN, HIGH); //Perintah untuk mematikan lampu dengan
logika HIGH
delay(1000); //Waktu jeda 1 detik
}
pada kali ini saya akan membahas bagaimana cara mengontrol beberapa LED dengan Android.
pertama kita perlu aplikasi ESP8266 kontrol Wifi perangkat.aplikasi dapat di download di
playstore.
lalu pasang LED dengan pin.pada LED terdapat 2 ujung.ujung 1 di koneksikan ke Ground ,yang
1 nya di koneksikan ke pin D0,D1,D2(Terserah anda).pada kali ini saya memasang pada pin
D5,D6,D7 dan D8
67
source code
#include<ESP8266WiFi.h>
#define ON 1
#define OFF 2
const char* ssid = "jangkrik";
const char* password= "welut";
#define LED1 D5
#define LED2 D6
#define LED3 D7
#define LED4 D8
bool value1= LOW;
bool value2 = LOW;
bool value3 = LOW;
bool value4 = LOW;
WiFiServer server (80);
void setup(){
Serial.begin(115200);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
Serial.println("");
Serial.println("Connecting to");
Serial.println(ssid);
WiFi.begin(ssid,password);
while (WiFi.status() !=WL_CONNECTED){
delay(500)
Serial.print(".")
}
Serial.print("");
Serial.print("WiFi Connected");
server.begin();
Serial.println("Server Started");
delay(2000);
68
client.println("<br><br>");
client.print("status1=1");
}
if(value1==LOW){
client.println("<br><br>");
client.print("status1=0");
}
//===2
if (request.indexOf("/status2=1") != -1){
digitalWrite(LED2,ON);
value2=HIGH;
}
if (request.indexOf("/status2=0") != -1){
digitalWrite(LED2,OFF);
value1=LOW;
}
if(value2==HIGH){
client.println("<br><br>");
client.print("status2=1");
}
if(value1==LOW){
client.println("<br><br>");
client.print("status2=0");
}
//===3
if (request.indexOf("/status3=1") != -1){
digitalWrite(LED3,ON);
value3=HIGH;
}
if (request.indexOf("/status3=0") != -1){
digitalWrite(LED3,OFF);
value1=LOW;
}
if(value3==HIGH){
client.println("<br><br>");
client.print("status3=1");
}
if(value3==LOW){
client.println("<br><br>");
client.print("status3=0");
}
//===4
if (request.indexOf("/status4=1") != -1){
digitalWrite(LED4,ON);
value4=HIGH;
}
if (request.indexOf("/status4=0") != -1){
digitalWrite(LED4,OFF);
value4=LOW;
}
if(value4==HIGH){
client.println("<br><br>");
client.print("status4=1");
}
if(value4==LOW){
client.println("<br><br>");
client.print("status4=0");
69
}
delay(1);
Serial.print("Client Disconnected");
Serial.print("");
delay(1000);
}
kemudian upload, sekarang buka aplikasi yang kita sudah download tadi.klik CONNECT
TO.lalu klik gambar kunci ayng ada di pojok.lalu beri nama sesuai lampu kita .beri command
LED 1 dengan isi 2.begitu pula dengan LED2,3,4.kik tombol on jika kita ingin menghidupkan
dan klik off jika ingin mematikan
Sensor suhu tipe DHTxx merupakan komponen yang paling mudah ditemukan dan juga paling
murah, dengan sensor ini kalian bisa memulai membuat sebuah rangkaian sederhana untuk
membuat project IoT kalian. dan Smartconfig merupakan cara termudah bagi kalian untuk
menghubungkan ESP32 ke WiFi Hotspot. Berikut ini adalah cara-caranya:
70
6. INGAT!!! Setiap kalian upload program, jangan lupa untuk menekan tombol "Boot" pada
board ESP32 agar tidak Error
71
7. Setelah Selesai, klik tampilan "GAUGE" dan setting seperti dibawah ini.
8. Lakukan langkah ke 6 dan ke 7 untuk membuat tampilan hasil sensor suhu dan kelembaban.
Koding untuk membaca nilai suhu dan kelembaban DHT11:
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
72
DHT dht(DHTPIN, DHTTYPE);
void setup()
{ Serial.begin(115200);
Serial.println("DHT11 test!");
dht.begin();
}
void loop() {
delay(2000);
// Membaca nilai Kelembaban
float h = dht.readHumidity();
// Membaca nilai suhu menggunakan derajat celcius
float t = dht.readTemperature();
// Membaca nilai suhu menggunakan derajat Farenheit
float f = dht.readTemperature(true);
// Cek apakah rangkaian sudah terhubung dengan baik dan sensor siap
digunakan?.
if (isnan(h) || isnan(t) || isnan(f))
{ Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
73
Serial.print("Heat index: ");
Serial.print(hic);
Serial.print(" *C ");
}
Coding Smartconfig:
#include "WiFi.h"
void setup() {
Serial.begin(115200);
Serial.println("");
Serial.println("SmartConfig received.");
Serial.println("WiFi Connected.");
74
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
}
void loop() {
// put your main code here, to run repeatedly:
void setup(){
Serial.begin(115200);
//Untuk DHT11
Serial.println("DHT11 test!");
dht.begin();
75
// Menghubungkan ke WiFi
Connect_to_Wifi();
//Untuk Blynk
WiFi.printDiag(Serial);
Blynk.config(auth);
timer.setInterval(1000L, Hasil_Suhu);
}
void Hasil_Suhu(){
delay(2000);
// Membaca nilai Kelembaban
float h = dht.readHumidity();
// Membaca nilai suhu menggunakan derajat celcius
float t = dht.readTemperature();
// Membaca nilai suhu menggunakan derajat Farenheit
float f = dht.readTemperature(true);
// Cek apakah rangkaian sudah terhubung dengan baik dan sensor siap
digunakan?.
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
76
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hic);
Serial.print(" *C ");
void loop(){
Blynk.run(); // Initiates Blynk
timer.run(); // Initiates SimpleTimer
}
void Connect_to_Wifi()
{ WiFi.mode(WIFI_AP_STA);
WiFi.beginSmartConfig();
Serial.println("");
Serial.println("SmartConfig received.");
77
delay(500);
Serial.print(".");
Serial.println("WiFi Connected.");
1. Download aplikasi ESP8266 di Playstore, meski menggunakan nama ESP8266 dan kita
menggunakan ESP32, aplikasi ini tetap bisa digunakan dengan baik.
2. Hubungkan Smartphone kalian ke WiFi target.
78
4. Klik Confirm dan tunggu 5 sampai 10 detik
5. Setetelah terhubung, maka kalian akan mendapatkan tampilan seperti dibawah ini,
kemudian klik confirm.
79
80
21. Laporan Praktikum Responsi
1. Halaman Judul
2. Abstraksi
3. Daftar isi
4. Bab 1 Berisi Pendauluan yang memuat latar belakang dibuatnya alat
5. Bab 2 Landasan Teori yang memuat jurnal atau publikasi yang berkaitan dengan alat yang
akan dibuat
6. Bab 3 Metode Penelitian yang memuat rancangan elektronik dan flowchart alat yang akan
dibuat
7. Bab 4 Hasil dan Pembahasan yang memuat data-data pengujian serta pembahasannya
8. Bab 5 Kesimpulan yang memuat rangkuman hasil pengujian
9. Referensi
Dikumpulkan selambat-lambatnya H-7 sebelum UAS di kepala LAB atau koordiator Praktikum
Elektronika.
81