Anda di halaman 1dari 16

Institut Teknologi Sumatera

Program Studi Teknik Fisika


Praktikum TF2206 Dosen Dr. Eko Mursito Budi
Laboratorium TF II Rifqi Ikhwanuddin ST MT
2 SKS Arkham Zahri Rakhman, S.Kom., M.Eng

2 PENGENALAN ARDUINO

Arduino merupakan suatu proyek open-source yang diinisiasi oleh Massimo Banzi, David Cuartielles, David
Mellis, dan Nicholas Zambetti. Arduino terdiri dari dua perangkat, yaitu perangkat keras (hardware) dan
perangkat lunak (software). Sifat open-source ini memperbolehkan pengguna untuk mengakses informasi
sumber seperti skematis rangkaian listrik untuk perangkat keras dan kode pemrograman untuk perangkat lunak.
Perangkat keras Arduino dapat kita beli dengan harga yang relatif murah bila dibandingkan dengan development
board sejenis. Selain itu perangkat lunak yang ada dapat kita gunakan secara gratis dan dapat berjalan di sistem
operasi Windows, Linux, maupun Macintosh.

Arduino telah berkembang cukup lama, sehingga saat ini di pasaran sudah ada berbagai tipe Arduino. Beberapa
tipe papan yang dibuat oleh Arduino:

• Arduino Duemilanove : tipe paling tua, memakai prosesor 8 bit ATmega 328 dan chip FTDI untuk
komunikasi ke komputer.
• Arduino Uno : penerus Duemilanove dengan prosesor ATmega328P, dan prosesor ATMEGA8U2-MU
untuk komunikasi ke komputer.
• Arduino Nano: sama seperti UNO, namun dengan bentuk yang lebih kecil. Terdapat jenis papan standar
dan yang telah dilengkapi perangkat tambahan seperti BLE, WIFI dan LoRa.
• Arduino Mega 2560 : berbasis ATmega 2560, yang digunakan untuk mengendalikan lebih banyak
perangkat dari seri ATmega328P.
• Arduino Due: seri dengan 32 bit Atmel SAM3X8E ARM Cortex-M3, untuk penggunaan yang lebih
kompleks dari seri Mega 2560.

dan seri-seri lainnya yang terus mereka kembangkan sesuai dengan kebutuhan.

2.1 TUJUAN

Dengan praktikum ini diharapkan mampu menguasai beberapa kompetensi khusus yang berhubungan dengan
mikroprosesor berbasis Arduino. Beberapa kompetensi khusus tersebut antara lain :

• Mengenal arsitektur perangkat keras Arduino, dan mampu mengoneksikannya ke piranti lain dengan
aman.
• Mampu melakukan pemrograman mikroprosesor Arduino dengan Arduino IDE.
• Menjelaskan perangkat keras Arduino dengan masukan luaran LED, Tombol dan Potensiometer
• Melakukan pemrograman dasar mikroprosesor
• Mampu menggunakan fungsi serial monitor untuk mengamati jalannya program Arduino, sebagai
pendeteksi jika terdapat kesalahan kode.

TF2016/Modul-1/1
2.2 ALAT & BAHAN

Untuk praktikum ini diperlukan alat dan bahan seperti pada tabel 2.1. Peserta diharapkan dapat menjaga kehati-
hatian dengan memperhatikan panduan praktikum dan petunjuk dari dosen serta asisten praktikum.
Tabel 2.1 Alat dan Bahan

No Item Banyak Keterangan

1 Komputer / laptop 1 Sebaiknya peserta membawa sendiri


2 Software Arduino IDE 1 Diunduh dari https://www.arduino.cc/en/main/software
3 Kit Arduino HMI 1 Tersedia di lab
4. Catu daya 1 Tersedia di lab

2.3 PANDUAN TEKNIS

Pada modul praktikum ini akan digunakan Arduino NANO dengan inti mikroprosesor ATmega328P, yang telah
dipasang pada kit Human Machine Interface (HMI) . Beberapa spesifikasi adalah sebagai berikut.

2.3.1 PIN ARDUINO NANO


Arduino Nano menyediakan blok-blok masukan luaran yang dapat dipergunakan dengan memperhatikan fungsi
khusus ataupun Batasan tiap pin-nya. Detail dari blok pin tersebut dapat diperhatikan pada gambar 2.1.

Gambar 2.1 Info pin pada Arduino Nano


sumber : https://components101.com/microcontrollers/arduino-nano

TF2016/Modul-1/2
Pada gambar di atas dapat dilihat bawah Arduino Nano ini memiliki 13 blok pin digital, D0-D13, yang dapat
difungsikan sebagai INPUT dan OUTPUT dengan fungsi pinMode(), digitalWrite(), dan
digitalRead(). Masing-masing digital pin ini bisa bekerja dengan dua level sinyal yaitu HIGH (sekitar 3 – 5
Volt) atau LOW (sekitar 0 - 2 Volt). Beberapa pin memiliki fungsi antara lain:

• UART (serial interface) untuk komunikasi serial receive (RX) and transmit (TX), khusus pin D0 (RX) dan
D1 (TX).
• Interrupt, adalah masukan yang dapat memicu perubahan jalannya program secara langsung, berguna
untuk masukan yang sifatnya penting dan mendesak, misalnya sinyal alarm. Pin yang bisa menerima
interupsi adalah pin D2 dan D3.
• PWM (Pulse Width Modulation) output, adalah luaran berupa pulsa periodik dengan lebar pulsa yang
bisa diatur. Hanya ada 6 pin yang sanggup untuk PWM yaitu D3, D5, D6, D9, D10 dan D11.
• SPI (Serial Parallel Interface) pada pin D10 (SS), D11 (MOSI), D12 (MISO) dan D13 (SCK), untuk
komunikasi dengan piranti serial.
• Digital output, misalnya untuk luaran ke LED. Dalam hal ini pin D13 sudah memiliki LED.
• Digital input, misalnya untuk menerima masukan dari tombol.

Selain itu Arduino Nano juga memiliki 8 blok pin Analog A0 - A7 dengan yang dapat difungsikan antara lain
sebagai :

• Analog Input, untuk menerima masukan sinyal yang harganya antara 0 – 5 Volt, dan akan dikonversi
menjadi angka 0 – 1023 (10 bit).
• I2C pada pin A4 (SDA) dan A5 (SCL), bisa digunakan untuk komunikasi antar Arduino.

Selain itu, terdapat 2 pin lainnya yaitu:

• REF, sebagai tegangan referensi untuk input analog dan


• RST, yang ketika diberi LOW akan mereset mikrokontroller.

2.3.2 BATASAN ARDUINO


Secara umum, Arduino Nano memiliki batasan kelistrikan tertentu untuk menjaga keamanan sirkuitnya, seperti
terlihat ada tabel 2.2 atau dalam bentuk gambar 2.2. Batasan kelistrikan ini dapat dikendalikan dengan
memperhitungkan komponen ataupun perangkat yang digunakan. Untuk penggunaan melebihi Batasan ini
diperlukan metode alternatif seperti penggunaan transistor, resistor, IC driver, relay dan sebagainya.

Tabel 2.2 Batasan kelistrikan Arduino Nano

Batasan Pin Nilai

Maksimum arus output Individual (tiap pin) 40 mA (dianjurkan 20 mA)


Port (D0 – D7) 150 mA
Port (D8 – D13) 150 mA
Port (A0 – A5) 150 mA
Total (semua pin) 200 mA
Maksimum tegangan input Individual 5 Volt

TF2016/Modul-1/3
Gambar 2.2 Besar arus total pada pin Arduino Nano
Sumber: https://arduinoinfo.mywikis.net/wiki/ArduinoPinCurrent

Sebagai pengetahuan awal untuk menghindari kerugian, terdapat 10 perlakuan yang PASTI akan merusak papan
Arduino yaitu:

1. Memberi tegangan terbalik ke jack power


2. Memberi tegangan lebih dari 13 Volt ke jack power
3. Memberi tegangan lebih dari 5 Volt ke pin 5V (bukan Vin)
4. Memberi tegangan lebih dari 3.3 Volt ke pin 3.3V
5. Menghubungkan langsung pin 5V, 3.3Volt, atau Vin ke ground
6. Memberi masukan ke suatu pin Arduino yang lebih dari 5 Volt
7. Mengeluarkan arus lebih dari 40 mA dari satu pin Arduino
8. Mengeluarkan beban lebih dari 150 mA dari beberapa pin Arduino
9. Menghubungkan langsung pin Arduino dalam mode OUTPUT ke ground
10. Menyambung dua pin Arduino yang keduanya dalam mode OUTPUT

2.3.3 KIT HMI


Kit HMI yang akan digunakan pada praktikum ini terlihat pada gambar 2.3 yang terdiri atas komponen-
komponen utama seperti pada tabel 2.3.

TF2016/Modul-1/4
Tabel 2.3 Komponen kit HMI

No Komponen Fungsi
1 Arduino Nano Mikroprosesor kit ini
2 LED (4 buah) LED yang menampilkan 4 bit luaran digital
3 BCD to 7 segmen decoder IC mengubah sinyal 4 bit menjadi sinyal untuk menyalakan 7 segment
4 LED 7 Segment LED menampilkan angka 0 – 9
5 Shift register Chip untuk mengontrol LCD berdasar luaran dari mikroprosesor
6 LCD Tampilan teks 2x16
7 Keypad Jajaran tombol untuk masukan angka dan beberapa huruf
8 Keypad encoder Chip untuk mengodekan sinyal keypad menjadi 4 bit masukan
9 Potensiometer Potensiometer geser untuk masukan analog
10 Tombol hijau (START) Tombol yang dapat ditekan untuk masukan analog (START)
11 Tombol merah (CANCEL) Tombol yang dapat ditekan untuk masukan digital (CANCEL)
12 Konektor DIP 10 Konektor untuk memberi daya / menyambung ke kit lain

Gambar 2.3 Bagian-bagian kit HMI A

TF2016/Modul-1/5
Tabel 2.4 Pemetaan pin Arduino modul HMI

SPI I2C
DIGITAL ANALOG
MODUL KOMPONEN 0 1 2 3 4 5 6 7 8 9 10 11 12 13 A0 A1 A2 A3 A4 A5 A6 A7
HMI LCD (x8) (SPI master) 1 1 1
BCDto7S 1 1 1 1
BCDto7S-Latch enable 1
LED (x4) 1 1 1 1
LED enable 1
Keypad-data 1 1 1 1
Keypad-ready 1
Potensiometer 1
Switch Green 1
Switch Red 1
Komunikasi (I2C slave) 1 1
TOTAL 1 1 2 2 2 2 1 1 1 1 0 1 1 1 1 1 1 1 1 1

2.3.4 SKEMA KIT HMI


Berikut ini adalah skematis kit HMI yang dapat digunakan baik sebagai pengetahuan awal ataupun panduan
untuk memperbaiki kesalahan kode jika ditemukan.

Gambar 2.4 Koneksi Arduino ke 4 LED dan 7 Segment

Gambar 2.5 Koneksi Arduino ke Masukan Tombol dan Potensiometer; serta konektor DIL 10 untuk catu daya
TF2016/Modul-1/6
2.3.5 KESELAMATAN KIT HMI
Tindakan berikut akan merusak kit HMI, JANGAN dilakukan.

1. Terbalik memasang konektor DIP10, karena itu sama saja dengan memasang catu daya (VCC dan GND)
secara terbalik ke kit, akan menyebabkan Arduino maupun chip-chip lainnya rusak.
2. Lupa memasang konektor DIP10, dan hanya memakai daya dari USB yang terkoneksi ke Arduino. Ketika
semua perangkat (LED, 7 segment,LCD, dll) dihidupkan, arus yang ditarik akan melebihi 200mA, dan
menyebabkan Arduino rusak.
3. Melepas / pasang komponen ke kit saat daya maupun kabel USB masih terhubung ke kit.

2.4 TUGAS AWAL

2.4.1 MEMAHAMI ARDUINO


Bacalah teori tentang Arduino Nano, jelaskan:

1. Apa yang dimaksud dengan digital output ? Berapa besar tegangan dan arus digital output Arduino ?
2. Apa yang dimaksud dengan digital input ? Berapa besar tegangan dan arus digital input Arduino ?
3. Perhatikan skema koneksi Arduino ke 4 LED. Tahanan dalam LED bisa diabaikan, sementara tahanan
R10 hingga R13 adalah 330 Ohm, dan transistor T1 berfungsi sebagai low-side switching. Hitunglah arus
yang akan diambil rangkaian ini, lalu jelaskan apakah rangkaian ini masih aman bagi Arduino !

2.4.2 MEMAHAMI ARDUINO


Bacalah spesifikasi batasan Arduino, khususnya 10 tindakan yang akan merusak Arduino. Untuk setiap tindakan,
jelaskan MENGAPA akan merusak Arduino !

2.4.3 PERSIAPAN ARDUINO


Terbagi menjadi 2 kelompok :

 Untuk peserta yang memiliki Laptop, unduhlah program Arduino IDE dari situs
http://arduino.cc/en/main/software, kemudian lakukan pemasangan perangkat lunak tersebut dan
jalankan untuk mengujinya.

Gambar 2.6 Laman unduh dan Tampilan Arduino IDE

 Untuk yang tidak memiliki, silakan melakukan review pemasangan Arduino IDE dengan memanfaatkan
video tutorial yang terdapat di Internet.

TF2016/Modul-1/7
2.5 PRAKTIKUM

Sebagai persiapan awal praktikum ini, peserta dapat melakukan dengan hati-hati urutan kerja berikut :

1. Hidupkan laptop/komputer yang telah disediakan kemudian jalankan Arduino IDE yang telah dipasang.
2. Persiapkan kit HMI yang tersedia satu set untuk masing-masing kelompok.
3. Pastikan steker catu daya terlepas dari sumber listrik kemudian koneksikan catu daya ke kit HMI dengan
menggunakan konektor DIP 10. Lakukan perlahan dengan mengikuti takik pada konektor agar tidak
terbalik.
4. Koneksikan catu daya ke jala-jala listrik. LED merah Arduino pada kit HMI akan menyala apabila kit
dalam keadaan baik dan siap digunakan.
5. Koneksikan kabel mikro USB (ujung yang kecil) ke Arduino Nano pada kit HMI.
6. Koneksikan kabel USB (ujung yang besar) ke salah satu port USB pada laptop/komputer.

2.5.1 SERIAL MONITOR


Salah satu keunggulan Arduino adalah telah tersedianya koneksi USB ke komputer yang bisa dipakai untuk
memrogram Arduino dari komputer kemudian berkomunikasi antara Arduino dan komputer.

Sebagai praktikum awal, peserta dapat menggunakan Serial Monitor yang terdapat pada Arduino IDE untuk:

 Mengucapkan salam
 Bertanya nama
 Mengucapkan salam berkali kali pada nama

Kode 2.1 Hello

1 /* File : B01_hello.ino
2 * Deskripsi : Menanyakan nama (1 huruf) lalu menyapa hello ...
3 * Oleh : NIM / NAMA
4 */
5
6 char nama; //tipe data
7
8 // subrutin persiapan, akan jalan sekali saja saat awal
9 void setup() {
10 Serial.begin(9600);
11 delay(1000);
12 Serial.println("Halo,");
13 Serial.println(“Siapa nama mu?”);
14 }
15
16 // sub rutin yang akan berjalan terus berulang-ulang
17 void loop() {
// akan dilakukan pemeriksaan kemudian merespon input huruf yang
18
diberikan
19 if(Serial.available()){
20 nama = Serial.read();

TF2016/Modul-1/8
21 Serial.print("Selamat Siang, ");
22 Serial.println(nama)
23 }
24 }

Untuk memrogramnya kit HMI dengan menggunakan Arduino IDE, ikutilah langkah-langkah berikut:

1. Pilih menu “File – New”, akan muncul layar editor baru, dengan kode sumber kosong yang hanya berisi
subrutin setup() dan loop().

Gambar 2.7 Tampilan awal Arduino IDE

2. Ketiklah kode sumber 2.1 pada layar putih seperti terlihat pada gambar 2.7.
3. Setelah selesai, pilih menu “Save” (atau Save As) dan beri nama file yang sesuai dengan keterangan di
kode tersebut (B01_hello_NIM.ino).

Selanjutnya untuk memeriksa kebenaran kode sumber yang telah diketik, lakukanlah compile dan kemudian
unggah kode tersebut ke Arduino dengan menu upload. Silakan mengikuti tahapan berikut:

1. Tentukan dulu tipe mikroprosesor. Pilih menu “Tools”. Pada bagian “Board” pilihlah “Arduino Nano”
dan pada bagian “Processor” pilihlah “ATmega328P”.
2. Tentukan port serial (USB) yang terkoneksi ke Arduino pada submenu “port”.
3. Lakukan kompilasi (dengan klik tombol “Compile”, menu “Sketch – Verify/Compile”, atau tekan key
Ctrl+R).

TF2016/Modul-1/9
4. Akan terdapat pesan kesalahan berwarna oranye di atas blok hitam beserta keterangan kesalahannya.
Dalam kasus ini kesalahan merujuk pada hilangnya tanda penutup “;” pada baris ke-22. Silakan
memperbaiki dan lakukan kompilasi ulang.
5. Unggah program ke mikroprosesor (dengan klik tombol “Upload”, pilih menu “Sketch – Upload”, atau
tekan key Ctrl+U).

Setelah diprogram, Arduino akan otomatis berjalan. Untuk mencoba komunikasi antara Arduino dengan
komputer:

1. Pada Arduino IDE, jalankan Serial Monitor (klik tombol “Serial Monitor”, pilih menu “Tools – Serial
Monitor”, atau tekan key “Ctrl+Shift+M”). Akan muncul suatu layar baru.
2. Pada layar akan muncul pesan dari Arduino
3. Ketiklah nama Anda sesuai yang diminta
4. Amati salam berulang-ulang dari Arduino

Program ini akan terus berjalan pada Arduino sampai:

 Tombol Reset pada Arduino di tekan.


 Serial Monitor pada Arduino IDE dijalankan ulang (tutup, lalu buka lagi).
 Diprogram ulang dari Arduino IDE.
 Dimatikan (diputus dayanya).

2.5.2 LED BLINGKING


Pada kit HMI, terdapat 4 buah LED yang terkoneksi seperti disampaikan pada panduan teknis. Buatlah program
untuk menyala/matikan satu LED, di mana spesifikasi program:

 LED terhubung ke pin D4, dan LED enable ke pin D9


 Periode berkedip (blink) adalah 1 detik.

Program untuk masalah itu mirip dengan program pada simulator (praktikum sebelumnya), hanya nomor pin-
nya saja yang berubah.

Untuk memrogramnya dari Arduino IDE:

1. Pilih menu “File – New”. Akan muncul layar editor baru, dengan kode sumber kosong yang hanya
berisi subrutin setup() dan loop().
2. Ketiklah kode sumber 2.2 pada blok kode.
3. Setelah selesai, pilih menu “Save” (atau Save As). Beri nama file yang sesuai (B01_blink_NIM.ino).

Kode 2.2 LED Blinking

1 /* File : B02_led_blink.ino
* Deskripsi : menyalakan 1 LED dengan periode 1
2
detik
3 * Oleh : NIM / NAMA
4 */
5
6 // konstanta pin LED pertama
7 // menggunakan direktif #define

TF2016/Modul-1/10
8 #define PIN_LED 4
9 #define PIN_ENABLE 9
10
// subrutin persiapan, akan jalan sekali saja saat
11
awal
12 void setup() {
13 Serial.begin(9600);
14 Serial.println("LED Blinking");
15
16 // atur mode pin ke LED sebagai OUTPUT
17 pinMode(PIN_LED, OUTPUT);
18 pinMode(PIN_LED_ENABLE, OUTPUT);
19
20 // enable LED
21 digitalWrite(PIN_LED_ENABLE, HIGH);
22 }
23
24 // sub rutin yang akan berjalan terus berulang-ulang
25 void loop() {
26 // nyala matikan LED pertama
27 Serial.print("Nyala ...");
28 digitalWrite(PIN_LED, HIGH);
29 delay(1000);
30 Serial.println("Padam");
31 digitalWrite(PIN_LED, LOW);
32 delay(1000);
33 }
Cobalah program ini dengan prosedur:

1. Ketiklah kode 2.2 pada Arduino IDE


2. Lakukan pemeriksaan kesalahan kemudian unggah ke Arduino Nano
3. Jalankan dan amati serial monitor beserta peristiwa yang terjadi pada kit
4. Apabila tidak sesuai dengan spesifikasi yang diinginkan, lakukan perbaikan pada kode di atas. Silakan
cermati kode, spesifikasi dan skema kit sebagai petunjuk.

2.5.3 LED RUNNING


Pada percobaan ini, diinginkan 4 buah LED menyala satu persatu dengan periode tertentu. Perhatikan skema 4
LED. Spesifikasi program:

 LED terhubung ke pin D4,D5,D6, dan D7; sementara LED enable ke pin D9.
 LED menyala dari kiri ke kanan dengan periode 1 detik.

Silakan melengkapi kode 2.3 sehingga berjalan seperti spesifikasi yang diinginkan. Sebagai petunjuk, kode ini
mirip dengan modul praktikum 1 yang telah dilakukan dengan simulator UnoArduSim sebelumnya.

TF2016/Modul-1/11
Kode 2.3 LED Running

1 /* File : B03_led_running.ino
* Deskripsi : menyalakan 4 LED dari kiri ke kanan dengan periode 1
2
dtk
3 * Oleh : NIM / NAMA
4 */
5
6 // konstanta pin
7 #define PIN_LED 4
8 #define PIN_ENABLE 9
9
10 // subrutin persiapan, akan jalan sekali saja saat awal
11 void setup() {
12 Serial.begin(9600);
13 Serial.println("LED Running");
14
15 // atur mode 4 pin ke LED sebagai OUTPUT
16 for (int i=0; i<4; i++) {
17 pinMode(PIN_LED+i, OUTPUT);
18 }
19 pinMode(PIN_LED_ENABLE, OUTPUT);
20
21 // enable LED
22 . . . .
23 }
24
25 // sub rutin yang akan berjalan terus berulang-ulang
26 void loop() {
27 int i; // variabel untuk loop
28
29 // buat LED running dari kiri ke kanan pakai for
30 for (. . . ) {
31 digitalWrite(PIN_LED+i, HIGH);
32 delay(1000);
33 digitalWrite(PIN_LED, LOW);
34 Serial.print(i);
35 }
36 Serial.println();
37 }

2.5.4 PUSH BUTTON DIGITAL INPUT DAN ANALOG INPUT


Kit HMI ini dilengkapi dengan 2 tombol, di mana tombol RED terhubung ke pin D2, sementara tombol GREEN ke
pin A6. Kedua tombol ini perlu dibaca dengan teknik yang berbeda.

TF2016/Modul-1/12
Untuk mencoba, diinginkan bahwa LED1 akan menyala jika tombol RED ditekan, dan LED4 menyala jika tombol
GREEN ditekan. Spesifikasi program:

 LED1 terhubung ke pin D4, LED4 ke pin D7, LED enable ke pin D9.
 Tombol RED terhubung ke pin D2, dengan mode pull up.
 Tombol GREEN terhubung ke pin A6, dengan mode pull down.
 Jika tombol RED ditekan, LED1 menyala.
 Jika tombol GREEN ditekan, LED2 menyala.

Berikut ini adalah kode sumber program. Perhatikan cara baca tombol yang berbeda.

Kode 2.4 Push button digital input dan analog input

1 /* File : B04_button.ino
2 * Deskripsi : menyalakan LED berdasar penekanan tombol
3 * Oleh : NIM / NAMA
4 */
5
6 // konstanta pin LED pertama
7 // menggunakan direktif #define
8 #define PIN_LED1 4
9 #define PIN_LED4 7
10 #define PIN_BUTTON1 3
11 #define PIN_BUTTON2 A6
12
13 // subrutin persiapan, akan jalan sekali saja saat awal
14 void setup() {
15
16 Serial.begin(9600);
17 Serial.println("LED Push Button");
18
19 // atur mode pin ke LED sebagai OUTPUT
20 pinMode(PIN_LED1, OUTPUT);
21 pinMode(PIN_LED4, ...);
22
23 // atur mode pin ke LED sebagai INPUT
24 pinMode(PIN_BUTTON1, INPUT);
25 // untuk A6, sebagai analog input tak perlu diatur modenya
26 }
27
28 // sub rutin yang akan berjalan terus berulang-ulang
29 void loop() {
30 int pb1, pb2; // variabel penerima masukan
31
32 // tombol RED, pull-up, digital input
33 pb1 = digitalRead(PIN_BUTTON1); // baca push button

TF2016/Modul-1/13
34 Serial.print("Button 1 =");
35 Serial.println(pb1);
36 // nyalakan LED sesuai nilai pb1
37 if (pb1 = 0) {
38 digitalWrite(PIN_LED1, HIGH);
39 }
40 else {
41 digitalWrite(PIN_LED1, LOW);
42 }
43
44 // tombol GREEN, pull-down, analog input
45 pb2 = analogRead(PIN_BUTTON1); // baca push button
46 Serial.print("Button 2 =");
47 Serial.println(pb1);
48 if (pb1 = 0) {
49 digitalWrite(PIN_LED1, HIGH); // outputkan ke LED
50 }
51 else {
52 digitalWrite(PIN_LED1, LOW); // outputkan ke LED
53 }
54
55 // nyalakan LED sesuai nilai pb2
56 . . .
57
58 }

Pada kode 2.4 terdapat perlakukan khusus pada LED yang perlu diaktifkan, kesalahan penggunaan kode dan
kelalaian pemilihan konstanta sehingga tidak diperoleh luaran sesuai dengan spesifikasi. Silakan mencermati dan
memperbaiki kode tersebut.

2.5.5 POTENSIOMETER ANALOG INPUT DAN LED ANALOG OUTPUT


Pada kit ada sebuah potensiometer yang terpasang ke pin A7. Kali ini kita akan mencoba memakai
potensiometer tersebut untuk mengatur terangnya LED. Dalam hal ini akan digunakan fungsi analogWrite()
untuk mengatur transistor T1 yang terkoneksi ke pin D9.

Buatlah sebuah program yang akan menyalakan 4 LED, di mana terangnya LED diatur melalui potensiometer.
Spesifikasi program:

 LED terhubung ke pin D4-D7.


 LED enable ke pin D9, dapat dikontrol sebagai analog output.
 Potensiometer terhubung ke pin A7, dapat dibaca sebagai analog input.
 Jika potensiometer dinaikkan, LED makin terang; dan sebaliknya makin redup jika diturunkan.

TF2016/Modul-1/14
Berikut ini adalah kode sumber program. Perhatikan cara baca tombol yang berbeda.

Kode 2.5 Potensiometer analog input dan LED analog output

1 /* File : B05_potentiometer.ino
2 * Deskripsi : menyalakan LED berdasar posisi potensiometer
3 * Oleh : NIM / NAMA
4 */
5
6 // konstanta
7 #define PIN_LED 4
8 #define PIN_LED_ENABLE 9
9 #define PIN_POTENTIOMETER A7
10
11 // subrutin persiapan, akan jalan sekali saja saat awal
12 void setup() {
13
14 Serial.begin(9600);
15 Serial.println("LED Potentiometer");
16
17 // atur mode 4 LED sebagai OUTPUT
18 for ( . . . ) {
19 . . .
20 }
21
22 // untuk PIN_LED_ENABLE dan PIN_POTENTIOMETER
23 // tak perlu diatur modenya
24
25 // karena akan menyala terus, nyalakan semua LED
disini
26 for ( . . . ) {
27 . . .
28 }
29 }
30
31 // sub rutin yang akan berjalan terus berulang-ulang
32 void loop() {
33 int ain, aout; // variabel analog
34
35 // baca potensiometer,
36 // seharusnya bisa menerima angka 0-1023
37 ain = analogRead(PIN_POTENTIOMETER);
38 Serial.print("A input =");
39 Serial.println(ain);
40
41 // konversi ain kea out, dimana range aout adalah 0-
255

TF2016/Modul-1/15
42 aout = ain * 256 / 1024;
43
44 // atur kecerahan nyalakan LED sesuai nilai pb1
45 analogWrite(PIN_LED_ENABLE, aout);
46 Serial.print("A output =");
47 Serial.println(aout)
48
49 }

Silakan melengkapi bagian kode 2.5 yang hilang dengan melihat percobaan ataupun modul sebelumnya untuk
kontrol pengulangan dan juga cermati kesalahan sederhana lainnya.

2.6 TUGAS PRAKTIKUM

2.6.1 LED RUNNING BOLAK BALIK


Buatlah program untuk membuat 4 buah LED berjalan, dengan dapat diatur oleh tombol dan potensiometer.

 Jika tak ada tombol ditekan, LED mati semua


 Jika tombol RED ditekan, LED akan berjalan dari kiri ke kanan
 Jika tombol GREEN ditekan, LED akan berjalan dari kanan ke kiri

2.7 LAPORAN

Tulislah baris kode kesalahan dan penambahan yang diperlukan pada praktikum di atas sehingga dapat berjalan
sesuai spesifikasi yang diinginkan. Kemudian kumpulkan pada Dosen/Asisten di akhir praktikum.

2.8 PUSTAKA

 Jazi Eko Istiyanto, Pengantar Elektronika & Instrumentasi, Pendekatan Project Arduino, 2014
 http://arduino.cc/

TF2016/Modul-1/16

Anda mungkin juga menyukai