Anda di halaman 1dari 14

PART 1.

DIGITAL I/O DASAR

 TUJUAN PRAKTIKUM
- Mampu membuat program input dan output menggunakan digital I/O arduino.
 PROSEDUR PERCOBAAN
1. Digital Output.
- Hubungkan Port A arduino Mega 2560 R3 dengan Port OUTPUT pada Trainer.
- Hubungkan arduino Mega 2560 R3 dengan komputer menggunakan kabel USB.
a. Program 1

void setup() {
pinMode(6,OUTPUT); //pin 6 sebagai output
pinMode(13,OUTPUT); //pin 13 sebagai output
pinMode(7,OUTPUT); //pin 7 sebagai output
pinMode(12,OUTPUT); //pin 12 sebagai output
pinMode(8,OUTPUT); //pin 8 sebagai output
pinMode(11,OUTPUT); //pin 11 sebagai output
pinMode(9,OUTPUT); //pin 9 sebagai output
pinMode(10,OUTPUT); //pin 10 sebagai output
}
void loop() {
digitalWrite(6,LOW); // pin 6 berlogika LOW
digitalWrite(13,LOW); // pin 13 berlogika LOW
digitalWrite(7,HIGH); // pin 7 berlogika HIGH
digitalWrite(12,HIGH); // pin 12 berlogika HIGH
digitalWrite(8,LOW); // pin 8 berlogika LOW
digitalWrite(11,LOW); // pin 11 berlogika LOW
digitalWrite(9,HIGH); // pin 9 berlogika HIGH
digitalWrite(10,HIGH); // pin 10 berlogika HIGH
}
Program di atas akan menyalakan LED seperti tabel di bawah ini:

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


nyala nyala mati mati nyala nyala mati mati

b. Program 2

int LED[]={6,13,7,12,8,11,9,10}; //array (pin address)


void setup() {
for (int i=0; i<8; i++)
{
pinMode(LED[i], OUTPUT); //inisialisasi OUTPUT
}
}
void loop() {
PART 1. DIGITAL I/O DASAR

for(int i=0; i<8;i++){ //nyala berurutan


digitalWrite(LED[i],HIGH);
delay(500);
}
for(int i=0; i<8;i++){ //padam berurutan
digitalWrite(LED[i],LOW);
}
delay(500);
}

Program di atas akan menyalakan 1 bit LED bergeser dari kiri ke kanan.
c. Program 3
int LED[]={6,13,7,12,8,11,9,10}; //array (pin address)
void setup() {
for (int i=0; i<8; i++)
{
pinMode(LED[i], OUTPUT); //inisialisasi OUTPUT

}
}
void loop() {
for(int i=0; i<8;i++){ //nyala berurutan
digitalWrite(LED[i],HIGH);
delay(200);

digitalWrite(LED[i],LOW);
delay(200);
}
}

Program di atas akan menyalakan 1 bit LED berotasi dari kiri ke kanan.
d. Program 4

int ledPin[] = {6,13,7,12}; //address pin LED


int biner = 9; //<<<----masukin angka
void setup()
{
for (int i =0;i<4;i++)
{
pinMode(ledPin[i], OUTPUT);
}
}

void loop()
{
PART 1. DIGITAL I/O DASAR

displayBinary(biner);
}

void displayBinary(byte numToShow)


{
for (int i =0;i<4;i++)
{
if (bitRead(numToShow, i)==1)
{
digitalWrite(ledPin[i], HIGH);
}
else
{
digitalWrite(ledPin[i], LOW);
}
}
}
Program diatas akan menampilkan nyala LED sesuai bit Biner hasil konversi bilangan Desimal.

Gambar Program 1

Gambar Program 2
PART 1. DIGITAL I/O DASAR

Gambar Program 3

Gambar Program 4
PART 1. DIGITAL I/O DASAR
PART 1. DIGITAL I/O DASAR
Latihan Mandiri

a. Buatlah program untuk menampilkan LED pada port A dengan kondisi.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


Nyala Nyala mati Mati mati Mati nyala nyala

Maka program diatas akan menampilkan LED seperti tabel berikut ini:
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Nyala nyala mati Mati mati Mati nyala nyala

b. Buatlah program untuk menampilkan 1 buah LED berotasi ke kanan.


PART 1. DIGITAL I/O DASAR
Maka program diatas menampilkan lampu LED dengan jalan beruntun dari rotasi kiri menuju
kanan dengan delay 0,5 seconds.

c. Buatlah program untuk menampilkan bit LED bergeser ke kanan

Maka program diatas menampilkan LED dengan berjalan beruntun dari rotasi kiri menuju rotasi
kanan dengan delay 0,2 seconds.

d. Buatlah program untuk menampilkan LED dengan nyala bit biner dari 0 ~ 15 kemudian
berulang dengan selang waktu 1 detik.
PART 1. DIGITAL I/O DASAR

Maka program diatas menampilkan LED dengan nyala bit biner dari 0 ~ 15 kemudian berulang
dengan selang waktu 1 detik dari sisi kanan.
PART 1. DIGITAL I/O DASAR

2. Digital Input Output


- Hubungkan Port A ke Port OUTPUT.
- Hubungkan Port B ke Port INPUT.
- Hubungkan arduino Mega 2560 R3 dengan komputer menggunakan kabel USB.
a. Program 1:

int SW7 = 2;
int LED7 = 10;
void setup() {
pinMode(SW7, INPUT);
pinMode(LED7, OUTPUT);
}
void loop() {
if(digitalRead(SW7)==HIGH){
digitalWrite(LED7,HIGH);
}
else digitalWrite(LED7,LOW);
}
Program diatas akan menyalakan LED bit 7 jika SW7 aktif.
b. Program 2
int SW7 = 2;
int LED[] = {6,13,7,12,8,11,9,10};
void setup() {
for(int i=0; i<8;i++){
pinMode(SW7, INPUT);
pinMode(LED[i], OUTPUT);
}
}
void loop() {
if(digitalRead(SW7)==HIGH){
for(int i=0; i<8;i++){
digitalWrite(LED[i],HIGH);
delay(200);
digitalWrite(LED[i],LOW);
}
}
}

Program diatas akan menyalakan 1 bit LED berotasi ke kiri saat SW7 aktif.
PART 1. DIGITAL I/O DASAR

c. Program 3

int IS1 = 21;


int LED[]= {6,13,7,12,8,11,9,10};
void setup() {
for (int i=0; i<8; i++)
{
pinMode(LED[i], OUTPUT);
pinMode(IS1, INPUT);
}
}
void loop() {
if(digitalRead(IS1)==HIGH)
{
for(int i=0; i<8;i++){
digitalWrite(LED[i],HIGH);
delay(200);
digitalWrite(LED[i],LOW);
delay(1);
}
}
}
Program diatas akan menyalakan 1 bit LED berotasi ke kiri saat tombol IS1 ditekan.

Gambar Program 2_1


PART 1. DIGITAL I/O DASAR
Gambar Program 2_2

Gambar Program 2_3


PART 1. DIGITAL I/O DASAR
Latihan Mandiri

a. Buatlah program untuk menyalakan LED bit 0 ~ bit7 sesuai SW yang aktif.
PART 1. DIGITAL I/O DASAR

Maka program diatas untuk menyalakan LED bit 0 ~ bit7 sesuai SW yang aktif.
b. Buatlah program untuk menampilkan LED berotasi dari kiri ke kanan saat SW0 aktif dan
LED berotasi dari kanan ke kiri saat SW7 aktif.

Maka program untuk menampilkan LED berotasi dari kiri ke kanan saat SW0 aktif dan LED
berotasi dari kanan ke kiri saat SW7 aktif.
c. Buatlah program untuk menampilkan LED berotasi dari kiri ke kanan saat IS1 ditekan dan
LED berotasi dari kanan ke kiri saat IS2 ditekan.
PART 1. DIGITAL I/O DASAR

Maka program untuk menampilkan LED berotasi dari kiri ke kanan saat IS1 ditekan dan LED
berotasi dari kanan ke kiri saat IS2 ditekan.

Anda mungkin juga menyukai