TP 2 M1
Tugas Pendahuluan 2
== Percobaan 4 Kondisi 1 ==
- Membuka proteus
- Buka file proteus yang sudah disesuaikan dengan kondisi
- Running rangkaiannya
- Sesuaikan dengan kondisi yang diinginkan
Blok Diagram
Pada rangkaian diatas adalah jika rangkaian dijalankan dan maka belum ada LED yang hidup dan sesuatu yang ditampilkan pada LCD. Jika tombol pada keypad ditekan maka itu akan menghasilkan penjelasan angka pada LCD dan menghidupkan LED. Program arduino uno ini dibuat agar mengeluarkan hasil seperti berikut:
1 => LED1 => Tombol: 1
2 => LED2 => Tombul: 2
3 => LED3 => Tombol: 3
4 => LED4 => Tombol: 4
5 => LED1 2 => Tombol: 5
6 => LED1 3=> Tombol: 6
7 => LED1 4 => Tombol: 7
8 => LED2 3 => Tombol: 8
9 => LED1 2 4=> Tombol: 9
0 => LED 1 2 3 4 => Tombol: 0
* => LED 1 2 3=> Tombol: *
# => LED 2 3 4 => Tombol: #
#include <Keypad.h>
#include <LiquidCrystal.h>
(input library)
// Penjelasan Keypad yang dimana 3x4 ( 3 kolom 4 baris)
const byte ROWS = 4;
const byte COLS = 3;
// Penjelasan dari deklarasi Pin LCD
const int rs = A0, en = A1, d4 = A2, d5 = A3, d6 = A4, d7 = A5;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// Array representing the keypad
char hexaKeys[ROWS][COLS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
// Arduino connections
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3};
// Explanation of LED pins
const int ledPins[] = {10, 11, 12, 13}; // Assuming LEDs are connected to digital pins 10 to 13
// Objek keypad sesuai dengan keypad yang dipakai
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup() {
// Inisialisasi serial monitor
Serial.begin(9600);
lcd.begin(16, 2);
// Pin LED sebagai output
for (int i = 0; i < 4; ++i) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
// Get the key value if pressed
char customKey = customKeypad.getKey();
if (customKey) {
// Display the key value on the LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tombol: ");
lcd.print(customKey);
// Kombinasi yang dipakai sesuai keinginan masing masing
switch (customKey) {
case '1':
activateLEDs(1, 0, 0, 0); // Turn on LED 1
break;
case '2':
activateLEDs(0, 1, 0, 0); // Turn on LED 2
break;
case '3':
activateLEDs(0, 0, 1, 0); // Turn on LED 3
break;
case '4':
activateLEDs(0, 0, 0, 1); // Turn on LED 4
break;
case '5':
activateLEDs(1, 1, 0, 0); // Turn on LEDs 1 and 2
break;
case '6':
activateLEDs(1, 0, 1, 0); // Turn on LEDs 1 and 3
break;
case '7':
activateLEDs(1, 0, 0, 1); // Turn on LEDs 1, and 4
break;
case '8':
activateLEDs(0, 1, 0, 1); // Turn on LED 2 and 4
break;
case '9':
activateLEDs(0, 0, 1, 1); // Turn on LEDs 3 and 4
break;
case '0':
activateLEDs(1, 1, 1, 1); // Turn on all LEDs
break;
case '*':
activateLEDs(1, 1, 1, 0); // Turn on LEDs 2, 3, and 4
break;
case '#':
activateLEDs(0, 1, 1, 1); // Turn on LEDs 1 and 2 and 3
break;
default:
// Turn off all LEDs if an invalid key is pressed
activateLEDs(0, 0, 0, 0);
break;
}
}
}
// Fungsi untuk mengaktifkan LED sesuai kombinasi di atas
void activateLEDs(int led1, int led2, int led3, int led4) {
digitalWrite(ledPins[0], led1);
digitalWrite(ledPins[1], led2);
digitalWrite(ledPins[2], led3);
digitalWrite(ledPins[3], led4);
}
Modul 1: Percobaan 4 Kondisi 1
"Sertakan dengan 4 LED dan tiap tombol keypad menghasilkan kombinasi LED serta keterangan kombinasi pada LCD
Rangkaian Proteus [Download]
Listing Program [Download]
Datasheets Komponen [Download]
Library [Download]
Video [Download]