Anda di halaman 1dari 11

LAPORAN AKHIR

LABORATORIUM MIKROPROSESOR
JOB 1 PIN DIGITAL

DISUSUN OLEH :

Nama : Bagas Dwi Prasetyo


NIM : 18642010
Kelas : D4-6A
Hari/Tanggal : Jumat, 23 April 2021

KEMENTERIAN RISET TEKNOLOGI DAN PENDIDIKAN TINGGI


POLITEKNIK NEGERI SAMARINDA
JURUSAN TEKNIK ELEKTRO
2021
Pin Digital

I. Tujuan :
1. Mengetahui cara mengatur pin digital sebagai masukan
2. Mengetahui cara mengatur pin digital sebagai keluaran
3. Memanfaatkan pin masukan dan keluaran digital dalam aplikasi pengaturan

II. Teori :
Papan sirkuit (circuit board) Arduino Uno adalah salah satu jenis produk Arduino
yang cukup popular. Beberapa versi Arduino Uno telah diproduksi dan dipasarkan. Untuk
versi yang terkahir ini, jenis mikrokontroler yang dipasang adalah ATMEGA328.
Tampilan Arduino Uno ditunjukkan dalam Gambar 1.

Gambar 1, Tampilan Arduino Uno


Sumber: components101.com

Pin Arduino Uno berjumlah 28 buah. Beberapa buah pin hanya mempunyai sebuah
fungsi. Contohnya adalah pin-pin tegangan. Board Arduiono bekerja pada level tegangan
5V. Tetapi board ini juga menyediakan sumber tegangan 3,3V yang digunakan bagi
module-module bertegangan 3,3V seperti modul-modul transceiver dan beberapa modul
sensor.
Agar bisa bekerja dan berfungsi dengan baik, board Arduino dapat diberi sumber
tegangan 5V. Sumber-sumber tegangan 5V dapat dihubungkan dengan konektor USB.
Cara lainnya adalah menghubungkan tegangan 5V power supply pada pin 5V dan
tegangan 0V power supply pada pin GND.
Untuk sumber tegangan yang lebih besar daripada 5V, tegangan positip
dihubungkan pada pin Vin, sedang tegangan 0V dihubungkan dengan pin GND. Sebuah
IC regulator yang terdapat pada board Arduino akan mengubah tegangan lebih tadi
menjadi tegangan 5V. Agar arus yang mengalir pada IC regulator tidak terlalu besar,
tegangan masukan sebaiknya sekitar 3V lebih tinggi dari 5V.
Jika pin-pin tegangan umumnya hanya mempunyai satu fungsi, pin-pin lain
mempunyai lebih dari satu fungsi. Pin dengan nama PD0 misalnya, dapat berfungsi
sebagai pin digital sekaligus pin komunikasi serial. Fungsi pin dapat ditentukan pada saat
proses inisialisasi dalam program. Agar fungsi-fugsi tersebut tidak saling berbenturan, pin
multifungsi tersebut hendaknya diset pada salah satu fungsinya saja.
Pada job ini, akan disampaikan cara-cara mengatur pin-pin digital, baik sebagai
input/masukan maupun output/keluaran.

III. Alat Percobaan :


 Komputer atau Laptop
 Board Arduino Uno
 Kabel USB
 2 saklar push button
 2 LED
 2 resistor 1k Ω
 2 resistor 100 Ω

IV. Langkah Percobaan :


1. Hubungkan 2 saklar push button, 2 LED, dan 2 resistor pada Arduino seperti pada
Gambar 2.
Gambar 2 Rangkaian percobaan

2. Bukalah IDE Arduino, kemudian hubungkan computer dengan board Arduino


dengan menggunakan kabel USB.

3. Tuliskan program berikut pada editor IDE. Program asli terdapat dalam website
arduino.cc
const int pinTombol1 = 2;     // nomor pin untuk Tombol1
const int pinLed1 =  8;      // nomor pin untuk LED1

int statusTombol1 = 0;         // variable status pinTombol1

void setup() {
  // Inisialisasi pinLed1 sebagai output
  pinMode(pinLed1, OUTPUT);
  // Inisialisasi pinTombol1 sebagai input
  pinMode(pinTombol1, INPUT);
}

void loop() {
  // baca status pinTombol1
  statusTombol1 = digitalRead(pinTombol1);

  // periksa apakah Tombol1 ditekan


  if (statusTombol1 == HIGH) {
    // hidupkan LED
    digitalWrite(pinLed1, HIGH);
 }
else {
    // padamkan LED
    digitalWrite(pinLed1, LOW);
 }
}

4. Compile dan upload program ke board Arduino.

5. Amati kerja rangkaian. Jelaskan apa yang terjadi


6. Tambahkan baris perintah yang menyebabkan prinsip kerja antara Tombol2
dengan Led2 sama dengan prinsip kerja antara Tombol1 dan Led1. Tuliskan baris
program tambahannya.

7. Lakukan perubahan pada program sehingga isi tabel kebenaran menjadi seperti
pada Tabel 2.
Tabel 2
Tombol1 Tombol2 Led1 Led2
L L L H
L H L H
H L L H
H H H L
Rangkaian logika apakah yang ditunjukkan oleh tabel kebenaran pada Tabel 2?
Tuliskan programnya.

8. Lakukan perubahan pada program sehingga isi tabel kebenaran menjadi seperti
pada Tabel 3.
Tabel 3
Tombol1 Tombol2 Led1 Led2
L L H L
L H L H
H L L H
H H H L
Rangkaian logika apakah yang ditunjukkan oleh tabel kebenaran pada Tabel 3?
Tuliskan programnya.

9. Apakah fungsi dari resistor 100 ohm dan 1k ohm pada rangkaian di atas? Jelaskan.

V. Data Hasil Percobaan, Analisa, Jawaban :

4. Program Arduino ke Proteus


Gambar. Progam pada Arduino Percobaan 1

Gambar. Aplikasi ke Software Proteus Percobaan 1

5. Pada saat program di upload ke arduino, maka akan muncul kondisi yang dimana
pada saat tombol ditekan maka lampu akan berkondisi HIGH, dan saat tombol dilepas
maka lampu akan berkondisi LOW. Karena, pada program menggunakan perintah “if
else” dimana perintah ini hanya mengaktifkan “LED1” pada saat “statusTombol1”
berkondisi HIGH, jika “statusTombol1” tidak diaktifkan maka “LED1” akan
berkondisi LOW..
6. Program Arduino setelah ditambahkan program untuk I/O 2.
const int pinTombol1 = 2; // nomor pin untuk Tombol1
const int pinLed1 = 8; // nomor pin untuk LED1
const int pinTombol2 = 3; // nomor pin untuk Tombol2
const int pinLed2 = 9; // nomor pin untuk LED2
int statusTombol1 = 0; // variable status pinTombol1
int statusTombol2 = 1; // variable status pinTombol2
void setup() {
// Inisialisasi pinLed1 sebagai output
pinMode(pinLed1, OUTPUT);
// Inisialisasi pinTombol1 sebagai input
pinMode(pinTombol1, INPUT);
// Inisialisasi pinLed2 sebagai output
pinMode(pinLed2, OUTPUT);
// Inisialisasi pinTombol2 sebagai input
pinMode(pinTombol2, INPUT);
}
void loop() {
// baca status pinTombol1
statusTombol1 = digitalRead(pinTombol1);
// periksa apakah Tombol1 ditekan
if (statusTombol1 == HIGH) {
// hidupkan LED
digitalWrite(pinLed1, HIGH);
}
else {
// padamkan LED
digitalWrite(pinLed1, LOW);
}
// baca status pinTombol2
statusTombol2 = digitalRead(pinTombol2);
// periksa apakah Tombol1 ditekan
if (statusTombol2 == HIGH) {
// hidupkan LED
digitalWrite(pinLed2, HIGH);
}
else {
// padamkan LED
digitalWrite(pinLed2, LOW);
}
}

Tombol1 Tombol2 LED1 LED2

L L H H

L H H L

H L L H

H H L L
Table 1 percobaan tugas 6

7. Rangkaian logika yang ditunjukkan pada tabel 2 adalah AND dan NAND
const int pinTombol1 = 2; // untuk pintombol 1
const int pinLed1 = 8; // untuk pinLED 1
const int pinTombol2 = 3; // untuk pintombol 2
const int pinLed2 = 9; // untuk pinLED 2

int statusTombol1 = 0; // variable status tombol 1


int statusTombol2 = 0; // variable status tombol 2

void setup() {
// Inisialisasi pinLED 1 sebagai output
pinMode(pinLed1, OUTPUT);
// Inisialisasi pintombol 1 sebagai input
pinMode(pinTombol1, INPUT);
// Inisialisasi pinLED 2 sebagai output
pinMode(pinLed2, OUTPUT);
// Inisialisasi pintombol 2 sebagai input
pinMode(pinTombol2, INPUT);
}

void loop() {
// baca status pintombol 1
statusTombol1 = digitalRead(pinTombol1);
// baca status pintombol 2
statusTombol2 = digitalRead(pinTombol2);
// periksa jika tombol 1 dan tombol 2 ditekan
if (digitalRead(pinTombol1) == HIGH && digitalRead(pinTombol2) == HIGH) {
// maka LED 1 akan menyala
digitalWrite(pinLed1, HIGH);
}
else {
// LED 1 akan padam
digitalWrite(pinLed1, LOW);
}
// periksa jika tombol 1 dan tombol 2 ditekan
if (digitalRead(pinTombol1) == HIGH && digitalRead(pinTombol2) == HIGH) {
// maka LED 2 akan padam
digitalWrite(pinLed2, LOW);
}
else {
// LED 2 akan menyala
digitalWrite(pinLed2, HIGH);
}
}

Tombol1 Tombol2 LED1 LED2

L L L H

L H L H

H L H L

H H H L

Tabel 2 percobaa tugas 7

8. Rangkaian logika yang di tunjukkan pada tabel 3 adalah EX-NOR dan EX-OR
const int pinTombol1 = 2; // untuk pintombol 1
const int pinTombol2 = 3; // untuk pintombol 2
const int pinLed1 = 8; // untuk pinLED 1
const int pinLed2 = 9; // untuk pinLED 2

int statusTombol1 = 0; // variable status tombol 1


int statusTombol2 = 0; // variable status tombol 2

void setup() {
// Inisialisasi pinLED 1 sebagai output
pinMode(pinLed1, OUTPUT);
// Inisialisasi pintombol 1 sebagai input
pinMode(pinTombol1, INPUT);
// Inisialisasi pinLED 2 sebagai output
pinMode(pinLed2, OUTPUT);
// Inisialisasi pintombol 2 sebagai input
pinMode(pinTombol2, INPUT);
}
void loop() {
// baca status pintombol 1
statusTombol1 = digitalRead(pinTombol1);
// baca status pintombol 2
statusTombol2 = digitalRead(pinTombol2);

// periksa jika tombol 1 dan tombol 2 ditekan


if (digitalRead(pinTombol1) == HIGH && digitalRead(pinTombol2) == HIGH)
{
// maka LED 1 akan menyala
digitalWrite(pinLed1, HIGH);
}
// periksa jika tombol 1 dan tombol 2 tidak ditekan
else if (digitalRead(pinTombol1) == LOW && digitalRead(pinTombol2) ==
LOW) {
// maka LED 1 akan menyala
digitalWrite(pinLed1, HIGH);
}
else {
// LED 1 akan padam
digitalWrite(pinLed1, LOW);
}
// periksa jika tombol 1 dan tombol 2 ditekan
if (digitalRead(pinTombol1) == HIGH && digitalRead(pinTombol2) == HIGH)
{
// maka LED 2 akan padam
digitalWrite(pinLed2, LOW);
}
// periksa jika tombol 1 dan tombol 2 tidak ditekan
else if (digitalRead(pinTombol1) == LOW && digitalRead(pinTombol2) ==
LOW) {
// maka LED 2 akan padam
digitalWrite(pinLed2, LOW);
}
else {
// LED 2 akan menyala
digitalWrite(pinLed2, HIGH);
}
}

Tombol1 Tombol2 LED1 LED2


L L H L
L H L H
H L L H
H H H L

Tabel 3 Percobaan 8
9. Fungsi dari resistor 100 Ohm sebagai penahan tegangan dan arus yang akan
dikirimkan ke lampu LED, dengan kisaran tegangan kerja 1,6V – 3,5V dan arus
10mA – 20mA. Dengan demikian LED bisa menyala dan tidak akan rusak akibat
kelebihan arus.

Fungsi dari resistor 1k Ohm sebagai Pull-Down Resistor. Jika button ditekan,
maka arus akan mengalir dari input pin akan terhubung ke resistor 1k ohm ke 5V.
Ketika button tidak ditekan, arus akan terhubung ke resistor 1k Ohm dan ditarik
(pulled) ke ground. Bila Input tidak dihubungkan dengan pull-down resistor maka
arus akan mengambang diantara 0-5 Volt dan pin tidak akan terhubung kemana-
mana. Karena rangkaian diatas menggunakan Pull-Down resistor, maka input
akan dalam 2 state, 0 (bila button tidak ditekan, arus akan ditarik ke ground) atau
5 volt (ketika button ditekan). Dengan demikian kita bisa memastikan bahwa
voltage adalah 0 atau 5, bukan diantaranya.

VI. Kesimpulan :

Pada percobaan ini dapat disimpulkan :


 Dengan mempergunakan sistem Arduino kita dapat melakukan kontrol saklar yang
ingin kita gunakan dan tidak gunakan tanpa terpengaruh oleh energi listrik

 Penggunaan resistor dalam rangkaian diatas ialah karena arduino tidak dapat melihat,
sehingga digunakan resistor untuk merasakan bahwa kapan tombol ditekan atau tidak
dari arus yang melewatinya, apakah HIGH atau LOW.
 kita dapat mengatur pin digital sebagai masukan maupun keluaran dengan
membuat/mengatur program pada IDE, dan kita juga dapat memanfaatkan pin
masukan dan pin keluaran digital tesebut kedalam sebuah aplikasi pengaturan, seperti
percobaan pada kali ini di manfaatkan untuk mengatur 2 buah LED dengan 2 Tombol.

Anda mungkin juga menyukai