Anda di halaman 1dari 44

BAB II

DIGITAL INPUT OUTPUT

2.1. Tujuan
1. Praktikan dapat memahami konsep Arduino Mega 2560.
2. Praktikkan mampu membuat rangkaian menggunakan Arduino.
3. Praktikkan mampu menggunakan software Proteus.
4. Praktikkan mampu menggunakan Arduino IDE.
5. Praktikkan mampu menggunakan Tinkercad.
6. Praktikkan mampu menjelaskan penggunaan Arduino dalam kehidupan
sehari-hari.
7. Pratikan mampu membuat rangkaian pada Tinkercad.
8. Pratikan dapat memahami cara kerja dari rangkaian yang dibuat pada
praktikum kali ini.
2.2. Alat dan Bahan
2.2.1. Laptop/PC

Gambar 2. 1 Laptop

Laptop adalah komputer bergerak (bisa dipindahkan dengan mudah) yang


berukuran relatif kecil dan ringan, beratnya berkisar dari 1-6 kg, tergantung
ukuran, bahan, dari spesifikasi laptop tersebut, laptop dapat digunakan dalam
lingkungan yang berbeda dari komputer. Mereka termasuk layar, keyboard, dan
trackpad atau trackball, yang berfungsi sebagai mouse . Laptop berfungsi sebagai
media yang menjalankan circuit simulator TinkerCad.

2.2.2. Proteus 8 Professional

Gambar 2. 2 Proteus

Software Proteus adalah sebuah software yang digunakan untuk mendesain


PCB yang juga dilengkapi dengan simulasi PSpice pada level skematis sebelum
rangkaian skematis di-upgrade ke PCB untuk memastikan PCB dapat berfungsi
dengan semestinya. Pada praktikum ini, proteus berfungsi sebagai simulator untuk
mendesain PCB rangkaian encoder rotary dalam praktikum ini.
2.2.3. Tinkercad 
Gambar 2. 3 TinkerCad

TinkerCad merupakan sebuah platform berbasis web penyedia sarana


untuk belajar secara online terkait desain 3D, rangkaian elektronika, dan
codeblock. Pada percobaan praktikum, TinkerCad berfungsi sebagai circuit
cimulator yang digunakan untuk menyusun rangkaian circuit dalam percobaan
praktikum.

2.2.4. Board Arduino Mega 2560

Gambar 2. 4 Board Arduino

Arduino adalah Board berbasis mikrokontroler atau papan rangkaian


elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah
chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Mikrokontroler itu
sendiri adalah chip atau IC (integrated circuit) yang bisa diprogram menggunakan
computer. Tujuan menanamkan program pada mikrokontroler adalah agar
rangkaian elektronik dapat membaca input, memproses input tersebut dan
kemudian menghasilkan output sesuai yang diinginkan. Jadi mikrokontroler
bertugas sebagai otak yang mengendalikan proses input, dan output sebuah
rangkaian elektronik.
2.2.5. Arduino IDE
Gambar 2. 5 Arduino IDE

IDE itu merupakan kependekan dari Integrated Developtment


Enviroenment, atau secara bahasa mudahnya merupakan lingkungan terintegrasi
yang digunakan untuk melakukan pengembangan. Disebut sebagai lingkungan
karena melalui software inilah Arduino dilakukan pemrograman untuk melakukan
fungsi-fungsi yang dibenamkan melalui sintaks pemrograman. Arduino
menggunakan bahasa pemrograman sendiri yang menyerupai bahasa C. Bahasa
pemrograman Arduino (Sketch) sudah dilakukan perubahan untuk memudahkan
pemula dalam melakukan pemrograman dari bahasa aslinya. Sebelum dijual ke
pasaran, IC mikrokontroler Arduino telah ditanamkan suatu program
bernama Bootlader yang berfungsi sebagai penengah antara compiler Arduino
dengan mikrokontroler.

2.2.6. Breadboard

Gambar 2. 6 Breadboard

Breadboard adalah sebuah papan yang digunakan untuk membuat


rangkaian elektronik sementara dengan tujuan uji coba atau prototipe tanpa harus
menyolder. Pada percobaan praktikum, Breadboard berfungsi sebagai tempat
merangkai circuit.

2.2.7. LED
Gambar 2. 7 Red LED

LED merupakan sebuah komponen elektromagnetik yang dapat


memancarkan cahaya monokromatik melalui tegangan maju. Dalam percobaan
praktikum, LED berfungsi sebagai indikasi nilai hasil output rangkaian. Bila hasil
output bernilai 1 maka LED akan menyala dan bila hasil output bernilai 0 maka
LED akan mati.
2.2.8. Push Button

Gambar 2. 8 Push Button

Push Button adalah saklar yang berupa tombol dan berfungsi sebagai


pemutus atau penyambung arus listrik dari sumber arus ke beban listrik. Suatu
sistem saklar tekan push button terdiri dari saklar tekan start, stop reset dan saklar
tekan untuk emergency.
2.2.9. Resistor

Gambar 2. 9 Resistor

Resistor adalah komponen Elektronika Pasif yang memiliki nilai resistansi


atau hambatan tertentu yang berfungsi untuk membatasi dan mengatur arus listrik
dalam suatu rangkaian Elektronika.
2.2.10. Kabel Jumper
Gambar 2. 10 Kabel Jumper

Kabel Jumper berfungsi untuk menghubungkan arus listrik dalam


rangkaian percobaan praktikum.
2.3. Dasar Teori
2.3.1. Digital Input Output

Digital Input / Output (Digital IO) adalah komponen yang paling


mendasar dari sebuah MCU (Main Control Unit) yang menghubungkan
mikrokontroler dengan dunia luar. Antarmuka dengan dunia luar tersebut dikenal
dengan istilah PORT. Port adalah titik di mana data internal dari chip MCU keluar
atau data eksternal berjalan masuk. Port terdiri dari beberapa PIN, Port pada
mikrokontroler biasanya diberi nama PortA, PORTB, PORTC, PORTD dan
sebagainya.
(Sumber:http://embedtronix.blogspot.com/2010/12/digital-input-output.html)

2.3.2. Proteus 8 Professional

Gambar 2. 11 Proteus

Software Proteus 8 Professional merupakan salah satu software elektronik


yang digunakan untuk membantu para designer dalam merancang dan
mensimulasikan suatu rangkaian elektronik. Software ini memiliki dua fungsi
sekaligus dalam satu paket, yaitu  sebagai software untuk menggambar skematik
dan digunakan sebagai merancang gambar Printed Circuit Board (PCB).
Software Proteus 8 Profesional mempunyai banyak library dengan
beberapa komponen komponen-komponen pasif, Analog, Trasistor, SCR, FET,
jenis button/tombol, jenis saklar/relay, IC digital, IC penguat, IC programmable
(mikrokontroler) dan IC memory. Selain didukung dengan kelengkapan
komponen, juga didukung dengan kelengkapan alat ukur seperti Voltmeter,
Ampere meter, Oscilloscope, Signal Analyzers, serta pembangkit Frekuensi.
(Sumber: https://calesmart.com/artikel/Pengenalan-simulasi-elektronika-dengan-Software-
Proteus-8-Profesional_132.html)
2.3.3. Tinkercad
TinkerCad merupakan sebuah media berbasis web yang menyediakan
sarana untuk belajar Desain 3D, rangkaian elektronika, dan codeblock secara
online. TinkerCad adalah salah satu produk Autodesk yang sudah banyak
memperkenalkan software-software komputer untuk desain dan animasi.
TinkerCad pertama didirikan pada tahun 2011 dan masih dikembangkan sampai
saat ini hingga menjadi salah satu media yang direkomendasikan untuk digunakan
sebagai media pembelajaran.

Gambar 2. 12 Logo TinkerCad

Dalam TinkerCad juga disediakan fitur Class dimana kita dapat membuat
kelas untuk melakukan pembelajaran antara guru dan siswa dalam pembelajaran
di bidang desain 3D, elektronik, dan codeblock. Serta terdapat fitur Educator
untuk guru dan Student untuk siswa.
Gambar 2. 13 Dashboard TinkerCad

(Sumber: https://www.teknodika.com/2020/04/mengenal-tinkercad-platform-belajar.html)
2.3.4. Arduino Mega 2560

Gambar 2. 14 Arduino Mega 2560

Arduino adalah Board berbasis mikrokontroler atau papan rangkaian


elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah
chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Mikrokontroler itu
sendiri adalah chip atau IC (integrated circuit) yang bisa diprogram menggunakan
computer. Tujuan menanamkan program pada mikrokontroler adalah agar
rangkaian elektronik dapat membaca input, memproses input tersebut dan
kemudian menghasilkan output sesuai yang diinginkan. Jadi mikrokontroler
bertugas sebagai otak yang mengendalikan proses input, dan output sebuah
rangkaian elektronik.
Jenis Arduino Mega type 2560, Arduino Mega 2560 adalah papan
pengembangan mikrokontroler yang berbasis Arduino dengan menggunakan chip
ATmega2560. Board ini memiliki pin I/O yang cukup banyak, sejumlah 54 buah
digital I/O pin (15 pin diantaranya adalah PWM), 16 pin analog input, 4 pin
UART (serial port hardware). Arduino Mega 2560 dilengkapi dengan sebuah
oscillator 16 Mhz, sebuah port USB, power jack DC, ICSP header, dan tombol
reset. Board ini sudah sangat lengkap, sudah memiliki segala sesuatu yang
dibutuhkan untuk sebuah mikrokontroler.
(Sumber: http://eprints.polsri.ac.id/4615/3/FILE%20III.pdf )

2.3.5. Arduino IDE


IDE itu merupakan kependekan dari Integrated Developtment
Enviroenment, atau secara bahasa mudahnya merupakan lingkungan terintegrasi
yang digunakan untuk melakukan pengembangan. Disebut sebagai lingkungan
karena melalui software inilah Arduino dilakukan pemrograman untuk melakukan
fungsi-fungsi yang dibenamkan melalui sintaks pemrograman. Arduino
menggunakan bahasa pemrograman sendiri yang menyerupai bahasa C. Bahasa
pemrograman Arduino (Sketch) sudah dilakukan perubahan untuk memudahkan
pemula dalam melakukan pemrograman dari bahasa aslinya. Sebelum dijual ke
pasaran, IC mikrokontroler Arduino telah ditanamkan suatu program
bernama Bootlader yang berfungsi sebagai penengah antara compiler Arduino
dengan mikrokontroler.
Arduino IDE dibuat dari bahasa pemrograman JAVA. Arduino IDE juga
dilengkapi dengan library C/C++ yang biasa disebut Wiring yang membuat
operasi input dan output menjadi lebih mudah. Arduino IDE ini dikembangkan
dari software Processing yang dirombak menjadi Arduino IDE khusus untuk
pemrograman dengan Arduino.
(Sumber: https://www.sinauarduino.com/artikel/mengenal-arduino-software-ide/)

2.3.6. Resistor Pull Up dan Pull Down


Pull-Up dan Pull-Down resistor adalah penambahan resistor pada I/O
MCU (Microcontroller unit), yang membedakan antara Pull-up dan Pull-down
adalah penempatan resistor pada kutup arus listrik, juga pada input.
Untuk Pull-up resistor, salah satu kaki resistor dihubungkan ke kutub Vcc
(5v/3.3v pada RasPi), sedangkan kaki resistor yang lain dicabangkan, satu ke pin
input MCU, dan yang lain ke switch on/off untuk disambungkan ke ground (0V).

Gambar 2. 15 Rangkaian Pull-UP

Pada gambar diatas kita bisa lihat, Vcc tersambung ke pin, sehingga pin
akan mendapatkan signal HIGH, dan ketika push button ditekan, arus Vcc akan
mengalir ke ground (0v), sehingga pin akan mendapat signal LOW. Kondisi ini
mirip (tidak sama) dengan kondisi "normaly close".Sedangkan Pull-down resistor,
salah satu kaki resistor dihubungkan ke kutub ground (0v), sedangkan kaki
resistor yang lain dicabangkan, satu ke pin input MCU, dan yang lain ke switch
on/off untuk disambungkan ke Vcc (5v/3.3v).

Gambar 2. 16 Rangkaian Pull-Down

(Sumber: https://kepython.blogspot.com/2018/03/pull-up-dan-pull-down-
resistor.html#:~:text=Pull%2DUp%20dan%20Pull%2DDown,arus%20listrik%2C%20juga
%20pada%20input.)
2.4. Langkah Kerja
2.4.1 Percobaan I (Menyalakan LED)
1. Sebelum memulai percobaan pada Proteus, diperlukannya library
tambahan yaitu Arduino dari file yang sudah di unduh melalui link yang
sudah disediakan, lalu ekstrak file tersebut.

Gambar 2. 17 Isi dari File Library

2. Setelah itu, copy dan paste file tersebut keadalam Library Proteus pada
tempat instalasi.

Gambar 2. 18 Copy Paste Library

3. Buka Proteus dan New Project yang diberikan nama


Modul1_Perc1_Kel12

Gambar 2. 19 New Project

4. Ambil Component pada indicator P dengan memilih Arduino Mega 2560,


resistor dan LED.

Gambar 2. 20 Pick komponen

5. Untuk Power dan Ground dapat di lihat di Terminal mode.


Gambar 2. 21 Terminal Mode
6. Rangkailah sehingga membentuk rangkaian sebagai berikut.

Gambar 2. 22 Rangkaian LED

7. Setelah itu buka Arduino IDE dan pilih New Project.

Gambar 2. 23 Tampilan New Project

8. Setelah itu, masukan source code dibawah ini.


Tabel 2. 1 Source Code Percobaan 1

const int ledPin1 = 1;


const int ledPin2 = 2;
const int ledPin3 = 3;
const int ledPin4 = 4;

void setup() {
// put your setup code here, to run once:
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ledPin1, HIGH);
delay(1000);
digitalWrite(ledPin2, HIGH);
delay(1000);
digitalWrite(ledPin3, HIGH);
delay(1000);
digitalWrite(ledPin4, HIGH);
delay(1000);

digitalWrite(ledPin1, LOW);
delay(1000);
digitalWrite(ledPin2, LOW);
delay(1000);
digitalWrite(ledPin3, LOW);
delay(1000);
digitalWrite(ledPin4, LOW);
delay(1000);
}
9. Pilihlah board Arduino Mega 2560 pada tools.

Gambar 2. 24 Pemilihan Board

10. Klik Verify board yang sudah dipilih.

Gambar 2. 25 Verify Board

11. Gambar 2.9 Salin kode Hex pada Arduino IDE.

Gambar 2. 26 Hex pada Arduinno IDE

12. Buka Peoteus dan klik board Arduino Mega 2560 dan paste Hex yang
sebelumnya ada pada Arduino IDE.
Gambar 2. 27 Paste Hex Pada Proteus

13. Jalan Proteus dan amati rangkaian.

Gambar 2. 28 Jalankan Rangkaian


2.4.2 Percobaan II (Menyalakan LED dengan Push Button)
1. Buka TinkerCad lalu login

Gambar 2. 29 Halaman web TinkerCad

2. Pilih Circuits lalu Create new Circuit

Gambar 2. 30 Creat new circuits pada TinkerCad

3. Membuat nama project yaitu Mod1_Perc2_Kel12

Gambar 2. 31 Memberi nama project

4. Memasukan components dengan rincian sebagai berikut.


Gambar 2. 32 Komponen Rangkaian

5. Lalu rangkaianlah hingga seperti ini.

Gambar 2. 33 Rangkaian

6. Isikan source code seperti ini.


Tabel 2. 2 Source Code Pada Percobaan 2

int buttonPin = 2;
int ledPin = 8;
int buttonState = 0;

void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}

void loop(){

buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
Serial.println("Jomblo");
digitalWrite(ledPin, HIGH);
}
else {
Serial.println("Ora Jomblo");
digitalWrite(ledPin, LOW);
}
}
7. Jalankan rangkaian tersebut dan amati.

Gambar 2. 34 Jalankan Rangkaian


Percobaan III (Rangkaian Resistor Pull Up dan Pull Down)
1. Buka TinkerCad lalu login

Gambar 2. 35 Halaman web TinkerCad

2. Pilih Circuits lalu Create new Circuit

Gambar 2. 36 Creat new circuits pada TinkerCad

3. Membuat nama project yaitu Mod1_Perc3_Kel12

Gambar 2. 37 Memberi nama project

4. Memasukan components dengan rincian sebagai berikut.


Gambar 2. 38 Komponen Rangkaian

5. Lalu rangkailah circuit seperti berikut.

Gambar 2. 39 Rangkaian

6. Gunakan source code dibawah ini.


Tabel 2. 3 Source Code Pada Percobaan 3

const int pb1 = 2;


const int pb2 = 7;

const int red = 13;


const int green = 8;

int nilaipb1 = 0;
int nilaipb2 = 0;

void setup() {

pinMode(pb1, INPUT);
pinMode(red, OUTPUT);

pinMode(pb2, INPUT);
pinMode(green, OUTPUT);
Serial.begin (9600);
}

void loop() {

nilaipb1 = digitalRead(pb1);
nilaipb2 = digitalRead(pb2);
Serial.println (digitalRead(pb2));

if (nilaipb1 == HIGH) {
digitalWrite(red, HIGH);
}
else {
digitalWrite(red, LOW);
}

if (nilaipb2 == HIGH) {
digitalWrite(green, HIGH);
}
else {
digitalWrite(green, LOW);
}
}
7. Jalankan rangkaian tersebut dan amati.

Gambar 2. 40 Jalankan Rangkaian


2.5. Hasil percobaan dan Analisa
2.5.1. Percobaan 1

Gambar 2. 41 Gambar rangkaian

Percobaan ini menggunakan sebuah aplikasi bernama proteus. Di dalam


proteus dibuatlah rangkaian menggunakan android mega 2560, resistor dan LED
serta pada terminal mode power dan ground. Disini terminal power dihubungkan
ke pin vcc dan terminal ground dihubungkan ke pin gnd. Lalu pin digital 1
dihubungkan ke led 1, pin digital 2 dihubungkan ke led 2, pin digital 3
dihubungkan ke led 3, dan pin digital 4 dihubungkan ke led 4. Setelah itu semua
led tersebut dihubungkan ke resistor sebesar 220Ω lalu dihubungkan ke terminal
ground.
Gambar 2. 42 Rangkaian Arduino

Setelah disusun sedemikian rupa, lalu masukkan source code yang ada ke
dalam Arduino ide dan tekan tombol verify.
Tabel 2. 4 Source code percobaan 1

const int ledPin1 = 1;


const int ledPin2 = 2;
const int ledPin3 = 3;
const int ledPin4 = 4;
void setup() {
// put your setup code here, to run once:
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ledPin1, HIGH);
delay(1000);
digitalWrite(ledPin2, HIGH);
delay(1000);
digitalWrite(ledPin3, HIGH);
delay(1000);
digitalWrite(ledPin4, HIGH);
delay(1000);
digitalWrite(ledPin1, LOW);
delay(1000);
digitalWrite(ledPin2, LOW);
delay(1000);
digitalWrite(ledPin3, LOW);
delay(1000);
digitalWrite(ledPin4, LOW);
delay(1000);}
Gambar 2. 43 Arduino IDE

Selanjutnya salin kode hex yang tertera pada Arduino ide. Lalu buka
proteus dan klik 2 kali Arduino nya, tempel kode hex-nya ked alam program file.
Lalu jalankan simulasi yg ada dan amati.

Gambar 2. 44 Menu untuk impor program dalam arduino

Hasil percobaan tersebut meliputi:


Tabel 2. 5 Hasil percobaan 1

LE LE LE LE
No. Waktu Gambar Output
D1 D2 D3 D4
1 1000 mS 1 0 0 0

2 2000 mS 1 1 0 0

3 3000 mS 1 1 1 0

4 4000 mS 1 1 1 1

5 5000 mS 0 1 1 1

6 6000 mS 0 0 1 1

7 7000 mS 0 0 0 1

8 8000 mS 0 0 0 0

Pada paragraph pertama menggunakan kode const int ledPin1 = 1; ,


ini digunakan untuk memberi tahu Arduino bahwa Variabel tersebut dapat dipakai
seperti variabel lain, hanya saja nilainya tidak dapat diubah. void setup()
{ yaitu kata kunci (Keyword) atau kode fungsi yang hanya berjalan satu kali yaitu
pada awal atau pertama kali program dijalankan. Fungsi Void Setup yaitu untuk
mendeklarasikan perintah pada setiap variabel, menentukan pin mode,
menentukan boudread pada serial monitor dan lain-lain. void loop()
{ bertujuan untuk mengeksekusi dan menjalankan program yang sudah dibuat.
Fungi ini akan secara aktif mengontrol board Arduino baik membaca input atau
merubah output. digitalWrite(ledPin1, HIGH); Digunakan untuk menjadikan
PIN Arduino mengeluarkan tegangan atau tidak mengeluarkan tegangan, atau bisa
di sebut sebagai Logika 1 atau logika 0 sementara delay(1000); digunakan
untuk menentukan seberapa lama keluaran tersebut dikeluarkan oleh Arduino.
Fungsi kode diatas memiliki kemiripan dengan running led, yg mana
seolah membuat lampu pada sirkuit tersebut bergerak. Dengan menyalakan dan
mematikan lampu led dengan urutan 1-2-3-4-1-2-3-4 membuat lampu led terlihat
seperti bergerak ke kanan maupun ke kiri sesuai urutan menyalakan dan
mematikan lampu led.
2.5.2. percobaan kedua

Gambar 2. 45 Tinkercard

Percobaan ini menggunakan sebuah aplikasi bernama Tinkercad. Di dalam


Tinkercad dibuatlah rangkaian menggunakan Arduino uno, resistor, LED, dan
tombol. Disini pin 5v Arduino dihubungkan ke terminal positif breadboard dan
ground ke terminal negative breadboard. Kemudian dari pin 2 menuju salah satu
kaki dari tombol kemudian dari tombol tersebut menuju ke terminal positif dan
terminal negative setelah melewati resistor. Lalu dari pin 8 menuju ke anoda led
kemudian dari katoda led menuju ground.

Gambar 3. 1 Rangkaian

Setelah disusun sedemikian rupa, lalu masukkan source code yang ada ke
dalam modul source code pada Tinkercad
Gambar 2. 46 Source code

Tabel 2. 6 Source code

int buttonPin = 2;    


int ledPin =  8;     
int buttonState = 0;       

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);  
  pinMode(buttonPin, INPUT);
}
void loop(){
  
  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {
      Serial.println("Jomblo");
    digitalWrite(ledPin, HIGH);
  }
  else {
      Serial.println("Ora Jomblo");
    digitalWrite(ledPin, LOW);
  }
}

Setelah memastikan kode dan rangkaian berjalan dengan benar, mulailah


simulasi dan amati apa yang terjadi.
Hasil meliputi
Tabel 2. 7 Hasil pengamatan

No Push LE
Gambar
. Buttom D
1 1 1

2 0 0

Di paragraph pertama terdapat int buttonPin = 2; ini digunakan untuk


memberi tahu Arduino bahwa Variabel tersebut dapat dipakai seperti variabel lain,
nilainya dapat diubah. void setup() { yaitu kata kunci (Keyword) atau kode fungsi
yang hanya berjalan satu kali yaitu pada awal atau pertama kali program
dijalankan. Fungsi Void Setup yaitu untuk mendeklarasikan perintah pada setiap
variabel, menentukan pin mode, menentukan boudread pada serial monitor dan
lain-lain. void loop() { bertujuan untuk mengeksekusi dan menjalankan program
yang sudah dibuat. Fungi ini akan secara aktif mengontrol board Arduino baik
membaca input atau merubah output. buttonState =

digitalRead(buttonPin); digunakan untuk menjadikan pin tombol yaitu pin 2


dijadikan masukan dari Arduino. if (buttonState == HIGH) { digunakan
sebagai percabangan dalam pemrograman. Jika tombol ditekan maka 2 baris kode
di dalamnya akan dijalankan mikrokontroler, yaitu kode
Serial.println("Jomblo"); dan digitalWrite(ledPin, HIGH); . kode
Serial.println("Jomblo"); digunakan untuk mengeluarkan kata jomblo pada
serial monitor. digitalWrite(ledPin, HIGH); digunakan untuk menjadikan
PIN Arduino mengeluarkan tegangan atau bisa disebut logika 1.
else { digunakan untuk menjalankan kode di dalamnya jika tidak
memenuhi syarat yang ditentukan oleh percabangan tadi. Serial.println("Ora
Jomblo"); digunakan untuk mengeluarkan kata ora jomblo pada serial monitor.
digitalWrite(ledPin, HIGH); digunakan untuk menjadikan PIN Arduino
tidak mengeluarkan tegangan atau bisa disebut logika 0.
Fungsi kode diatas adalah untuk menyalakan lampu led sesuai keinginan
kita, yaitu setelah menekan tombol. Di saat kita menekan tombol pada
breadboard, maka masukan yang diterima oleh Arduino adalah 1, setelah itu
berjalanlah kode if yang memuat menuliskan tulisan jomblo pada serial monitor
dan menyalakan lampu led. Saat syarat tersebut tidak terpenuhi maka kode pada
sisi else yang akan dijalankan, yaitu menuliskan tulisan ora jomblo pada serial
monitor dan mematikan lampu led.

2.5.3. Percobaan ketiga


Gambar 2. 47 Tinkercard

Percobaan ini menggunakan sebuah aplikasi bernama Tinkercad. Di dalam


Tinkercad dibuatlah rangkaian menggunakan Arduino uno, resistor, LED, dan
tombol. Disini pin 5v Arduino dihubungkan ke terminal positif breadboard dan
ground ke terminal negative breadboard. Dari pin 13 dihubungkan ke anoda dari
led 2 dan katoda menuju terminal negative melalui resistor. Dari pin 8
dihubungkan ke anoda dari led 1 dan katoda menuju terminal negative melalui
resistor. Lalu dari pin 2 dihubungkan ke tombol 1 yang terhubung juga dengan
terminal negative melalui resistor lalu kaki lain dari tombol 1 dihubungkan ke
terminal positif. Kemudian dari pin 7 dihubungkan ke tombol 2 yang terhubung
juga dengan terminal positif melalui resistor lalu kaki lain dari tombol 2
dihubungkan ke terminal negatif.

Gambar 2. 48 Rangkaian
Setelah disusun sedemikian rupa, lalu masukkan source code yang ada
kedalam modul source code pada Tinkercad

Gambar 2. 49 Source code

Tabel 2. 8 Source code

const int pb1 = 2;


const int pb2 = 7;

const int red = 13;


const int green = 8;
 
int nilaipb1 = 0;
int nilaipb2 = 0;
void setup() { 
    pinMode(pb1, INPUT);
    pinMode(red, OUTPUT)    
   pinMode(pb2, INPUT);
    pinMode(green, OUTPUT);  
    Serial.begin (9600);
}
 void loop() {
    nilaipb1 = digitalRead(pb1);
    nilaipb2 = digitalRead(pb2);
   Serial.println (digitalRead(pb2));
 
    if (nilaipb1 == HIGH) {
      digitalWrite(red, HIGH);
  }
  else {
      digitalWrite(red, LOW);
  }
  
  
  if (nilaipb2 == HIGH) {
      digitalWrite(green, HIGH);
  }
  else {
      digitalWrite(green, LOW);
  }
}

Setelah memastikan kode dan rangkaian berjalan dengan benar, mulailah


simulasi dan amati apa yang terjadi.
Hasil meliputi
Tabel 2. 9 Hasil pengamatan

Push Puss
No LED LE
Buttom buttom Gambar
. 1 D2
1 2
1 0 0 1 0

2 0 1 0 0

3 1 0 1 1
4 1 1 0 1

Pada paragraph pertama menggunakan kode const int pb1 = 2; , ini


digunakan untuk memberi tahu Arduino bahwa Variabel tersebut dapat dipakai
seperti variabel lain, hanya saja nilainya tidak dapat diubah. Di paragraph
selanjutnya terdapat int nilaipb1 = 0; ini digunakan untuk memberi tahu
Arduino bahwa Variabel tersebut dapat dipakai seperti variabel lain, nilainya
dapat diubah. void setup() { yaitu kata kunci (Keyword) atau kode fungsi
yang hanya berjalan satu kali yaitu pada awal atau pertama kali program
dijalankan. Fungsi Void Setup yaitu untuk mendeklarasikan perintah pada setiap
variabel, menentukan pin mode, menentukan boudread pada serial monitor dan
lain-lain. void loop() { bertujuan untuk mengeksekusi dan menjalankan
program yang sudah dibuat. Fungi ini akan secara aktif mengontrol board Arduino
baik membaca input atau merubah output. nilaipb1 = digitalRead(pb1);
digunakan untuk menjadikan pin tombol yaitu pin 2 dijadikan masukan dari
Arduino. if (nilaipb1 == HIGH) { digunakan sebagai percabangan dalam
pemrograman. Jika tombol ditekan maka 1 baris kode di dalamnya akan
dijalankan mikrokontroler, yaitu kode digitalWrite(red, HIGH); digunakan
untuk menjadikan PIN Arduino mengeluarkan tegangan atau bisa disebut logika
1.
else { digunakan untuk menjalankan kode di dalamnya jika tidak
memenuhi syarat yang ditentukan oleh percabangan tadi. digitalWrite(red,
LOW); digunakan untuk menjadikan PIN Arduino tidak mengeluarkan tegangan
atau bisa disebut logika 0.
Tombol 1 menggunakan rangkaian pull down yg menyebabkan nilai saat
belum ditekan adalah 0 sementara saat ditekan menjadi 1. Tombol 2
menggunakan rangkaian pull up yg menyebabkan nilai saat belum ditekan adalah
1 sementara saat ditekan menjadi 0. Hal ini menyebabkan lampu led 1 selalu
menyala jika tombol 2 tidak ditekan sementara lampu led 2 mati jika tombol 1
tidak ditekan. Dan saat kedua tombol ditekan maka lampu led 1 akan mati
sementara lampu led 2 akan hidup.
2.6. Tugas
Tugas dalam praktikum ini membuat Sistem Trafic Light simpangan 4
dengan setiap simpangan terdapat tombol untuk membantu orang agar dapat
menyebarkan jalan. Untuk membuat sistem tersebut kelompok kam menggunakan
platform proteus dengan Mikrokontroler Arduino Mega 2560. Agar dapat
membuat prototipe sistem kami menggunakan 3 buah LED : Merah, Kuning dan
Hijau di tiap perempatan serta terdapat Push buttom yang untuk membuat semua
lampu menjadi merah selama 10 detik untuk menyeberang. Untuk rangkaian dapat
dilihat sebagai berikut

Gambar 2. 50 Rangkaian Tugas

Pada rangkaian tersebut dapat kita kelompokan menjadi 2 rangkaian yakni


LED dan push buttom pada tangkaian LED terdapat resistor yang dugunakan
membatasi arus yang mengalir untuk tiap LED. Pada tiap LED tidak dapat
dirangkai secara pararel dengan ground karena akan membuat LED tidak
menyala. Pada rangkaian push buttom diberikan sebuah ground yang dirangkai
seri serta VCC yang membuat seperti logict stage 1 dan 0 supaya mikrokontroler
dapat membaca sinyal yang diberikan. Pin 1-16 di arduino digunakan untuk
menjadi input-output serta tidak lupa VCC dan ground digunakan sebagai suplai
daya untuk mikrokontroler.
Untuk mengoperasikan rangkaian tersebut Arduino telah ditanam program
terlebih dahulu dengan source code :
Tabel 2. 10 source code

const int MP1 = 1;


const int KP1 = 2;
const int HP1 = 3;
const int BP1 = 4;
const int MP2 = 5;
const int KP2 = 6;
const int HP2 = 7;
const int BP2 = 8;
const int MP3 = 9;
const int KP3 = 10;
const int HP3 = 11;
const int BP3 = 12;
const int MP4 = 13;
const int KP4 = 14;
const int HP4 = 15;
const int BP4 = 16;

void menyebrang (){


digitalWrite(MP1, HIGH);
digitalWrite(MP2, HIGH);
digitalWrite(MP3, HIGH);
digitalWrite(MP4, HIGH);
digitalWrite(KP1, LOW);
digitalWrite(KP2, LOW);
digitalWrite(KP3, LOW);
digitalWrite(KP4, LOW);
digitalWrite(HP1, LOW);
digitalWrite(HP2, LOW);
digitalWrite(HP3, LOW);
digitalWrite(HP4, LOW);
delay (10000);}
void p1 (){
digitalWrite(MP1, LOW);
digitalWrite(MP2, HIGH);
digitalWrite(MP3, HIGH);
digitalWrite(MP4, HIGH);
digitalWrite(KP1, LOW);
digitalWrite(KP2, LOW);
digitalWrite(KP3, LOW);
digitalWrite(KP4, LOW);
digitalWrite(HP1, HIGH);
digitalWrite(HP2, LOW);
digitalWrite(HP3, LOW);
digitalWrite(HP4, LOW);
delay (9000);
digitalWrite(MP1, LOW);
digitalWrite(MP2, HIGH);
digitalWrite(MP3, HIGH);
digitalWrite(MP4, HIGH);
digitalWrite(KP1, HIGH);
digitalWrite(KP2, LOW);
digitalWrite(KP3, LOW);
digitalWrite(KP4, LOW);
digitalWrite(HP1, LOW);
digitalWrite(HP2, LOW);
digitalWrite(HP3, LOW);
digitalWrite(HP4, LOW);
delay (3000);}
void p2 (){
digitalWrite(MP1, HIGH);
digitalWrite(MP2, LOW);
digitalWrite(MP3, HIGH);
digitalWrite(MP4, HIGH);
digitalWrite(KP1, LOW);
digitalWrite(KP2, LOW);
digitalWrite(KP3, LOW);
digitalWrite(KP4, LOW);
digitalWrite(HP1, LOW);
digitalWrite(HP2, HIGH);
digitalWrite(HP3, LOW);
digitalWrite(HP4, LOW);
delay (9000);
digitalWrite(MP1, HIGH);
digitalWrite(MP2, LOW);
digitalWrite(MP3, HIGH);
digitalWrite(MP4, HIGH);
digitalWrite(KP1, LOW);
digitalWrite(KP2, HIGH);
digitalWrite(KP3, LOW);
digitalWrite(KP4, LOW);
digitalWrite(HP1, LOW);
digitalWrite(HP2, LOW);
digitalWrite(HP3, LOW);
digitalWrite(HP4, LOW);
delay (3000);}
void p3 (){
digitalWrite(MP1, HIGH);
digitalWrite(MP2, HIGH);
digitalWrite(MP3, LOW);
digitalWrite(MP4, HIGH);
digitalWrite(KP1, LOW);
digitalWrite(KP2, LOW);
digitalWrite(KP3, LOW);
digitalWrite(KP4, LOW);
digitalWrite(HP1, LOW);
digitalWrite(HP2, LOW);
digitalWrite(HP3, HIGH);
digitalWrite(HP4, LOW);
delay (9000);
digitalWrite(MP1, HIGH);
digitalWrite(MP2, HIGH);
digitalWrite(MP3, LOW);
digitalWrite(MP4, HIGH);
digitalWrite(KP1, LOW);
digitalWrite(KP2, LOW);
digitalWrite(KP3, HIGH);
digitalWrite(KP4, LOW);
digitalWrite(HP1, LOW);
digitalWrite(HP2, LOW);
digitalWrite(HP3, LOW);
digitalWrite(HP4, LOW);
delay (3000);}
void p4 (){
digitalWrite(MP1, HIGH);
digitalWrite(MP2, HIGH);
digitalWrite(MP3, HIGH);
digitalWrite(MP4, LOW);
digitalWrite(KP1, LOW);
digitalWrite(KP2, LOW);
digitalWrite(KP3, LOW);
digitalWrite(KP4, LOW);
digitalWrite(HP1, LOW);
digitalWrite(HP2, LOW);
digitalWrite(HP3, LOW);
digitalWrite(HP4, HIGH);
delay (9000);
digitalWrite(MP1, HIGH);
digitalWrite(MP2, HIGH);
digitalWrite(MP3, HIGH);
digitalWrite(MP4, LOW);
digitalWrite(KP1, LOW);
digitalWrite(KP2, LOW);
digitalWrite(KP3, LOW);
digitalWrite(KP4, HIGH);
digitalWrite(HP1, LOW);
digitalWrite(HP2, LOW);
digitalWrite(HP3, LOW);
digitalWrite(HP4, LOW);
delay (3000); }
void kondisi (){
if(digitalRead(BP1)== HIGH){
menyebrang();}
else if(digitalRead(BP2)== HIGH){
menyebrang();}
else if(digitalRead(BP3)==HIGH){
menyebrang();}
else if (digitalRead(BP4)==HIGH){
menyebrang();} }

void setup() {
// put your setup code here, to run once:
pinMode(MP1, OUTPUT);
pinMode(MP2, OUTPUT);
pinMode(MP3, OUTPUT);
pinMode(MP4, OUTPUT);
pinMode(KP1, OUTPUT);
pinMode(KP2, OUTPUT);
pinMode(KP3, OUTPUT);
pinMode(KP4, OUTPUT);
pinMode(HP1, OUTPUT);
pinMode(HP2, OUTPUT);
pinMode(HP3, OUTPUT);
pinMode(HP4, OUTPUT);
pinMode(BP1, INPUT);
pinMode(BP2, INPUT);
pinMode(BP3, INPUT);
pinMode(BP4, INPUT);}
void loop() {
// put your main code here, to run repeatedly:
kondisi();
p1();
kondisi();
p2();
kondisi();
p3();
kondisi();
p4();
}
Program diawali dengan const int MP1 = 1;yang digunakan untuk
inisialisasi variabel yang digunakan untuk pin dalam board yang mempermudah
dalam memprogram. Kelompok kami membuat 6 buah fungsi tambahan. yakni
fungsi p1, p2, p3, dan p4 sebagai fungsi untuk mengoperasikan lampu tiap
persimpangan yang dipanggil dengan perintah p1(); pada void loop. Pada tiap
fungsi p() terkandung 2 perintah menyalakan dan mematikan LED yang ditulis
bertutut-turut digitalWrite(MP3, HIGH); dan digitalWrite(MP3, LOW);.
Serta terdapat interupt waktu untuk membuat jeda sebelum perintah selanjutnya di
lakukan yakni delay (3000);.Lalu terdapat juga 2 fungsi sebagai interupt yakni
menyembarang() dan fungsi cek yakni kondisi(). Pada fungsi menyeberang()
membuat semua lampu merah hidup dan semua lampu lain mati. Dan pada fungsi
kondisi() menggunakan if-else-if yang mana apabila terdapat push buttom
yang bernilai 1 maka jalankan fungsi menyeberang().
Tabel 2. 11 Hasil Pengamatan

Wakt MP KP HP MP KP HP MP KP HP MP KP HP
u (s) 1 1 1 2 2 2 3 3 3 4 4 4
1-9 0 0 1 1 0 0 1 0 0 1 0 0
10-
0 1 0 1 0 0 1 0 0 1 0 0
12
13-
1 0 0 0 0 1 1 0 0 1 0 0
21
22-
1 0 0 0 1 0 1 0 0 1 0 0
24
25-
1 0 0 1 0 0 0 0 1 1 0 0
33
24- 1 0 0 1 0 0 0 1 0 1 0 0
36
27-
1 0 0 1 0 0 1 0 0 0 0 1
45
46-
1 0 0 1 0 0 1 0 0 0 1 0
48
(On
PB) 1 0 0 1 0 0 1 0 0 1 0 0
10
Dari tabel pengamatan diatas dapat kita ketahui bahwa pada setiap
persimpangan mendapat waktu menyala untuk lampu hijau 9 detik kuning 3 detik
dan lampu merah 36 detik dan apabila push buttom di tekan maka lampu akan
merah semua selama 10 detik dan akan dilanjutkan seperti semula.

Gambar 2. 51 Lampu HP1 hidup

Kondisi yang ditampilkan oleh LED terjadi karena fungsi p1() yang
membuat persimpangan 1 LED hijau menyala, persimpangan 2,3 dan 4 LED
merah menyala dan fungsi ini akan di delay selama 9 detik.

Gambar 2. 52 lampu KP1 Hidup

Kondisi yang ditampilkan oleh LED terjadi karena fungsi p1() yang
membuat persimpangan 1 LED kuning menyala, persimpangan 2,3 dan 4 LED
merah menyala dan fungsi ini akan di delay selama 3 detik.
Gambar 2. 53 Lampu HP2 hidup

Kondisi yang ditampilkan oleh LED terjadi karena fungsi p2() yang
membuat persimpangan 2 LED hijau menyala, persimpangan 1,3 dan 4 LED
merah menyala dan fungsi ini akan di delay selama 9 detik.

Gambar 2. 54 Lampu KP2 hidup

Kondisi yang ditampilkan oleh LED terjadi karena fungsi p2() yang
membuat persimpangan 2 LED kuning menyala, persimpangan 1,3 dan 4 LED
merah menyala dan fungsi ini akan di delay selama 3 detik.

Gambar 2. 55 Lampu HP3 hidup

Kondisi yang ditampilkan oleh LED terjadi karena fungsi p3() yang
membuat persimpangan 3 LED hijau menyala, persimpangan 1,2 dan 4 LED
merah menyala dan fungsi ini akan di delay selama 9 detik.
Gambar 2. 56 Lampu KP3 hidup

Kondisi yang ditampilkan oleh LED terjadi karena fungsi p3() yang membuat
persimpangan 3 LED kuning menyala, persimpangan 1, 2, dan 4 LED merah
menyala dan fungsi ini akan di delay selama 3 detik.

Gambar 2. 57 Lampu HP4 hidup

Kondisi yang ditampilkan oleh LED terjadi karena fungsi p4() yang
membuat persimpangan 4 LED hijau menyala, persimpangan 1,2 dan 3 LED
merah menyala dan fungsi ini akan di delay selama 9 detik.

Gambar 2. 58 Lampu KP4 hidup


Kondisi yang ditampilkan oleh LED terjadi karena fungsi p4() yang
membuat persimpangan 4 LED kuning menyala, persimpangan 1,2 dan 3 LED
merah menyala dan fungsi ini akan di delay selama 3 detik.

Gambar 2. 59 Lampu saat push buttom ditekan

Kondisi yang ditampilkan oleh LED terjadi karena fungsi kondisi() yang
digunakan untuk mengecek push buttom dan Karena push buttom ditekan maka
membuat syarat kondisi terpenuhi untuk memanggil fungsi menyeberang() hijau
menyala, persimpangan 2,3 dan 4 LED merah menyala dan fungsi ini akan di
delay selama 9 detik.
2.7. Kesimpulan
1. Arduino mega 2560 adalah suatu board yang terintegrasi dengan
mikrokontroler Atmega 2560 yang dapat digunakan untuk membangun
suatu sistem pemroses input-output.
2. Dalam pembuatan program menggunakan bahasa C yang di compile
dengan Arduino IDE yang mana baru dapat di instal ke dalam
mikrokontroler.
3. Pada praktik kali ini dapat menggunakan 2 platform Web yakni tinkercard
dan aplikasi offline proteus.
4. Dalam membuat rangkaian sistem arduino inisialisasi pin sangatlah
penting dan akan menyebabkan kesalahan yang fatal bila terjadi kesalahan.
5. Pada percobaan 1 proteus membutuhkan suatu copiler untuk membuat
program Arduino, proteus membutuhkan bantuan pihak ke 3 seperti
Arduino IDE.
6. Pada tinkercard tidak diperlukan sebuah kompile karena sudah terdapat
satu set lengkap board dan juga kompile tetapi fitur dati board yang di
sediakan tidak sekaya proteus.
7. Arduino mengenal bahasa tingkat tinggi yang memungkinkan kita
menggunakan custum fungsi untuk mempermudah dan mempercepat serta
efisien dalam menulis sintak.
8. Arduino juga sudah terdapat interupt waktu jeda yang mana tidak
membutuhkan perangkat lain untuk fungsi ini.
9. Pada kehidupan sehari-hari arduino dapat dimanfaatkan untuk automatis
asi alat dalam kehidupan seharihari misal lampu lalu lintas ataupun deteksi
maling pada rumah kita.
10. Arduino tidak mengerti atau dapat memproses sinyal selain LOW atau
HIGH misal kabel yang belum terhubung denagn CVV ataupun GRD
maka sinyal tersebut tidak akan dapat di mengerti.

Anda mungkin juga menyukai