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

Arduino PDF

[Ringkasan] Dokumen tersebut memberikan penjelasan singkat tentang pengertian Arduino, komponen-komponennya, dan cara kerja Arduino IDE. Secara ringkas, Arduino adalah mikrokontroler open source yang dirancang untuk memudahkan penggunaan elektronik. Ia terdiri dari hardware berupa board mikrokontroler dan software IDE untuk memprogramnya. Dokumen juga mendemonstrasikan cara kerja dasar Arduino dengan membuat lampu LED berkedip sebagai contoh program

Diunggah oleh

Alifnaian
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
85 tayangan

Arduino PDF

[Ringkasan] Dokumen tersebut memberikan penjelasan singkat tentang pengertian Arduino, komponen-komponennya, dan cara kerja Arduino IDE. Secara ringkas, Arduino adalah mikrokontroler open source yang dirancang untuk memudahkan penggunaan elektronik. Ia terdiri dari hardware berupa board mikrokontroler dan software IDE untuk memprogramnya. Dokumen juga mendemonstrasikan cara kerja dasar Arduino dengan membuat lampu LED berkedip sebagai contoh program

Diunggah oleh

Alifnaian
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 19

“MATERI 1: Pengenalan Arduino”

1.1 Apa itu Arduino?


Mikrocontroller sering dikenal dengan sebutan μC, uC, atau MCU adalah
komputer yang berukuran mikro dalam satu chip IC (integrated circuit) yang terdiri
dari processor, memory, dan antarmuka yang bisa diprogram. Jadi disebut komputer
mikro karena dalam IC atau chip mikrokontroller terdiri dari CPU, memory, dan I/O
yang bisa kita kontrol dengan memprogramnya. I/O juga sering disebut dengan GPIO
(General Purpose Input Output Pins) yang berarti pin yang bisa kita program sebagai
input atau output sesuai kebutuhan.
Arduino merupakan pengendali mikro single-board yang bersifat sumber terbuka,
diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan
elektronik dalam berbagai bidang. Seperti Microcontroller yang banyak jenisnya,
Arduino memiliki beberapa jenis diantaranya : Arduino UNO, Due, Mega, Leonardo,
Fio,Lilypad, Nano, Mini,Micro, Ethernet, Esplora, Robot.

Gambar 1.1 Board Arduino UNO

Board Arduino terdiri dari hardware/modul mikrokontroller yang siap pakai dan
software IDE yang digunakan untuk memprogram sehingga kita bisa belajar dengan
mudah. Kelebihan dari Arduino yaitu kita tidak direpotkan dengan rangkaian
minimum sistem dan programmer karena sudah built in dalam satu board.

Gambar 1.2 Project board dan Kabel Jumper


Project board atau yang dikenal dengan istilah beard board dan beberapa kabel
jumper nantinya akan kita gunakan saat praktek untuk menghubungkan antara
komponen dan Arduino. Dengan project board kita tidak perlu menyolder rangkaian
sehingga relative mudah dan cepat dalam merangkai. Project board sangat cocok
untuk eksperimen karena memungknkan kita untuk membangun dan membingkar
rangkaian dengan cepat. Tapi jika kita ingin membuat rangkaian yang permanen, kita
harus menggunakan PCB.

Gambar 1.3 Peta Jalur pada Project Board

Selain itu, terdapat jalur-jalur pada project board yang harus dipahami. Project
board board terdiri dari jalur vertikal dan jalur horisontal. Jalur vertikal ada di bagian
tengah yang terdiri dari 2 x 64 jalur. Masing-masing jalur terdiri dari 5 titik vertikal,
misal jalur 1A-1B-1C-1D-1E dan jalur 1F-1G-1H-1I-1J yang kedua tidak saling
tersambung.
Jalur horisontal sebanyak 8 jalur, 4 jalur ada di bagian atas dan 4 jalur lagi di
bagian bawah. Jalur ini bisa digunakan untuk power supply (VCC dan GND) untuk
rangkaian. Untuk lebih jelasnya, silakan perhatikan Gambar 1.3. Garis merah
menunjukkan bahwa lubang tersebut terhubung secara fisik.

1.2 Menginstal Arduino IDE


Instalasi Arduino IDE bisa dengan mendownload Arduino IDE di website Arduino,
yaitu di alamat : https://www.arduino.cc/en/Main/Software.
Arduino IDE sudah versi 2.0.0. Software Arduino ada yang versi installer (hanya
untuk Windows) dan versi terkompres dalam zip. Jika memilih versi tanpa install
(format.zip), maka hanya perlu mengekstrak di folder mana saja dan bisa langsung
dijalankan. Berikut beberapa Langkah instalasi di Windows:
1. Pasang board Arduino Anda ke port USB pada komputer atau laptop,
kemudian tunggu hingga Windows mencoba untuk menginstall driver sendiri.
2. Jika berhasil, berarti instalasi selesai. Tapi jika gagal, lanjutkan ke step
selanjutnya.
3. Install dari device manager. Untuk masuk ke device manager, bisa
melakukannya dengan dua cara:
a. Tekan “Windows”+R, maka akan muncul “Run”, ketikkan
“devmgmt.msc.” Kemudian tekan tombol ENTER. Jika benar, maka akan
muncul window Device manager.
b. Klik Start - pilih Control Panel. Di dalam Control Panel, pilih System and
Security, lalu pilih System. Selanjutnya pilih Device Manager.

Gambar 1.4 Tampilan Device Manager

4. Pada Device Manager, perhatikan bagian Ports (COM & LPT), akan muncul
device baru dengan nama "Arduino UNO (COMxx)"
5. Klik kanan pada "Arduino UNO (COMxx)", kemudian pilih "Update Driver
Software".
6. Selanjutnya pilih "Browse my computer for Driver software".
7. Cari folder software Arduino Anda, kemudian cari file arduino.inf (khusus
untuk Arduino UNO REF.3) pada folder Drivers.
8. Jika Anda menggunakan versi IDE di bawah 1.0.3, Anda bisa memilih driver
dengan nama file ArduinoUNO.inf
9. Jika berhasil, berarti instalasi driver sudah selesai. Jika belum, silakan Anda
mencari caranya, bisa tanya ke teman-teman ataupun mencari jawabannya
di internet.
10. Selanjut mari kita coba untuk mengupload sampel code yang ada pada
software Arduino
11. Jalankan Aplikasi Arduino (arduino.exe), pada pojok kanan bawah akan ada
tulisan "Arduino UNO on COMxx". Berarti port yang digunakan Arduino
adalah COMxx, jika tulisan tersebut tidak muncul, berarti instalasi driver
belum berhasil atau board Arduino belum disambungkan ke komputer.
Selanjutnya, silakan buka sampel led flipflop dengan cara Klik menu File >
Examples > 1.Basic > Blink
12. Setting board Arduino dengan cara : Klik menu Tools > Board > Arduino UNO
13. Klik tombol upload (tombol denga panah ke kanan)
14. Setelah berhasil diupload, akan muncul tulisan "Done uploading" di bagian
bawah. Jika berhasil, maka LED dengan tulisan "L" pada board Arduino akan
kelap-kelip.

1.3 Interface Arduino IDE


Aplikasi IDE (Integrated Development Environment) bawaan dari Arduino
berguna untuk membuat, membuka, dan mengedit source code Arduino (para
programmer menyebut source code arduino dengan istilah "sketches"). Sketch
merupakan source code yang berisi logika dan algoritma yang akan diupload ke dalam
IC mikrokontroller (Arduino).

Gambar 1.5 Interface Arduino IDE


Interface Arduino IDE tampak seperti gambar 1.5. Dari kiri ke kanan dan atas ke
bawah, bagianbagian IDE Arduino terdiri dari:
1. Verify : pada versi sebelumnya dikenal dengan istilah Compile. Sebelum aplikasi
diupload ke board Arduino, biasakan untuk memverifikasi terlebih dahulu
sketch yang dibuat. Jika ada kesalahan pada sketch, nanti akan muncul error.
Proses Verify/Compile mengubah sketch ke binary code untuk diupload ke
mikrokontroller. 14
2. Upload : tombol ini berfungsi untuk mengupload sketch ke board Arduino.
Walaupun kita tidak mengklik tombol verify, maka sketch akan di-compile,
kemudian langsung diupload ke board. Berbeda dengan tombol verify yang
hanya berfungsi untuk memverifikasi source code saja.
3. New Sketch : Membuka window dan membuat sketch baru
4. Open Sketch : Membuka sketch yang sudah pernah dibuat. Sketch yang dibuat
dengan IDE Arduino akan disimpan dengan ekstensi file .ino
5. Save Sketch : menyimpan sketch, tapi tidak disertai mengcompile.
6. Serial Monitor : Membuka interface untuk komunikasi serial, nanti akan kita
diskusikan lebih lanjut pada bagian selanjutnya
7. Keterangan Aplikasi : pesan-pesan yang dilakukan aplikasi akan muncul di sini,
misal "Compiling" dan "Done Uploading" ketika kita mengcompile dan
mengupload sketch ke board Arduino
8. Konsol : Pesan-pesan yang dikerjakan aplikasi dan pesan-pesan tentang sketch
akan muncul pada bagian ini. Misal, ketika aplikasi mengcompile atau ketika
ada kesalahan pada sketch yang kita buat, maka informasi error dan baris akan
diinformasikan di bagian ini.
9. Baris Sketch : bagian ini akan menunjukkan posisi baris kursor yang sedang aktif
pada sketch.
10. Informasi Port : bagian ini menginformasikan port yang dipakah oleh board
Arduino.

1.4 Program LED


1.4.1 LED Berkedip / flip-flop
LED merupakan kependekan dari Light Emiting Diode, yaitu diode yang
mampu mengubah listrik menjadi cahaya. Sebagaimana sifat diode, lampu LED
memiliki kaki positif dan negatif. Sehingga pemasangannya tidak boleh terbaik,
jika dipasang terbalik maka tidak akan ada arus yang mengalir dan LED pun tidak
akan menyala.
Arduino bekerja pada tegangan 5-12 volt dengan arus yang relatif besar
yang sanggup memutuskan LED. Sehingga jika kita ingin menyambungkan LED,
maka kita butuh tahanan (resistor) untuk membatasi arus yang masuk ke LED. LED
memiliki tegangan kerja yang disebut dengan forward voltage (fv) yang mana
tegangan ini adalah tegangan yang dibutuhkan LED untuk bisa menyala dengan
baik dan aman. Ukuran resistor yang bisa dipakai adalah 100Ω hingga 1KΩ, makin
besar nilai resistor maka nyala LED akan semakin redup.
Pada Arduino, tegangan yang keluar dari pin-pinnya adalah 0-5 volt.
Sementara catu daya untuk Arduino antara 5-12 volt. Oleh sebab itu, pemilihan
resistor tergantung tegangan mana yang akan kita gunakan.
Gambar 1.6 Rangkaian LED Berkedip

Buatlah rangkaian dengan Langkah-langkah sebagai berikut :


1. Pasang kaki anoda (+) LED ke pin 8 di board Arduino
2. Setelah itu, hubungkan kaki katoda (-) LED ke resistor 220 ohm lalu ke pin
GND pada board Arduino.
3. Hubungkan board Arduino ke komupter/laptop dengan kabel USB
downloader.
Selanjutnya, buka program Arduino dan ketiklah sketch program berikut ini

// IRIS MAGANG
// Arduino
// LED FLIP FLOP

const int pinLED = 8;

void setup () {
pinMode(pinLED, OUTPUT);
}

void loop() {
diigitalWrite(pinLED, HIGH);
delay(500);
digitalWrite(pinLED,LOW);
delay(500);
}
Fungsi setup() dan fungsi loop() merupakan fungsi wajib dan harus ada. Fungsi
setup() digunakan untuk inisialisasi program, fungsi ini hanya dijalankan sekali yaitu ketika
program pertama kali dijalankan (ketika arduino pertama kali dihidupkan). Sedangkan
fungsi loop() akan dijalankan terus-menerus (looping forever) hingga Arduino dimatikan.

Nama-nama pin pada Arduino sama seperti yang tertera di board. Pada salah satu
sisi board, nama-nama pinnya adalah 0 hingga 13, kemudian di sisi lain nama-nama pinnya
A0 hingga A5, dst. Perintah pada baris 5 artinya : Variabel pinLED merupakan konstanta
dalam bentuk integer yang merujuk pada pin 8 board Arduino.

Fungsi pinMode() memberi tahu bahwa pinLED adalah Output. Dengan demikian
mikrokontroller tidak akan “membaca” logika pin tersebut, akan tetapi dia hanya akan
“menulis” logika pada pin tersebut. Dengan kata lain, jika kita ingin mendefinisikan bahwa
pin ini adalah input, maka kita tinggal mengubah OUTPUT menjadi INPUT. pinLED diset
HIGH berarti LED akan diberi tegangan 5 volt, sedangkan LOW berarti LED akan diberi
tegangan 0 volt. Oleh sebab itu, rangkaian LED di atas akan menyala ketika diberi HIGH
dan akan mati ketika diberi LOW.

Fungsi delay() digunakan untuk berhenti selama sekian milidetik. Karena 1 detik
= 1000 milidetik, maka pemberian nilai 500 berarti akan ada jeda selama ½ detik ketika
LED nyala dan ½ detik ketika LED padam. Ada beberapa hal yang perlu diperhatikan agar
tidak terjadi error dalam program :

- Penulisan “pinLED” tidak sama dengan “PinLED”


- Saat copy-paste dari file pdf ke Arduino IDE maka ada kemungkinan
perubahan whitespace (spasi,tab,blank line). Jika spasi tergantikan dengan
karakter tab atau blank line, maka sketch akan error.
- Setiap blok kode harus diapit dengan kurung kurawal „{‟ dan „}‟.
- Setiap ada kurung buka „(‟, harus ada kurung tutup „)‟.
- Penulisan angka tanpa embel-embel koma.
- Setiap baris kode akan ditutup dengan titik koma (semicolon) „;‟, kecuali
diakhir blokkode (ditutup dengan kurung kurawal).

Pada Arduino, komentar bisa disisipkan dengan dua cara:


1. Menggunakan double slash “//”, cara ini hanya bisa digunakan perbaris. Jadi
jika banyak baris yang ingin kita jadikan komentar, Anda bisa menggunakan
cara yang kedua. Contoh:
1 // ini komentar
2 // wani budal wani mati
3 // iris juara harga mati

2. Menggunakan pembuka “/*” dan penutup “*/”


1 /* ini komentar juga
2 Wani budal wani mati
3 Iris juara harga mati */

1.4.2 Perintah IF dan IF-ELSE


1.4.2.1 Perintah IF
1 if(timeDelay <= 0){
2 timeDelay = 1000;
3 }
Perintah IF pasti akan diikuti dengan kondisi yang bernilai True yang diapit
dengan tanda kurung, if (kondisi). Pada Sketch diatas kondisi yang digunakan
adalah timeDelay <= 0, timeDelay lebih kecil atau sama dengan nol. Artinya,
jika timeDelay bernilai 0 atau lebih kecil dari 0, maka blok kode dalam if akan
dieksekusi.
Beberapa operator matematika yang dibutuhkan dalam bahasa pemrograman
yaitu:

1.4.2.2 Perintah IF-ELSE


Pada dasarnya IF-ELSE merupakan pengembangan dari IF. ELSE berarti kondisi
yang tidak sesuai dengan kondisi dalam IF. Dengan kata lain, ELSE artinya “jika
tidak”
1.4.3 Perulangan dengan WHILE
Perintah WHILE merupakan perintah untuk melakukan perulangan berdasarkan
suatu kondisi, jadi banyaknya perulangan tidak bisa ditentukan dengan pasti.
Dalam WHILE seakan ada pengecekan kondisi seperti perintah IF untuk
melakukan perulangan. Bentuk umum dari perintah WHILE yaitu :
1 while( kondisi ){
2 // eksekusi code
3 }
Jika kondisi sesuai, maka perintah atau source code yang ada dalam kurung
kurawal “{}” tersebut akan dieksekusi
1.4.4 Kondisi True dan False
Secara teori, True berarti 1 dan False berarti 0. Dalam pemrograman yang
ini, kondisi False memang selalu 0, tapi True tidak selalu 1. Kondisi True adalah
selain 0.
while(1){
digitalWrite(pinLED, HIGH);
delay(100);
digitalWrite(pinLED, LOW);
delay(100);
}
Program di atas akan dijalankan selamanya (looping forever) selama
Arduino belum direset atau listrik tidak diputus. Sebab 1 berarti True, secara
harfiah baris while(1) dapat diartikan “selama bernilai benar, maka eksekusi kode
ini”. Berikut ini beberapa operator logika yang digunakan :

1.4.5 Perulangan dengan FOR


Berbeda dengan WHILE, dengan FOR kita bisa menentukan jumlah perulangan
dengan pasti. Pada Sketch 2.3, masing-masing WHILE akan melakukan perulangan
sebanyak 10 kali dengan cara mengurangi angka 1000 dengan 100 secara
bertahap. Jika menggunakan FOR, kita bisa melakukan perulangan tersebut lebih
sederhana. Format dasar dari FOR adalah:
for(statemen; kondisi; statemen){
1.4.6 LED Berderet

Gambar 1.7 Rangkaian LED


Buatlah rangkaian dengan Langkah-langkah sebagai berikut :
1. Siapkan 4 buah resistor dan 4 buah LED. Siapkan kabel jumper untuk menyuplai
GDN pada project board.
2. Masing-masing kaki negatif LED dihubungkan ke GND dengan resistor.
Sedangkan keempat LED tersebut dihubungkan berturut-turut dengan pin 8, 9,
10, dan 11 pada board Arduino.
3. Buka program Arduino, dan ketiklah sketch program berikut !
1 // Inisialisasi Pin LED
2 const int pinLED1 = 8;
3 const int pinLED2 = 9;
4 const int pinLED3 = 10;
5 const int pinLED4 = 11;
6
7 void setup() {
8 // pin LED sebagai output
9 pinMode(pinLED1, OUTPUT);
10 pinMode(pinLED2, OUTPUT);
11 pinMode(pinLED3, OUTPUT);
12 pinMode(pinLED4, OUTPUT);
13 }
14 void loop() {
15 // perulangan sebanyak 5 kali
16 // dari i=0 hinga i=4 atau (i < 5)
17 for(int i=0; i<5; i++){
18 if(i==1){
19 // jika i=1, hidupkan led 1, led yang lain mati
20 digitalWrite(pinLED1, HIGH);
21 digitalWrite(pinLED2, LOW);
22 digitalWrite(pinLED3, LOW);
23 digitalWrite(pinLED4, LOW);
24 }else if(i==2){
25 // jika i=2, hidupkan led 1 & 2, led 3 & 4 mati
26 digitalWrite(pinLED1, HIGH);
27 digitalWrite(pinLED2, HIGH);
28 digitalWrite(pinLED3, LOW);
29 digitalWrite(pinLED4, LOW);
30 }else if(i==3){
31 // jika i=3, hidupkan led 1, 2, & 3, led 4 mati
32 digitalWrite(pinLED1, HIGH);
33 digitalWrite(pinLED2, HIGH);
34 digitalWrite(pinLED3, HIGH);
35 digitalWrite(pinLED4, LOW);
36 }else if(i==4){
37 // jika i=4, hidupkan semua led
38 digitalWrite(pinLED1, HIGH);
39 digitalWrite(pinLED2, HIGH);
40 digitalWrite(pinLED3, HIGH);
41 digitalWrite(pinLED4, HIGH);
42 }else{
43 // jika tidak, matikan semua led
44 digitalWrite(pinLED1, LOW);
45 digitalWrite(pinLED2, LOW);
46 digitalWrite(pinLED3, LOW);
47 digitalWrite(pinLED4, LOW);
48 }
49 // delai selama 5 detik
50 delay(5000);
51 }
52 }

1.5 Input
1.5.1 Pushbutton

Gambar 1.8 Pushbutton dan simbolnya


Gambar diatas merupakan salah satu simbol pushbotton jenis NO (Normally
Open) dalam rangkaian elektronik. Normally Open berarti kondisi normal
(sebelum ditekan), maka terminal dalam kondisi tidak tersambung (open,
terbuka). Tapi ketika ditekan, maka masing-masing terminal akan terhubung.

Gambar 1.9 Rangkaian Pushbutton dan LED

Berikut Langkah-langkah yang harus dilakukan :


1. Siapkan LED dan pushbutton pada project board. Karena karena pushbutton
memiliki 4 buah kaki yang masing-masing terpisah, maka silakan tancapkan
pushbutton di tengah-tengah lajur project board sehingga kaki-kainya tidak
tersambung.
2. Salah satu kaki pushbutton dihubungkan ke GDN di project board, sedangkan
kaki pasangannya disambungkan ke pin 2 pada board Arduino. Bagaimana
cara mengetahui pasangan kaki-kaki pada pushbutton? Anda bisa
mengeceknya dengan AVO meter.
✓ Setting AVO meter untuk menghitung resistansi, kemudian cek
masing-masing pin pushbutton dengan probe. Jika tombol ditekan
jarum AVO meter bergerak menyimpang, berarti kaki-kaki tersebut
sepasang.
3. Untuk LED, sambungkan kaki negatif (pin yang lebih pendek) ke GND dengan
resistor
4. Kaki positif (kaki yang lebih panjang) disambungkan ke pin 8 pada board
Arduino dengan jumper.
Buatlah sketch dibawah ini
// pin 2 sebagai input dan pin 8 sebagai output
const int pinButton = 2;
const int pinLED = 8;
void setup() {
pinMode(pinButton, INPUT);
pinMode(pinLED, OUTPUT);

// aktifkan pull-up resistor


digitalWrite(pinButton, HIGH);
}
void loop() {
if(digitalRead(pinButton) == LOW){
digitalWrite(pinLED, HIGH);
}else{
digitalWrite(pinLED, LOW);
}
}

Kemudian, kita dapat mengontrol tingkat kecerahan LED menggunakan dua


buah pushbutton dengan ketentuan : pushbutton yang pertama untuk menaikkan
kecerahan LED hingga paling terang, sedangkan pushbutton yang kedua untuk
menurunkan kecerahan LED hingga LED padam. Fungsi kedua pushbutton ini mirip
dengan volume-up dan volume down. Yang satu untuk meningkatkan volume
(kecerahan), sedangkan satunya lagi untuk menurunkan volume (kecerahan).
Setidaknya ada dua cara untuk menaikkan atau menurunkan tingkat
kecerahan LED:
1. Mengubah arus yang masuk ke LED, cara ini bisa diaplikasikan dengan
mengubah nilai resistor
2. Menghidup-matikan LED dengan cepat atau lambat. Begini, ketika kita
menghiup-matikan LED dengan cepat, maka mata manusia tidak bisa
mengetahuinya. Yang ditangkap oleh mata adalah terang atau redupnya saja.
Jika kita menghidup matikan led dengan cepat, maka LED tersebut akan
terlihat terang, tapi kalau kita menghidup matikan LED dengan lebih lambat,
maka LED akan terlihat lebih redup.

Konsep yang kedua dikenal dengan istilah PWM (Pulse Width Modulation).
Apa itu PWM? Sebagian kaki / pin Arduino support PWM, kaki yang support PWM
ditandai dengan adanya tanda tilde (~) di depan angka pinnya, seperti 3, 5, 6, dan
seterusnya. Frekuensi yang digunakan dalam Arduino untuk PWM adalah 500Hz (500
siklus dalam 1 detik). Jadi, Arduino bisa menghidup-matikan LED sebanyak 500 kali
dalam 1 detik. Untuk menggunakan PWM, kita bisa menggunakan fungsi
analogWrite(). Nilai yang bisa dimasukkan pada fungsi tersebut yaitu antara 0 hingga
255. Nilai 0 berarti pulsa yang diberikan untuk setiap siklus selalu 0 volt, sedangkan
nilai 255 berarti pulsa yang diberikan selalu bernilai 5 volt.
// pin 2 & 3 sebagai input digital
const int pinBt1 = 2;
const int pinBt2 = 3;
const int pinLED = 9;
void setup() {
pinMode(pinBt1, INPUT);
pinMode(pinBt2, INPUT);
pinMode(pinLED, OUTPUT);

digitalWrite(pinBt1, HIGH);
digitalWrite(pinBt2, HIGH);
}
int brightness = 0;
void loop() {
if(digitalRead(pinBt1) == LOW){
// jika pushbutton ditekan
// tambahkan nilai brightness
brightness++;
}else if(digitalRead(pinBt2) == LOW){
// jika pushbutton2 ditekan
// kurangi nilai brightness
brightness--;
}

// brightness dibatasi antara 0 - 255


// jika di bawah 0, maka ganti dengan 0
// jika di atas 255, maka ganti dengan 255
brightness = constrain(brightness, 0, 255);

// pinLED diberi nilai antara 0 - 255


analogWrite(pinLED, brightness);
// delay agar perubahannya bertahap
delay(20);
}
Fungsi analogWrite() digunakan untuk memberikan data PWM atau data
analog. analogWrite() bisa menuliskan data dengan selang antara 0v hingga +5v pada
pin INPUT. Berbeda dengan digitalWrite() yang hanya bisa menuliskan HIGH atau
LOW, atau +5v atau 0v saja.

1.5.2 Potensiometer

Gambar 1.10 Potensiometer jenis trimmer

Gambar 1.11 Mengatur intensitas cahaya LED dengan potensiometer


Berikut adalah sketch megatur kecerahan LED dengan potensiometer :
// pin A0 adalah pin Analog
// pin 9 adalah pin digital support PWM
const int pinPot = A0;
const int pinLED = 9;
void setup() {
pinMode(pinPot, INPUT);
pinMode(pinLED, OUTPUT);
}
int sensor = 0;
int brightness = 0;
void loop() {
// baca nilai kaki A0 (sensor, potensiometer)
sensor = analogRead(pinPot);
// konversi nilai 0-1023 (Analog) menjadi 0-255 (PWM)
brightness = map(sensor, 0, 1023, 0, 255);
// tentukan brightness LED dengan PWM analogWrite(pinLED, brightness); }
Ketika program pada Sketch diatas, maka kita bisa mengatur brightness dan
hidup-mati LED dengan sempurna, berbeda dengan cara manual seperti
Rangkaian diatas, ada dua bagian yang perlu diperhatikan:
1. Pada baris 7, pinPot = A0. A0 adalah variabel untuk pin Analog ke 0. Sebenarnya
A0 sama dengan pin 14. Kita juga bisa menggunakan pin tersebut sebagai pin
digital. Tapi Anda tidak bisa menggunakan pin digital sebagai pin analog. Jadi,
gunakan pin A0 – A5 jika akan dihubungkan dengan sensor analog.
2. Pada baris 22, ada fungsi map(). Sebagaimana namanya, fungsi map()
digunakan untuk memetakan suatu nilai dari range tertentu ke range yang lain.
Berikut adalah parameter dalam fungsi map()
map(value, from_min, from_max, to_min, to_max);
Maka pada baris 22 berfungsi untuk mengubah nilai sensor yang awalnya ada
pada range 0-1024 menjadi nilai dengan range 0-255. Jika sensor benilai 512
(anggap saja ½ dari 1024), maka nilai tersebut akan dirubah menjadi 127 (anggap
saja ½ dari 255)

Berikut ini adalah sketch untuk Kedipan LED Responsive tanpa delay :
// pin A0 adalah pin Analog
// pin 9 adalah pin digital support PWM
const int pinPot = A0;
const int pinLED = 9;
void setup() {
pinMode(pinPot, INPUT);
pinMode(pinLED, OUTPUT);
}
long lastTime = 0;
int sensor = 0;
int ledValue;
void loop() {
// baca nilai kaki A0 (sensor, potensiometer)
sensor = analogRead(pinPot);

// led akan hidup/mati dengan durasi = nilai sensor


// jika nilai sensor 100 maka durasinya adalah 100ms
if(millis() > lastTime + sensor){
if(ledValue == LOW){
ledValue = HIGH;
}else{
ledValue = LOW;
}

// set lastTime dg nilai millis() yang baru


lastTime = millis();
digitalWrite(pinLED, ledValue);
}
}

1.6 Tugas Pendahuluan


1. Buatlah rangkaian LED Traffict light dengan mempraktikan pemograman LED
berderet (kreasikan dan jelaskan saat magang)!
2. Buatlah rangkaian dengan adanya LED , tombol /pushbutton, sensor serta
programnya !
.

Anda mungkin juga menyukai