0% menganggap dokumen ini bermanfaat (0 suara)
254 tayangan

Modul Pelatihan Arduino

Dokumen tersebut memberikan penjelasan tentang konsep dasar elektronika seperti LED berkelip, pembacaan analog dan penulisan digital, PWM, motor servo, dan interfacing dengan LDR. Secara ringkas, dokumen tersebut menjelaskan cara mengendalikan komponen elektronik dasar menggunakan Arduino.

Diunggah oleh

Dominik Dwi Satya
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
254 tayangan

Modul Pelatihan Arduino

Dokumen tersebut memberikan penjelasan tentang konsep dasar elektronika seperti LED berkelip, pembacaan analog dan penulisan digital, PWM, motor servo, dan interfacing dengan LDR. Secara ringkas, dokumen tersebut menjelaskan cara mengendalikan komponen elektronik dasar menggunakan Arduino.

Diunggah oleh

Dominik Dwi Satya
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 29

BAGIAN A

(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

Gambar. Blinking LED menggunakan arduino

1. Hubungkan Kaki Positif Led dengan pin arduino bernomor 13


2. Hubungkan kaki negative led dengan pin arduino Ground
3. Masukkan Program dibawah ke dalam google IDE.
4. Lalu upload program..
 Kode Pemrograman
Di bawah ini adalah kode pemrograman yang digunakan untuk blinking LED. Tidak
perlu mengetiknya karena sudah tersedia pada software Arduino. Klik menu File
> Examples > 1.Basic > Blink.

/*
Blink
Turns on an LED on for one second, then off
for one second, repeatedly.

This example code is in the public domain.


*/

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

pinMode (A0, INPUT) //mengonfigurasi pin analog 0 sebagai input


Sebagai contoh, kita akan melakukan pembacaan nilai potensiometer (data analog
resistif) dengan menggunakan pin analog pada arduino atau biasa dikenal dengan
analogReading. Selanjutnya data hasil pembacaan nilai potensiometer akan
dijadikan sebagai delay atau waktu tunda kedip LED.
Bahan-bahan:
 Arduino Uno
 Kabel Jumper
 Potensiometer
 Breadboard
 Resistor
 LED
Rangkailah seperti gambar berikut.

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.

int sensorPin = A0; // select the input pin for the


potentiometer
int ledPin = 13; // select the pin for the LED
int sensorValue = 0; // variable to store the value coming from
the sensor

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

Buat rangkaian seperti ini:


Rangkaian diatas sama dengan percobaan sebelumnya. Hanya saja disini kita akan
mengatur intensitas cahaya dari LED yang merupakan produk dari pengaturan
PWM.
Ketikkan sketch dibawah ini:
const int pinpot = A0; //pembacaan potensiometer dilakukan pin A0
const int pinled = 9; //keluaran LED melalui pin 9

int potval = 0; //nilai baca awal potensiometer


int outPWM = 0; //variabel penyimpan nilai potensiometer

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

void loop()
{
//membaca nilai analog
potval = analogRead(pinpot);
Serial.print (“Nilai Potensiometer = “);
Serial.println (potval);
Delay(1000);

//mengeluarkan nilai keluaran PWM melalui pinled


analogWrite(led, outPWM);

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.

Alat Dan Bahan


 Arduino UNO
 Motor Servo
 Kabel Jumper

Langkah Kerja

1. Hubungkan kaki ke-1servo berwarna merah ke 5V Arduino


2. Hubungkan kaki ke-2 servo berwarna kuning ke pin 9 Arduino
3. Hubungkan kaki ke-3 servo berwarna hitam ke GND Arduino

#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);
}
}

Selanjutnya, kita akan mencoba menggunakan potensiometer sebagai knob untuk


menggerakan servo. Servo akan bergerak sesuai sudut putaran potensiometer.
Ketika potensiometer diputar sebesar 180 derajat ke kanan atau kiri, maka servo
juga akan melakukan hal yang sama.
Rangkai seperti gambar dibawah ini!

Selanjutnya ketikkan sketch dibawah ini!


#include <Servo.h>

Servo myservo; // create servo object to control a servo

int potpin = 0; // pin analog untuk potensiometer


int val; // nilai variable potensiometer

void setup() {

Serial.begin(9600);

myservo.attach(9); // servo pada pin 9

void loop() {

val = analogRead(potpin); // membaca nilai potensio


(0-1023)

val = map(val, 0, 1023, 0, 180); // menskalakan menjadi 0-


180

Serial.println(val);

myservo.write(val); // mengatur nilai servo


sesuai potensiometer

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

Lalu buatlah rangkaian seperti gambar dibawah ini:

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:

Daftar koneksi sensor dengan arduino:


VCC 5V
Trig Pin 11
Echo Pin 12
GND GND

Kemudian ketikkan sketch berikut di IDE Arduino!


int trigPin = 11; //Trig - green Jumper
int echoPin = 12; //Echo - yellow Jumper
long duration, cm, meter;
void setup() {
//Serial Port begin
Serial.begin (9600);
//Define inputs and outputs
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop()
{
// Sensor dipicu oleh pulsa HIGH dari 10us atau lebih.
// Berikan pulsa LOW pendek terlebih dahulu untuk memastikan
pulsa HIGH bersih:
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Baca sinyal dari sensor: pulsa HIGH yang
// duration adalah waktu (dalam mikrodetik) dari pengirim
// Dari ping untuk penerimaan Echo off dari sebuah objek.
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
// convert jarak kedalam cm dan meter
cm = (duration/2) / 29.1;
meter = (duration/2) / 100;
Serial.print(meter);
Serial.print("m, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(250);
}
B.2.3 SENSOR DHT11
Sensor DHT11 adalah module sensor yang berfungsi untuk mensensing
objek suhu dan kelembaban yang memiliki output tegangan analog yang dapat
diolah lebih lanjut menggunakan mikrokontroler.
Rangkaian
1x Breadboard
1x Arduino
1x DHT11 Sensor
1x Resistor 10 Kilo Ohm
5x kabel Jumper male-male
Lalu buatlah rangkaian seperti gambar dibawah ini:

4. Hubungkan kaki ke-1 DHT11 ke 5V Arduino


5. Hubungkan kaki ke-2 DHT11 ke pin 2 Arduino
6. dengan menggunakan Resisitor 10 Kilo Ohm, hubungkan kaki ke-2
DHT11 ke 5V Arduino.
7. Hubungkan kaki ke-4 DHT11 ke GND Arduino
8. Untuk kaki Ke-3 DHT11 kita abaikan saja

#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

1. Hubungkan pin VCC pada LCD i2C ke pin 5V Arduino


2. Hubungkan pin GND pada LCD i2C ke pin GND Arduino
3. Hubungkan pin SCL pada LCD i2C ke pin SCL (atau bisa pake pin A5)
Arduino
4. Hubungkan pin SDA pada LCD i2C ke pin SDA (atau bisa pake pin A4)
Arduino
5. Jika sudah terhubung keseluruhan … tulis ulang kode dibawah ini dan
lakukan proses upload
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 for a 16 chars and 2 line


display
LiquidCrystal_I2C lcd(0x3F, 16, 2);

void setup()
{
// initialize the LCD
lcd.begin();

// Turn on the blacklight and print a message.


lcd.backlight();

lcd.print("17 AGUSTUS ");

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.

4) Membuka IDE Arduino , lalu mengetikan program berikut :

#include "LedControl.h"

LedControl lc=LedControl(12,11,10,2); // Pins:


DIN,CLK,CS, # of Display connected

unsigned long delayTime=200; // Delay between


Frames
// Put values in arrays
byte invader1a[] =
{
B00011000, // First frame of invader #1
B00111100,
B01111110,
B11011011,
B11111111,
B00100100,
B01011010,
B10100101
};

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);
}

// Take values in Arrays and Display them


void sinvader1a()
{
for (int i = 0; i < 8; i++)
{
lc.setRow(0,i,invader1a[i]);
}
}

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);

5) mengcompile dan mengupload program yang telah diketik tersebut ke


arduino
B.4 Arduino – KEYPAD

Alat Dan Bahan


 arduino
 Keypad
 Kabel Jumper
#include <Keypad.h>

const byte numRows= 4;


const byte numCols= 4;

char keymap[numRows][numCols]=
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};

byte rowPins[numRows] = {9,8,7,6};


byte colPins[numCols]= {5,4,3,2};

Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins,


numRows, numCols);

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 dalam relay. Sumber: openlabpro.com


Relay terdiri dari sebuah kumparan/coil dan minimal 2 kontak. Ketika
kumparan dialiri arus listrik maka medan magnet timbul dan menarik kontaktor
sehingga rangkaian menjadi closeloop atau openloop.
Kondisi saklar tertutup sebelum relay aktif dinamakan normally close,
sedangkan kondisi saklar terbuka sebelum relay aktif disebut juga sebagai normally
open.
Dalam pengaplikasiannya di Arduino, relay sudah diproduksi dalam bentuk
modul sehingga dalam mengaktifkan relay dapat menggunakan program yang
relatif sama dengan menyalakan sebuah LED. Perlu menjadi perhatian bahwa
modul relay arduino bersifat active-low (aktif ketika masukan bernilai 0).
Percobaan kali ini, kita akan menyalakan sebuah lampu dengan sumber
220VAC dengan relay sebagai saklarnya.
Bahan:
 Arduino UNO
 Lampu 220VAC
 Modul relay
 Kabel jumper
 Kabel listrik 220VAC
Hubungkan rangkaian seperti gambar dibawah ini!

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

Anda mungkin juga menyukai