Anda di halaman 1dari 25

LABORATORIUM ELEKTRONIKA DIGITAL DAN

MIKROKONTROLER

“ DIGITAL INPUT SWITCH ”

Disusun Oleh :
Satriani Rahmayanti (321 18 024)

Nama Teman Kelompok :


Intan Ayu Kurnia (321 18 013)

Kelas 2A D3 Teknik Listrik

PROGRAM STUDI TEKNIK LISTRIK


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI UJUNG PANDANG
2018/2019
I. TUJUAN

a) Membuat layout simulasi rangkaian switch di proteus menggunakan


Arduino kuno

b) Membuat program sketch di IDE Arduino dengan menyalakan simulasi


lampu LED
c) Mengaplikasikan hasil simulasi di proteus ke Board Modul Arduino Uno

II. DASAR TEORI


Pin I/O yang digunakan pada rangkaian sebelumnya digunakan sebagai
keluaran, sinyal digital yang dikeluarkan Oen Arduino melalu pin yang
dipilih. Pada bagian ini adalah kebalikan, Arduio membaca sinyal digital
melalui pin yang ditentukan.

Fungsi
pinMode(pin_number, mode)
Untuk mengecek mode pin dapat kita gunakan fungsi PIN mode fungsi ini
memerlukan dua parameter in mode nomor PIN mode parameter pertama
diisi oleh nomor pin dan kemudian parameter kedua Disi oleh mode PIN baik
mode input atau output sesuai dengan mode yang kita ingin gunakan
Fungsi mode tadi biasanya dipanggil dalam fungsi set up fungsi setup
adalah nama fungsi yang telah disediakan oleh Arduino untuk menyatakan
fungsi yang akan dijalankan pertama kali fungsi ini berisi kode-kode untuk
kepentingan inisialisasi

digitalWrite(pin_number, mode)

Fungsi ini digunakan untuk menulis nilai digital untuk sebuah pin fungsi
ini memerlukan dua parameter yaitu dan nilai digital yang akan kita
masukkan nilai yang di masukan berupa nilai digital seperti yang telah kita
ketahui nilai digital tersebut Iyalah 1 atau 0 dan juga biasanya disebut dengan
high low

digitalRead(pin_number)

Fungsi ini digunakan untuk membaca nilai digital yang terdapat pada
sebuah pin input output yang ingin kita baca fungsi ini hanya memiliki
sebuah parameter yaitu nomor PIN yang ingin kita baca
Rangkaian “Pull Up” dan “Pull Down” sangat sering digunakan dalam bidang
elektronika. Selain itu istilah pull up dan pull down juga akan sering digunakan oleh
programmer saat memprogram mikrokontroler. Seorang programmer setidaknya harus
mengerti dahulu pengertian dasar dari pull up dan pull down.
Level tegangan
Dalam rangkaian digital, dikenal sinyal yang dinamakan “high” dan "low" atau “1”
dan “0”. Untuk rangkaian digital 5 VDC, nilai tegangan 5 VDC disebut dengan kondisi
“high” sebaliknya nilai tegangan 0VDC disebut dengan kondisi “low”, sedangkan pada
rangkaian 3,3 volt sinyal “high” adalah 3,3 VDC dan sinyal “low” adalah 0 VDC.
Namun tentunya sinyal “high” tidak harus persis 5 VDC atau 3,3 VDC tergantung dari
toleransi rangkaian dan “Integrated Circuit” yang digunakan.
Perhatikan rangkaian switch berikut yang dihubungkan ke pin input mikrokontroller.

Gambar 2.1 Switch tanpa pull up/pull down

Jika switch ditekan, pin input mikrokontroller akan terhubung ke ground


sehingga mikrokontroller akan membaca sinyal “low” pada pin tersebut. Tetapi jika
switch tidak ditekan sinyal apa yang dibaca mikrokontroller ? Tidak terdefinisi. Pin
input mikrokontroller tidak terhubung ke tegangan apapun sehingga sinyal yang
dibaca adalah random, yang berarti bisa saja “high” atau “low”. Kondisi dimana
sinyal tidak terdefinisi disebut “floating”. Untuk mengatasi kondisi ini, kita dapat
menambahkan tegangan pada input pin, seperti pada gambar di bawah ini.

Gambar 2.2 Switch dikombinasikan dengan +5Vdc

Dengan ditambahkan tegangan 5 volt pada pin input, masalah “floating”


telah diselesaikan. Akan tetapi muncul satu masalah baru, yaitu ketika switch ditekan
tegangan 5 volt akan terhubung langsung dengan ground, sehingga arus yang sangat
besar akan mengalir antara tegangan 5 volt dan ground. Kondisi ini disebut “short
circuit”. Kondisi ini dapat menyebabkan kerusakan fisik suplai daya dan rangkaian
itu sendiri. Arus yang sangat besar tersebut dapat dibatasi dengan menambahkan
sebuah resistor.

Pull Up

Gambar 2.3 Rangkaian switch dengan “pull up” ke 5 volt

Resistor 10 kohm akan membatasi arus menjadi (5 volt / 10 k ohm) = 0,5


mA. Dengan penambahan resistor maka masalah “short circuit” telah diselesaikan.
Penambahan resistor ke sinyal “high” inilah yang disebut dengan “pull up” dan
penambahan resistor ke sinyal “low” disebut “pull down”. Fungsi utama “pull up”
dan “pull down” adalah untuk mengatasi kondisi “floating” yang terjadi pada
suatu rangkaian agar menjadi terdefinisi ke sinyal “high” atau “low”.

Pull Down

Gambar 2.4 Rangkaian swicth dengan pull down

Pilihan antara “pull up” atau “pull down” tergantung pada rangkaian yang
ingin ditambahkan. Pada rangkaian diatas, untuk mengatasi “floating” harus
ditambahkan “pull down”. Penambahan “pull up” tetap akan mengatasi masalah
“floating”. Akan tetapi jika switch ditekan pin input akan membaca “high” dan jika
switch tidak ditekan pin input tetap akan membaca “high” sehingga mikrokontroller
tidak dapat mengetahui apakah switch ditekan atau tidak.
Berapakah nilai resistor yang harus ditambahkan ? Umumnya nilai 10 Kohm
cukup untuk sebagian besar rangkaian. Tetapi untuk rangkaian digital yang kompleks
dan “high speed”, nilai resistor standar tidak bisa digunakan.
Selain itu, dalam bidang pemrograman mikrokontroler, dikenal juga beberapa istilah
seperti:
1. Active high : suatu kondisi dimana suatu pin akan aktif jika diberi tegangan
atau logika 1 (high).

2. Active low : suatu kondisi dimana suatu pin akan aktif jika diberi 0V (GND)
atau logika 0 (low).
3. Falling edge : merupakan transisi dari nilai logika 1(high) menjadi nilai logika
0 (low).
4. Rising edge : sebaliknya rising edge merupakan perubahan dari logika 0 (low)

Untuk membuat sebuah pin menjadi masukan digital, yang diatur


adalah sebuah pin dengan cara:

1. Tentukan nomor pinnya


2. Pilih masukan floating atau pullup
  
Jika floating maka:

digitalWrite(pin,0) atau
writeDigital(pin,LOW)
 
Jika pullup maka:

digitalWrite(pin,1) atau
writeDigital(pin,HIGH)

untuk membaca data digital yang masuk, gunakan perintah berikut.

var=digitalRead(pin);


 tergantung logika input. Bernilai T
var adalah variabel, nilainya
(HIGH) atau '1' (LOW).
 
pin adalah nomor pin Arduino yang dibaca masukannya.
Istilah dari floating dan pullup dijelaskan dengan gambar berikut:

Pullup berarti resistor pullup (di dalam mikrokontroler) aktif.

Gambar 2.5 Rangkaian swicth dengan pull up aktif

Non pullup (floating) berarti resistor pullup tidak aktif.

Gambar 2.6 Rangkaian swicth dengan pull up tidak aktif

Perbedaan dari kondisi di atas, misalnya, pin 2 dihubungkan dengan piranti


masukan berupa saklar/switch. Ketika SW pada posisi OFF (Open) maka
logika pada pin 2 = 1, karena di-pullup oleh resistor yang terhubung ke Vcc

Ketika SW = 'ON' (Closed) maka logika pada pin 2=0, karena


terhubung ke ground.

Berbeda dengan floating, ketika sakelar dalam posisi terbuka


maka logikanya bukan 'l', melainkan floating.
III. ALAT DAN BAHAN

a. Tools Proteus (software)

b. Tools IDE Arduino Uno

c. Board Modul Arduino Uno : 1 set

d. Kabel USB : 1 buah

e. Kabel jumper male-female, male-male, female-female

IV. RANGKAIAN PERCOBAAN


a) Rangkaian percobaan 1 ( menyalakan LED dengan Push
Button)

Gambar 4.1. Rangkaian percobaan 1


b) Rangkaian percobaan 2 (Menyalakan Led dengan 1 kali tekan
5 detik dan 2 kali tekan 3 detik)

Gambar 4.2. Rangkaian percobaan 2.

c) Rangkaian percobaan 3 (Simulasi Alarm Pabrik Tepung)

Gambar 4.3. Rangkaian percobaan 3.

V. LANGKAH PERCOBAAN

1. Mengikuti langkah a – h pada “Membuat Rangkaian dan Simulasi”


yang terdapat dalam ARDUINO DAN SOFTWARE PROTEUS

2. Mencari komponen yang dibutuhkan yaitu ARDUINO UNO R3,


BUTTON,LED RED dan RES.

3. Setelah komponen semua ada, menghubungkan kaki-kaki komponen


seperti pada Gambar 4.1,4.2 dan 4.3 di atas.
4. Membuka Sketch Arduino dan membuat source code seperti berikut:
void setup() { const int ledPin = 13;
pinMode (2,INPUT); const int PBPin = 2;
pinMode (13,OUTPUT);
digitalWrite (2, HIGH); int
PB_counter=0,delay_counter=0
} ;
bool PB_buff=0;
void loop()
{ void setup() {
byte tombol; pinMode(ledPin,OUTPUT);
tombol = digitalRead (2);
if(tombol == LOW) pinMode(PBPin,INPUT_PULLUP);
}

{
digitalWrite (13,HIGH); void loop() {

delay (1000); if(digitalRead(PBPin)==0


&& PB_buff==0){PB_buff=1;}
}
if(digitalRead(PBPin)==1
else && PB_buff==1){PB_buff=0;
{ PB_counter++;
digitalWrite (13,LOW); }
delay (5000); if(PB_counter!=0){
} digitalWrite(ledPin,1);
delay_counter++;
} if(delay_counter>=100){
PB_counter--
;delay_counter=0;
}
delay(10);
} else {
digitalWrite(ledPin,0);
}
}
PERCOBAAN 2
PERCOBAAN 1
byte LA, LB, OFF; if(LB == LOW && OFF== HIGH)
{
void setup() { digitalWrite (10,HIGH);
// put your setup code here, digitalWrite (12,HIGH);
to run once:
delay (500);
pinMode (2,INPUT);
digitalWrite (10,LOW);
digitalWrite (2, HIGH);
digitalWrite (12,LOW);
pinMode (3,INPUT);
delay (500);
digitalWrite (3, HIGH);
}
pinMode (4,INPUT);
digitalWrite (4, HIGH);
if(OFF== LOW)
pinMode (10,OUTPUT);
{
pinMode (11,OUTPUT);
digitalWrite (10,LOW);
pinMode (12,OUTPUT);
digitalWrite (11,LOW);
digitalWrite (12,LOW);
}

}
void loop()
{
}
LA = digitalRead (2);
LB = digitalRead (3);
OFF = digitalRead (4);

if(LA == LOW && OFF==


HIGH)
{
digitalWrite (10,HIGH);
digitalWrite (11,HIGH);
delay (500);
digitalWrite (10,LOW);
digitalWrite (11,LOW);
delay (500);
} PERCOBAAN 3

if(LB == LOW && OFF==


HIGH)
5. Selanjutnya klik “verify/compile” pada toolbar, fungsinya untuk
mengecek coding yang kita buat sudah benar atau masih ada yang
salah

6. Jika coding telah benar maka pada bagian kiri bawah akan terlihat
seperti ini:

7. Kemudian menyalin hasil kompailer yang berekstensi “.hex” pada


rangkaian Arduino yang terdapat pada Proteus
8. Sekarang rangkaian kita siap untuk disimulasikan, dengan mengklik
symbol “Play” pada bagian kiri bawah jendela Proteus.

9. Simulasi selesai
VI. HASIL PERCOBAAN

1. Simulasi Percobaan

a. Percobaan 1 (menyalakan LED dengan Push Button)

Gambar 6.1 Simulasi percobaan 1 menggunakan proteus

b. Percobaan 2 (Menyalakan Led dengan 1 kali tekan dan 2 kali tekan)

Gambar 6.2 Simulasi percobaan 2 menggunakan proteus


c. Percobaan 3 (Simulasi Alarm Pabrik Tepung)

Gambar 6.3 Simulasi percobaan 3 menggunakan proteus


2. Syntax Program
a. Percobaan 1 (Menylakan Led dengan Push Button)

Gambar 6.4 Syntax Program Menylakan Led dengan Push Button


b. Percobaan 2 (Menyalakan Led dengan 1 kali tekan dan 2 kali tekan)

Gambar 6.5 Syntax program percobaan 2


c. Percobaan 3 (simulasi alarm pabrik tepung)

Gambar 6.6 Syntax program Simulasi Alarm


VII.ANALISA
Arduino Uno memiliki 14 pin I/O digital yang berfungsi untuk
melaksanakan output yaitu lampu LED. Pada Arduino, terdapat pin 13
yang menghasilkan sinyal digital dimana output digital terdiri dari logika
HIGH (1) dan LOW (0).Ketika HIGH bernilai 1 dan bekerja dengan
tegangan 5V, serta LOW bernilai 0 dan bekerja dengan tegangan 0V maka
kondisi ini disebut HIGH ACTIVE. Sedangkan ketika HIGH bernilai 0
dan bekerja dengan tegangan 0V, serta LOW bernilai 1 dan bekerja dengan
tegangan 5V maka kondisi ini disebut LOW ACTIVE.
Sebelum menyalakan lampu LED menggunakan ouput digital,
maka sebelumnya syntax program harus dimasukkan ke dalam IDE
Arduino. Adapun di dalam IDE Arduino digunakan syntax program berupa
pinMode() yang berfungsi untuk mengkonfigurasikan pin tertentu agar
berfungsi sebagai input atau ouput, digitalWrite() yang berfungsi untuk
memberikan nilai HIGH atau Low pada pin digital,
digitalRead(pin_number) yang untuk membaca nilai digital yang terdapat
pada sebuah pin input output, dan delay() yang berfungsi sebagai pemberi
jeda waktu pada program

1. Percobaan 1 (Menyalakan LED dengan pushbutton)


 Analisis pemrograman

Gambar 7.1 Simulasi proteus percobaan 1


Pada percobaan pertama yakni menyalakan led dengan pushbutton.
Langkah pertama yang dilakukan adalah membuat program dan
mensimulasikan pada board arduino di Proteus . seperti pada gambar
diatas kita setting pin 2 sebagai INPUT dan pin 13 sebagai OUTPUT.
output kemudian input bernilai HIGH.
Diawal kita mendeklarasikan pada sketch program fungsi setup () 2
didefinisikan sebagai masukan (pinMode( 2, INPUT)) dan 13 sebagai
keluaran (pinMode(13, OUTPUT)); . Pada program utama loop ()
pertama dibaca dulu tombolnya (tombol = digitalRead (2)); ini
berfungsi untuk membaca keaadan nilai digital dengan menentukan
terlebih dahulu variable pembaca dan variable yang dibaca pada
percobaan ini tombol sebagai variable pembaca dan (2) sebagai variable
yang dibaca. Kemudian diperiksa aoakah dalam kondisi LOW atau
ditekan (if (tombol == LOW)); Jika memang ditekan, maka LED
dihidupkan (digitalWrite(13,HIGH)) sebaliknya LED akan dimatikan
(digitalWrite(13,LOW)) Perintah if…else mengartikan jika pushbutton
ditekan maka push button terhubung ke ground dan akan bernilai LOW.
Dengan ini akan membuat Led dapat menyala. Sedangkan jika push buttonnya
tidak ditekan maka tidak akan tersambung ke ground sehingga bernilai HIGH
dan menyebabkan led tidak menyala.

 Analisis hasil percobaan secara praktek

Gambar 7.2 Percobaan secara praktik menyalakan led dengan pushbutton

Percobaan secara praktik dilakukan dengan menggunakan board


Arduino yang channelnya dihubungkan dengan kabel jumper male-
female. Adapun channel yang digunakan pada percobaan ini adalah
channel CN1 yang berfungsi untuk menghubungkan tegangan 5V dan
0V, serta CN12 yang merupakan control Push Button, 1 yang
dihubungkan pada pin 2 dan pada CN 6 yang merupakan control led , 3
dihubungkan ke pin 13 Dari rangkaian Gambar 7.2 Led` akan menyala
sesuai dengan program yang telah dibuat .

2. Percobaan 2 (Menyalakan Led dengan 1 kali tekan 5 detik dan 2 kali tekan
3 detik)
 Analisis Pemrograman

Gambar 7.3 Simulasi Percobaan 2

Pada percobaan kedua yakni Menyalakan Led dengan 1 kali tekan


dan 2 kali tekan. Sama dengan percobaan pertama tetapi dilakukan
modifikasi pada pemrograman dituliis dengan kata “ const” yang
artinya konstanta .penulisan konstanta pada percobaan ini yaitu const
int ledPin = 13; const int PBPin = 2; artinya variable “ledPin” dan
“PBPin” adalah sebuah interger yang memiliki tetap yaitu 13 dan 2.
Nilai ini hanya bias dibaca dan tidak dapat diubah selama program
dijalankan. int PB_counter=0 artinya mendeklarasikan suatu variable
dengan nama “PB_counter” dengan nilai awal 0. . tipe data bool
menunjukan ukuuran memori 1 byte yang bernilai awal 0 (False).
berbeda dendan int yang memiliki ukuran memori 2 byte.
Pada percobaan ini digunakan operator boolean AND seperti pada
syntax program 6.5 if(digitalRead(PBPin)== 0 && PB_buff==0)
{PB_buff=1;}if(digitalRead(PBPin)==1&&PB_buff==1){PB_buff==0;
artinya jika digitalRead (2) dan PB_buff berlogika LOW maka PB_buff
akan bernilai HIGH jika digitalRead (2) dan PB_buff berlogika HIGH
maka PB_buff akan bernilai LOW. PB_counter++ ,operator ini akan
menambah nilai suatu variable dengan 1 diketahui nilai awal dari
PB_counter itu sendiri = 0 maka pertanyaan tersebut akan menghasikan
PB_counter = 1 begitupula seterusnya hal yang sama juga berlaku pada
delay_counter. if(PB_counter!=0){ digitalWrite(ledPin,1);} artinya jika
PB_counter tidak sama dengan 0 makan lampu led akan menyala
if(delay_counter>=100){PB_counter--;delay_counter=0;} artinya jika
waktu delay lebih besar atau sama dengan 100 operator ini akan
mengurangi nilai suatu variable dengan 1 dan akan kembali pada 0
sehingga nilai akan berulang terus menerus. Hasil simulasi Ketika push
button ditekan 1 kali, LED akan myala selama 1 detik. Ketika push button
ditekan 2 kali LED akan nyala 2 detik. Begitu seterusnya

3. Percobaan 3 (simulasi alarm pabrik tepung)


 Analisis Pemrograman

Gambar 7.4 Hasil simulasi ketika push button pertama ( level atas )
ditekan
Gambar 7.5 Hasil simulasi ketika push button kedua ( level bawah)
ditekan

Pada percobaan ketiga yakni alarm pabrik tepung yang bertujuan


untuk memberi peringatan kepada para pekerja bahwa pengisian
gandum, sudah mencapai batas (level atas) dan batas (level bawah)
yang dibuat agar proses pengisian gandumnya lebih efisien . Pada
simulasi ini terdapat 2 led , terdapat buzzer untuk memberikan efek
bunyi yang mengatur Level atas ,level bawah dan tombol off yang
berfungsi mematikan led dan buzzer saat pengisian yang tidak
memungkinkan misalnya pada kondisi dimana persediaan gandum
habis atau masih dalam perjalanan sehingga tidak memungkinkan led
dan buzzer dinyalakan juga terdapat buzzer untuk memberikan efek
bunyi untuk memberi peringatan atau tanda.
Prinsip kerja dari alat ini adalah pada saat ketinggian pengisian
gandum sudah mencapai titik maksimum led pada level atas akan
menyala begipula pda buzzer akan bunyi setelah itu ketika pengisian
gandum sudah berada pada titik minimum (level bawah) led dan buzzer
akan menyala.
Langkah pertama yang dilakukan adalah membuat program dan
mensimulasikan pada board arduino di Proteus . seperti pada gambar
diatas pada fungsi setup() kita setting pin 2,3 dan 4 sebagai INPUT
dimana kedua push button ini pin 2 dan 3 bertindak sebagai sensor level
atas dan level bawah serta pin 4 sebagai tombol off . Pin 10,11,12
dinyatakan sebagai OUTPUT. Pin 10 bertindak sebagai buzzer dan pin
11,12 sebagai LED dan input bernilai HIGH.
Pada program utama loop () pertama dibaca dulu tombolnya misal pada
program (LA= digitalRead (2)); ini berfungsi untuk membaca keaadan
nilai digital dengan menentukan terlebih dahulu variable pembaca dan
variable yang dibaca pada percobaan ini LA sebagai variable pembaca
dan (2) sebagai variable yang dibaca. Kemudian diperiksa apakah
dalam kondisi LOW atau ditekan. Pada percobaan ini digunakan
operator boolean AND seperti pada syntax program 6.6 if(LA == LOW
&& OFF== HIGH) artinya jika tombol LA dalam kondisi LOW atau
ditekan dan tombol OFF berlogika HIGH atau tidak ditekan, maka
Buzzer akan bunyi dan lampu led level atas kedap-kedip. Dan jika
tombol LB ditekan dan tombol OFF tidak dalam keadaan ditekan led
level bawah menyala kedap-kedip dan juga buzzernya ikut bunyi , Serta
jika tombol OFF ditekan semua jenis perintah baik LED maupun
Buzzer akan berhenti beroperasi.

 Analisis secara praktek

Gambar 7.6 Percobaan secara praktik simulasi Alarm pabrik tepung

Percobaan secara praktik dilakukan dengan menggunakan board


Arduino yang channelnya dihubungkan dengan kabel jumper male-
female. Adapun channel yang digunakan pada percobaan ini adalah
channel CN1 yang berfungsi untuk menghubungkan tegangan 5V dan
0V, serta CN12 yang merupakan control Push Button, 1 yang
dihubungkan pada pin 2, 2 ke pin 3 dan 3 dihubungkan ke pin 4. dan
pada CN 6 yang merupakan control led , 1 dihubungkan ke pin 11 dan
2 ke pin 12 serta CN 2 merupakan control alarm dihubungkan ke pin
10 Dari rangkaian Gambar 7.2 Led` akan menyala sesuai dengan
program yang telah dibuat .
VIII. KESIMPULAN

a. Pembuatan layout simulasi rangkaian output seven segmen di proteus


dilakukan dengan memasangkan pin yang sesuai. Misalnya adalah
memasang pin 2 ke pin 1 Push Button
b. Pembuatan sintaks program percobaan satu hingga percobaan tiga
dilakukan dengan menggunakan perangkat lunak IDE Arduino
menggunakan 1-8 Push Button
c. Setelah menyelesaikan simulasi di aplikasi proteus, maka
pengimplementasian di perangkat secara langsung telah berhasil dengan
memasangkan pin yang sesuai, menghubungkan daya dan ground, serta
menghubungkan Arduino dengan sintaks yang telah dibuat di aplikasi
IDE Arduino.
IX. DAFTAR PUSTAKA

https://www.codepolitan.com/digital-input-output-pada-arduino
http://rizkistaichsan.blogspot.com/2016/10/input-digital-arduino.html
https://embenesia.wordpress.com/2015/12/22/pull-up-dan-pull-down/
https://www.cronyos.com/belajar-arduino-input-push-button-dengan-
internal-pull-up-resistor/
X. LAMPIRAN

Gambar 10.1 Percobaan menyalakan led dengan push button

Gambar 10.2 Percobaan Menampilkan angka berbeda

Anda mungkin juga menyukai