Anda di halaman 1dari 33

MODUL 1

INPUT-Output Digital Pada Arduino

1. TUJUAN

 Menjalankan program blink dan digitalRead Serial


 Mengamati keluaran data berupa nyala LED dari Arduino
 Memanfaatkan Port Input dan Output Digital pada Arduino
 Membuat Program untuk kontrol nyala LED menggunakan switch on/off

2. DASAR TEORI

A. Arduino
Arduino dikatakan sebagai sebuah platform dari physical computing yang
bersifat open source. Arduino tidak hanya sekedar alat pengembangan, tetapi ia
adalah kombinasi dari hardware, bahasa pemrograman dan Integrated Development
Environment (IDE) yang canggih. IDE adalah sebuah software yang digunakan
untuk menulis program, meng-compileprogram menjadi kode biner dan meng-upload program ke
dalam memori mikrokontroler. Ada banyak projek dan alat-alat dikembangkan oleh akademisi dan
profesional dengan menggunakan Arduino, selain itu juga ada banyak modulmodul pendukung
(sensor, tampilan, penggerak dan sebagainya) yang dibuat oleh pihak
lain untuk bisa disambungkan dengan Arduino. Arduino berevolusi menjadi sebuah
platform karena ia menjadi pilihan dan acuan bagi banyak praktisi.
Salah satu yang membuat Arduino memikat hati banyak orang adalah karena
sifatnya yang open source, baik untuk hardware maupun software-nya. Diagram
rangkaian elektronik Arduino digratiskan kepada semua orang. Anda bisa bebas mendownload
gambarnya, membeli komponen-komponennya, membuat PCB-nya dan
merangkainya sendiri tanpa harus membayar kepada para pembuat Arduino. Sama
halnya dengan IDE Arduino yang bisa di-download dan diinstal pada komputer secara
gratis.
Sehubungan dengan pembahasan untuk saat ini software Arduino yang akan
digunakan adalah driver dan IDE, walaupun masih ada beberapa software lain yang
sangat berguna selama pengembangan Arduino. IDE Arduino adalah software yang
sangat canggih ditulis dengan menggunakan Java. IDE Arduino terdiri dari:

a. Editor program, sebuah window yang memungkinkan pengguna menulis dan


mengeditprogram dalam bahasa Processing.
b. Compiler, sebuah modul yang mengubah kode program (bahasa Processing)
menjadikode biner. Bagaimanapun sebuah microcontroller tidak akan bisa
memahami bahasaProcessing. Yang bisa dipahami oleh microcontroller adalah
kode biner. Itulah sebabnyacompiler diperlukan dalam hal ini.

Uploader, sebuah modul yang memuat kode biner dari Jomputer ke dalam memory
di dalam papan Arduino.
Arduino adalah pengendali mikro single-board yang bersifat open-source,diturunkan dari
Wiring platform, dirancang untuk memudahkan penggunaanelektronik dalam berbagai bidang.
Hardwarenya memiliki prosesor Atmel AVRdan softwarenya memiliki bahasa pemrograman sendiri.
Saat ini Arduino sangat populer di seluruh dunia. Banyak pemula yang belajar mengenal
robotika danelektronika lewat Arduino karena mudah dipelajari. Tapi tidak hanya
pemula, para hobbyist atau profesional pun ikut senang mengembangkan aplikasielektronik
menggunakan Arduino. Bahasa yang dipakai dalam Arduino bukan assembler yang relatif sulit, tetapi
bahasa C yang di sederhanakan dengan bantuan pustaka-pustaka (libraries) Arduino.
Arduino juga menyederhanakan proses bekerja dengan mikrokontroler, sekaligus menawarkan
berbagai macamkelebihan antara lain:

1. Murah : Papan (perangkat keras) Arduino biasanya dijual relatif murah(antara 125ribu
hingga 400ribuan rupiah saja) dibandingkan dengan platform mikrokontroler pro lainnya.
Jika ingin lebih murah lagi, tentu bisadibuat sendiri dan itu sangat mungkin sekali karena
semua sumber dayauntuk membuat sendiri Arduino tersedia lengkap di website Arduino
bahkandi website-website komunitas Arduino lainnya. Tidak hanya cocok untukWindows,
namun juga cocok bekerja di Linux.
2. Sederhana dan mudah : pemrogramannya Perlu diketahui bahwalingkungan pemrograman
di Arduino mudah digunakan untuk pemula, dancukup fleksibel bagi mereka yang sudah
tingkat lanjut. Untuk guru/dosen,Arduino berbasis pada lingkungan pemrograman
Processing, sehingga jikamahasiswa atau murid-murid terbiasa menggunakan Processing
tentu sajaakan mudah menggunakan Arduino.
3. Perangkat lunaknya Open Source Perangkat lunak Arduino IDEdipublikasikan sebagai
Open Source, tersedia bagi para
pemrogram berpengalaman untuk pengembangan lebih lanjut. Bahasanya bisa
dikembangkan lebih lanjut melalui pustaka-pustaka C++ yang berbasis padaBahasa C untuk
AVR.
4. Perangkat kerasnya Open Source Perangkat keras Arduino berbasismikrokontroler
ATMEGA8, ATMEGA168, ATMEGA328 danATMEGA1280 (yang terbaru
ATMEGA2560). Dengan demikian siapa saja bisa membuatnya (dan kemudian bisa
menjualnya) perangkat keras Arduinoi ni, apalagi bootloader tersedia langsung dari
perangkat lunak Arduino IDE-nya. Bisa juga menggunakan breadoard untuk membuat
perangkat Arduino beserta periferal-periferal lain yang dibutuhkan.

B. Input/Output Digital Arduino


Semua pin atau port pada Arduino baik pin Analog maupun pin Digital, dapat digunakan
sebagai pin digital. Maksud dari Digital disini berarti sinyal yang dikirimkan atau diterima bernilai 1
atau 0, on atau off, HIGH atau LOW, ada atau tidak ada sinyal. Berbeda dengan sinyal analog yang
nilainya bersifat kontinyu, yakni nilai antara 0 dan 1 dipertimbangkan. Pin digital berarti pin dapat
menerima atau mengirim sinyal digital.

Secara umum pin pada Arduino dapat dikonfigurasi ke dalam dua mode, yaitu mode input dan
mode output. Mode input berarti mengeset pin agar dapat digunakan untuk menerima masukan sinyal.
Mode output berarti mengeset pin agar dapat mengirimkan sinyal. Untuk mengeset mode pin, kita
gunakan fungsi pinMode(). Fungsi ini biasanya dipanggil di dalam fungsi setup(). fungsi ini
memerlukan dua parameter, pinMode([nomorPin], [mode]). Parameter pertama diisi oleh nomor pin,
dan parameter kedua diisi oleh konstanta INPUT atau OUTPUT, sesuai dengan mode yang ingin kita
gunakan. Sebagai contoh, lihat pada program berikut ini:
void setup()
{
pinMode(1, INPUT); // set pin 1 sebagai pin input
pinMode(2, OUTPUT); // set pin 2 sebagai pin output
}
Fokus pembahasan pertama kita saat ini yaitu Digital Input Output. Pada dasarnya semua pin
yang ada pada Arduino (ATMega) berada pada mode input secara default. Jadi ketika kita ingin
menggunakan suatu pin sebagai input, maka kita tidak mesti menuliskan pinMode(nomorPin,
INPUT);.

Untuk menerima input digital yang masuk ke pin, kita gunakan


fungsi digitalRead(nomorPin). Fungsi ini menerima satu parameter, yaitu nomor pin mana yang
akan dibaca nilai inputnya. Fungsi ini akan mengembalikan nilai 1 dan 0, atau HIGH dan LOW
(HIGH adalah konstanta dengan nilai 1 dan LOW adalah konstanta dengan nilai 0). Sedangkan untuk
mengeluarkan output digital maka kita menggunakan fungsi digitalWrite([nomor pin], [kondisi])
pada parameter kondisi diisi dengan HIGH atau LOW.
Gambar 1. Contoh Rangkaian Pushbutton
Jalankanlah program DigitalReadSerial pada Arduino IDE dengan membuka pada menu OPEN >
Basics > DigitalReadSerial kemudian sesuaiakan pin digital yang digunakan lalu amati yang terjadi.

Gambar 2. Contoh Rangkaian LED

Jalankanlah program Blink pada Arduino IDE dengan membukan menu OPEN > Basics > Blink
kemudian sesuaikan pin digital yang digunakan lalu amati yang terjadi.

3. PERALATAN YANG DIBUTUHKAN

 LED 4 buah
 Arduino UNO 1 buah
 Kabel jumper secukupnya
 Kabel USB 1 buah
 Board 1 buah
 Resistor 1kohm 2 buah dan 480 ohm 4 buah
 Switch 2 buah

4. RANGKAIAN PERCOBAAN
Pada kit LED yang telah dirangkai tersedia dua tombol yang rangkaiannya seperti pada
Gambar 1. Kedua jenis rangkaian ini disebut:
• Pull-down: S1 dipasang ke arah VDD, lalu disambung resistor ke GND.
• Pull-up: Sebaliknya S2 dipasang ke GND, lalu disambung resistor ke VDD.
Coba pahami rangkaian itu. berapa tegangan yang akan masuk ke pin D4 saat tombol S1
dilepas/ditekan ? Demikian pula berapa tegangan pada pin D2 saat tombol S2 dilepas/ditekan ?

Gambar 3. Rangkaian Pull Up dan Pull Down

5. PROGRAM PERCOBAAN

Gunakan sketch berikut di arduino ide.

int buttonPin = 4; // the number of the pushbutton pin


int ledPin = 8; // the number of the LED pin

// variables will change:


int buttonState = 0; // variable for reading the pushbutton status

void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}

void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
} else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}

Tugas:

1. Pada sketch di atas switch yang digunakan adalah switch 1, jika yang digunakan adalah switch 2
apa yang perbedaan yang akan terjadi?
2. Coba pelajari tentang Debounce pada switch, uraikan hal tersebut dalam laporan.
3. Apa yang dimasksud dengan Subrutin loop. Bagaimanakah menjalankannya ?
4. Jelaskan kegunaan dari fungsi delay()

6. ANALISA PERCOBAAN

Buat analisa berdasarkan hasil percobaan.

7. KESIMPULAN

Dari paparan di analisis buat kesimpulan praktikum.


MODUL 2
Input-Output Analog Arduino

I. TUJUAN

● Mampu membuat program untuk mengakses peripheral masukan analog dengan

tegangan referensi internal, vcc dan eksternal

● Mampu memahami pengaruh nilai tegangan referensi terhadap hasil konversi analog to

digital converter (ADC)

● Mampu membuat rangkaian input-output dengan arduino serta menjalankannya dengan

bahasa pemrograman

● Mampu mengetahui pengaruh terang-gelap Led dari hambatan pada potensiometer

● Memahami konsep sinyal analog dan juga konsep manipulasi sinyal dengan PWM

II. DASAR TEORI


Kali ini akan dijelaskan cara membaca input ouput dari pin analog Arduino. Arduino
mempunyai 6 pin analog yang dapat membaca input berupa voltase (dari 0 sampai 5 volt) dan
mengkonversikannya ke angka digital antara 0 (0 volts) dan 1024 (5 volts), yaitu pembacaan
dengan resolusi 10 bit. Salah satu komponen yang dapat mengeksploitasi tegangan input ini
adalah potensiometer atau biasa disebut juga dengan variable resistor. Potensiometer yang
terhubung dengan tegangan 5 volt akan memberikan tegangan antara 0 sampai 5 volt pada pin
bagian tengahnya, tergantung pada sudut diputarnya potensiometer tersebut. Kita kemudian dapat
menggunakan tegangan keluaran ini sebagai sebuah variabel didalam program kita.
Pada saat kita menggunakan tombol sebagai sinyal input/masukan pada pin input Arduino
maka sebenarnya kita hanya memberikan dua kemungkinan kondisi sinyal masukan yaitu tombol
tertekan atau tombol tidak tertekan. Pada saat tombol tertekan kita menghubungkan atau
memberikan tegangan 5 volt pada masukan sedangkan sebaliknya pada saat tombol dilepas
hanya memberikan tegangan 0 volt.
Kondisi input yang demikian dikenal sebagai digital input dengan logika 1 dan 0, dimana 1
untuk tegangan HIGH atau 5 volt dan 0 untuk tegangan LOW atau 0 volt. Begitu juga halnya
pada sisi output, jika hanya melibatkan dua kondisi keluaran seperti misalnya saat menghidupkan
dan memadamkan led pada suatu saat tertentu maka kita hanya melibatkan dua kondisi output
digital. Output digital 1 atau HIGH dengan output tegangan 5 volt dan output digital 0 atau LOW
dengan output tegangan 0 volt.
Perintah yang digunakan untuk output analog adalah analogWrite (pin,value), dimana:

● Pin: nomor pin Arduino yang akan digunakan sebagai analog output

● value: nilai duty cycle yang diinginkan dengan nilai 0-255, yang berarti nilai 0 untuk 0Volt

dan 255 untuk tegangan keluaran maksimum atau 5Volt.

III. PERALATAN YANG DIBUTUHKAN


Komponen yang diperlukan :

● 1 buah Arduino uno

● 1 buah potensiometer 10k ohm

● 1 breadboard

● 1 buah LED

● Kabel – kabel jumper

● 1 buah Resistor 220 ohm

IV. PERCOBAAN PRAKTIKUM


a. Input Analog

Gambar 1. Rangkaian Input Analog


1. Langkah – Langkah Percobaan

● Susunlah komponen – komponen praktikum seperti rangkaian percobaan


● Upload program percobaan 1

● Putar potensiometer dari minimum ke maksimum secara perlahan

● Lihat nilai pembacaan analog dengan serial monitor

● Lihat nilai pembacaan analog dengan serial plotter

● Lihat program percobaan 2 analisis perbedaannya dengan program percobaan 1

2. Program Percobaan
Program percobaan 1

void setup() {
//initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever :
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:
Serial.printIn(sensorValue);
delay(1); //delay in between reads for stability

Program percobaan 2

const int numReadings = 10;


int readings(numReadings);//the readings from the analog input
int readindex = 0; //the index of the current reading
int total = 0; //the running total
int average = 0; //the average
int inputPin = A0;

void setup() {
//initialize serial communication with computer;
Serial.begin(9600);
//initialize all the readings to 0;
for (int thisReading = 0; thisReading < numReadings; thisReading++) {
readings[thisReading] = 0;
}
}

void loop{}
{
// substract the last reading:
total = total – readings[readIndex];
//read from the sensor:
readings[readIndex] = analogRead(inputPin);
//add the reading to the total
total = total + readings[readIndex];
//advance to the next position in the array:
readIndex = readIndex + 1;

//if we’re at the end of the array….


if (readIndex >= numReadings) {
//…wrap around to the beginning
readIndex = 0;
}

//calculate the average:


average = total / numReadings;
//send it to the computer as ASCII digits
Serial.printIn(average);
delay(1); //delay in between reads for stability
}

b. Input Output Analog


Gambar 2. Rangkaian Output Analog

1. Program Percobaan
Program 1

int led = 13;//memilih pin digital untuk lampu led


int pinPot = A2;//pin untuk menerima sinal analog
int potVal = 0;//variabel untuk menyimpan nilai konversi analog ke digital
void setup() {
pinMode(led,OUTPUT);
}
void loop() {
potVal=analogRead(pinPot);//baca nilai analog dari potensiometer
potVal=map(potVal,0,1023,0,255);//ubah nilai (0-1023) menjadi (0-255)
analogWrite(led,potVal);//ubah nilai vR untuk mengatur kecerahan led
}

Program 2
Gambar 3. Rangkaian Output Analog (2)

Dengan rangkaian tersebut, coba dengan pemrograman dibawah ini

int pinLed = 3; // LED terhubung dengan pin 3


void setup(){}
void loop() {
// buat iterasi dari 0 sampai 255 dengan kelipatan 5
for (int nilai = 0; nilai = 0; nilai -= 5) {
// set nilai analog menggunakan iterasi di atas
analogWrite(pinLed, nilai);
// beri jeda waktu 3 milidetik
delay(30);
}
}

V. Analisa Percobaan
1. Pada percobaan input analaog jelaskan perbedaan dari program 1 dan program 2!
2. Bagaimana jika diperlukan tegangan referensi selain 5v? Jelaskan bagaimana cara maupun
konfigurasinya!
3. Jelaskan mekanisme ADC pada arduino!
4. Apa yang terjadi saat potensiometer diputar kearah maksimum dan minimum? Jelaskan
mengapa dapat terjadi?
5. Mengapa pada percobaan analog output diperlukan resistor?
6. Jelaskan bagaimana output arduino bisa untuk sinyal analog saat semua pin output arduino
berfungsi sebagai pin digital? (kaitkan dengan pwm dan jelaskan konsep pwm)
7. Pada percobaan analog output di program kedua, apa yang terjadi jika delay diberikan
sebesar 60?
MODUL 3

INTERUPSI EKSTERNAL

I. TUJUAN

• Mahasiswa mampu membuat sistem interupsi eksternal pada program dengan


menggunakan Arduino;
• Mahasiswa mampu menjelaskan proses dan fungsi dari sistem interupsi eksternal yang
telah dibuat;
• Mahasiswa mampu menjelaskan perbedaan mode interupsi eksternal berdasarkan jenis
pemicunya.

II. DASAR TEORI

Interupsi merupakan sistem dimana sinyal dapat memberhentikan pekerjaan suatu


mikrokontroler untuk sementara waktu. Biasanya, sistem interupsi digunakan pada pembacaan
rotary encoder dan monitoring user input. Selain itu, interupsi juga dapat membuat
mikroprosesor:
• Mendeteksi adanya picuan (trigger) pada masukan digital;

• Menghentikan suatu aliran normal jika muncul picuan;

• Memanggil suatu rutin kecil untuk menyelesaikan tugas secepat-cepatnya, lalu


return;
• Melanjutkan program secara normal.

Sistem interupsi dapat berjalan jika terdapat suatu pemicu. Pemicu tersebut dibedakan
menjadi empat jenis, antara lain sebagai berikut.
• LOW

• CHANGE

• RISING

• FALLING

Pada pemrogaman Arduino, sitem interupsi hanya dapat dijalankan jika terdapat fungsi
lain yang mampun menanganinya. Fungsi ini disebut dengan Interrupt Service Routine (ISR).
ISR dapat digunakan dengan sembarang nama namun harus tetap memenuhi kaidah penamaan
fungsi. Contoh penulisan fungsi ISR dapat dilihat sebagaimana berikut.
void setup(){
}

void loop(){

void interupsi(){

Adapun, fungsi interupsi tersebut dapat dijalankan pada saat sistem mendeteksi adanya
gangguan atau situasi tidak ideal. Misalnya, ketika dalam kondisi normal pin interupsi bernilai
HIGH, sedangkan sistem mendeteksi nilai LOW dari pin tersebut maka fungsi interupsi akan
dijalankan. Pin Arduino yang dapat digunakan untuk men-trigger interupsi dapat dilihat pada
tabel berikut.
Tabel 1. Pin Interupsi Pada Arduino

Jenis Board Pin Interupsi

UNO, Nano, MIni 2,3

Mega, Mega 2569, 2,3,18,19,20,21

MegaADK

Micro, Leonardo 0,1,2,3,7

III. ALAT DAN BAHAN PRAKTIKUM

Pada praktikum ini digunakan alat dan bahan sebagai berikut.

• Arduino

• Protoboard

• Resistor 480 ohm dan 10K ohm

• Push Button

• LED

IV. RANGKAIAN PERCOBAAN


Gambar 1. Rangkaian Percobaan Praktikum

V. PROSEDUR

a. Rangkaian tombol (S1) yang diberi resistor pull-down (R2). Luaran rangkaian
dikoneksikan ke pin D2 Arduino;
b. Hubungkan rangkaian LED dengan resistor R1 ke pin D3;

c. Upload program dan jalankan;

d. Amati Serial Monitor Arduino;

e. Tekan push button agak lama, amati kembali LED;

f. Ulangi beberapa kali.

VI. PROGRAM PERCOBAAN

// DEKLARASI
#define PIN_INT 2
#define PIN_LED 3
#define INT_CHANNEL 0
#define INT_MODE RISING
//IMPLEMENTASI
// data yang akan diubah oleh task interupsi
// dan dibaca oleh rutin biasa (setup dan loop)
// Harus volatile
volatile word cacah=0;
volatile boolean nyala=false;
// task interupsi, menaikkan count setiap terpanggil
void taskCounter() { cacah++; // naikkan cacahan
nyala = !nyala; // balikkan kondisi nyala
digitalWrite(PIN_LED, nyala);
}
void setup() {
Serial.begin(115200);
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_INT, INPUT);
// pasang task interupsi
attachInterrupt(INT_CHANNEL, taskCounter, INT_MODE);
}
word cacah_lama=0; // menyimpan harga counter terakhir
void loop() {
word cacah_baru;
// membaca interupsi dengan aman
noInterrupts(); // cegah interupsi terjadi
cacah_baru = cacah; // baca dari variabel global
interrupts(); // bolehkan interupsi lagi
// periksa event dan jalankan aksi
if (cacah_baru != cacah_lama) {
Serial.println(cacah_baru); cacah_lama = cacah_baru;
}
}
VII. ANALISIS

Analisis harus memuat penjelasan mengenai:

1. Prosedur praktikum dan tugas akhir praktikum secara singkat;

2. Jawaban dari setiap pertanyaan yang diberikan!

(**Catatan: analisis ditulis dengan jelas, tidak bertele-tele dan menggunakan kalimat pasif
yang sesuai.)

TUGAS AKHIR PRAKTIKUM

Dengan rangkaian yang sama seperti pada Gambar 1. Buatlah sistem interupsi untuk pemicu
FALLING dan CHANGE dengan mengubah INT_MODE pada program percobaan.
MODUL 4

Komunikasi Serial PC dan Mikrokontroller

I. TUJUAN

∙ Mahasiswa dapat memahami koneksi serial mikrokontroller dengan PC / Laptop. ∙ Mahasiswa


mampu menciptakan sketch (program) serial komunikasi.

II. DASAR TEORI

Komunikasi serial Arduino adalah komunikasi antara Arduino Uno dan Komputer yang dilakukan
melalui port USB. Dalam hal ini, Arduino Uno tidak hanya bisa mengolah data dari pin I/O secara
independ. Tetapi dapat juga dikomunikasikan dengan komputer untuk ditampilkan hasil dari
pengolahan datanya sehingga komunikasi yang dilakukan bersifat dua arah. Pada Arduino IDE
terdapat fasilitas untuk berkomunikasi dua arah melalui serial monitor yang dapat dimanfaatkan
dalam berbagai keperluan. Dengan menggunakan fasilitas ini, dapat dikirimkan data ke Arduino Uno
dan sebaliknya dapat membaca kiriman dari arduino uno. Tentu saja, hal ini memungkinkan dapat
mengontrol Arduino Uno melalui komputer dan memantau sesuatu yang sedang terjadi di Arduino
Uno. Sebagai contoh, saat mengirimkan isyarat untuk menghidupkan lampu atau memantau suhu
yang terdeteksi oleh sensor suhu di Serial Monitor. Ada satu istilah yang perlu kamu ketahui dalam
komunikasi serial, yaitu baudrate. Pengertian baudrate adalah kecepatan transfer data dalam bit per
satuan detik atau bit per second (bps). Beberapa pilihan baudrate pada Arduino yaitu 300, 600, 1200,
2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, dan 115200.

Jenis command komunikasi serial Arduino :

∙ Serial.begin() : untuk menentukan kecepatan pengiriman dan penerimaan data melalui port serial.
Kecepatan yang umum digunakan adalah 9600 bit per detik (9600 bps). Namun, kecepatan hingga
115.200 didukung oleh Arduino Uno. Contoh yang sering digunakan yaitu Serial.begin(9600).

∙ Serial.end() : digunakan untuk menghentikan program akan perintah komunikasi serial.

∙ Serial.available () : berguna untuk menghasilkan jumlah byte, angka, atau karakter di port serial
yang belum terbaca. Jika port serial dalam keadaan kosong, maka fungsi ini dapat menghasilkan nilai
nol.

∙ Serial.find() : Digunakan untuk mencari string dalam buffer data

∙ Serial.findUntil() : Untuk mencari buffer data hingga data sesuai kriteria yang diberikan bisa
ditemukan

∙ Serial.read() : berguna untuk membaca satu byte data yang terdapat di port serial. Setelah
pemanggilan Serial.read(), jumlah data di port serial berkurang satu.
∙ Serial.print(data) : berfungsi untuk mengirimkan data ke port serial dan menampilkannya di serial
monitor dalam satu baris saja. Apabila argumen format disertakan, data yang dikirim akan
menyesuaikan dengan format tersebut. Dalam hal ini, format yang digunakan bisa berupa.

∙ Serial.flush() : berfungsi sebagai untuk pengosongan data pembacaan yang ditaruh pada buffer.

∙ Serial.parseFloat() : berfungsi untuk bilangan titik mengambang atau real. ∙ Serial.println(data) :


memiliki fungsi yang hampir sama dengan serial print, yang memberi efek perpindahan baris
berikutnya.

∙ Serial.parseln() : untuk menghasilkan nilai bulat.

∙ Serial.write() : Untuk membaca data biner dari port serial. Biasanya data yang terkirim dalam
bentuk byte atau deretan data byte.

III. PERALATAN YANG DIBUTUHKAN

∙ Arduino Uno dan kabelnya

∙ Laptop atau komputer yang sudah terinstal Arduino IDE

∙ Lampu LED

∙ Kabel Jumper male to male

∙ Resistor 4700 Ohm

∙ Breadboard

IV. RANGKAIAN PERCOBAAN


V. PROGRAM PERCOBAAN

int x, angka;

int led=11;

void setup()

Serial.begin(9600);

pinMode(led,OUTPUT);

Serial.println("LED berkedip"); Serial.print("kedipan : ");

void loop()

if(Serial.available()>0)

angka=Serial.read()-'0';

Serial.println(angka);

for (x=0; x<=angka; x++)

digitalWrite(led, HIGH);

delay(200);

digitalWrite(led, LOW);

delay(200);

angka=0;

Serial.print("kedipan : ");

Serial.flush();

}
}

VI. ANALISA PERCOBAAN

1. Jelaskan kembali apa saja yang dilakukan pada praktikum kali ini?

2. Berapa baud rate yang digunakan dan apa yang terjadi apabila baud rate yang digunakan lebih
besar?

3. Pada video praktikum ketika diketik angka “6” maka lampu menyala sebanyak 7 kali, bagaimana
caranya agar angka yang diketik pada serial monitor sesuai dengan berapa kali lampu menyala?
(diketik angka “6” maka lampu menyala sebanyak 6 kali).

Tugas Akhir Praktikum

Buatlah rangkaian dengan komponen sebagai berikut :

1. LED 3 buah

2. Kabel jumper

3. Arduino Uno

4. Breadboard

5. Resistor 3 buah

Dan buatlah kode program dengan ketentuan sebagai berikut :

1. Apabila praktikan mengetik huruf “x” pada serial monitor maka led1, led2, dan led3 akan nyala
bergantian dengan :

- led1 akan mengalami nyala mati sebanyak 3 kali

- led2 akan nyala mati sebanyak 2 kali

- led3 nyala mati sebanyak 1 kali

2. Apabila mengetik huruf “z” pada serial monitor maka led1, led2, dan led3 akan nyala dan mati
secara bersamaan.
MODUL 5

DATA LOGGER

1. TUJUAN

● Mampu menampilkan data logger program arduino dalam bentuk excel

● Memanfaatkan PLX-DAQ dalam pembuatan data logger arduino

2. DASAR TEORI

A. Arduino

Arduino adalah pengendali mikro single-board yang bersifat open- source,diturunkan


dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai
bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa
pemrograman sendiri. Saat ini Arduino sangat populer di seluruh dunia. Banyak pemula yang
belajar mengenal robotika dan elektronika lewat Arduino karena mudah dipelajari. Tapi tidak
hanya pemula, para hobbyist atau profesional pun ikut senang mengembangkan aplika si
elektronik menggunakan Arduino. Bahasa yang dipakai dalam Arduino bukan assembler
yang relatif sulit, tetapi bahasa C yang disederhanakan dengan bantuan pustaka-pustaka
(libraries) Arduino. Arduino juga menyederhanakan proses bekerja dengan mikrokontroler,
sekaligus menawarkan berbagai macam kelebihan antara lain:
1. Murah : Papan (perangkat keras) Arduino biasanya dijual relatif murah(antara 125rb
hingga 400 ribu rupiah saja) dibandingkan dengan platform mikrokontroler pro
lainnya. Jika ingin lebih murah lagi, tentu bisa dibuat sendiri dan itu sangat mungkin
sekali karena semua sumber daya untuk membuat sendiri Arduino tersedia lengkap di
website Arduino bahkandi website-website komunitas Arduino lainnya. Tidak hanya
cocok untuk Windows, namun juga cocok bekerja di Linux.
2. Sederhana dan mudah : pemrogramannya Perlu diketahui bahwa lingkungan
pemrograman di Arduino mudah digunakan untuk pemula, dan cukup fleksibel bagi
mereka yang sudah tingkat lanjut. Untuk guru/dosen,Arduino berbasis pada lingkungan
pemrograman Processing, sehingga jika mahasiswa atau murid-murid terbiasa
menggunakan Processing tentu saja akan mudah menggunakan Arduino.
3. Perangkat lunaknya Open Source Perangkat lunak Arduino IDE dipublikasikan sebagai
Open Source, tersedia bagi para pemrogram berpengalaman untuk pengembangan lebih
lanjut. Bahasan ya bisa dikembangkan lebih lanjut melalui pustaka-pustaka C++ yang
berbasis pada Bahasa C untuk AVR.
4. Perangkat kerasnya Open Source Perangkat keras Arduino berbasis mikrokontroler
ATMEGA8, ATMEGA168, ATMEGA328 dan ATMEGA 1280 (yang terbaru
ATMEGA2560). Dengan demikian siapa saja bisa membuatnya (dan kemudian bisa
menjualnya) perangkat keras Arduino Mini, apalagi bootloader tersedia langsung dari
perangkat lunak Arduino IDE-nya. Bisa juga menggunakan breadboard untuk membuat
perangkat Arduino beserta periferal-periferal lain yang dibutuhkan.

B. Data logger
Data Logger adalah sebuah alat elektronik yang digunakan untuk mencatat data dari
waktu ke waktu yang terintegrasi dengan sensor serta instrumen. Secara singkat data logger
diartikan sebagai alat untuk mencatat data atau data logging. Data logger merupakan alat yang
menggunakan mikroprosesor dan memori internal yang digunakan untuk merekam data melalui
sensor.

Data logger secara fisik memiliki ukuran kecil dan memiliki teknologi terbaru sebagai
alat untuk merekam data seperti suhu, tekanan air, kelembaban dll. Ada banyak jenis pada data
logger dan biasanya ada yang menggunakan komputer untuk mengkoneksikannya dan untuk
mengaktifkannya menggunakan sebuah software. Hasil dari perekaman data dapat dilihat
melalui komputer.

Data Logger berbasis Desktop/PC ialah data logger yang dapat dikoneksikan melalui
komputer yang digunakan untuk mengumpulkan data melalui sensor dalam menganalisis serta
menampilkan hasil. Sistem pada data logger juga memiliki banyak kelebihan seperti fitur
perhitungan proses pemantauan alam.

Data logger kini dilengkapi dengan SCADA (Supervisory Control And Data Acquisition)
yang merupakan evolusi lebih lanjut dari sistem data logger berbasis komputer, dimana hasil
dari perekaman ditampilkan dalam bentuk grafis.
Pengaplikasian data logger biasanya digunakan untuk :

● Pengukuran terhadap ruangan tempat penyimpanan tujuannya adalah untuk menjaga suhu

dan ph agar sesuai dengan yang dibutuhkan)

● Pengukuran terhadap wilayah perindustrian

● Pengukuran terhadap hutan gambut

● pengukuran terhadap cuaca, dll.

Keuntungan menggunakan data logger adalah kemampuannya yang dapat mengunduh


otomatis data yang dikumpulkan setiap 24 jam. Setelah data logger diaktifkan, data logger
dapat merekam data dengan waktu yang ditentukan, hal ini memungkinkan untuk mendapatkan
gambaran yang komprehensif tentang kondisi lingkungan yang dipantau, contohnya seperti
suhu udara, kedalaman air, kelembaban dll.

C. PLX- DAQ

PLX - DAQ atau Parallax Data Acquisition merupakan add-ons data logger atau data
akuisisi pada Excel yang dikembangkan oleh Parallax. Dengan menggunakan add-ons ini
semua data dari plant yang dibutuhkan user dapat terekam secara real-time.
Berikut step demi step nya:

1. Menginstal

Langkah pertama, mendownload ZIP PLX-DAQ pada link berikut


https://www.parallax.com/downloads/plx-daq, kemudian mengikuti langkah instalasi hingga
selesai. Selanjutnya akan muncul ikon PLX-DAQ Spreadsheet pada desktop.
2. Konfigurasi
Membuka aplikasi PLX-DAQ yang telah terinstal dan membuka book baru. Untuk
menjalankan PLX-DAQ, Macros pada Ms. Excel harus diaktifkan, namun dengan catatan
harus berhati-hati jika mengaktifkan macros tanpa mengetahui sumber add-ons yang akan
dijalankan. Langkah untuk mengaktifkan macros adalah sebagai berikut,
a. Membuka tab File.
b. Klik Options.
c. Klik Customize the Ribbon dan pada bagian Main Tabs, menceklis bagian Developer dan
klik OK.
d. Setelah itu, Main Tab Developer akan muncul, pada tab tersebut klik Macro Security
kemudian pada Macro Settings memilih “enable all macros”.

3. Coding pada Arduino

Secara singkatnya, PLX-DAQ ini seakan-akan memindahkan tampilan serial monitor dan
serial print pada arduino ke Ms.Excel. PLX-DAQ ini tetap menggunakan serial komunikasi
UART sehingga code pada arduinonya tetap menggunakan Serial.print();

3. PERALATAN YANG DIBUTUHKAN

● Potensiometer 10k ohm ● Kabel USB 1 buah

● Arduino UNO 1 buah ● Board 1 buah

● Kabel jumper secukupnya ● PLX- DAQ

4. RANGKAIAN PERCOBAAN

Gambar 1. Rangkaian percobaan

5. LANGKAH-LANGKAH PERCOBAAN
Susunlah komponen-komponen praktikum seperti gambar di atas, caranya :
1. Hubungkan pin potensiometer pada gnd, A0, dan vcc (5v) dengan kabel jumper.
2. Hubungkan arduino dengan komputer menggunakan USB.
3. Paste program pada modul ke dalam arduino IDE.
4. Compile menggunakan verify button (tanda ceklis pada IDE arduino) untuk
mengecek ada atau tidaknya error/kesalahan dalam pengetikan
5. Upload program ke arduino dengan cara, pilih File > Upload to I/O board, atau
tekan tombol tanda panah pada jendela IDE arduino.
6. Amati tampilan serial monitor saat potensiometer diubah, pastikan nilainya
sudah benar.
7. Tutup arduin IDE tapi jangan reset program yang terdapat di arduino.
8. Buka spreadsheet PLX-DAQ

- Buka file

- Pilih options

- Pilih customize ribbon


- Pastikan ceklis “developer” dan tekan “ok”
- Klik developer pada ribbon
- Buka macro security dan pastikan pilih “ enable all macro (not
recommended; potentially dangerous code can run)

9. Setting port sesuai port yang awal tadi digunakan pada arduino dan baud 9600.
10. Hubungan plx dengan arduino dengan tekan tombol connect hingga
indicator “C” pada PLX yang semula merah berubah menjadi hijau.

11. Jika kita ingin mendownload data hasil percobaan maka atur control
dengan menseting download data sebelum plx dihubungkan dengan arduino.
12. Atau dengan setelah data dirasa cukup, perlu diputuskan hubungan plx
dengan arduino dengan menekan tombol unconnect lalu save as data pada excel
pada lokasi yang diinginkan.
6. PROGRAM PERCOBAAN

void setup(){

Serial.begin(9600); Serial.println("CLEARDATA");
Serial.println("LABEL,Acolumn,Bcolumn,...");
Serial.println("RESETTIMER");
}

void loop(){

int sensorValue = analogRead(A0);


Serial.print("DATA,TIME,TIMER,");
Serial.println(sensorValue);
delay(100);
}

7. ANALISA PERCOBAAN
Buat analisa berdasarkan hasil percobaan dan jabarkan fungsi setiap langkah yang dilakukan
selama praktikum.

8. KESIMPULAN
Dari paparan di analisis buat kesimpulan praktikum
MODUL 6

Sensor Ultrasonik

1. TUJUAN

 Mampu mengaplikasikan sensor ultrasonic dengan mikrokontroler Arduino.

 Dapat membuat program, sensor ultrasonik sebagai pengukur level cairan.

2. DASAR TEORI

A. Arduino

Arduino adalah pengendali mikro single-board yang bersifat open source,diturunkan dari
Wiring platform, dirancang untuk memudahkan penggunaanelektronik dalam berbagai bidang.
Hardwarenya memiliki prosesor Atmel AVRdan softwarenya memiliki bahasa pemrograman
sendiri. Saat ini Arduino sangat populer di seluruh dunia. Banyak pemula yang belajar mengenal
robotika danelektronika lewat Arduino karena mudah dipelajari. Tapi tidak hanya pemula, para
hobbyist atau profesional pun ikut senang mengembangkan aplikasi elektronik menggunakan
Arduino. Bahasa yang dipakai dalam Arduino bukanassembler yang relatif sulit, tetapi bahasa
C yang disederhanakan dengan bantuan pustaka-pustaka (libraries) Arduino. Arduino juga
menyederhanakan proses bekerja dengan mikrokontroler, sekaligus menawarkan berbagai
macamkelebihan antara lain :

1. Murah : Papan (perangkat keras) Arduino biasanya dijual relatif murah(antara 125ribu
hingga 400ribuan rupiah saja) dibandingkan dengan platform mikrokontroler pro
lainnya. Jika ingin lebih murah lagi, tentu bisadibuat sendiri dan itu sangat mungkin
sekali karena semua sumber dayauntuk membuat sendiri Arduino tersedia lengkap di
website Arduino bahkandi website-website komunitas Arduino lainnya. Tidak hanya
cocok untukWindows, namun juga cocok bekerja di Linux.
2. Sederhana dan mudah: pemrogramannya Perlu diketahui bahwalingkungan pemrograman
di Arduino mudah digunakan untuk pemula, dancukup
fleksibel bagi mereka yang sudah tingkat lanjut. Untuk guru/dosen,Arduino berbasis pada
lingkungan pemrograman Processing, sehingga jikamahasiswa atau murid-murid terbiasa
menggunakan Processing tentu sajaakan mudah menggunakan Arduino.
3. Perangkat lunaknya Open Source Perangkat lunak Arduino IDEdipublikasikan sebagai
Open Source, tersedia bagi para pemrogram berpengalaman untuk pengembangan
lebih lanjut. Bahasanya bi sa dikembangkan lebih lanjut melalui pustaka-pustaka C++
yang berbasis padaBahasa C untuk AVR.
4. Perangkat kerasnya Open Source Perangkat keras Arduino berbasismikrokontroler
ATMEGA8, ATMEGA168, ATMEGA328 danATMEGA1280 (yang terbaru
ATMEGA2560). Dengan demikian siapa saja bisa membuatnya (dan kemudian bisa
menjualnya) perangkat keras Arduinoi ni, apalagi bootloader tersedia langsung dari
perangkat lunak Arduino IDE-nya. Bisa juga menggunakan breadoard untuk membuat
perangkat Arduino beserta periferal-periferal lain yang dibutuhkan.
B. Sensor Ultrasonik

Gambar 1. Sensor Ultrasonik

Sensor Ultrasonik adalah alat elektronika yang kemampuannya bisa mengubah dari
energy listrik menjadi energy mekanik dalam bentuk gelombang suara ultrasonic. Sensor
ini terdiri dari rangkaian pemancar Ultrasonic yang dinamakan transmitter dan penerima
ultrasonic yang disebut receiver. Alat ini digunakan untuk mengukur gelombang
ultrasonic. Gelombang ultrasonic adalah gelombang mekanik yang memiliki cirri-ciri
longitudinal dan biasanya memiliki frekuensi di atas 20 Khz. Gelombong Utrasonic dapat
merambat melalui zat padat, cair maupun gas. \
Pada sensor ultrasonik, gelombang ultrasonik dibangkitkan melalui sebuah alat yang
disebut dengan piezoelektrik dengan frekuensi tertentu. Piezoelektrik ini akan menghasilkan
gelombang ultrasonik (umumnya berfrekuensi 40kHz) ketika sebuah osilator diterapkan pada
benda tersebut. Secara umum, alat ini akan menembakkan gelombang ultrasonik menuju suatu
area atau suatu target. Setelah gelombang menyentuh permukaan target, maka target akan
memantulkan kembali gelombang tersebut. Gelombang pantulan dari target akan ditangkap oleh
sensor, kemudian sensor menghitung selisih antara waktu pengiriman gelombang dan waktu
gelombang pantul diterima.

Gambar 2. cara kerja sensor ultrasonik dengan transmitter dan receiver (atas), sensor ultrasonik
dengan single sensor yang berfungsi sebagai transmitter dan receiver sekaligus

 Secara detail, cara kerja sensor ultrasonik adalah sebagai berikut:

 Sinyal dipancarkan oleh pemancar ultrasonik dengan frekuensi tertentu dan dengan durasi
waktu tertentu. Sinyal tersebut berfrekuensi diatas 20kHz. Untuk mengukur jarak benda
(sensor jarak), frekuensi yang umum digunakan adalah 40kHz.
 Sinyal yang dipancarkan akan merambat sebagai gelombang bunyi dengan kecepatan
sekitar 340 m/s. Ketika menumbuk suatu benda, maka sinyal tersebut akan dipantulkan
oleh benda tersebut.
 Setelah gelombang pantulan sampai di alat penerima, maka sinyal tersebut akan diproses
untuk menghitung jarak benda tersebut. Jarak benda dihitung berdasarkan rumus :
3. PERALATAN YANG DIBUTUHKAN

 Sensor Ultrasonik HC-SRO4

 Arduino UNO 1 buah

 Kabel jumper secukupnya

 Kabel USB 1 buah

Board 1 buah

 4 LED beda warna

 4 buah Resistor 220 ohm


4. RANGKAIAN PERCOBAAN

Gambar 3, rangkaian percobaan

5. LANGKAH-LANGKAH PERCOBAAN

1. Hubungkan pin 6 dan 7 untuk sensor ultrasonik dan pin 8 - 11 digunakan untuk led.
2. Hubungkan arduino dengan komputer menggunakan USB.

3. Gunakan pemrograman yang telah disediakan pada sensor pada modul kedalam
arduino IDE.
4. Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk
mengecek ada atau tidaknya error/kesalahan dalam pengetikan
5. Upload program ke arduino dengan cara, pilih File > Upload to I/O board, atau
tekan tombol tanda panah pada jendela IDE arduino.
6. Amati tampilan serial monitor saat sensor ultrasonik diberikan penghalang dengan
jarak yang berubah- ubah sesuai dengan pemrograman, pastikan nilainya sudah
benar sesuai dengan yang ada di program. PROGRAM PERCOBAAN

//pin Ultrasonik
#define trigPin
7
#define echoPin 6

#define ledAman 8
#define led1 9
#define led2 10
#define led3 11

void setup()
{ Serial.begin
(9600);
pinMode(trigPin,
OUTPUT);
pinMode(echoPin, INPUT);

pinMode(ledAman,
OUTPUT); pinMode(led1,
OUTPUT); pinMode(led2,
OUTPUT); pinMode(led3,
OUTPUT);

void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;

if (distance >= 16)


{
digitalWrite(ledAman,
HIGH); digitalWrite(led1,
LOW); digitalWrite(led2,
LOW);
digitalWrite(led3,LOW);
}
else
{ digitalWrite(ledAman,LO
W);
}
if (distance <= 15)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3,LOW);
}

if (distance < 10)


{ digitalWrite(led2,
HIGH);
digitalWrite(led1,
LOW);
digitalWrite(led3,LOW);
}

if (distance < 5)
{ digitalWrite(led3,
HIGH);
digitalWrite(led2,
LOW);
digitalWrite(led1,
LOW);
}
delay(500);
}

6. ANALISA PERCOBAAN

1. Jelaskan prinsip kerja dari sensor ultrasonik yang digunakan pada praktikum yang
telah dijelaskan.

2. Jelaskan perograman yang terdapat pada modul dan digunakan dalam praktikum
kali ini. Digunakan untuk fungi apakah program yang ada sehingga cocok diunakan?

3. Cobalah ubah long duration dan jarak pada perograman sensor ultrasonik.
Hingga anda tahu maksimum dan minimum sensing dari sensor ultrasonik.
Pengubahan tersebut berpengaruh pada hal apa saja?
4. Mengapa dalam rangkaian pada modul digunakan 4 led yang berbeda? Apa
fungsi setiap led berbeda? Jelaskan!

Anda mungkin juga menyukai