Anda di halaman 1dari 29

LAPORAN PRAKTIKUM MEKATRONIKA

DIGITAL I/O

ANDI VARERA VARADIBA

323 19 053

3C D3 ELEKTRONIKA

PROGRAM STUDI D-3 TEKNIK ELEKTRONIKA


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI UJUNG PANDANG
MAKASSAR
2021
Digital input/output

I. Tujuan Percobaan

1. Mahasiswa dapat mengerti bagian-bagian Arduino dan pemrogramannya.

2. Mahasiswa dapat mengetahui prinsip kerja Arduino.

II. Dasar Teori

Arduino sebuah board mikrokontroler yang merupakan “sebuah sistem

komputer yang fungsional dalam sebuah chip”. Dalam bangunan Arduino telah

tersedia prosesor, memory, input output, dan bisa dibilang bahwa mikrokontroler

ini adalah komputer dalam versi mini yang disertai perngkat lunak pendukung

untuk melakukan pemograman yang disebut dengan Arduino IDE (Integrated

Development Environment). Arduino menganut sistem open hardware,

menggunakan Atmel AVR processor dan memiliki I/O onboard. Contoh

sederhana apa yang dapat kita lakukan terhadap Arduino, kita dapat mengatur

kedipan LED setiap 1 detik sekali atau melakukan pengendalian terhadap putaran

rotasi motor servo dan lainnya. Arduino muncul dengan banyak sekali variannya,

mulai dari Arduino Uno, Arduino MEGA 2560, Arduino Nano, dan sebagainya.

Semua varian Arduino tersebut dibangun dengan dasar yang sama yaitu

menggunakan mikrokontroler Atmel AVR yang memiliki perbedaan di banyaknya

pin yang bisa digunakan.


Sebelum menggunakna modul Arduino UNO lebih lanjut, tabel di bawah ini

menunjukan bagian-bagian dari Arduino.

Tabel 1. Fungsi dan keginaan bagin-bagian Arduino UNO

No Fungsi Kegunaan
1 Power USB Memberikan catu daya ke Papan Arduino dan untuk
upload sketch/kode program menggunakan kabel USB
dari komputer
2 Power (Barrel Jack) Memberikan catu daya ke Papan Arduino langsung dari
sumber daya AC
3 Voltage Regulator Mengendalikan tegangan yang diberikan ke papan
Arduino dan menstabilkan tegangan DC yang digunakan
oleh prosesor dan elemen-elemen lain
4 Crystal Oscillator Membantu Arduino dalam hal yang berhubungan
dengan waktu.
5 dan Arduino Reset Melakukan reset proses Arduino dari awal. Terdapat dua
17 cara untuk mereset Arduino Uno. Pertama, dengan
menggunakan reset button (17) pada papan arduino.
Kedua, dengan menambahkan reset eksternal ke pin
Arduino yang berlabel RESET (5)
6, 7, 8, Pin 3.3V, 5V, GND,  3.3V (6) − Supply 3.3 output volt
dan 9 Vin  5V (7) − Supply 5 output volt
 Arduino bekerja dengan baik pada tegangan 3.3 volt
dan 5 volt.
 GND (8) – Ground
 Vin (9) – Digunakan untuk memberi daya ke papan
Arduino dari sumber daya eksternal, seperti sumber
daya AC.
10 Input/output Analog Pin Analog
11 Main Sebagai pusat pengolahan Arduino.
microcontroller/IC
12 Pin ICSP ICSP (12) adalah AVR, suatu programming header kecil
untuk Arduino yang berisi MOSI, MISO, SCK, RESET,
VCC, dan GND. Hal ini sering dirujuk sebagai SPI
(Serial Peripheral Interface), yang dapat
dipertimbangkan sebagai “expansion” dari output.
Sebenarnya, kita memasang perangkat output ke master
bus SPI.
13 Power LED LED ini harus menyala jika menghubungkan Arduino
Indicator ke sumber daya. Jika LED tidak menyala, maka terdapat
sesuatu yang salah dengan sambungannya.
14 TX dan RX Pin yang digunakan untul melakuakn komunikasi serial,
dimana TX (transmit) dan RX (receive). TX dan RX
muncul di dua tempat pada papan Arduino UNO.
15 Input/Ouput Digital Pin Digital
16 AREF AREF merupakan singkatan dari Analog Reference.
AREF terkadang kadang digunakan untuk mengatur
tegangan referensi eksternal (antar 0 dan 5 Volts)
sebagai batas atas untuk pin input analog input.
Digital merupakan sinyal yang dikirimkan atau diterima bernilai 1 atau

0, on atau off, HIGH atau LOW. Berbeda dengan sinyal analog yang nilainya

bersifat kontinyu, yakni nilai antara 0 dan 1 dipertimbangkan atau terdapat

rentangan nilai dari 0 sampai 1. Secara umum pin pada Arduino dapat

dikonfigurasi ke dalam dua mode, yaitu mode input dan output. Mode input

berarti mengeset pin agar dapat digunakan untuk menerima masukan sinyal dari

komponen  yang terhubung ke board arduino. Mode output berarti mengeset pin

agar dapat mengirimkan sinyal dari arduino ke komponen lain atau ke rangkaian

digital. Untuk mengeset mode pin, kita gunakan fungsi pinMode (). Fungsi ini

biasanya digunakan 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, jika ingin membuat LED

berkedip, LED tersebut bisa dipasang pada salah satu pin digital dari arduino dan

ground. Karena kita ingin membuat led menyala berkedip jadi kita konfigurasi pin

yang terhubung ke LED menjadi output.

III. Alat dan Bahan

1. Laptop

2. Software Arduino

3. Arduino Uno R3

4. Keypad

5. Kabel USB

6. Kabel Jumper

7. Resistor
8. Modul Led

9. Seven Segment

IV. Langkah Kerja

1. Menyiapkan kit Arduino dan laptop yang telah dipasangi software Arduino.

2. Merangkai kit arduino yang dihubungkan dengan modul led dengan

memperhatikan alamat-alamat pin yang akan digunakan dan disesuaikan

dengan syntax programnya.

3. Membuat program syntax untuk traffic light dengan kasus: lampu merah akan

menyala selama 5 detik, lalu setelah lampu merah menyala maka lampu

kuning akan berkedip selama 2 detik, lalu lampu hijau akan menyala selama 5

detik setelah lampu kuning, dan lampu kuning akan kembali berkedip lalu

kembali ke merah.

4. Setelah membuat syntax, me-run program tersebut, setelah berhasil, lalu

mengupload syntax tersebut ke kit Arduino dengan menghubungkan USB.

5. Setelah di-upload, mengamati perpindahan led dan lama delaynya yang

disesuaikan dengan syntax yang telah dibuat.

6. Mencatat hasil pengamatan.

7. Membuat rangkaian counter dengan menghubungkan seven segment ke kit

arduino dengan memperhatikan alamat-alamat pin yang digunakan dan di

sesuaikan dengan program syntax yang akan dibuat.

8. Membuat syntax program dengan menampilkan angka 0-9 pada seven

segment.

9. Me-run program yang telah dibuat, apabila sudah tidak terjadi error, maka

meng-upload program tersebut ke kit arduino dengan menggunakan USB.


10. Setelah di-upload, memperhatikan perpindahan angka yang tertampil pada

seven segment dan delay yang disesuaikan dengan syntax.

11. Mencatat hasil pengamatan.

12. Membuat rangkaian interfacing seven segment keypad dengan

menghubungkan keypad dan seven segment pada arduino.

13. Memperhatikan datasheet pada keypad dan memperhatikan alamat-alamat pin

yang digunakan serta disesuaikan dengan syntax yang akan dibuat.

14. Membuat syntax program dengan kasus: apabila tombol angka pada keypad

ditekan maka akan tertampil angka pada seven segment sesuai dengan angka

yang ditekan pada keypad dan apabil tombol ‘#’ atau ‘*’ ditekan maka

program akan tereset dan tidak menampilkan apa pada seven segment.

15. Me-run program yang telah dibuat, apabila sudah tidak terjadi error, maka

meng-upload program tersebut ke kit arduino dengan menggunakan USB.

16. Setelah di-upload, memperhatikan perpindahan angka yang tertampil pada

seven segment dan delay yang disesuaikan dengan syntax.

17. Mencatat hasil pengamatan.

V. Hasil Percobaan

a. Traffic Light
Syntax:

int m1=1;

int k1=5;

int h1=9;

void setup() {

pinMode(m1,OUTPUT);

pinMode(k1,OUTPUT);

pinMode(h1,OUTPUT);

pinMode(0,INPUT_PULLUP);

pinMode(2,INPUT_PULLUP);
digitalWrite(0,0);

digitalWrite(2,0);

void loop() {

/*digitalWrite(aksi=1,((!digitalRead(0)||digitalRead(aksi=1))&&digitalRead(0)));

digitalWrite(aksi=2,((!digitalRead(0)||digitalRead(aksi=1))&&digitalRead(0)));*/

digitalWrite(m1,1);

delay(5000);

digitalWrite(m1,0);

digitalWrite(k1,1);

delay(1000);

digitalWrite(k1,0);

delay(1000);

digitalWrite(k1,1);

delay(1000);

digitalWrite(k1,0);

delay(1000);

digitalWrite(k1,1);

delay(1000);
digitalWrite(k1,0);

delay(1000);

digitalWrite(k1,1);

delay(1000);

digitalWrite(k1,0);

delay(1000);

digitalWrite(k1,1);

delay(1000);

digitalWrite(k1,0);

delay(1000);

digitalWrite(h1,1);

delay(5000);

digitalWrite(h1,0);

delay(100);

digitalWrite(k1,1);

delay(1000);

digitalWrite(k1,0);

delay(1000);

digitalWrite(k1,1);

delay(1000);
digitalWrite(k1,0);

delay(1000);

digitalWrite(k1,1);

delay(1000);

digitalWrite(k1,0);

delay(1000);

digitalWrite(k1,1);

delay(1000);

digitalWrite(k1,0);

delay(1000);

digitalWrite(k1,1);

delay(1000);

digitalWrite(k1,0);

delay(1000);

b. keypad
syntax:
#include <sevenSegmentDisplay.h>
#include <Keypad.h>

const byte ROWS = 4; //four rows


const byte COLS = 3; //three columns
//define the cymbols on the buttons of the keypads
char keypadArray[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {12, 0, 1, 10}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {11, 13, 5}; //connect to the column pinouts of the keypad

//initialize an instance of the Keypad class


Keypad myKeypad = Keypad(makeKeymap(keypadArray), rowPins, colPins, ROWS,
COLS);
//create a 7 Segment Display library intance
sevenSegmentDisplay ssd(COMMON_CATHODE, 8, 9, 4, 3, 2, 7, 6, A0);

void setup() {
}

void loop() {
char key = myKeypad.getKey();
int num = key - '0';

if (key) {
if (key == '*' || key == '#') {
} else {
ssd.set(num);
}
}
if (key=='*'||key=='#'){ssd.set(num);}
}
c. Counter 0-9
Syntax:

int pinA = 8;

int pinB = 9;
int pinC = 4;

int pinD = 3;

int pinE = 2;

int pinF = 7;

int pinG = 6;

int pinP = 5;

/*

int D1 = 10;

int D2 = 11;

int D3 = 12;

int D4 = 13;

*/

void setup() {

// initialize the digital pins as outputs.

pinMode(pinA, OUTPUT);

pinMode(pinB, OUTPUT);

pinMode(pinC, OUTPUT);

pinMode(pinD, OUTPUT);

pinMode(pinE, OUTPUT);

pinMode(pinF, OUTPUT);

pinMode(pinG, OUTPUT);

pinMode(pinP, OUTPUT);

/*
pinMode(D1, OUTPUT);

pinMode(D2, OUTPUT);

pinMode(D3, OUTPUT);

pinMode(D4, OUTPUT);

*/

void loop() {

//0

digitalWrite(pinA, HIGH);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, HIGH);

digitalWrite(pinF, HIGH);

digitalWrite(pinG, LOW);

digitalWrite(pinP, LOW);

delay(50); // wait for a second

digitalWrite(pinA, HIGH);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, HIGH);

digitalWrite(pinF, HIGH);
digitalWrite(pinG, LOW);

digitalWrite(pinP, HIGH);

delay(50);

//1

digitalWrite(pinA, LOW);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, LOW);

digitalWrite(pinE, LOW);

digitalWrite(pinF, LOW);

digitalWrite(pinG, LOW);

digitalWrite(pinP, LOW);

delay(50); // wait for a second

digitalWrite(pinA, LOW);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, LOW);

digitalWrite(pinE, LOW);

digitalWrite(pinF, LOW);

digitalWrite(pinG, LOW);

digitalWrite(pinP, HIGH);

delay(50);
//2

digitalWrite(pinA, HIGH);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, LOW);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, HIGH);

digitalWrite(pinF, LOW);

digitalWrite(pinG, HIGH);

digitalWrite(pinP, LOW);

delay(50); // wait for a second

digitalWrite(pinA, HIGH);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, LOW);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, HIGH);

digitalWrite(pinF, LOW);

digitalWrite(pinG, HIGH);

digitalWrite(pinP, HIGH);

delay(50);

//3

digitalWrite(pinA, HIGH);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);

digitalWrite(pinE, LOW);

digitalWrite(pinF, LOW);

digitalWrite(pinG, HIGH);

digitalWrite(pinP, LOW);

delay(50); // wait for a second

digitalWrite(pinA, HIGH);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, LOW);

digitalWrite(pinF, LOW);

digitalWrite(pinG, HIGH);

digitalWrite(pinP, HIGH);

delay(50);

//4

digitalWrite(pinA, LOW);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, LOW);

digitalWrite(pinE, LOW);

digitalWrite(pinF, HIGH);

digitalWrite(pinG, HIGH);
digitalWrite(pinP, LOW);

delay(50); // wait for a second

digitalWrite(pinA, LOW);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, LOW);

digitalWrite(pinE, LOW);

digitalWrite(pinF, HIGH);

digitalWrite(pinG, HIGH);

digitalWrite(pinP, HIGH);

delay(50);

//5

digitalWrite(pinA, HIGH);

digitalWrite(pinB, LOW);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, LOW);

digitalWrite(pinF, HIGH);

digitalWrite(pinG, HIGH);

digitalWrite(pinP, LOW);

delay(50); // wait for a second

digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, LOW);

digitalWrite(pinF, HIGH);

digitalWrite(pinG, HIGH);

digitalWrite(pinP, HIGH);

delay(50);

//6

digitalWrite(pinA, HIGH);

digitalWrite(pinB, LOW);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, HIGH);

digitalWrite(pinF, HIGH);

digitalWrite(pinG, HIGH);

digitalWrite(pinP, LOW);

delay(50); // wait for a second

digitalWrite(pinA, HIGH);

digitalWrite(pinB, LOW);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);

digitalWrite(pinG, HIGH);

digitalWrite(pinP, HIGH);

delay(50);

//7

digitalWrite(pinA, HIGH);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, LOW);

digitalWrite(pinE, LOW);

digitalWrite(pinF, LOW);

digitalWrite(pinG, LOW);

digitalWrite(pinP, LOW);

delay(50); // wait for a second

digitalWrite(pinA, HIGH);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, LOW);

digitalWrite(pinE, LOW);

digitalWrite(pinF, LOW);

digitalWrite(pinG, LOW);

digitalWrite(pinP, HIGH);

delay(50);
//8

digitalWrite(pinA, HIGH);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, HIGH);

digitalWrite(pinF, HIGH);

digitalWrite(pinG, HIGH);

digitalWrite(pinP, LOW);

delay(50); // wait for a second

digitalWrite(pinA, HIGH);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, HIGH);

digitalWrite(pinF, HIGH);

digitalWrite(pinG, HIGH);

digitalWrite(pinP, HIGH);

delay(50);

//9

digitalWrite(pinA, HIGH);

digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, LOW);

digitalWrite(pinF, HIGH);

digitalWrite(pinG, HIGH);

digitalWrite(pinP, LOW);

delay(50); // wait for a second

digitalWrite(pinA, HIGH);

digitalWrite(pinB, HIGH);

digitalWrite(pinC, HIGH);

digitalWrite(pinD, HIGH);

digitalWrite(pinE, LOW);

digitalWrite(pinF, HIGH);

digitalWrite(pinG, HIGH);

digitalWrite(pinP, HIGH);

delay(50);

}
VI. Analisis Data

Anda mungkin juga menyukai