MODUL Mikrokontroller (Arduino)
MODUL Mikrokontroller (Arduino)
1
Board Arduino Uno
Microcontroller ATmega328P
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limit) 6-20V
Digital I/O Pins 14
PWM Digital I/O Pins 6
Analog Input Pins 6
DC Current per I/O Pin 20 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328P) of which 0.5 KB
used by bootloader
SRAM 2 KB (ATmega328P)
EEPROM 1 KB (ATmega328P)
Clock Speed 16 MHz
LED_BUILTIN 13
Length 68.6 mm
Width 53.4 mm
Weight 25 g
2
Arduino Mega
Microcontroller ATmega2560
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limit) 6-20V
Digital I/O Pins 54
Analog Input Pins 16
DC Current per I/O Pin 20 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 256 KB of which 8 KB used by bootloader
SRAM 8 KB
EEPROM 4 KB
Clock Speed 16 MHz
LED_BUILTIN 13
Length 101.52 mm
Width 53.3 mm
Weight 37 g
3
Arduino Nano
Microcontroller ATmega328
Operating Voltage 5V
Flash Memory 32 KB of which 2 KB used by bootloader
SRAM 2 KB
Clock Speed 16 MHz
Analog IN Pins 8
EEPROM 1 KB
DC Current per I/O Pins 40 mA (I/O Pins)
Input Voltage 7-12 V
Digital I/O Pins 22 (6 of which are PWM)
PWM Output 6
Power Consumption 19 mA
PCB Size 18 x 45 mm
Weight 7g
4
Arduino Pro Mini
Microcontroller ATmega328
3.35 -12 V (3.3V model) or 5 - 12 V (5V
Board Power Supply
model)
Circuit Operating Voltage 3.3V or 5V (tergantung model)
Digital I/O Pins 14
PWM Pins 6
UART 1
SPI 1
I2C 1
Analog Input Pins 6
External Interrupts 2
DC Current per I/O Pin 40 mA
Flash Memory 32KB of which 2 KB used by bootloader
SRAM 2 KB *
EEPROM 1 KB *
8 MHz (3.3V versions) or 16 MHz (5V
Clock Speed
versions)
5
Dimana saya dapat mendapatkan Board Arduino?
Dipasaran ada beberapa pilihan arduino, sebagai contoh untuk arduino uno,
ada yang menjual dengan chip programmer atmega16u2 dan CH340,
biasanya untuk board arduino yang menggunakan chip programmer ch340
harganya lebih murah
Selain itu jika kita membeli yang versi CH340 maka saat instalasi software
arduino IDE kita perlu menginstall secara terpisah driver CH340 itu sendiri.
6
Apa itu software Arduino IDE?
7
3. Centang semua opsi dan klik Next
8
Catatan : Jika menggunakan board arduino yang
menggunakan chip programmer CH340 maka
memerlukan pemasangan driver CH340, sedangkan
untuk board yang menggunakan chip programmer
atmega16u2 driver sudah terinstall secara otomatis
saat instalasi software arduino IDE.
4. Selesai
9
Memeriksa Port / Memastikan Driver telah Terinstall dengan Baik
10
Berikut ini adalah contoh jika driver arduino yang menggunakan chip
programmer ch340 sudah terinstall dengan baik, pada gambar berikut
COM19 adalah alamat com arduino (kadang dapat berubah)
11
4. Pilih Browse my computer for driver software
6. lalu kilik Next, dan Windowspun akan mencari dan menginstal driver
yang berada pada Folder tersebut.
12
7. Setelah muncul peringatan seperti, centang always trust software from
“Arduino LLC” lalu klik Install
13
Menulis Program
Berikut ini adalah antar muka software arduino IDE berserta perintah –
perintahnya yang nantinya akan digunakan untuk memprogram arduino
14
1. File
1) New
Membuat file Sketch
2) Open
Membuka file Skecth
3) Open Recent
Membuka file Sketch yang dibuka sebelumnya
4) Sketchbook
Menunjukkan Sketch saat ini dalam struktur folder Sketch
5) Example
Contoh Sketch yang diberikan oleh Software Arduino IDE
6) Keluar
Menutup Editor File Sketch
7) Save
Menyimpan sketch sesuai dengan nama dan lokasi sebelumnya
8) Save As
Menyimpan sketch dengan nama / lokasi file yang berbeda dari
sebbelumnya
9) Page Setup
Membuka pengaturan halaman untuk dicetak
10) Mencetak
Mencetak Sketch sesuai dengan ppengaturan di Page Setup
11) Preferensi
Membuka jendela Preferensi / tempat beberapa pengaturan Arduino
IDE yang dapat dikustomisasi
12) Quit
Menutup semua Sketch / Menutup Software Arduino IDE
2. Edit
1) Undo / Redo
Kembali (undo) / maju (redo) satu langkah atau lebih saat menulis
program
2) Cut
Hapus teks yang dipilih dari editor dan meletakkannya di clipboard.
3) Copy
Menggandakan teks yang dipilih di editor dan letakkan di clipboard.
4) Copy for Forum
Menyalin Sketch ke clipboard dalam bentuk yang sesuai untuk
posting ke forum Arduino, lengkap dengan pewarnaan Sketch
5) Salin sebagai HTML
Menyalin Sketchke clipboard sebagai HTML (cocok untuk disematkan
di halaman web)
6) Paste
Menempelkan konten di clipboard ke posisi kursor di editor
15
7) Select All
Memilih dan menyoroti seluruh konten di text editor
8) Comment / Uncomment
Sematkan atau hapus tanda “//” komentar di awal setiap baris yang
dipilih
9) Increase / Decrease Indent
Menambah / mengurangi tab pada text editor
10) Search
Membuka jendela pencarian
11) Search Next
Menuju baris karakter pencarian selanjutnya
12) Search Previous
Menuju baris karakter pencarian sebelumnya
3. Sketsa
1) Verify / Compile
Memeriksa kesalahan yang ada pada sketch
2) Upload
Mengkompilasi dan mengunggah file biner ke Arduino
3) Upload using Programmer
Mengkompilasi dan mengunggah file biner ke IC mikrokontroller
menggunakan external programmer seperti USBASP / FT232 atau
yang lain
4) Export compiled Binery
Menyimpan file .hex yang dapat disimpan sebagai arsip atau
diunggah ke Board Arduino menggunakan alat lain.
5) Show Skecth Folder
Membuka Lokasi Folder sketch yang dibuka.
6) Include Library
Menambahkan Library ke dalam Skecth. Selain itu, dari item menu
ini dapat diakses Library Manager dan mengimpor Library baru dari
file .zip.
7) Add File..
Menambahkan file Sketch. File baru akan ditampilkan di tab. File
dapat dihapus dari Sketch menggunakan menu tab yang dapat
diakses dengan mengklik ikon segitiga
4. Tools
1) Auto Format
Memformat kode pada Sketch dengan baik, Seperti menambahkan
Tab secara otomatis pada karakter didalam kurung kurawal agar
lebih menjorok kedepan.
2) Archive Sketch
Mengarsipkan salinan Sketch saat ini dalam format “.zip”. Arsip akan
ditempatkan di direktori yang sama dengan Sletch saat ini.
16
3) Fix Encoding & Reload
Memperbaiki kemungkinan ketidaksesuaian antara char map
encoding dan char maps sistem operasi lainnya.
4) Serial Monitor
Membuka jendela serial monitor untuk melakukan pertukaran data
dengan board arduino yang tersambung di Port yang saat ini dipilih.
Ini biasanya me-reset papan.
5) Board
Memilih jenis Board Arduino yang digunakan
6) Port
Memilih port yang terhubung dengan board arduino
7) Programmer
Memilih jenis Programmer jika akan memburning bootloader
menggunakan external programmer
8) Burn Bootloader
Melalukan burning bootloader ke IC Mikrokontroller
5. Help
Menemukan akses mudah ke sejumlah dokumen pembantu yang ada
didalam software Arduino IDE seperti akses ke Getting Started,
Reference, dan dokumen lain yang dapat diakses secara offline tanpa
koneksi internet
6. Compile / Verify
Memeriksa Program dari adanya kesalahan / error
7. Upload
Mengcompile program dan mengunggahnya ke Board Arduino
8. New
Membuat Skecth baru
9. Open
Membuka File Sketch
10. Save
Menyimpan File Sketch
17
Setelah kita belajar tentang software arduino IDE, sekarang saatnya kita
pelajari penggunaan software tersebut secara langsung
Langkah
1. Buka Software Arduino IDE
2. Buat File Baru (File > New)
3. Copy dan Paste coding berikut ke text editor
void setup()
{
// put your setup code here, to run once:
}
void loop()
{
// put your main code here, to run repeatedly:
}
Penjelasan
Pada Latihan ini kita belajar tentang cara meng-compile sketch Arduino.
Langkah
1. Buka Software Arduino IDE
18
2. Buat File Baru (File > New)
3. Copy dan Paste coding pada percobaan 1 dan ganti text void setup()
dengan Void setup() (kata “void” dengan huruf “v” kecil dan huruf “v”
besar) sehingga coding secara keseluruhan menjadi seperti ini
Void setup()
{
// taruh kode disini untuk dijalankan satu kali
}
void loop() {
// taruh kode di sini untuk dijalankan terus menerus
}
7. Klik Compile /
Verify
Penjelasan
Pada latihan kali ini kita belajar bahwa pada pemrograman arduino ini ada
istilah yang namanya “case sensitive”, dimana saat kita salah menuliskan
program baik itu salah besar kecilnya huruf seperti yang seharusnya “void”
salah menulis “Void” seperti kasus diatas, kurang titik koma, kurang titik
atau bahkan kelebihan spasi maka akan mengakibatkan kode / program
yang kita tulis tidak bisa di compile.
Langkah
1. Hubungkan Arduino ke Port USB Laptop
2. Pilih Board (Tools > Board) “Arduino / Genuino Uno”
19
3. Pilih Port tempat arduino berada
4. Tulis Program berikut ini di text editor
void setup()
{
// put your setup code here, to run once:
}
void loop()
{
// put your main code here, to run repeatedly:
}
Penjelasan
Pada latihan kali ini kita belajar cara meng-upload program ke board arduino
Bahan
1. Arduino Uno Board
20
Langkah
1. Compile program berikut ini
void setup() {
// taruh kode disini untuk dijalankan sekali
}
void loop() {
//taruh kode disini untuk dijalankan berulang
}
void setup() {
/* taruh kode disini
Atau disini
Atau disini
untuk dijalankan sekali */
}
void loop() {
/* Atau taruh kode disini
Atau disini
Atau disini
untuk dijalankan berulang */
}
Bahan
1. Arduino Uno Board
21
Langkah
1. Upload program berikut ini ke Arduino
void setup() {
Serial.begin(9600); //baudrate
Serial.println("joss");
}
void loop() {
Serial.println("gass");
delay(1000);
}
22
Penejelasan
Pada latihan kali ini kita belajar tentang cara mengirim data serial dari
arduino ke laptop atau yang lebih sering disebut komunikasi serial,
komunikasi serial sendiri sebenarnya tidak hanya sebatas dari arduino ke
laptop, bisa juga laptop ke arduino atau bahkan dari arduino ke device lain
(contoh : modul bluetooth, modul gsm, dll)
Selain belajar tentang cara mengirim data serial, Pada program diatas ada
beberapa pelajaran yang dapat kita ambil
1. Ketika membuka serial monitor maka akan tampil karakter “joss” sekali
dan karakter “gass” berulangkali, karakter “joss” tampil akibat dari
adanya baris kode
Serial.println("joss");
Serial.println("gass");
void setup() {
23
dimana semua kode yang ditempatkan didalam void setup() hanya akan
dijalankan satu kali selama arduino hidup, sedangkan karakter “gass”
ditampilkan berulang kali karena Serial.println("gass") ada di dalam
void loop() {
2. Saat karakter “gass” tampil, ada jeda selama beberapa saat sebelum
tampil karakter “gass” berikutnya, jeda tersebut akibat dari adanya baris
program
delay(1000);
delayMicroseconds(1000000);
void setup() {
Serial.begin(9600);
Serial.print("joss");
}
void loop() {
Serial.print("gass");
delay(1000);
}
24
Sudah tau bedanya? Nah, untuk mengakses komunikasi serial kita perlu
mengatur kecepatan / baudratenya di dalam baris program
Serial.begin(), semakin besar nilainya maka semakin cepat
komunikasinya, sebagai contoh kalian dapat membedakannya dengan
membandingkan dua program berikut ini (tanpa delay), bedakan hasil
dari program ini
void setup() {
Serial.begin(300);
Serial.print("joss");
}
void loop() {
Serial.print("gass");
}
Dengan ini
void setup() {
Serial.begin(2000000);
Serial.print("joss");
}
void loop() {
Serial.print("gass");
}
25
Latihan 6. Menyalakan LED (tanpa progam)
Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. LED
5. Resistor 330Ω
Langkah
1. Buat rangkaian seperti gambar dibawah ini (posisi arduino off)
Penjelasan
Pada latihan kali ini ada beberapa pelajaran yang dapat diambil, yaitu :
1. Kita belajar untuk menyalakan LED menggunakan pin 5V dan GND dari
Aduino
2. Kita belajar menggunakan breadboard, di dalam breadboard sendiri ada
metal konduktor yang berfungsi untuk menghubungkan tiap lubang
dengan jalur seperti gambar di bawah ini:
26
3. Kita belajar tentang penggunaan resistor pada rangkaian. Penggunaan
resistor ditujukan untuk membatasi arus yang melewati rangkian,
karena maksimal arus yang digunakan untuk menyalakan LED adalah
100mA, maka digunakan R sebesar 330Ω, dengan perhitungan sebagai
berikut:
Jadi pada rangkaian diatas arus yang menglir pada rangkaian LED adalah
15mA (Aman untuk LED)
Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. LED
5. Resistor 330Ω
Langkah
1. Buat rangkaian seperti gambar berikut ini
void setup() {
}
void loop() {
}
5. Lihat yang terjadi pada LED, LED mati? Benar ! karena tidak ada
program yang sedang bekerja di Arduino
6. Selanjutnya Upload Program berikut ini
/*
Program menyalakan LED menggunakan program
*/
void setup() {
//memfungsikan pin digital 13 sebagai output
pinMode(13, OUTPUT);
}
void loop() {
// memberikan sinyal HIGH pada pin D13
digitalWrite(13, HIGH);
28
}
Penjelasan
Pada latihan kali ini kita belajar tentang cara menyalakan sebuah LED
menggunakan program di Arduino, pada latihan kali ini kita belajar
menyalakan LED dengan perintah digital, apa itu perintah digital?
Perintah digital dalam latihan ini adalah perintah yang dimana hanya ada 2
kondisi yaitu LOW dan HIGH atau 0 dan 1, LOW berarti pin yang kita
perintah bertegangan 0 volt dan HIGH yang berarti pin yang kita perintah
bertengangan 5 Volt, perintah digital pada pemrograman arduino dapat
dijalankan dengan menuliskan baris program digitalW
digitalWrite(pin,logika). Sebagai contoh untuk mematikan LED pada pin
digital 13 silahkan upload program berikut (masih dengan rangkaian yang
sama)
/*
Program menyalakan LED menggunakan program
*/
void setup() {
//memfungsikan pin digital 13 sebagai output
pinMode(13, OUTPUT);
}
void loop() {
// memberikan sinyal / logika LOW pada pin D13
digitalWrite(13, LOW);
}
/*
Program menyalakan LED menggunakan program
*/
void setup() {
//memfungsikan pin digital 13 sebagai output
pinMode(13, OUTPUT);
}
void loop() {
// memberikan sinyal / logika LOW pada pin D13
29
digitalWrite(13, 0);
}
Perintah digitalWrite() dapat kita jalankan di semua pin I/O (input output)
pada board arduino, termasuk juga pada pin Analog, untuk membuktikannya
kalian bisa mencoba program berikut
/*
Program menyalakan LED menggunakan program
*/
void setup() {
//memfungsikan pin Analog 0 sebagai output
pinMode(A0, OUTPUT);
}
void loop() {
// memberikan sinyal / logika HIGH pada pin A0
digitalWrite(A0, 1);
}
30
Latihan 8. Memberi nama pada Pin
Pada beberapa percobaan diatas, ketika kita ingin mengganti pin yang ingin
digunakan maka kita harus mengganti pin yang digunakan pada beberapa
baris code, bayangkan jika nantinya program kita sangat panjang, tentu
tidak efisisien jika kita harus mencari dan mengganti satu persatu, untuk itu
kita perlu memberikan nama untuk setiap pinnya sehingga kita dapat
dengan mudah menghafal pin yang kita gunakan dan mudah ketika nantinya
ingin merubah pin yang akan digunakan, untuk memberikan nama pada
sebuah pin kita bisa menggunakan baris code #define [spasi] nama pin
[spasi] nomor pin. Untuk lebih jelasnya silahkan coba program berikut
menggunakan wiring seperti latihan sebelumnya
/*
Memberikan nama pada pin
*/
#define pinLampu A0 //mendefinisikan pin A0 dengan nama pinLampu
void setup() {
//memfungsikan pin Analog 0 sebagai output
pinMode(pinLampu, OUTPUT);
}
void loop() {
// memberikan sinyal / logika HIGH pada pin A0
digitalWrite(pinLampu, HIGH);
}
31
Latihan 9. Membuat LED berkedip (Flip-Flop)
Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. LED
5. Resistor 330Ω
Langkah
1. Buat rangkaian seperti gambar dibawah ini
/*
Program LED berkedip
*/
#define LED 13
void setup() {
//memfungsikan pin digital 13 sebagai output
pinMode(LED, OUTPUT);
}
32
void loop() {
// memberikan sinyal HIGH pada pin D13
digitalWrite(LED, HIGH);
// memberikan jeda 1 detik
delay(1000);
//memberikan sinyal LOW pada pin D13
digitalWrite(LED, LOW);
// memberikan jeda 1 detik
delay(1000);
}
Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. Push Button
5. Resistor 330Ω
Langkah
1. Buatlah rangkaian seperti gambar dibawah ini
/*
Program membaca sinyal digital dari Push Button
*/
33
#define PB 2
void setup() {
// mengatur baudrate
Serial.begin(9600);
// mendefinikasi pin 2 sebagai input
pinMode(PB, INPUT);
}
void loop() {
// menampilkan hasil pembacaan digital dari pin 2
Serial.println(digitalRead(PB));
delay(1);
}
Penjelasan
Pada latihan ini kita belajar untuk membaca nilai digital dari pin 2 arduino
dan menampilkannya di serial monitor, ada beberapa pelajaran yang dapat
kita ambil pada latihan ini, salah satunya adalah penggunaan pull up
resistor, pada rangkaian diatas kita menggunakan resistor yang berfungsi
sebagai resistor pull up, resistor pull up berfungsi agar arduino tidak bingung
ketika membaca nilai dari pin 2, karena ketika tidak memakai resistor pull
up maka saat push button tidak ditekan maka pin 2 tidak terhubung ke GND
dan juga tidak terhubung ke 5V, sehingga akan terjadi floating
(mengambang)
Oleh sebab itu digunakanlah resistor pull up agar ketika push button tidak
ditekan maka pin 2 akan terhubung dengan 5V melalui resistor sehingga pin
2 akan bernilai HIGH dan ketika push button ditekan maka pin 2 akan
terhubung ke GND secara langsung (tanpa hambatan) dan pin 2 akan
bernilai LOW, selain rangkaian yang menggunakan resistor pull up ada juga
rangkaian yang menggunakan pull down, rangkaian yang menggunakan
resistor pull down adalah seperti gambar berikut
34
Istimewanya, di chip Mikrokontroller AVR pada arduino sendiri sudah
tertanam internal pull up resistor, sehingga kita tidak perlu menambahkan
resistor pada rangkaian, internal pull up resistor tersebut dapat dicoba
menggunakan rangkaian dan program berikut
/*
Program membaca sinyal digital dari Push Button
*/
#define PB 2
void setup() {
// mengatur baudrate
Serial.begin(9600);
// mendefinikasi pin 2 sebagai input dan mengaktifkan internal pull up resistor
pinMode(PB, INPUT_PULLUP);
}
void loop() {
35
// menampilkan hasil pembacaan digital dari pin 2
Serial.println(digitalRead(PB));
delay(1);
}
Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. Push Button
5. LED
6. Resistor 330Ω
Langkah
1. Buatlah rangkaian seperti gambar dibawah ini
/*
Kontrol LED dengan push button
*/
//mendefinisikan pin 3 bernama LED
#define LED 3
//mendefinisikan pin 4 bernama pb
#define pb 4
void setup() {
// set pin LED sebagai pin Output
pinMode(LED,OUTPUT);
// set pin pb sebagai input dengan Pull Up resistor
pinMode(pb, INPUT_PULLUP);
36
// matikan LED
digitalWrite(LED, LOW);
}
void loop() {
if (digitalRead(pb) == LOW) //jika pin pb LOW (push button ditekan)
{ // maka
digitalWrite(LED,HIGH); // nyalakan LED
}
3. Tekan push button, maka LED akan hidup dan jika push button dilepas
maka LED akan mati
Penjelasan
Pada latihan kali ini kita coba menggabungkan beberapa progam yang sudah
pelajari sebelumnya, pada latihan ini juga ada pelajaran baru yaitu
penggunaan “IF Statement Conditions” dan Operator matematika.
Apa itu IF Statement Conditions? Adalah sebuah logika pemrograman “JIKA
– MAKA”, seperti pada program diatas kita menginginkan logika
Adapun pada program diatas hanya terdapat 1 kondisi, namun logika JIKA –
MAKA ini dapat kita tambah kondisinya menjadi beberapa kondisi dengan
penulisan logika IF ELSE, ELSE IF, ELSE dengan contoh penulisan sebagai
berikut:
IF ELSE
37
IF - ELSE IF – ELSE
/*
Kontrol LED dengan push button
*/
38
#define pb 4
void setup() {
// set pin LED sebagai pin Output
pinMode(LED,OUTPUT);
// set pin pb sebagai input dengan Pull Up resistor
pinMode(pb, INPUT_PULLUP);
// matikan LED
digitalWrite(LED, LOW);
}
void loop() {
//jika pin pb LOW (push button ditekan
if (digitalRead(pb == LOW))
{ // maka
digitalWrite(LED,HIGH); // nyalakan LED
}
// jika kondisi if tidak terpenuhi
else
{ // maka
digitalWrite(LED,LOW); //matikan LED
}
}
Operator Arti
== Sama dengan
!= Tidak sama dengan
> Lebih dari
< Kurang dari
>= Lebih dari
<= Kurang dari
&& Dan
|| Atau
% Sisa hasil pembagian,
Contoh :
5%5 = 0
5%4 = 1
5%3 =2
5%2 = 1
5%1 = 0
+ Tambah
- Kurang
39
/ Bagi
* Kali
= Assignment, memberi nilai pada sesuatu
Contoh : x = 2;
++ Menaikan nilai bilangan
-- Menurunkan nilai bilangan
Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. 2 Push Button
5. LED
6. Resistor 330Ω
Langkah
1. Buatlah rangkaian seperti gambar dibawah ini
Hubungkan pin digital 3 dengan pin resitor yang terhubung dengan pin
positif LED, hubungkan pin digital 4 dan 5 dengan salah satu pin push
button dan hubungkan pin push button yang lain dengan ground pin
arduino
2. Upload program berikut ke papan arduino
/*
Kontrol LED dengan push button
40
*/
void loop() {
//jika pin pb1 dan pb2 LOW (semua push button ditekan)
if (digitalRead(pb1 == LOW) && digitalRead(pb2 == LOW))
{ // maka
digitalWrite(LED,HIGH); // nyalakan LED
}
// jika kondisi if tidak terpenuhi
else
{ // maka
digitalWrite(LED,LOW); //matikan LED
}
}
5. Jika rangkaian dan program benar, Saat salah satu push button ditekan
maka led tidak akan hidup, baru setelah kedua push button ditekan
maka led akan hidup
Penjelasan
Pada latihan ini ada pelajaran yang bisa diambil yaitu penggunaan logika &&
(and), dimana logika and ini digunakan sebagai prasyarat dari if condition.
41
Latihan 13. Kontrol LED menggunakan push button (logika or)
Masih dengan rangkaian yang sama, pada latihan ini coba upload program
berikut
/*
Kontrol LED dengan push button
*/
void loop() {
//jika pin pb1 atau pb2 LOW (semua push button ditekan)
if (digitalRead(pb1 == LOW) || digitalRead(pb2 == LOW))
{ // maka
digitalWrite(LED,HIGH); // nyalakan LED
}
// jika kondisi if tidak terpenuhi
else
{ // maka
digitalWrite(LED,LOW); //matikan LED
}
}
Tekan salah satu push button dan lihat nyala LED, pada program diatas
terdapat logika or (atau) pada if condition dengan logika “JIKA push button
1 LOW (ditekan) atau push button 2 LOW (ditekan), MAKA nyalakan LED”
Bahan
1. Arduino Uno
2. Breadboard
42
3. Kabel Jumper
4. LED
5. Resistor 330Ω
Langkah
1. Buatlah rangkaian seperti gambar berikut ini
/*
Program Nyala LED dengan PWM
*/
#define LED 3
void setup() {
// mendefinikasi pin 2 sebagai output
pinMode(LED, OUTPUT);
}
void loop() {
// memberikan sinyal PWM pin 3
analogWrite(LED, 255);
}
3. Upload program berikut ini dan lihat seberapa terang nyala LED
43
/*
Program Nyala LED dengan PWM
*/
void setup() {
// mendefinikasi pin 2 sebagai output
pinMode(3, OUTPUT);
}
void loop() {
// memberikan sinyal PWM pin 3
analogWrite(LED, 160);
}
4. Upload program berikut ini dan lihat seberapa terang nyala LED
/*
Program Nyala LED dengan PWM
*/
#define LED 3
void setup() {
// mendefinikasi pin 2 sebagai output
pinMode(LED, OUTPUT);
}
void loop() {
// memberikan sinyal PWM pin 3
analogWrite(LED, 80);
}
5. Upload program berikut ini dan lihat seberapa terang nyala LED
/*
Program Nyala LED dengan PWM
*/
#define LED 3
void setup() {
44
// mendefinikasi pin 2 sebagai output
pinMode(LED, OUTPUT);
}
void loop() {
// memberikan sinyal PWM pin 3
analogWrite(LED, 0);
}
Penjelasan
Pada latihan ini kita coba belajar mengendalikan nyala terang sebuh LED
menggunakan perintah analogWrite();, pada percobaan sebelumnya sudah
kita pelajari tentang perintah digitalWrite();, yang berarti mengendalikan pin
pada arduino secara digital. Pada perintah digital hanya terdapat 2 kondisi,
kalau tidak HIGH (1) yaitu LOW (0). HIGH atau 1 berarti pin mengerluarkan
tegangan 5 volt dan LOW atau 0 berarti pin arduino mengeluarkan tegangan
0 volt.
Pada perintah analogWrite() kita tidak hanya memiliki 2 kondisi LOW dan
HIGH, namun kita bisa mengatur keluaran tegangan pada pin arduino
seolah-olah bervariasi dari 0 – 5volt, mengapa seolah – olah? Karena
sebenarnya tegangan yang dikeluarkan oleh pin arduino adalah 5 volt.
kenapa LED bisa nyala terang / redup? Karena ada pengaturan frekuensi
pada tegangan tersebut, untuk mempermudah pemahaman silahkan cermati
analogi berikut
1. ketika ada 100 sinyal dalam 1 detik, dan 100 sinyal tersebut berupa
perintah digitalWrite(x,HIGH), apa yang akan terjadi dengan nyala
lampu? Tentu nyala lampu akan terang (5Volt)
2. ketika ada 100 sinyal dalam 1 detik, dan 100 sinyal tersebut terbagi
menjadi perintah digitalWrite(x,HIGH) dan digitalWrite(x,LOW), apa
yang terjadi dengan nyala lampu? Tentu nyala lampu menjadi redup,
seolah olah mendapatkan tengan 2.5volt
3. ketika ada 100 sinyal dalam 1 detik, dan 100 sinyal tersebut terbagi
menjadi perintah digitalWrite(x,HIGH), digitalWrite(x,LOW), dan
digitalWrite(x,LOW), apa yang terjadi dengan nyala lampu? Tentu nyala
lampu menjadi redup dari pada analogi nomor 2, seolah olah
mendapatkan tengan 1.6volt
Itulah yang disebut PWM (pulse with modulation), pada analogi nomor 1
nilai logika HIGH / 1 pada PWM adalah 100% dari jumlah total sinyal PWM,
artinya tegangan seolah – olah 5volt x 100% = 5volt
45
pada analogi nomor 2 nilai logika HIGH / 1 pada PWM adalah 1/2 dari
jumlah total sinyal PWM, artinya tegangan seolah – olah 5volt x 1/2 =
2.5volt
pada analogi nomor 3 nilai logika HIGH / 1 pada PWM adalah 1/3 dari
jumlah total sinyal PWM, artinya tegangan seolah – olah 5volt x 1/3 =
1.6volt
Jika pada analogi diatas arduino dapat memberi sinyal 100x setap satu
detik, namun sesungguhnya arduino dapat memberikan sinyal sebanyak
980x (Arduino Uno pin 5 & 6) atau untuk lebih jelasnya dapat dilihat pada
tabel berikut
Pada papan arduino kita dapat menggunakan perintah PWM pada pin yang
mempunyai simbol (~), contoh pada arduino uno adalah pin 3, 5, 6, 9, 10,
11, untuk penulisan programnya sendiri adalah
analogWrite(pin,nilai)
Contoh:
analogWrite(5,255) ;
46
Latihan 15. animasi LED dengan PWM (for loop)
Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. LED
5. Resistor 330Ω
Langkah
47
Hubungkan pin digital 3 arduino ke resistor yang terhubung ke pin positif
LED, hubungkan pin GND arduino ke pin negatif LED
/*
Program Animasi LED dengan PWM
*/
#define LED 3
void setup() {
// mendefinikasi pin LED sebagai output
pinMode(LED, OUTPUT);
}
void loop() {
for ( byte value = 0; value < 255; value++)
{
analogWrite(LED,value);
delay(10);
}
Penjelasan
Pada latihan ini kita akan mendapati bahwa led pada pin 3 menyala dari
redup ke terang dan kembali lagi ke redup. Pada program diatas ada
beberapa pelajaran yang dapat kita ambil, yaitu :
1. Kita belajar tentang perintah for loop ( perulangan for), pada perulanga
for loop, semua program di dalam kurung kurawal for loop akan terus
dieksekusi selama prasyaratnya masih terpenuhi, baru setelah
prasyaratnya tidak terpenuhi akan dilanjutkan ke baris perintah
slnjutnya
48
Condition : kondisi / prasyarat berjalannya for loop
Increament : berisi logika penambahan (++) atau pengurangan (--)
2. Kita belajar tentang penggunaan variable. Cermati pada baris for ( byte
value = 0; value < 255; value++), ada bagian byte value = 0, apa itu
byte value? Byte merupakan tipe data sedangkan value adalah nama
dari tipe data tersebut, ada beberapa tipe data pada bahasa
pemrograman arduino seperti yang dijelaskan berikut
Bool / boolean
bool berfungsi menampung 2 nilai yaitu 0 dan 1 / true / dan false. Tipe
data bool / boolean akan menggunakan 1byte memori pada arduino
Contoh:
boolean val = false; // deklarasi variabel dengan tipe boolean dengan
nilai false / 0
boolean val = true; // deklarasi variabel dengan tipe boolean dengan
nilai true / 1
Char
Char berfungsi untuk menyimpan karakter huruf seperti ‘a’,’b’,’c’,’d’ dan
seterusnya. Tipe data ini menggunakan satu byte memori pada arduino.
Meskipun berfungsi untuk menampung karakter huruf, tipe data char
dapat digunakan dengan operator matematika karena setiap karakter
huruf mempunyai nomor urut tersendiri
Contoh :
karakter huruf “A” mempunyai nomor urut 65, dan karakter “a”
mempunyai nomor urut 97, untuk lebih jelasnya dapat dilihat pada tabel
ASCII char berikut ini
49
DEC Symbol DEC Symbol DEC Symbol DEC Symbol
42 * 66 B 90 Z 114 r
43 + 67 C 91 [ 115 s
44 , 68 D 92 \ 116 t
45 - 69 E 93 ] 117 u
46 . 70 F 94 ^ 118 v
47 / 71 G 95 _ 119 w
48 0 72 H 96 ` 120 x
49 1 73 I 97 a 121 y
50 2 74 J 98 b 122 z
51 3 75 K 99 c 123 {
52 4 76 L 100 d 124 |
53 5 77 M 101 e 125 }
54 6 78 N 102 f 126 ~
55 7 79 O 103 g 127 Delete
Unsigned char
Hampir sama dengan data char, hanya saja unsigned char berisi nomor
urut dari karakter yang ditulis
Contoh:
Unsigned char = ‘a’ maka nilai yang tersimpan adalah angka 97
byte
Char berfungsi untuk menyimpan angka dari 0 – 255 (8-bit)
Contoh
byte m = 25 (deklarasi variabel bernama m dengan tipe data byte yang
bernilai 25)
int
int / Integer berfungsi untuk menyimpan angka dari -32.768 sampai
32.767, tipe data ini memerlukan memori penyimpanan 2 byte, Namun
untuk jenis board arduino due, tipe data int dapat menyimpan data
sebesar 4byte ( -2.147.483.648 hingga 2.147.483).
Contoh:
int counter = 32 (deklarasi variabel bernama counter dengan tipe int
bernilai 32)
unsigned int
untuk tipe data unsigned int hampir sama dengan int, hanya saja untuk
nilai negatif tidak ada dan diganti dengan nilai positif semua sehingga
rentang nilai yang dapat disimpan adalah 0 - 4.294.967.295
50
Contoh:
Unsigned int x = 1000 (deklarasi variabel bernama x dengan tipe
unsigned int bernilai 1000)
Long
long berfungsi untuk menyimpan angka dari -2.147.483.648 sampai
2.147.483.647, tipe data ini memerlukan memori penyimpanan 4 byte
Contoh:
Long velocity = 102346 (deklarasi variabel bernama velocity dengan tipe
long bernilai 102346)
Unsigned long
Tipe data unsigned long hampir sama dengan long, hanya saja nilai yang
dapat disimpan adalah dari 0 sampai 4.294.967.295
Contoh:
Unsigned Long velocity = 101006 (deklarasi variabel bernama velocity
dengan tipe long int bernilai 101006)
float
long berfungsi untuk menyimpan angka pecahan desimal dari -
3.4028235 x 10 38 - 3.4028235 x 10 38, tipe data ini memerlukan memori
penyimpanan 4 byte
Contoh:
float num 100.67 = (deklarasi variabel bernama num dengan tipe float
bernilai 100.67)
String
String berfungsi untuk menyimpan data berupa text / kumpulan char
Contoh:
String text = “ini text saya” (deklarasi variabel bernama text dengan
tipe string dengan isi text “ini text saya”)
51
Latihan 16. animasi led (while loop)
Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. LED
5. Resistor 330Ω
Langkah
/*
Program Animasi LED dengan while
*/
#define LED 3
void setup() {
// mendefinikasi pin LED sebagai output
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
int x = 0;
void loop() {
x++; // naikan nilai x Serial.println(x);
digitalWrite(LED,HIGH) ;//nyalakan LED
52
delay(200); // jeda 100 milisecods
digitalWrite(LED,LOW); //matikan LED
delay(200); // jeda 100 milisecods
Penjelasan
Pada latihan kali ini led akan berkedip selama 200 miliseconds sebanyak 10
kali lalu akan menyala terus menerus (berhenti berkedip), pada latihan kali
ini ada beberapa pelajaran yang dapat kita ambil yaitu:
while(condition) {
// statement;
}
Hampir sama dengan for loop, pada perulangan while loop, jika prasyarat
while loop terpenuhi maka semua baris kode tidak akan dijalankan kecuali
yang berada di dalam while loop, atau dalam kata lain looping /
pengulangan hanya akan berjalan pda baris kode di dalam while loop, baru
setelah prasyaratnya tidak terpenuhi maka baris kode diluar while loop akan
di jalankan
Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. Variable Resistor
53
Langkah
1. Buatlah rangkaian seperti gambar berikut ini
/*
Membaca tegangan pada pin analog
*/
void loop() {
int nilai = analogRead(pin);
float tegangan = nilai * (5.0 / 1023.0);
Serial.print("nilai = ");
Serial.print(nilai);
Serial.print("voltase = ");
Serial.println(tegangan);
delay(1000);
}
54
Penjelasan
Pada latihan ini kita akan mendapati nilai sensor akan berubah ubah ketika
trimpot diputar, Pada program diatas ada beberapa pelajaran yang dapat
kita ambil, yaitu :
Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. 5 LED
5. 5 Resistor 330Ω
6. Variable Resistor
Langkah
1. Buatlah rangkaian seperti gambar berikut
55
/*
Kontrol led input tegangan
*/
#define pin A0
#define LED 10
void setup() {
Serial.begin(9600);
}
void loop() {
int nilai = analogRead(pin);
float tegangan = nilai * (5.0 / 1023.0);
Serial.print("nilai = ");
Serial.print(nilai);
Serial.print("volatse = ");
Serial.println(tegangan);
delay(200);
Penjelasan
Pada latihan kali ini kita belajar menggunakan data tegangan yang terbaca
untuk mengatur nyala (digital) dari Led yang ada. Dalam mengatur nyala
dari led kita menggunakan logika IF dan salah satu operator yaitu kurang
dari.
Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. 5 LED
5. 5 Resistor 330Ω
6. Variable Resistor
56
Langkah
1. Buatlah rangkaian seperti gambar berikut
Hubungkan pin positif LED masing masing ke pin digital 8, 9, 10, 11 dan
12 arduino, dan masing masing pin negatif led ke resistor yang
terhubung ke GND breadboard, hubungkan GND arduino ke GND
breadboard. Hubungkan pin terluar veriable resistor ke pin 5v arduino,
pin tengah variable resistor ke A0 dan pin terluar variable resistor pada
sisi yang lain ke Gnd breadboard
/*
Kontrol led input tegangan
*/
#define pin A0
#define LED1 8
#define LED2 9
#define LED3 10
#define LED4 11
#define LED5 12
void setup() {
Serial.begin(9600);
}
void loop() {
int nilai = analogRead(pin);
float tegangan = nilai * (5.0 / 1023.0);
Serial.print("nilai = ");
Serial.print(nilai);
Serial.print("volatse = ");
Serial.println(tegangan);
delay(200);
58
Penjelasan
Pada latihan kali ini kita belajar menggunakan data tegangan yang terbaca
untuk mengatur nyala (digital) dari 5 Led yang ada. Dalam mengatur nyala
dari 5 led kita menggunakan logika IF dan beberapa operator seperti kurang
dari dan lebih dari.
Bahan
1. Arduino Uno
2. LED
3. Variabel resistor
4. Resistor 330Ω
5. Kabel jumper
6. Breadboard
Langkah
/*
Program mengatur nyala led
*/
#define pin A0
#define LED 10 void
setup() {
pinMode(LED,OUTPUT);
}
int value = 0;
59
byte pwm = 0;
void loop() {
value = analogRead(pin);
pwm = map(value,0,1023,0,255);
analogWrite(LED,pwm);
}
Penjelasan
Pada bagian ini kita coba mengatur nyala (terang gelap) sebuah LED dengan
menggabungkan perintah analogRead() dan analogWrite(), pada latihan kali
ini ada pelajaran yang dapat diambil yaitu:
pwm = map(nilai,0,1023,0,255);
Bahan
1. Arduino Uno
2. LED
3. Resistor 330Ω
4. Kabel jumper
5. Breadboard
Langkah
60
Hubungkan pin digital 3 arduino ke resistor yang terhubung ke pin positif
LED, hubungkan pin GND arduino ke pin negatif LED
/*
Kontrol LED dengan serial monitor
*/
char x;
void loop() {
if (Serial.available()) // jika ada komunikasi serial masuk
{ // maka
x = Serial.read(); // isi variable char x dengan karakter dari serial monitor
}
if ( x == 'a') // jika x = a
{ // maka
digitalWrite(LED, HIGH ); // nyalakan LED
}
else if ( x == 'b') // jika x = b
{ // maka
digitalWrite(LED, LOW); // matikan LED
}
}
3. Buka serial monitor, ketik karakter “a” lalu send, ketik karakter “b” lalu
send, amati nyala LED
61
Penjelasan
Jika pada beberapa latihan sebelumnya kita telah sering mencoba mengirim
data dari arduino ke kemputer (serial monitor) dengan perintah serial.print()
maupun serial.println(), maka pada latihan kali ini kita coba melakukan
komunikasi dari komputer ke arduino dengan perintah serial.read()
switch (variable) {
case nilai prayarat 1:
// dijalankan ketika nilai variable sama dengan nilai prayarat 1
break;
case nilai prayarat 2:
// dijalankan ketika nilai variable sama dengan nilai prayarat 2
break;
default:
// dijalankan pada kondisi awal (default)
break;
}
Baris program break; digunakan untuk keluar dari logika switch case, untuk
lebih jelasnya bisa dicoba program berikut dengan rangkain yang sama pada
latihan sebelunya
62
/*
Kontrol LED dengan serial monitor (switch case)
*/
char x;
void loop() {
if (Serial.available()) // jika ada komunikasi serial masuk
{ // maka
x = Serial.read(); // isi variable char x dengan karakter dari serial monitor
}
switch (x) {
case 'a':
digitalWrite(LED, HIGH ); // nyalakan LED
break;
case 'b':
digitalWrite(LED, LOW ); // nyalakan LED
break;
default:
// tidak lakukan apa - apa
break;
}
}
Bahan
1. Arduino Uno
2. LED
3. Resistor 330Ω
4. Kabel jumper
5. Breadboard
63
Langkah
/*
Kontrol LED dengan serial monitor
*/
void loop() {
if (Serial.available()) // jika ada komunikasi serial masuk
{ // maka
x = Serial.readString(); // isi variable string x dengan data string serial
monitor
Serial.println(x);
}
if ( x == "on") // jika x = on
{ // maka
digitalWrite(LED, HIGH ); // nyalakan LED
}
else if ( x == "off") // jika x = off
{ // maka
digitalWrite(LED, LOW); // matikan LED
}
}
64
Penjelasan
Pada latihan ini kita coba membaca data berupa string dari serial monitor
untuk mengendalikan nyala LED, selain dapat membaca tipe data char dan
string, ada fungsi lain yang dapat kita gunakan dalam komunikasi serial,
antara lain adalah membaca data integer ( data numerik) dari serial
monitor, untuk lebih jelasnya dapat dicoba latihan berikutnya.
Pada latihan kali ini kita juga mengganti pengaturan newline pada latihan
sebelumnya dengan no line ending, apa maksutnya? Pada newline ending
saat kita mengirim data maka data tersebut akan ditambahkan karakter
“newline” atau biasa kita sebut dengan enter (karakter char nomor 10).
Sedangkan saat kita menggunakan no line ending, maka karakter yang
akan dikirim adalah karakter murni yang kita tulis di serial monitor. Adapaun
cariage return adalah menambahkan karakter cariage return ( karakter
char nomor 13) di akhir data dan both NL dan CL adalah menambahkan
karakter cariage return (char no 13) dan karakter newline ( char nomor 10)
di akhir data.
Bahan
1. Arduino Uno
2. LED
3. Resistor 330Ω
4. Kabel jumper
5. Breadboard
Langkah
/*
Kontrol LED dengan serial monitor
*/
int x;
void loop() {
65
if (Serial.available()) // jika ada komunikasi serial masuk
{ // maka
x = Serial.parseInt(); // isi variable x dengan data integer dari serial
monitor
Serial.println(x); // tampilkan data yang masuk
}
Penjelasan
Pada latihan ini kita coba membaca data berupa data numerik integer dari
serial monitor untuk mengendalikan nyala LED.
66
Latihan 24. Kontrol Led menggunakan Push Button 2
Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. Push Button
5. LED
6. Resistor 330Ω
Langkah
1. Buatlah rangkaian seperti gambar dibawah ini
Hubungkan pin digital 3 dengan pin resitor yang terhubung dengan pin
positif LED, hubungkan pin digital 4 dengan salah satu pin push button
dan hubungkan pin push button yang lain dengan ground pin arduino
2. Upload Program berikut ini
/*
Kontrol LED dengan push button 2
*/
//mendefinisikan pin 3 bernama LED
#define LED 3
//mendefinisikan pin 4 bernama pb
#define pb 4
void setup() {
// set pin LED sebagai pin Output
pinMode(LED,OUTPUT);
// set pin pb sebagai input dengan Pull Up resistor
pinMode(pb, INPUT_PULLUP);
// matikan LED
Serial.begin(9600);
}
67
bool statusPB;
bool x;
unsigned int counter;
void loop() {
statusPB = digitalRead(pb);
if ( counter % 2 == 0)
{
digitalWrite(LED,HIGH);
}
else
{
digitalWrite(LED,LOW);
}
delay(300);
}
else if ( statusPB == 1)
{
x = 0;
}
}
Penjelasan
Jika pada latihan terdahulu LED menyala ketika PB ditekan dan LED mati
ketika PB dilepas, maka pada latihan ini kita coba menambahkan logika baru
agar LED tidak mati ketika PB dilepas, dan LED akan mati jika di tekan lagi
Amati pada baris
Pada percobaan sebelumnya, ketika kita menekan Push button beberapa kali
maka LED akan menyala, namun setelah LED menyala dan kita mematikan
Arduino (melepas kabel power / USB) kemudian menghidupkannya lagi
maka LED akan dalam keadaan mati. Pada latihan kali ini kita akan coba
menambahkan perintah untuk menyimpan data psuh button ke dalam
memori, untuk lebih jelasnya dapat dicoba pada latihan berikut
Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. Push Button
5. LED
6. Resistor 330Ω
Langkah
1. Ubahlah program pada latihan diatas dengan program berikut (masih
dengan rangkaian yang sama)
/*
Menyimpan data ke dalam memori EEPROM
*/
69
// set pin LED sebagai pin Output
pinMode(LED,OUTPUT);
// set pin pb sebagai input dengan Pull Up resistor
pinMode(pb, INPUT_PULLUP);
// matikan LED
Serial.begin(9600);
}
bool statusPB;
bool x;
unsigned int counter;
void loop() {
statusPB = digitalRead(pb);
if ( counter % 2 == 0)
{
EEPROM.write(0,1);
}
else
{
EEPROM.write(0,0);
}
delay(300);
}
else if ( statusPB == 1)
{
x = 0;
}
2. Tekan push button sampai LED menyala lalu putuskan arduino dari
sumber tegangan
3. Sambungkan lagi arduino ke sumber tegangan, maka LED akan tetap
menyala (data push button tersimpan ke dalam memori)
70
Penjelasan
Pada latihan kali ini ada beberapa hal baru yang perlu dipelajari antara lain:
1. Penggunaan Library
Pada latihan kali ini kita menggunakan library EEPROM. Apa itu library?
Library merupakan kumpulan kode yang sudah dirangkai menjadi satu
untuk memudahkan pengguna dalam menggunakannya.Sebagai contoh
pada latihan diatas kita coba menulis data ke memory Arduino dengan
perintah EEPROM.write(), perintah yang sangat sederhana, namun
dibalik perintah tersebut (program di dalam library) sangat komplek
yang tidak memungkinkan jika ditulis sendiri dalam program kita (tidak
effisien), oleh karena itu di simpan pada file lain yang disebut dengan
library. Library di arduino ada 2 macam yaitu library bawaan software
Arduino IDE dan library dari luar yang harus kita install sendiri jika
diperlukan (dipelajari pada latihan selanjutnya). Untuk melihat dan
memasukan library bawaan software arduino IDE dapat dibuka di menu
sketch > include library
71
memori, contoh untuk arduino uno / nano dengan chip
microcontroller atmega328 besarnya memori adalah 1024 bytes
sehingga untuk menyimpan data dapat menggunakan alamat 0
sampai 1024 sedangkan Arduino Mega adalah 4096 bytes. Data
yang dapat disimpan ke dalam EEPROM adalah data numerik
berkisar antara 0 - 255
b. EEPROM.read(alamat)
EEPROM.read(alamat) berfungsi untuk membaca nilai yang
tersimpan pada alamat tertentu
c. EEPROM.update(alamat, nilai)
Hampir sama dengan EEPROM.write(), fungsi EEPROM.update juga
berfungsi menulis data ke alamat tertentu, namun pada
EEPROM.update() sebelum dilakukan penulisan maka data yang
sudah ada di alamat tujuan akan dilihat terlebih dahulu, jika data di
alamat sama dengan data yang akan ditulis maka tidak dilakukan
penulisan. Penggunaan EEPROM.update() dibanding EEPROM.write()
akan membuat umur dari microcontroller arduino lebih panjang,
karena jika data pada EEPROM diganti secara terus menerus
(maksimal 100.000x) maka memori EEPROM akan rusak, namun
EEPROM.update memerlukan waktu yang lebih lama dibandingkan
dengan EEPROM.write() karena harus melakukan pemeriksaan
sebelum menulis data
d. EEPROM.clear()
EEPROM.clar() berfungsi untuk menghapus data pada semua alamat
EEPROM
e. EEPROM.put(alamat, data float)
EEPROM.put(alamat, data float) berfungsi untuk menulis data float
ke alamat tertentu
f. EEPROM.get(alamat, variabel float)
EEPROM.get(alamat, variabel) berfungsi untuk membaca data float
yang tersimpan pada alamat tertentu kemudian menyimpannya ke
dalam variable (float) tertentu
Bahan
Arduino Uno
Langkah
1. Upload program berikut ke arduino
/*
Timer (millis)
72
*/
void setup() {
Serial.begin(9600);
}
void loop() {
waktu = millis();
Serial.print("Arduino telah hidup selama: ");
Serial.print(waktu);
Serial.println(" milisecods");
delay(1000);
}
Penjelasan
Pada latihan kali ini kita coba menggunakan perintah millis(), millis()
berisi data waktu terhitung saat arduino terhubung ke sumber arus
dalam satuan miliseconds (1/1000 detik), data pada millis akan kembali
ke 0 saat arduino tidak mendapatkan sumber arus atau jika arduino
hidup secara terus menerus selama 50 hari
Bahan
1. Arduino Uno
Langkah
1. Upload program berikut ke arduino
/*
Timer (micros)
*/
void setup() {
Serial.begin(9600);
}
void loop() {
waktu = micros();
Serial.print("Arduino telah hidup selama: ");
Serial.print(waktu);
Serial.println(" microseconds");
delay(1000);
}
73
2. Buka Serial monitor
Penjelasan
Pada latihan kali ini kita coba menggunakan perintah micros(), micros()
berisi data waktu terhitung saat arduino terhubung ke sumber arus
dalam satuan microsecods (1 / 1juta detik), data pada millis akan
kembali ke 0 saat arduino tidak mendapatkan sumber arus atau jika
arduino hidup secara terus menerus selama 70 menit
74
Daftar Pustaka
https://www.arduino.cc/en/Guide/Introduction
https://sites.google.com/site/informasiterbarusekali/pengertian-
mikrokontroller
75
76