Anda di halaman 1dari 20

TUGAS 1

PRAKTIKUM ANTARMUKA DAN PERIPHERAL


KOMPUTER

GPIO DAN LED

NAMA : Hendri Praminiarto

NIM : 10218060

KELAS : SK- 2

DOSEN PENGAMPU

Mochamad Fajar Wicaksono, S.Kom., M.Kom

JURUSAN SISTEM KOMPUTER

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA


2021
Tugas

1. Buat rangkaian di proteus dan program untuk menyalakan LED yang terhubung ke
pin digital 8 ketika push button yang terhubung ke pin digital 3 ditekan pertama kali,
pada penekanan selanjutnya LED yang terhubung ke pin digital 8 akan padam dan
LED yang terhubung ke pin digital 9 akan menyala, pada penekanan selanjutnya LED
yang terhubung ke pin digital 9 akan padam dan LED yang terhubung ke pin digital
10 akan menyala dan pada penekanan selanjutnya LED yang terhubung ke pin digital
10 akan padam dan LED yang terhubung ke pin digital 11 akan menyala. Pada
penekanan selanjutnya semua LED akan menyala. Setelah semua LED menyala, jika
tombol ditekan lagi maka akan kembali ke kondisi dimana semua LED akan padam.
Hal ini berulang terus-menerus.

2. Buat rangkaian di proteus dan program untuk menyalakan LED ganjil dan LED
genap secara bergantian dimana LED ganjil akan menyala ketika penekanan pertama
push button dan LED genap akan menyala pada penekanan push button selanjutnya.
(4 buah LED terhubung ke pin digital 8 sampai dengan pin digital 11 ). Hal ini
berulang terus menerus.

3. Buat rangkaian di proteus dan program:


a . Saat push button pertama kali ditekan, maka LED akan menyala bergantian dari
pin digital 8 sampai dengan pin digital 11.
b. Saat penekanan selanjutnya, LED akan menyala satu persatu dari pin digital 8
sampai dengan pin digital 11 sampai semua LED menyala
c . Saat penekanan selanjutnya, LED menyala satu persatu dari pin digital 8 sampai
dengan pin digital 11 sampai semua LED menyala kemudianpadam dan selanjutnya
LED menyala satu persatu dari pin digital 11 sampai dengan pin digital 8 dan setelah
itu LED akan padam.
d . Saat penekanan selanjutnya, semua LED di pin digital 8 sampai dengan pin digital
11 akan menyala dan padam sebanyak 5 kali!.
1. Kode Program

// Pin assignement
int btnPin = 3;
int led1Pin = 8;
int led2Pin = 9;
int led3Pin = 10;
int led4Pin = 11;
enum fcnMode {
OFF,
LED1,
LED2,
LED3,
LED4,
ALLED,
NBSTATE,
ALL
};
unsigned long buttonState = 0;
int funcState = 0;

void setup() {
Serial.begin(9600); // initialize serial port
pinMode(btnPin, INPUT_PULLUP);
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
pinMode(led4Pin, OUTPUT);
}

void loop() {
buttonPressed();
setMode();
}

void buttonPressed() {
buttonState = pulseIn(btnPin, HIGH);
if (buttonState > 50) {
funcState += 1;
Serial.print("Button state n: ");
Serial.println(funcState);
}
funcState = funcState % NBSTATE;
}
void setMode() {
// All Off
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);

Serial.print("Function : ");
Serial.println(funcState);
switch (funcState) {
case OFF:
break;
case LED1:
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
break;
case LED2:
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
break;
case LED3:
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, LOW);
break;
case LED4:
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, HIGH);
break;
case ALLED:
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, HIGH);
break;
case ALL:
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, HIGH);
break;

}
}
Hasil Compile Arduino IDE
Simulasi Pada Proteus
a. Ketika push button ditekan LED pada pin 8 menyala

b. Ketika push button ditekan LED pada pin 9 menyala


c. Ketika push button ditekan LED pada pin 10 menyala

d. Ketika push button ditekan LED pada pin 11 menyala


e. Ketika push button ditekan maka seluruh LED menyala

f. LED dalam keadaan semula atau mati


2. Kode Program

// Pin assignement
int btnPin = 3;
int led1Pin = 8;
int led2Pin = 9;
int led3Pin = 10;
int led4Pin = 11;
enum fcnMode {
OFF,
LED1,
LED2,
NBSTATE,
ALL
};
unsigned long buttonState = 0;
int funcState = 0;

void setup() {
Serial.begin(9600); // initialize serial port
pinMode(btnPin, INPUT_PULLUP);
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
pinMode(led4Pin, OUTPUT);
}

void loop() {
buttonPressed();
setMode();
}

void buttonPressed() {
buttonState = pulseIn(btnPin, HIGH);
if (buttonState > 50) {
funcState += 1;
Serial.print("Button state n: ");
Serial.println(funcState);
}
funcState = funcState % NBSTATE;
}
void setMode() {
// All Off
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);

Serial.print("Function : ");
Serial.println(funcState);
switch (funcState) {
case OFF:
break;
case LED1:
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, LOW);
break;
case LED2:
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, HIGH);
break;
case ALL:
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, HIGH);
break;

}
Hasil Compile Pada Arduino IDE
Simulasi Pada Proteus

a. Kondisi pada saat LED ganjil menyala

b. Kondisi dimana LED genap menyala


c. Kondisi LED dalam keadaan mati
3. Kode Program

// Pin assignement
int btnPin = 3;
int led1Pin = 8;
int led2Pin = 9;
int led3Pin = 10;
int led4Pin = 11;
enum fcnMode {
OFF,
LED1,
LED2,
LED3,
LED4,
ALLED,
NBSTATE,
ALL
};
unsigned long buttonState = 0;
int funcState = 0;

void setup() {
Serial.begin(9600); // initialize serial port
pinMode(btnPin, INPUT_PULLUP);
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
pinMode(led4Pin, OUTPUT);
}

void loop() {
buttonPressed();
setMode();
}

void buttonPressed() {
buttonState = pulseIn(btnPin, HIGH);
if (buttonState > 50) {
funcState += 1;
Serial.print("Button state n: ");
Serial.println(funcState);
}
funcState = funcState % NBSTATE;
}
void setMode() {
// All Off
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);

Serial.print("Function : ");
Serial.println(funcState);
switch (funcState) {
case OFF:
break;
case LED1:

digitalWrite(led1Pin, HIGH);
delay(250);
digitalWrite(led1Pin, LOW);
delay(250);
digitalWrite(led2Pin, HIGH);
delay(250);
digitalWrite(led2Pin, LOW);
delay(250);
digitalWrite(led3Pin, HIGH);
delay(250);
digitalWrite(led3Pin, LOW);
delay(250);
digitalWrite(led4Pin, HIGH);
delay(250);
digitalWrite(led4Pin, LOW);
delay(250);
break;

case LED2:

digitalWrite(led1Pin, LOW);
delay(250);
digitalWrite(led1Pin, HIGH);
delay(250);
digitalWrite(led2Pin, LOW);
delay(250);
digitalWrite(led2Pin, HIGH);
delay(250);
digitalWrite(led3Pin, LOW);
delay(250);
digitalWrite(led3Pin, HIGH);
delay(250);
digitalWrite(led4Pin, LOW);
delay(250);
digitalWrite(led4Pin, HIGH);
delay(250);
break;
case LED3:

digitalWrite(led1Pin, LOW);
delay(250);
digitalWrite(led1Pin, HIGH);
delay(250);
digitalWrite(led2Pin, LOW);
delay(250);
digitalWrite(led2Pin, HIGH);
delay(250);
digitalWrite(led3Pin, LOW);
delay(250);
digitalWrite(led3Pin, HIGH);
delay(250);
digitalWrite(led4Pin, LOW);
digitalWrite(led4Pin, HIGH);
delay(250);
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
delay(250);

digitalWrite(led4Pin, HIGH);
delay(250);
digitalWrite(led3Pin, LOW);
digitalWrite(led3Pin, HIGH);
delay(250);
digitalWrite(led2Pin, LOW);
digitalWrite(led2Pin, HIGH);
delay(250);
digitalWrite(led1Pin, LOW);
digitalWrite(led1Pin, HIGH);
delay(250);
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
delay(250);
break;

case LED4:
int m;
for(m=0; m<=4; m++){
digitalWrite(led1Pin, HIGH);
digitalWrite(led2Pin, HIGH);
digitalWrite(led3Pin, HIGH);
digitalWrite(led4Pin, HIGH);
delay (250);
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
delay(250);
}

digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
case ALLED:
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);

Hasil Compile Pada Arduino IDE


Simulasi pada proteu
a. Kondisi pertama dimana LED menyala bergantian dari pin 8 ke 11
b. Kondisi kedua dimana LED akan menyala satu persatu dari pin digital 8 sampai
dengan pin digital 11 sampai semua LED menyala

c. LED menyala satu persatu dari pin digital 8 sampai dengan pin digital 11 sampai
semua LED menyala kemudianpadam dan selanjutnya LED menyala satu
persatu dari pin digital 11 sampai dengan pin digital 8 dan setelah itu LED akan
padam.
d. semua LED di pin digital 8 sampai dengan pin digital 11 akan menyala dan
padam sebanyak 5 kali

Anda mungkin juga menyukai