Modul Pelatihan Arduino
Modul Pelatihan Arduino
(Basic)
Teori Dasar
Led Blink
Analog Reading & Digital Writing
PWM (Pulse Width Modulation)
A,1 Blinking LED
LED (light emitting diode) adalah komponen dasar yang sering
digunakan pada rangkaian elektronik. Karena bentuknya berupa lampu kecil
maka kita dapat segera dapat melihat hasil program kita secara visual. LED
pada program kali ini akan dibuat menjadi berkelap-kelip (blinking) dengan
durasi waktu yang tertentu dan dilakukan berulang terus menerus. Untuk
memulai, segera siapkan komponen yang dibutuhkan seperti tertera di
bawah ini dan pasang pada breadboard. Setelah semua komponen terpasang
maka kita akan meng-upload programnya. Hubungkan Arduino anda ke
komputer dengan kabel USB. Kemudian pilih port yang sesuai pada
software Arduino di menu Tools > Serial Port > COMXX (sesuai dengan
comm port Arduino anda). Lalu upload program tersebut dengan
menggunakan menu File > Upload I/O Board (ctrl+U).
Rangkaian
Komponen yang diperlukan:
1 buah LED
1 buah resistor
Kabel jumper
Berikut ini adalah gambar simulasi penempatan komponen pada breadboard dan
board Arduino. Gambar simulasi ini menggunakan software Fritzing yang bisa didapat
di sini. Blinking LED using Arduino
/*
Blink
Turns on an LED on for one second, then off
for one second, repeatedly.
void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino
boards:
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(13, LOW); // set the LED off
delay(1000); // wait for a second
}
A.2 Analog Reading dan Digital Writing
Pada papan Arduino, khususnya jenis UNO, terdapat dua kelompok pin
yang memiliki fungsi hampir sama namun sinyal pengolahannya berbeda yaitu pin
analog dan pin digital.
Pin analog (A0, A1, A2, A3, A4, A5) sesuai namanya, biasanya digunakan
untuk membaca masukan dan memiliki keluaran berbentuk sinyal analog. Pada
dasarnya, pin analog ini mampu membaca masukan dan menghasilkan keluaran
sinyal digital, namun di dalam Arduino sudah terdapat A/DC (Analog/Digital
Converter) sehingga melalui pin analog ini masukan digital dapat diubah menjadi
analog.
Sementara itu, pin digital (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ,12, dan 13)
digunakan untuk mengolah masukan dan keluaran digital. Pada sistem digital, nilai
yang dikenali hanya 1 (HIGH) dan 0 (LOW). Sementara pada sistem analog, dapat
dikenali rentang dari 0 hingga 1 – pada arduino dikenali 0 volt sampai 5 volt.
Pin-pin pada arduino ini dapat dikonfigurasi sebagai input (masukan) atau output
(keluaran) dengan menggunakan perintah seperti ini:
pinMode(13, OUTPUT) //mengonfigurasi pin digital 13 sebagai output
atau
Rangkaian pembacaan nilai potensiometer dan penulisan data digital ke LED oleh
Arduino
Pada rangkaian diatas, tiga kaki potensiometer (A, B dan C) terhubung ke 5V, A0
dan GND secara berturut-turut. Sedangkan led terhubung ke pin 13 dan ground.
Jangan lupa menambahkan resistor pada kaki katoda led. Untuk memonitor besaran
nilai yang dibaca oleh pin analog, akan kita tampilkan melalui Serial Monitor
dengan perintah Ctrl + Shift + M.
Lalu ketikkan perintah dibawah ini melalui IDE Arduino.
void setup() {
// declare the ledPin as an OUTPUT:
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
Serial.println(sensorValue);
delay(1);
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
// turn the ledPin on
digitalWrite(ledPin, HIGH);
// stop the program for <sensorValue> milliseconds:
delay(sensorValue);
// turn the ledPin off:
digitalWrite(ledPin, LOW);
// stop the program for for <sensorValue> milliseconds:
delay(sensorValue);
}
A.3 PWM
Pada percobaan ini, kita akan mengendalikan sinyal PWM keluaran dari
arduino dengan menggunakan masukan berupa nilai potensiometer pada pin analog
0. Untuk dapat melihat hasil dari pengaturan sinyal PWM, kita menggunakan
sebuah LED yang terhubung ke pin digital 9 sebagai indikator.
PWM memiliki duty cycle yang dapat diatur sedemikan rupa. Untuk lebih jelas,
simak pemaparan tutor anda dan lakukan percobaan dibawah ini.
Rangkaian
Komponen yang diperlukan:
LED
Breaboard
Kabel jumper
Potensiometer
Resistor
Arduino UNO
void setup()
{
Serial.begin(9600);
}
void loop()
{
//membaca nilai analog
potval = analogRead(pinpot);
Serial.print (“Nilai Potensiometer = “);
Serial.println (potval);
Delay(1000);
delay(5);
}
BAGIAN B
(Intermediate)
Motor Servo
Interface
Display
Keypad dan control
B.1 Motor Servo
Motor servo adalah sebuah motor dengan sistem umpan balik tertutup
dimana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang
ada di dalam motor servo. Motor ini terdiri dari sebuah motor DC, serangkaian gear,
potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan
batas sudut dari putaran servo. Sedangkan sudut dari sumbu motor servo diatur
berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor.
Langkah Kerja
#include <Servo.h>
// membuat nama objek servo untuk pengontrolan servo
Servo myservo;
// variable untuk menyimpan posisi servo
int pos = 0;
void setup()
{
// objek servo diletakan pada pin 9
myservo.attach(9);
}
void loop()
{
// start dari 0 derajar sampai 180 derajat
for(pos = 0; pos < 180; pos += 1)
{
// pada posisi 1 derajat
// memberitahu servo untuk pergi ke posisi 'pos'
myservo.write(pos);
// tunggu 15ms untuk pencapaian posisi servo
delay(15);
}
// start dari 180 derajat ke 0 derajat
for(pos = 180; pos>=1; pos-=1)
{
// memberitahu servo untuk pergi ke
posisi 'pos'
myservo.write(pos);
// tunggu 15ms untuk pencapaian posisi servo
delay(15);
}
}
void setup() {
Serial.begin(9600);
void loop() {
Serial.println(val);
delay(15);
}
B.2 Interfacing
B.2.1 light Dependent Resistor
Light Dependent Resistor (LDR) LDR merupakan salah satu jenis resistor yang
nilai resistansinya tergantung intensitas cahaya yang diterimanya. Nilai
resistansi LDR akan menurun pada saat cahaya terang dan nilai resistansinya
akan menjadi besar apabila dalam kondisi gelap.
Bahan-bahan
Breadboard
Potensiometer
Arduino UNO
LDR
Pada percobaan kali ini, kita akan membaca nilai LDR (Light Depend
Resistor) yang berubah-ubah tergantung intensitas cahaya yang diterima.
Const int ldr= A0; //pin A0 sebagai pembaca nilai LDR
int nilai;
void setup()
{
Serial.begin(9600);
}
void loop()
{
nilai= analogRead(ldr);
Serial.print("Nilai LDR: ");
Serial.println(nilai);
Delay(5);
B.2.2 Ultrasonic
Sensor jarak di sini saya mnggunakan Sensor Ultrasonic HC-SR04 atau HC-
SR05, yang mana sensor ini merupakan sensor yang dapat mengetahui jarak suatu
benda atau halangan, dengan menggunakan gelombang suara yang dikirim melalui
transmitter, kemudian gelombang akan memantul pada benda tertentu, dan akan
diterima kembali oleh Reciever. Kecepatan pantulan tersebut akan diolah oleh
mikrokontroler untuk ditampilkan sebagai jarak dengan algoritma rumus tertentu.
Rangkaian
-Arduino
-Project Board
-Sensor HC-SR04
Lalu buatlah rangkaian seperti gambar 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);
}
B.3 Display
B.3.1 LCD 16x2
LCD (Liquid Crystal Display) adalah suatu jenis media tampilan yang
menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan di
berbagai bidang, misalnya dalam alat-alat elektronik, seperti televisi, kalkulator
ataupun layar komputer. Pada Percobaan kali ini adalah dengan menggunakan
LCD 16x2 yang artinya LCD tersebut terdiri dari 16 kolom dan 2 baris karakter
(tulisan). yang perlu di persiapkan adalah sebagai berikut
Rangkaian
LCD 16x2
I2C
Arduino UNO (Type Lain)
Kabel dan Konektor
void setup()
{
// initialize the LCD
lcd.begin();
void loop()
{
// Do nothing here...
}
B.3.2 Dotmatrix
Dot matrix adalah susunan titik-titik dua dimensi yang digunakan untuk
menampilkan karakter-karakter, simbol atau gambar. Dahulu dot matrix
digunakan pada printer- printer tua dan banyak perangkat tampilan digital. Pada
printer, titik-titik tersebut adalah daerah yang diredupkan. Sedangkan pada
display, titik-titik tersebut adalah daerah yang bercahaya. Sebagaimana pada
LED atau CRT display cara kerjanya titik-titik yang sebelumnya mati,
bercahaya sesuai sesuai obyek yang diinginkan.
A. ALAT DAN BAHAN
1) Arduino
2) Laptop
3) Kabel USB Connector Arduino ke Laptop
4) Dot Matrix 8 x 8
5) Kabel Jumper
B. LANGKAH PERCOBAAN
1) Menyiapkan alat dan bahan percobaan
2) Menyusun rangkaian seperti gambar berikut :
3) Kemudian memasang USB kabel pada arduino dengan port USB yang
terdapat pada PC untuk mengupload program.
#include "LedControl.h"
byte invader2a[] =
{
B00100100, // First frame of invader #2
B00100100,
B01111110,
B11011011,
B11111111,
B11111111,
B10100101,
B00100100
};
void setup()
{
lc.shutdown(0,false); // Wake up displays
lc.shutdown(1,false);
lc.setIntensity(0,5); // Set intensity levels
lc.setIntensity(1,5);
lc.clearDisplay(0); // Clear Displays
lc.clearDisplay(1);
}
void sinvader2a()
{
for (int i = 0; i < 8; i++)
{
lc.setRow(1,i,invader2a[i]);
}
}
void loop()
{
// Put #1 frame on both Display
sinvader1a();
delay(delayTime);
sinvader2a();
delay(delayTime);
char keymap[numRows][numCols]=
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
void setup()
{
Serial.begin(9600);
}
void loop()
{
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY)
{
Serial.print(keypressed);
}
}
BAGIAN C
(Advance)
Logika Kontak Relay
KREASI dan KREATIFITAS
C.1 Relay
Relay merupakan salah satu jenis saklar yang dioperasikan dengan menggunakan
prinsip elektromagnetik. Medan magnet yang timbul akibat kumparan dialiri arus
akan menggerakkan kontaktor penghubung/pemutus rangkaian secara tidak
langsung.
Rangkaian lampu dengan kendali modul relay. Sumber: dokumen pribadi. Perintah
yang digunakan, sebagaimana yang sudah dijelaskan diatas relatif sama dengan
perintah yang digunakan pada bagian LED blink.
Selamat Berkreasi