NIM : 10218060
KELAS : SK- 2
DOSEN PENGAMPU
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.
// 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
// 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
// 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);
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