Sertakan Touch sensor dan 4 LED , saat Touch Sensor berlogika
HIGH maka ketika keypad ditekan kombinasi LED hidup
(P4K6)
1.Prosedur
Langkah-langkah percobaan :
1. Rangkai semua komponen sesuai kondisi yang dipilih
2. buat program di aplikasi arduino IDE
3. setelah selesai masukkan program ke arduino di
proteus
4. jalankan program pada simulasi dan cobakan sesuai
dengan modul dan kondisi
5. Selesai
3. Rangkaian Simulasi dan Prinsip Kerja
Rangkaian Awal.
Hasil Rangkaian
Prinsip Kerja
Pada rangkaian ini digunakan
mikrokontroler Arduino, keypad, sensor sentuh, dan LED. Pin untuk LED diatur
sebagai OUTPUT, sedangkan pin untuk sensor sentuh diatur sebagai INPUT_PULLUP.
Hal ini berfungsi pada mikrokontroler dalam menerima input dari keypad dan mengontrol
LED. Keypad dihubungkan dengan Arduino menggunakan baris (ROWS) dan kolom
(COLS) sebagai input. Keypad ini digunakan untuk memasukkan data seperti angka
dan karakter khusus untuk mengkombinasi LED.
Rangkaian ini diatur
agar mikrokontroler secara terus menerus membaca input dari keypad dan
memeriksa apakah sensor sentuh aktif. Jika sensor sentuh aktif (dibaca sebagai
HIGH), maka program akan memeriksa input dari keypad dan menangani aktivasi LED
berdasarkan input yang diberikan.
Setiap kali tombol pada
keypad ditekan dengan syarat sensor berlogika High, nilai tombol tersebut dibaca oleh mikrokontroler. Jika tombol
yang ditekan adalah angka (0-9) maka angka tersebut ditambahkan ke dalam
password. Selanjutnya LED akan dinyalakan sesuai dengan urutan angka yang
dimasukkan. LED yang tidak terpakai akan dimatikan. Namun jika panjang password
mencapai 4 digit, maka akan ditambahkan delay sebelum password di-reset. Saat
tombol "#" ditekan, password di-reset dan semua LED dimatikan, namun jika sensor berlogika low maka ini tidak bekerja.
A. Flowchart
B. Listing Program
#include <Keypad.h>
// Constants for row and column sizes
const byte ROWS = 4;
const byte COLS = 4;
// Array to represent keys on keypad
char hexaKeys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
// Connections to Arduino for LED
const byte LED_Pins[4] = {A0, A1, A2, A3};
const byte touchPin = 13;
// Connections to Arduino for keypad
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
// Create keypad object
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
// Variables to track password entry
String password = "";
int passwordIndex = 0;
void setup() {
// Setup LED pins as OUTPUT
for (int i = 0; i < 4; i++) {
pinMode(LED_Pins[i], OUTPUT);
}
// Setup touch sensor pin as INPUT
pinMode(touchPin, INPUT_PULLUP);
// Setup serial monitor
Serial.begin(9600);
}
void loop() {
// Get key value if pressed
char customKey = customKeypad.getKey();
// Check if touch sensor is activated
if (digitalRead(touchPin) == HIGH) {
// Handle LED activation based on keypad input
if ((customKey >= '0' && customKey <= '9') || customKey == '#') {
if (customKey == '#') {
// Reset password and turn off all LEDs if '#' key is pressed
password = "";
passwordIndex = 0;
for (int i = 0; i < 4; i++) {
digitalWrite(LED_Pins[i], LOW);
}
} else {
// Append key to password
password += customKey;
// Increment password index
passwordIndex++;
// Activate LEDs sequentially
for (int i = 0; i < passwordIndex; i++) {
digitalWrite(LED_Pins[i], HIGH);
}
// Turn off any remaining LEDs from previous passwords
for (int i = passwordIndex; i < 4; i++) {
digitalWrite(LED_Pins[i], LOW);
}
// If password length is 4
if (passwordIndex == 4) {
// Add delay after all LEDs are activated
delay(500);
// Reset password and password index
password = "";
passwordIndex = 0;
}
}
}
}
if (customKey) {
// Print key value to serial monitor
Serial.print("Tombol : ");
Serial.println(customKey);
}
}
Sertakan Touch sensor dan 4 LED , saat Touch Sensor berlogika HIGH maka ketika keypad ditekan kombinasi LED hidup.
Tidak ada komentar:
Posting Komentar