MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1....

34
MATERI PELATIHAN BASIC ARDUINO SENSOR Arduino Arduino merupakan board mikrokontroller yang berbasis opensource. Ada beberapa macam arduino, salah satunya adalah arduino uno yang akan di gunakan pada kesempatan kali ini. Spesifikasi Arduino Uno Mikrokontroller ATMega 328 Tegangan pengoperasian 5V Tegangan input yang disarankan 712V Jumlah pin I/O digital 16 (6 diantaranya PWM) Jumlah pin analog 6 Pin input output arduino uno Setiap 14 pin digital pada Arduino Uno dapat digunakan sebagai input dan output. Selain itu, beberapa pin mempunyai fungsifungsi spesial: Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan memancarkan (TX) serial data TTL (TransistorTransistor Logic). Kedua pin ini dihubungkan ke pinpin yang sesuai dari chip Serial Atmega8U2 USBkeTTL. External Interrupts: 2 dan 3. Pinpin ini dapat dikonfigurasikan untuk dipicu sebuah interrupt (gangguan) pada sebuah nilai rendah, suatu kenaikan atau penurunan yang besar, atau suatu perubahan nilai. Lihat fungsi attachInterrupt() untuk lebih jelasnya. PWM: 3, 5, 6, 9, 10, dan 11. Memberikan 8bit PWM output dengan fungsi analogWrite(). SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pinpin ini mensupport komunikasi SPI menggunakan SPI library. LED: 13. Ada sebuah LED yang terpasang, terhubung ke pin digital 13. Ketika pin bernilai HIGH LED menyala, ketika pin bernilai LOW LED mati. Arduino UNO mempunyai 6 input analog, diberi label A0 sampai A5, setiapnya memberikan 10 bit resolusi (contohnya 1024 nilai yang berbeda). Secara default, 6 input analog tersebut mengukur dari ground sampai tegangan 5 Volt, dengan itu mungkin untuk mengganti batas atas dari rangenya dengan menggunakan pin AREF dan fungsi analogReference(). Di sisi lain, beberapa pin mempunyai fungsi spesial: TWI: pin A4 atau SDA dan pin A5 atau SCL. Mensupport komunikasi TWI dengan menggunakan Wire library Ada sepasang pin lainnya pada board: AREF. Referensi tegangan untuk input analog. Digunakan dengan analogReference(). Reset. Membawa saluran ini LOW untuk mereset mikrokontroler. Secara khusus, digunakan untuk menambahkan sebuah tombol reset untuk melindungi yang memblock sesuatu pada board.

Transcript of MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1....

Page 1: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

MATERI PELATIHAN BASIC ARDUINO SENSOR 

Arduino Arduino merupakan board mikrokontroller yang berbasis opensource. Ada beberapa macam arduino, salah satunya adalah arduino uno yang akan di gunakan pada kesempatan kali ini.  Spesifikasi Arduino Uno 

Mikrokontroller  ATMega 328 Tegangan pengoperasian   5V Tegangan input yang disarankan  7‐12V Jumlah pin I/O digital  16 (6 diantaranya PWM) Jumlah pin analog  6 

 Pin input output arduino uno Setiap 14 pin digital pada Arduino Uno dapat digunakan sebagai input dan output. Selain itu, beberapa pin mempunyai fungsi‐fungsi spesial:  

• Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan memancarkan (TX) serial data TTL (Transistor‐Transistor Logic). Kedua pin ini dihubungkan ke pin‐pin yang sesuai dari chip Serial Atmega8U2 USB‐ke‐TTL. 

• External Interrupts: 2 dan 3. Pin‐pin ini dapat dikonfigurasikan untuk dipicu sebuah interrupt (gangguan) pada sebuah nilai rendah, suatu kenaikan atau penurunan yang besar, atau suatu perubahan nilai. Lihat fungsi attachInterrupt() untuk lebih jelasnya. 

• PWM: 3, 5, 6, 9, 10, dan 11. Memberikan 8‐bit PWM output dengan fungsi analogWrite(). • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin‐pin ini mensupport komunikasi SPI 

menggunakan SPI library. • LED: 13. Ada sebuah LED yang terpasang, terhubung ke pin digital 13. Ketika pin bernilai HIGH 

LED menyala, ketika pin bernilai LOW LED mati.  

Arduino UNO mempunyai 6 input analog, diberi label A0 sampai A5, setiapnya memberikan 10 bit resolusi (contohnya 1024 nilai yang berbeda). Secara default, 6 input analog tersebut mengukur dari ground sampai tegangan 5 Volt, dengan itu mungkin untuk mengganti batas atas dari rangenya dengan menggunakan pin AREF dan fungsi analogReference(). Di sisi lain, beberapa pin mempunyai fungsi spesial:  

• TWI: pin A4 atau SDA dan pin A5 atau SCL. Mensupport komunikasi TWI dengan menggunakan Wire library 

Ada sepasang pin lainnya pada board:  • AREF. Referensi tegangan untuk input analog. Digunakan dengan analogReference(). • Reset. Membawa saluran ini LOW untuk mereset mikrokontroler. Secara khusus, digunakan 

untuk menambahkan sebuah tombol reset untuk melindungi yang memblock sesuatu pada board. 

  

Page 2: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

Bahasa Pemrograman Arduino Bahasa pemrograman Arduino adalah bahasa C. Tetapi bahasa ini sudah dipermudah menggunakan fungsi‐fungsi yang sederhana sehingga mudah untuk dipelajari.  Mulai pemrograman Struktur Penulisan Awal ARDUINO Terdiri dari : 

     

     void setup( ) { } Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya.  void loop( ) { } Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan.  Variabel Arduino Variabel adalah suatu pengenal yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program.  Contoh penulisan variabel : 

1. int a; 2. char nama[20]; 

 Scope 

1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi. 

 Tipe Data Arduino  Tipe data merupakan bagian dari suatu program yang dibuat untuk menyatakan suatu bentuk nilai. Contoh : Kita ingin menyimpan nilai pada variabel LUAS dan akan di gunakan untuk proses perhitungan maka tipe data yang di gunakan adalah int.   

void setup() { // Di panggil satu kali ; } void loop() { //Di panggil berulang-ulang ; }

Page 3: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

Tipe  Range  Keterangan 

int  ‐32768 to 32768  Tipe data yang hanya menampilkan berupa bilangan bulat antara ‐32768 to 32768 

char  ‐128 to 127  Tipe data menyimpan karakter/string boolean  True (1), False (0)  Tipe data logika, yang berisi dua 

kemungkinan nilai : TRUE (benar) atau FALSE (salah) 

long  ‐2.147.483.648 to 2.147.483.647  Tipe data yang hanya menampilkan berupa bilangan buat tapi rangenya lebih banyak 

unsigned int  0 to 4.294.967.295  Tipe data yang hanya menampilkan berupa bilangan buat tapi rangenya lebih banyak 

float  ‐3,4028235E+38 to 3,4028235E+38 

Tipe data yang hanya menampilkan berupa bilangan pecahan/desimal 

  Opertator Aritmatika Arduino Operator Aritmatika adalah operator yang dipakai dalam proses perhitungan dalam suatu program.  

Operator Aritmatika  Keterangan +  Penjumlahan ‐  Pengurangan *  Perkalian /  Pembagian %  Sisa bagi (modus) 

  Operator Kondisi Arduino  Operator Kondisi adalah operator yang dipakai dalam proses perbandingan antara 1 logic program dengan logic program lainnya.  

Operator Kondisi  Keterangan <  Lebih kecil <=  Lebih kecil sama dengan >  Lebih besar >=  Lebih besar sama dengan ==  Sama dengan !=  Tidak sama dengan 

Page 4: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

  

 Operator Boolean Arduino Operator boolean adalah operator yang menghasilkan true atau false.    

Operator Boolean  Keterangan !  Boolean NOT 

&&  Boolean AND ||  Boolean OR 

  Struktur Pengkondisian IF ARDUINO Struktur Pengkondisian adalah struktur yang di gunakan untuk memilih 1 dari 2 kondisi(pernyataan) atau lebih.            Jika kondisi lebih dari 2  

              

if(kondisi) { Statement 1; } else { Statement selain 1; }

if(kondisi 1) { Statement 1; } else if(kondisi 2) { Statement 2; } else { Statement selain 1 dan 2; }

Page 5: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

Contoh Penggunaan IF :  Ada 3 tombol untuk menghidupkan lampu  

• Lampu Merah • Lampu Kuning • Lampu Hijau 

 Ketika tombol 1 di tekan, lampu merah menyala Ketika tombol 2 di tekan, lampu kuning menyala Ketika tombol 3 di tekan, lampu hijau menyala Ketika tidak ditekan semua lampu mati  Bentuk kondisi pemrograman adalah sebagai berikut :                         

if(tombol 1 ditekan) { Merah on; } else if(tombol 2 ditekan) { kuning on; } else if(tombol 3 ditekan) { hijau on; } else { Merah off; kuning off; hijau off; }

Page 6: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

Struktur Pengkondisian Switch ARDUINO                     Struktur Pengulangan FOR ARDUINO 

       

         

   

switch(nomor) { case n1: statement 1; break; case n2: statement 2; break; case n3: statement 3; break; default: statement; break; }

for(initial;condition;increment) { statement; statement; }

for(i=0;i<10;i++) { sum++; total = total+sum; }

Page 7: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

 Struktur Pengulangan WHILE ARDUINO       

        

Input Mikrokontroler Input Mikrokontroler Dapat Berupa Digital Dan Analog  Input Digital 

• Input Digital adalah input yang memiliki tegangan 5 volt (HIGH) dan 0 volt (LOW). • Contoh INPUT Digital : Membaca Tombol Switch 

 Input Analog 

• Input Analog adalah input yang memiliki tegangan antara 5 volt s/d 0 volt (LOW). • Contoh INPUT Analog : Potensiometer, Line Sensor 

 Output Mikrokontroler Output Mikrokontroler Hanya Berupa Digital Output Digital 

• Output Digital adalah output yang memiliki tegangan 5 volt (HIGH) dan 0 volt (LOW). • Output Digital Bisa juga di pin Digital PWM • Contoh OUTPUT Digital : 

Menghidup dan mematikan LED Menghidupkan dan mematikan Buzzer 

 Pemrograman Input / Output Digital Arduino Perintah pinMode() Digunakan untuk menentukan pin mana yang akan di gunakan dan menentukan apakah sebuah pin : INPUT atau OUTPUT  

while(condition) { statement; statement; … }

var = 0; while(var < 200) { var++; }

Page 8: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

Contoh : ‐ Untuk menentukan pin Input : pinMode(8,INPUT); ‐ Untuk menentukan pin Output : pinMode(8,OUTPUT); 

 Perintah digitalWrite() Digunakan untuk memberikan logika LOW atau HIGH pada sebuah pin I/O. Contoh : 

‐ Menghidupkan led pada pin 18 : digitalWrite(18,HIGH); ‐ Mematikan led pada pin 18 : digitalWrite(18,LOW); 

 Perintah digitalRead() Digunakan Untuk membaca logika dari sebuah pin I/O Contoh : 

‐ Membaca switch pada pin 10 : digitalRead(10);  Pemrograman Input / Output Analog Arduino Perintah analogWrite() 

‐ analogWrite() dapat digunakan untuk menulis nilai analog (gelombang PWM) untuk sebuah pin. ‐ Dapat juga digunakan menyalakan LED dengan cahaya yang bervariasi atau mengontrol ‐ motor dengan kecepatan yang bervariasi. ‐ Value (nilai) analogWrite adalah angka antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% duty cycle ~ 

5V). Contoh : 

‐ Menulis kecepatan motor/dinamo pada pin 6 : analogWrite(5,255);  Perintah analogRead() 

‐ Ketika pin analog ditetapkan sebagai INPUT kita dapat membaca keluaran voltase‐nya. ‐ Keluarannya berupa angka antara 0 (untuk 0 volts) dan 1024 (untuk 5 volts). 

 Contoh : 

‐ Membaca sensor suara pada pin 24 analog : analogRead(0);  Perintah Waktu Tunda 

1. delay() Akan memberi jeda pada program untuk beberapa waktu ( dalam millisecond). Contoh : kita akan menulis waktu tunda 2 detik maka delay(2000); 

2. delayMicroseconds() memberi jeda program dalam beberapa waktu (mikrodetik), 1000 microsecond adalah 1 milisecond dan 1 juta microsecond adalah 1 detik. Contoh : kita akan menulis waktu tunda 2 microsecond maka delayMicroseconds (2000); 

   

Page 9: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

PROJECT 1 ‐ Blinking LED 

Bahan yang dibutuhkan 

1. Breadboard 

 

Isi dari breadboard adalah Terhubung secara Vertikal / terhubung dari atas ke bawah  

2. Dioda Led 3. Kabel Jumper male to male 

 4. Arduino Uno 

   

 

Konfigurasi Rangkaian Blinking Led 

 

   

Isi Breadboard

Contoh program blinking arduino 

int LED = 2; // LED connected to

digital pin 2

void setup()

{

pinMode(LED, OUTPUT); // sets the

digital pin as output

}

void loop()

{

digitalWrite(LED, HIGH); // turns the

LED on

delay(1000); // waits for a second

digitalWrite(LED, LOW); // turns the

LED off

delay(1000); // waits for a second

}

Catatan:  ‐ Pemasangan LED harus diperhatikan polaritasnya. Kaki yang panjang mengarah ke kutup Positif (+), sedangkan kaki yang pendek atau kaki pada permukaan LED yg datar, mengarah ke kutub negative (‐) atau Ground (Gnd).  

Page 10: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

PROJECT II – ARDUINO SERIAL 

Setiap arduino mempunyai port Serial, arduino uno mempunyai 1 komunikasi serial TX dan RX, port ini 

berfungsi untuk 

 

Memulai dengan Komunikasi Serial 

Sebelum kita dapat menggunakan port serial Arduino, kita harus menentukan pengaturan komunikasi 

dengan tepat. Pengaturan komunikasi serial yang lengkap meliputi baud rate (kecepatan). 

 

Untuk menetapkan pengaturan yang diinginkan, kita menggunakan fungsi  

 

Serial.begin() 

 

Contoh, saat kita ingin berkomunikasi dengan kecepatan 9600 bits/detik dan nilai default untuk 

pengaturan lainnya, kita bisa menggunakan baris kode berikut. 

 

 Serial.begin(9600);   

 

Kita hanya perlu melakukan ini sekali saja. Jadi di void setup() adalah yang pas untuk menuliskan 

Serial.begin(). 

 

 

 

 

 

Menulis ke Port Serial 

Untuk menulis ke port serial, kita dapat menggunakan salah satu dari metode berikut ini.  

 

print(); 

println(); 

 

Gunakan print() untuk mengirim teks ke penerima.  

contoh, perintah print(“hallo”);  

void setup() { serial.begin(9600); }

Page 11: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

 

 

 

 

maka arduino akan mengirim teks  "hallo" (tentu tanpa tanda kutip) di dalam serial monitor. 

 

Untuk println() berperilaku mirip dengan print(), dengan perbedaan penambahan baris baru (new line 

atau line feed) pada akhir pengiriman. 

 

Menampilkan data dari potensiometer ke serial 

Konfigurasi Pin ke potensiometer 

 

Program ke Arduino 

int potensio1 = A0; int bacapotensio1 = 0; void setup() { Serial.begin(9600); pinMode(potensio1,INPUT); } void loop() { bacapotensio1 = analogRead(potensio1); // read input value Serial.println(bacapotensio1); }

Data yang dibaca potensiometer diatas adalah data ADC antara 0 – 1023,    

void setup() { serial.begin(9600); Serial.print(“hallo”); }

Page 12: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

PROJECT III  – Arduino digital Analog Input  

sensorValue = analogRead(sensorPin); // membaca nilai dari sensor Analog  buttonState = digitalRead(buttonPin); // membaca nilai dari sensor Digital  

  Program push button untuk menyalakan led   int buttonPin = 7; // pin signal modul Switch dihubungkan ke pin 7 Arduino int ledPin = 13; // nomor pin LED internal Arduino int buttonState = 0; // nama variable status switch void setup() { pinMode(buttonPin, INPUT); // tombol tekan (push button) sebagai input: pinMode(ledPin, OUTPUT); // LED pin sebagai output: }

void loop() { buttonState = digitalRead(buttonPin); // membaca nilai tombol tekan if (buttonState == HIGH) // check apakah tombol pushbutton ditekan { digitalWrite(ledPin, HIGH); // nyalakan LED (on)

Page 13: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

} else {

digitalWrite(ledPin, LOW); // matikan LED (off)

}

}

 

Mengatur timer led blinking dengan potensiometer 

 

int sensorPin = 0; // pin signal potentiometer dihubungkan ke port analog 0 int ledPin = 13; // nomor pin LED internal Arduino int sensorValue = 0; // variable nilai awal yg dihasilkan sensor

void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); // untuk membaca data pada serial port di layar monitor } void loop() { sensorValue = analogRead(sensorPin); // membaca nilai dari sensor Analog Serial.println(sensorValue); // menulis nilai sensor di layar monitor digitalWrite(ledPin, HIGH); delay(sensorValue); // lamanya lampu On

Page 14: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

digitalWrite(ledPin, LOW); delay(sensorValue); // lamanya lampu Off }

   

Page 15: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

PROJECT IV  –Output dengan PWM 

PWM adalah singkatan dari Pulse With Modulation, yang fungsinya untuk mengatur besaran output dalam range tertentu ( 0 – 255 ).  

Penggunaan PWM ini banyak diimplementasikan sebagai pengatur kecepatan motor,pengatur intensitas cahaya, dan beberapa keperluan lainnya. 

Arduino UNO memiliki 6 pin PWM, yaitu pin 3, 5, 6, 9, 10, 11. Untuk itu, penggunaan untuk pengaturan kecepatan motor atau intensitas cahaya lampu yang akan dikontrol harus dihubungkan dengan pin PWM tersebut. 

Contoh mengatur intensitas cahaya pada dioda LED 

 

 

int ledPin = 3; // PWM pin untuk LED void setup() { } void loop() { for (int i=0; i<=255; i++) // menambah nilai untuk i { analogWrite(ledPin, i); // set nilai i delay(100); // delay selama 100ms } for (int i=255; i>=0; i--) // mengurangi nilai untuk i {

Page 16: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

analogWrite(ledPin, i); // set nilai i delay(100); // delay selama 100ms } }

 

Penggunaan i++ berarti  nilai i naik +1 secara berulang ulang, misal untuk kenaikan kelipatan 10 bisa menggunakan i+=5 

Contoh 

for (int i=0; i<=255; i++) = naik +1 secara berulang .  

for (int i=0; i<=255; i+=10) = naik +10 secara berulang  

untuk mendapatkan hasil sesuai dengan keinginan, output pwm bisa diatur dengan potensiometer. Seperti halnya lampu panggung / lampu dimmer. Buatlah rangkaian dan program untuk pengaturan cahaya dengan menggunakan potensiometer 

 

   

Page 17: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

PROJECT 

Konfigura

 Berikut ad 

No Kaki/P

10 

11 

12 

13 

14 

15 

16 

V  – Arduino 

asi Pin Kabel k

dalah pin dari

Pin Nama  Ke

VCC  +5

GND  0V

VEE  Te

RS  Re

R/W  1 

E  En

D0  D

D1  D

D2  D

D3  D

D4  D

D5  D

D6  D

D7  D

Anoda  Te

Katoda  te

LCD 16x2 

ke arduino 

i LCD 16 X 2 

eterangan 

5V 

egangan Kont

egister Select

= Read, 0 = W

nable Clock LC

ata Bus 0 

ata Bus 1 

ata Bus 2 

ata Bus 3 

ata Bus 4 

ata Bus 5 

ata Bus 6 

ata Bus 7 

egangan back

egangan back

tras LCD 

Write 

CD 

klight positif

klight Negatif

 

 

Page 18: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

 Pin LCD nomor 4 (RS) merupakan Register Selector yang berfungsi untuk memilih Register Kontrol atau Register Data.  Register kontrol digunakan untuk mengkonfigurasi LCD.  Register Data digunakan untuk menulis data karakter ke memori display LCD.  Pin LCD nomor 5 (R/W) digunakan untuk memilih aliran data apakah READ ataukah WRITE. Karena kebanyakan fungsi hanya untuk membaca data dari LCD dan hanya perlu menulis data saja ke LCD, maka kaki ini dihubungkan ke GND (WRITE).  Pin LCD nomor 6 (ENABLE) digunakan untuk mengaktifkan LCD pada proses penulisan data ke Register Kontrol dan Register Data LCD.  Menyambungkan LCD dengan Board Arduino  • Pin RS (kaki 4) di sambungkan dengan pin arduino digital pin 12 

• Pin E (kaki 6) di sambungkan dengan pin arduino digital pin 11 

• Pin D4 (kaki 11) di sambungkan dengan pin arduino digital pin 5 

• Pin D5 (kaki 12) di sambungkan dengan pin arduino digital pin 4 

• Pin D6 (kaki 13) di sambungkan dengan pin arduino digital pin 3 

• Pin D7 (kaki 14) di sambungkan dengan pin arduino digital pin 2 

• sambungkan potensio 10 KOhm ke  +5v dan GND , dan Pin LCD 3 ke potensio 

• Pin 5 (R/W) ke Ground 

  Program di arduino Pada penggunaan program ini di butuhkan library LCD, default installan dari arduino sudah ada library LCD jadi tidak perlu memasukkan lagi ke folder library  #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print("Belajar Arduino"); lcd.setCursor(0, 1); lcd.print("Arduino LCD"); }

Page 19: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

void loop() { //belum ada perintah berulang-ulang }

   

   

Page 20: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

PROJECT VI  – Mengukur Suhu 

Jenis sensor suhu yang akan di gunakan ada 2 macam 

LM 35 

IC jenis LM 35 ini cukup praktis, bentuknya kecil dan akurasinya tinggi. Cukup dengan menghubungkan kakinya ke kutub + , A0 dan – seperti pada gambar, nilai tegangan listrik yang didapat akan dikonversi menjadi nilai suhu dalam satuan derajat Celsius/Rheamur/Fahrenheit. 

 

 

 

int lm35 = A0; // input pin untuk LM35 float temperature = 0; // type float -> 2 angka di blkng koma long val = 0; // tyle long = int, hanya range nilainya lebih besar void setup() { Serial.begin(9600); } void loop() { val = analogRead(lm35); // baca data dari sensor temperature = (5.0 * val * 100.0)/1024.0; // konversi ke celcius Serial.println(temperature); // menampilkan data Serial.println((long)temperature); // menjadikan bil bulat

Page 21: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

delay(1000); }

  

   

Page 22: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

PROJECT VII  – Mengukur air 

Mengukur air bisa menggunakan water sensor. Sensor ini mengeluarkan data analog ketika di celupkan di air. 

 

int water = A0; // input pin untuk water sensor long val = 0; // tyle long = int, hanya range nilainya lebih besar void setup() { Serial.begin(9600); } void loop() { if (Serial.available()) // jika ada serial { val = analogRead(water); // baca data dari sensor Serial.println(val); // menampilkan data } delay(1000); }

   

Page 23: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

PROJECT VIII  – Mengukur aliran air 

Flow meter merupakan sensor yang digunakan untuk mengukur aliran air. 

Bentuk flow meter adalah sebagai berikut : 

     

Output yang dikeluarkan dari flow meter ini adalah berupa pulsa/sinyal. Diperlukan resistor 10K Ohm, sebagai pull up dari sensor water flow. Bentuk rangkaiannya sebagai berikut. 

 

 

 

volatile int NbTopsFan; //measuring the rising edges of the signal int Calc; int hallsensor = 2; //The pin location of the sensor void rpm () //This is the function that the interupt calls { NbTopsFan++; //This function measures the rising and falling edge of the //hall effect sensors signal }

Page 24: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

void setup() { pinMode(hallsensor, INPUT); //initializes digital pin 2 as an input Serial.begin(9600); //This is the setup function where the serial port is //initialised, attachInterrupt(0, rpm, RISING); //and the interrupt is attached } // the loop() method runs over and over again, // as long as the Arduino has power void loop () { NbTopsFan = 0; //Set NbTops to 0 ready for calculations sei(); //Enables interrupts delay (1000); //Wait 1 second cli(); //Disable interrupts Calc = (NbTopsFan * 60 / 7.5); //(Pulse frequency x 60) / 7.5Q, = flow rate in L/hour Serial.print (Calc, DEC); //Prints the number calculated above Serial.print (" L/hour\r\n"); //Prints "L/hour" and returns a new line }

   

Page 25: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

PROJECT VIII  – Arduino Komunikasi Bluetooth 

Konfigurasi Arduino Pin ke Bluetooth HC‐05 

   

 

Program ke Arduino 

//Menyalakan Led dengan bluetooth int led=13; int DataBluetooth; void setup() { Serial.begin(9600); Serial.println("Menyalakan dan mematikan led dengan bluetooth"); Serial.println("1 : ON, 0 = Off"); pinMode(led,OUTPUT); } void loop() { if (Serial.available()) { DataBluetooth=Serial.read(); if(DataBluetooth=='1') { digitalWrite(led,HIGH); Serial.println("LED On"); } if (DataBluetooth=='0') { digitalWrite(led,LOW); Serial.println("LED Off"); } }

Page 26: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

delay(100); } Untuk penggunaan serial bluetooth yang menggunakan port serial tx,rx. Pada waktu proses download harus dicabut kabel tx rx nya. Ada cara lain biar tidak mencabut kabel tx rx yaitu menggunakan port serial arduino lainnya, atau di kenal dengan softwareserial. Port yang digunakan adalah port  10 (rx), 11(tx). Untuk sketch pemrogramannya ditambahi program berikut   #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); // TX, RX int led=13; int DataBluetooth; void setup() { Serial.begin(9600); mySerial.begin(9600); Serial.println("Menyalakan dan mematikan led dengan bluetooth"); Serial.println("1 : ON, 0 = Off"); pinMode(led,OUTPUT); } void loop() { if (mySerial.available()) { DataBluetooth=mySerial.read(); if(DataBluetooth=='1') { digitalWrite(led,HIGH); Serial.println("LED On"); } if (DataBluetooth=='0') { digitalWrite(led,LOW); Serial.println("LED Off"); } } delay(100); }

  

   

Page 27: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

 

PROJECT IX ‐ Arduino VB 

VB atau Visual Basic merupakan interface yang digunakan sebagai pengendali ke arduino, selain itu juga sebagai pembaca data. Komunikasi dari VB Arduino ini menggunakan komunikasi Serial 

Membuat program arduino, ketika mendapat data 1 led 13 on, dan ketika mendapat data 2 led 13 off 

int t; void setup() { Serial.begin(9600); pinMode(13,OUTPUT); digitalWrite(13,LOW); } void loop() { while(Serial.available()>0) { t=Serial.read(); } switch(t) { case '1': digitalWrite(13,HIGH);break; case '2': digitalWrite(13,LOW);break; } }

 

Langkah‐langkah pada visual Basic 

• Buka VB6 • Susunlah komponen seperti pada gambar dibawah ini 

 • microsoft common control (MSComm) atau yang bergambar telp, ini bisa di tambahkan melalui 

bar sebelah kiri, kemudian klik kanan dan klik componnent. Pilih pada controls dan check pada Microsoft Comm Control 6.0 

• Aturlah Propertiesnya Seperti berikut ini Component  Properties ComboBox  Name : Combo1 

Text :‐‐port‐‐ 

Page 28: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

commandButton  Name : btn_connect Caption : Connect 

commandButton  Name : btn_write Caption : write 

commandButton  Name : btn_exit Caption : Exit 

textBox  Name : text1 name :  

MSComm  Name : MSComm1 Settings : 9600,n,8,1 

  • Tulislah Program basic nya dengan klik 2 kali dmna aja pada form editor 

Private Sub Form_Load() For Port = 1 To 20 Combo1.AddItem Port Next Port End Sub Private Sub Form_Unload(Cancel As Integer) MSComm1.PortOpen = False End Sub Private Sub btn_connect_Click() MSComm1.CommPort = Val(Combo1.Text) MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True MsgBox "Koneksi Berhasil !", vbInformation, "Sukses" btn_connect.Enabled = False End Sub Private Sub btn_exit_Click() End End Sub Private Sub btn_write_Click() MSComm1.Output = Text1.Text End Sub

   

Page 29: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

PROJECT X ‐ Arduino Data Logger 

Data logger merupakan data penyimpanan ke external memory atau ke SD Card, penggunaan data logger ini biasanya untuk menganalisa/mendapatkan data dari suatu kondisi di tempat tertentu. Misal untuk perubahan suhu per satuan waktu di tempat tertentu.  

Pada percobaan kali ini modul yang di gunakan adalah modul dari deek‐robot  

 

Selain data logger, Modul ini juga langsung ada RTC (Real Time Clock) untuk pencatat waktu. 

Mancoba data logger,  

Konfigurasi data logger dengan arduino menggunakan koneksi SPI, maka untuk pin di arduino UNO bisa menggunakan pin sebagai berikut : 

 

 

#include <SPI.h> #include <SD.h> const int chipSelect = 10;

MOSI ‐ pin 11 

MISO ‐ pin 12 

CLK ‐ pin 13 

CS ‐ pin 10 

Page 30: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

void setup() { Serial.begin(9600); Serial.print("Initializing SD card..."); // inisialisasi card if (!SD.begin(chipSelect)) { Serial.println("Card failed, or not present"); // don't do anything more: return; } Serial.println("card initialized."); } void loop() { String dataString="okelah"; // membuka file, hanya satu file yang dibuka pada penggunaan data logger File dataFile = SD.open("datalog.txt", FILE_WRITE); // menulis data: if (dataFile) { dataFile.println(dataString); dataFile.close(); // print ke serial port: Serial.println(dataString); } else { Serial.println("error opening datalog.txt"); } }

 

Menyimpan data dari potensiometer 

 

#include <SPI.h> #include <SD.h>

Page 31: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

const int chipSelect = 10; int potensio = A0; void setup() { Serial.begin(9600); Serial.print("Initializing SD card..."); // inisialisasi card if (!SD.begin(chipSelect)) { Serial.println("Card failed, or not present"); // don't do anything more: return; } Serial.println("card initialized."); } void loop() { //membaca data potensio int sensor = analogRead(potensio); // membuka file, hanya satu file yang dibuka pada penggunaan data logger File dataFile = SD.open("datalog.txt", FILE_WRITE); // menulis data: if (dataFile) { dataFile.println(potensio); dataFile.close(); // print ke serial port: Serial.println(potensio); } else { Serial.println("error opening datalog.txt"); } }

 

   

Page 32: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

PROJECT XI – Arduino RTC (Real Time Clock) 

RTC (Real Time Clock) merupakan sebuah IC yang memiliki fungsi untuk menghitung waktu, mulai dari detik, menit, jam, tanggal, bulan, serta tahun. Ada beberapa RTC yang di jual di pasaran, seperti : DS1307, DS1302, DS12C887, DS3234. 

Pada percobaan kali ini, menggunakan RTC yang sudah terinclude di data logger yaitu RTC DS1307.  

Yang perlu disiapkan adalah menggunakan library arduino DS1307 RTC. Modul ini menggunakan I2C untuk jalur komunikasinya sehingga pada arduino menggunakan pin 14‐>SDA dan A5‐>SCL 

 

Untuk setting time, bisa langsung menggunakan data dari bios komputer 

#include <DS1307RTC.h> #include <Time.h> #include <Wire.h> const char *monthName[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; tmElements_t tm; void setup() { bool parse=false; bool config=false; // get the date and time the compiler was run if (getDate(__DATE__) && getTime(__TIME__)) { parse = true; // and configure the RTC with this info if (RTC.write(tm)) { config = true; } }

Page 33: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

Serial.begin(9600); while (!Serial) ; // wait for Arduino Serial Monitor delay(200); if (parse && config) { Serial.print("DS1307 configured Time="); Serial.print(__TIME__); Serial.print(", Date="); Serial.println(__DATE__); } else if (parse) { Serial.println("DS1307 Communication Error :-{"); Serial.println("Please check your circuitry"); } else { Serial.print("Could not parse info from the compiler, Time=\""); Serial.print(__TIME__); Serial.print("\", Date=\""); Serial.print(__DATE__); Serial.println("\""); } } void loop() { } bool getTime(const char *str) { int Hour, Min, Sec; if (sscanf(str, "%d:%d:%d", &Hour, &Min, &Sec) != 3) return false; tm.Hour = Hour; tm.Minute = Min; tm.Second = Sec; return true; } bool getDate(const char *str) { char Month[12]; int Day, Year; uint8_t monthIndex; if (sscanf(str, "%s %d %d", Month, &Day, &Year) != 3) return false; for (monthIndex = 0; monthIndex < 12; monthIndex++) { if (strcmp(Month, monthName[monthIndex]) == 0) break; } if (monthIndex >= 12) return false; tm.Day = Day; tm.Month = monthIndex + 1; tm.Year = CalendarYrToTm(Year); return true; }

 

Membaca time dari RTC 

#include <DS1307RTC.h>

Page 34: MATERI PELATIHAN BASIC ARDUINO SENSORsekolahrobot.com/download/MATERI PELATIHAN BASIC ARDUINO...1. Global, di‐definisikan di paling atas. 2. Lokal, di‐definisikan di dalam fungsi.

#include <Time.h> #include <Wire.h> void setup() { Serial.begin(9600); while (!Serial) ; // wait for serial delay(200); Serial.println("DS1307RTC Read Test"); Serial.println("-------------------"); } void loop() { tmElements_t tm; if (RTC.read(tm)) { Serial.print("Ok, Time = "); print2digits(tm.Hour); Serial.write(':'); print2digits(tm.Minute); Serial.write(':'); print2digits(tm.Second); Serial.print(", Date (D/M/Y) = "); Serial.print(tm.Day); Serial.write('/'); Serial.print(tm.Month); Serial.write('/'); Serial.print(tmYearToCalendar(tm.Year)); Serial.println(); } else { if (RTC.chipPresent()) { Serial.println("The DS1307 is stopped. Please run the SetTime"); Serial.println("example to initialize the time and begin running."); Serial.println(); } else { Serial.println("DS1307 read error! Please check the circuitry."); Serial.println(); } delay(9000); } delay(1000); } void print2digits(int number) { if (number >= 0 && number < 10) { Serial.write('0'); } Serial.print(number); }