6. Proyek Keypad dengan Microcontroller Arduino

  • 0
Description

6. Proyek Keypad dengan Microcontroller Arduino

Tags :

Category : aktifasi pemutar audio dengan sensor gas dan ultrasonic di arduino , ARTIKEL PENDIDIKAN , Belajar Microcontroller Arduino untuk Pemula , Cara Instalasi dan Konfigurasi Microcontroller Arduino , cara membaca kode alamat tombol remote di arduino , Deteksi asap sensor gas MQ2 dengan arduino , Deteksi Kelembaban Tanah memicu kran elektrik dengan arduino , Deteksi Kelembaban Udara dengan Arduino , gerakan servo SG90 otomatis derajat , kendali arah servo SG90 dengan potensiometer , kendali LED dan menampilkan ke LCD dengan arduino , kendali LED dengan bluetooh dan android di arduino , kendali melalui socket tcp/ip dengan esp8266 , komunikasi tcp dan ip melalui ethernet LAN di arduino , membaca koordinat bumi dengan GPS di arduino , Pembuatan Proyek Audio dengan Arduino , Pembuatan Proyek LED dengan Arduino , pemutar lagu MP3 dengan arduino , Pendeteksi Getaran dengan sensor Vibration SW420 , Pendeteksi Warna dengan Sensor Warna TCS230 dan TCS3200 dengan arduino , Pengenalan Microcontroller Arduino , pengendali alat melalaui SMS dengan arduino , perbedaan stepper dan servo di arduino , perngertian motor stepper dan motor servo , Proyek Digital Potensiometer dengan Arduino , Proyek Kendali Jarak Jauh dengan arduino , Proyek Keypad dengan Arduino , proyek kontrol motor DC dengan arduino , Proyek LCD dan OLED dengan Arduino , Proyek Lingkungan deteksi air hujan dengan arduino , Proyek Relay dengan Arduino , proyek robot keseimbangan dengan sensor gyroscope di arduino , proyek robot penghindar halangan dengan remote bluetooth , Proyek Sensor Jarak , sensor keamanan dengan kartu RFID dengan arduino , Ultrasonic HCSR04 dan Sensor PIR HCSR501 dengan Arduino

6. PROYEK KEYPAD DENGAN MICROCONTROLLER ARDUINO

Keypad merupakan salah satu jenis perangkat input-an berupa angka atau huruf. Terdapat beberapa jenis keypad yang bisa diimplementasikan pada Arduino, antara lain: keypad membrane, keypad plastik dan capacitive touch. Khusus keypad membrane dan plastik memiliki cara kerja yang sama, sehingga pemrogramannya pun sama.

Description

6.1 Keamanan Pintu Menggunakan

Password (Door Lock Solenoid, Keypad Membrane & LCD)

Proyek ini bertujuan untuk membuat keamanan pintu (door lock) dengan memanfaatkan solenoid yaitu slot grendel yang diaktifkan oleh magnet listrik Solenoid di-drive oleh transistor darlington TIPI 20 berjenis NPN sebagai penguatan. Jika Anda sulit mendapatkan transistor TIP120 maka Anda dapat menggantinya dengan transistor darlington TIP142 atau yang sejenisnya.

Solenoid secara default bernilai LOW, berarti ujung slot grendel pada kondisi maju atau kondisi mengunci. Ketika solenoid menerima nilai HIGH maka ujung slot grendel akan tertarik ke dalam atau dalam kondisi terbuka.

Description

Skenario proyek adalah bagaimana membuka dan mengunci slot grendel solenoid dengan cara menuliskan password melalui keypad membrane dan input keypad ditampilkan ke layar LCD 12C. Jika password yang dituliskan benar maka ujung solenoid akan ditarik ke dalam atau terbuka, sebaliknya jika password salah maka pesan kesalahan akan ditampilkan pada layar LCD, sekaligus membunyikan speaker (Buzzer) dan slot solenoid tetap dalam kondisi terkunci atau ujungnya maju ke depan. Perhatikan flowchart pada Gambar 6.8.

Gambar 6.8 Flowchart Keamanan Pintu Solenoid

Kebutuhan Bahan

Bahan Jumlah Nilai Keterangan
Jack Socket DC 1 pcs Description
Power supply DC 1 pcs 12 Volt
Solenoid 12 Volt 1 pcs
Diode 1 pcs 1 N4002
Resistor 1 pcs 1K Ohm
Transistor Darlington NPN 1 pcs TIPI 20 / TIPI 42
Buzzer Piezo 5 Volt 1 pcs Description
Keypad Membrane 1 pcs 4X4 Description
LCD 1602 Module

LCM1602 Module

1 pcs

Description

Proyek ini membutuhkan library Keypad.h yang dapat di downoad di https;LZ github.com/Nullkraft/Keypad dan library LiquidCrystal_12C.h (sudah terinstall pada proyek sebelumnya). Kemudian instal library tersebut dari menu Sketch Include Library Add .ZIP Library seperti cara sebelumnya.

Description

Kode Program

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#include <Keypad.h>

#defne lebarPassword 7

// Inisialisasi library

// Atur alamat LC pada Bx27 untuk tampilan LCD 16 karakter 2 baris LiquidCrystal_I2C lcd(0x27, 16, 2);

char Data[lebarpassword];// 6 is the number of chars it can hold + the null

char=7

char Master[lebarPassword] = “123456”; // Password (bisa diganti dengan yang

lain)

byte data_count = 0, master_count =0;

bool Password_Benar;

int pinSolenoid = 11; // Solenioid dihubungkan dengan pin 11 Arduino

int pinBuzzer = 13; // Buzzer dihubungkan dengan pin 13 Arduino

const byte ROWS=4;

const byte COLS=4;

// Keypad ukuran 4X4

char hexaKeys[ROWS][COLS]={

{‘1’, ‘2’, ‘3’, ‘A’},

{‘4′,’5’, ‘6’, ‘B’},

{,’,6,’,8,'<L,}

{*’,’@’,“#’,’D’}

};

// Menghubugkan dengan Pin Arduino

byte rowPins[ROWS]={9, 8,7,6};

byte colpins[COLS] ={5,4,3,2};

// Inisialisasi keypad

keypad custonkeypad = Keypad(makeKeymap(hexaKeys),rowPins,colPins, ROWS, COLS);

void setup(){

pinMode(pinSolenoid, OUTPUT);

digitalwrite(pinSolenoid, LOw);// solenoid normal mengunci

pinMode(pinBuzzer, OUTPUT) ;

lcd.init(); // Inisialisasi LCD

{

lcd.backlight(); // Menghidupkan backlight

void loop() {

lcd.setCursor(0,0);

lcd.print(“Password :”);// tampilkan di LCD

char customKey = customKeypad.getKey(); // mendapatkan nilai tombol keypad if (customKey) // Memastikan jika tombol keypad ditekan

{Data[data_count]= customKey;// Menyimpan karakter ke array

lcd.setCursor(data_count, 1); // Menggerakkan kursor untuk menunjukkan penambahan karakter baru

lcd.print(Data[data_count]); // Mencetak karakter

data_count++; // Penambahan data array dengan 1

// Jika index array sama dengan jumlah karakter yang diharapkan maka banding-kan dengan master

if (data_count ==lebarPassword-1)

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print(“Password : “);

// Bandingkan nilai keypad dengan password (6 digit =”123456”)

if (strcmp(Data, Master)) {

// Jika password salah

digitalwrite(pinSolenoid, LOW); // Solenoid normal mengunci lcd.setCursor(0,1); lcd.print(“Password Salah”); // Pesan password salah ke LCD

// Bunyikan buzzer jika salah

tone(pinBuzzer, 1000); // Kirim siganal suara 1KHz

delay(1000);

noTone(pinBuzzer);

delay(1000);

}

else{

// Jika password salah

digitalwrite(pinSolenoid, HIGH); // Solenoid membuka (menarik ujung sole-noid ke dalam)

lcd.setCursor(0, 1);

lcd.print(“Password Benar”); // Pesan password benar ke LCD

}

delay(3000);

lcd.clear();

clearData();

}

}

void clearData()

{

while (data_count !=0){

Data[data_count–] = 0; // Bersihkan array untuk password baru

}

return;

{

6.2 Capacitive Touch TTP229 16 Channel

Keypad sentuh kapasitif 16 tombol ini didasarkan pada sensor dengan penginderaan akurat hingga 16 titik. Keypad solid state yang ya tahan terhadap lingkungan berdebu, cocok untuk kebutuhan teknis lapangan yang ekstrem.

Proyek keypad capacitive touch ini membutuhkan library TTP229.h yang dapat i-download di https://github.com/Arduin012/ttp229-Arduino dan library LiquidCrystal_12C.h (sudah terinstall pada proyek sebelumnya). Kemudian nstal library tersebut dari menu Sketch -> Include Library Add .ZIP Library Arduino seperti cara sebelumnya.

Gambar 6.10 Instlasi library TTP229

Bahan Jumlah Nilai Keterangan
Capacitive Touch Keypad 1 pcs TTP229
LCD 16×2 Module +LCM1602 I2C 1 pcs Description

Description

Pin SCL dan pin SDO sensor touch dihubungkan ke Pin D2 dan pin D3 Arduino. Pin VCC dan GND sensor touch dihubungkan ke tegangan 5V dan GND Arduino. Jumper atau hubungkan singkat pada PI (pin 3 dan pin 4) dan P2 (pin 5) seperti tampak pada diagram sketch di atas.

Kode Program

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#include <TTP229.h>

#define pinSCL 2// Hubungkan pin SCL TTP229 ke pin 2 Arduino

#define pinSDo 3 // Hubungkan pin SDO TTP229 ke pin 3 Arduino

LiquidCrystal_I2C lcd(0x27,16,2);

TTP229 sensorTouch(pinSCL,pinSDO); // Instansiasi objek sensor

int old =0;

void setup() {

Serial.begin(9600);

pinMode(pinSCL, OUTPUT);

pinMode(pinSDO, INPUT);

lcd.init();

lcd.backlight();

lcd.setCursor(0, 0);

lcd.print(“Angka :”);

}

void loop(){

int Key = getkey();

if(Key!=0&Key!= old)

{

Serial.print(“TEKAN —>“);

Serial.print1n(Key);

lcd.clear();

lcd.setCursor(0,1);

lcd.print(“Tombol Angka: “ + String(Key));

}

old=Key;

}

byte getkey(void)

{

byte cnt;

byte num=0;

for(cnt=1;cnt<17; cnt++)

{

digitalwrite(pinSCL, LOW);

if (digitalRead(pinSDO) ==0)

num=cnt;

digitalwrite(pinSCL,HIGH);

}

return num;

}

Jika program tersebut dijalankan maka akan dihasilkan dua output ketika capasitive touch disentuh, yaitu menampilkan angka ke serial monitor dan ke LCD, seperti tampak pada Gambar 6.8.

Gambar 6.11 Menampilkan Angka Sesuai Penekanan Tombol Capacitive. Angka yang muncul sesuai dengan tombol yang disentuh

6.3 Capacitive Touch Sensor Catalex TTP223

Sensor sentuh catalex TTP223 adalah contoh lain dari capacitive touch, bentuknya sederhana karena hanya membutuhkan satu tombol untuk menggunakannya. Sensor catalex TTP223 terdiri dari 3 pin, antara lain SIG (signal output), VCC (dihubungkan dengan tegangan positive Arduino) dan GND (dihubungkan dengan GND Arduino) seperti tampak pada Gambar 6.12

Description

Aktif atau tidaknya sensor ditentukan oleh nilai HIGH dan Low pin Proyek kali ini cukup sederhana yaitu menghidupkan dan mernatikan sekaligus menampilkan tulisan “LED Hidup” dan “LED Mati” pada saat sensor disentuh. Prinsip kerjanya sama dengan penggunaan saklar push botton pada proyek sebelumnya

Kebutuhan Bahan

Bahan Jumlah Nilai Keterangan
Modul Sensor Capacitive Touch Catalex 1 pcs
Modul OLED (0.96″) 1 pcs

Diagram Sketch

Kode Program

#include <SPI.h>

#include <Wire.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

#include <Adafruit_TFTLCD.h>

#define pinLED 2

#define pinTouch 3

#define OLED_RESET 4

Adafruit_SSD1306 display(OLED_RESET);

void setup() {

pinMode(pinLED, OUTPUT);

pinMode(pinTouch, INPUT);

digitalwrite(pinLED, LOW);

display.begin(SSD1306_SWITCHCAPVCC, øxЗC); // inisialisasi OLED 128×64 atau 0.96”

display.clearDisplay(); // Bersihkan layar OLED

display.setTextColor(BLACK, WHITE); // Background teks inverse

display.setCursor(26, 14); // Posisi koordinat tulisan (x,y)

display.println(“SENTUH AKU!”); // Cetak tulisan

display.display(); // buffer setting

delay(3000); // tunda 3 detik

}

void loop(){

int val = digitalRead(pinTouch);

if(val == HIGH){

digitalwrite(pinLED, HIGH);

display.clearDisplay();

display.setTextColor(WHITE);

display.setCursor(26, 5);

display.println(“SENTUH AKU!”);

display.setCursor(20,15);

display.println(“— LED HIDUP —”);

display.display();

} else {

digitalwrite(pinLED, LOW);

display.clearDisplay();

display.setTextColor(WHITE);

display.setCursor(26, 5);

display.println(“SENTUH AKU!”);

display.setCursor(26, 15);

display.println(“LED MATI”);

dísplay.display();

}

}

Hasil akhir proyek tampak pada Gambar 6.13 dan Gamar 6.14

Description

Description

 


Leave a Reply

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.

Rahasia Bikin Aplikasi Playstore tidak Pake Coding Seri 02

Rahasia Bikin Aplikasi Playstore tidak Pakai Coding Seri 01

ebook murah dan berkualitas. banyak diskonnya. beli segera!!!

TAS MOBIL MULTIFUNGSI

Location

Visitor

0379464
Hari ini : 246
Kemarin : 338
Bulan ini : 4428
Total Kunjungan : 379464
Who's Online : 2
error: Content is protected !!