• Arduino
    • Sensor
    • program Arduino
  • Project
  • Produk
  • IOT
Jumat, Oktober 3, 2025
mikroavr.com
No Result
View All Result
  • Login
  • Arduino
    • Sensor
    • program Arduino
  • Project
  • Produk
  • IOT
  • Arduino
    • Sensor
    • program Arduino
  • Project
  • Produk
  • IOT
No Result
View All Result
mikroavr
No Result
View All Result
Home Project

Keypad ATmega CAVR LCD input Password – Project Sederhana

Jimmi Sitepu by Jimmi Sitepu
Februari 26, 2022
0 0
0
keypad Atmega

keypad Atmega

9
SHARES
3.1k
VIEWS
Share on FacebookShare on Twitter

Manfaat Keypad Atmega denga Input Password

Keypad atmega CAVR untuk input password dan di tampilkan di lcd ini merupakan permintaan visitor dari mikroavr.com, japri melalui WhatsApp untuk di mintakan buat program input password dengan keypad dan di tampilkan di LCD 16×2, jika password benar maka menampilkan password benar, jika password salah maka menampilkan password salah.

Karena kebetulan pernah buat program ini, apa salah nya membuat program nya sekalian sebagai bahan web konten di website mikro avr ini.

READ ALSO

Sensor Tekanan Air Dan Udara Dengan Arduino

Data Logger Arduino, Simpan Data ke MikroSD atau SD Card

Sebenar nya kalo di lihat manfaat project ini cukup banyak, saya sendiri membuat project ini untuk pom mini / pertamini, sebagai proteksi untuk melihat hasil data penjualan, menghapus data penjualan dan beberapa yang di anggap penting di dalam program pom mini.input password ini juga bisa di gunakan untuk project lain, yang membutuhkan password, seperti masuk ke menu sebuah system, atau membuka atau me non aktifkan sebuah system.

keypad Atmega
keypad Atmega

Konfigurasi PIN Keypad ATMEGA dan LCD 16×2 atau 20×4

Agar program yang di tuliskan di sini dapat di jalankan dengan baik, maka kita perlu lihat konfigurasi pin keypad dengan atmega beserta konfigurasi PIN LCD ke atmega nya.

Untuk Keypad ini kita hubungkan ke PORTA dari ATMEGA ( disini saya buat atmega32/16/8535) kemudian untuk LCD 16×2 atau LCD 20×4 kita hubungkan ke PORTC. Untuk rangkaian nya bisa dilihat di gambar di bawah ini

rangkaian keypad lcd atmega
rangkaian keypad lcd atmega

Program CAVR Keypad atmega Input Password dan Ditampilkan di LCD

Berikut adalah program CAVR atau codevisionAVR untuk Keypad dan di tampilkan di LCD. Program ini bekerja seperti di jelaskan di atas. Jika input password salah, maka akan muncul notifikasi password salah namun jika password benar makan akan di tampilkan password benar.



#include <mega32a.h>
// Alphanumeric LCD functions
#include <alcd.h>;
#include <stdint.h>;
#include <delay.h>;
#include <stdio.h>;
// Declare your global variables here
#define READY 0
#define TRUEPASS 1
#define WRONGPASS 2
#define BINTANG 13
#define PAGAR 15
int8_t pollingKeypad();
void shortPress(int8_t key);

int8_t globalKey = -1;
int8_t state = 0;
void updateLCD();
void getText();
uint32_t nilaiKey = 0;
char line1[20], line2[20];
uint32_t PASS = 888000;
void main(void)
{
// Declare your local variables here
int8_t key = -1;

PORTA = 0XFF;
DDRA = 0XF0;

// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTC Bit 0
// RD - PORTC Bit 1
// EN - PORTC Bit 2
// D4 - PORTC Bit 4
// D5 - PORTC Bit 5
// D6 - PORTC Bit 6
// D7 - PORTC Bit 7
// Characters/line: 16
lcd_init(16);

while (1)
{
      globalKey = key = pollingKeypad();
    if (key != -1)
      {
      shortPress(key); lcd_clear(); delay_ms(20);
      while (pollingKeypad() != -1) {}
      }
    updateLCD();
    }     
}
int8_t pollingKeypad()
{
  int8_t key = -1;
  PORTA = 0b01111111;
  if(PINA.3 == 0)key = 13; //*
  else if(PINA.2 == 0)key = 12; //C
  else if(PINA.1 == 0)key = 11; //B
  else if(PINA.0 == 0)key = 10; //A

  PORTA = 0b10111111;
  if(PINA.3 == 0)key = 14; //D
  else if(PINA.2 == 0)key = 9;
  else if(PINA.1 == 0)key = 6;
  else if(PINA.0 == 0)key = 3;

  PORTA = 0b11011111;
  if(PINA.3 == 0)key = 15; //#
  else if(PINA.2 == 0)key = 8;
  else if(PINA.1 == 0)key = 5;
  else if(PINA.0 == 0)key = 2;

  PORTA = 0b11101111;
  if(PINA.3 == 0)   key = 0;
  else if(PINA.2 == 0)key = 7;
  else if(PINA.1 == 0)key = 4;
  else if(PINA.0 == 0)key = 1;
  return key;
}

void shortPress(int8_t key)
{
   if ( state == READY ){
        if ( key < 10 ){
            nilaiKey = nilaiKey *10 + key;
        }
        
        else if ( key == BINTANG ){
            nilaiKey = 0; state = READY;
        }
        else if ( key == PAGAR ){
            if ( nilaiKey == PASS){
            nilaiKey = 0; state = TRUEPASS; 
            }
            else{
             nilaiKey = 0; state = WRONGPASS;
            }
        }
   }
   
   else if ( state == TRUEPASS){
    if ( key == BINTANG ){
        state = READY;
    }
   }
   
   else if ( state == WRONGPASS){
         if ( key == BINTANG ){
        state = READY;
    }
   }
}
void updateLCD()
{
  getText();
  lcd_gotoxy(0,0);
  lcd_puts(line1);
  lcd_gotoxy(0,1);
  lcd_puts(line2);

}
void getText()
{
    if ( state == READY ){
     sprintf(line1,"INPUT PASS");
     sprintf(line2,"PASS: %lu",nilaiKey);
    }
    
    else if (state == TRUEPASS){
      sprintf(line1,"PASSWORD BENAR");
      sprintf(line2,"");
    }
    
    else if (state == WRONGPASS){
      sprintf(line1,"PASSWORD SALAH");
      sprintf(line2,"");
    }
}

Program di atas sudah saya jalankan di hardware dan Alhamdulillah berhasil, video pengujiannya bisa anda lihat di bawah ini,

Program di atas bisa di kembang kan ke aplikasi yang lebih luas, seperti ganti password lama menjadi password baru, membagi bagi tingkatan user untuk password nya, masuk kedalam sebuah menu untuk di jalankan dan lain lain.

Semoga tulisan ini dapat bermanfaat bagi kita semua, Thanks

  1. untuk versi Arduino bisa di check disini https://mikroavr.com/tutorial-keypad-arduino-lcd/
  2. Untuk versi atmega lain bisa di check di sini https://mikroavr.com/membaca-keypad-4×4-3×4-atmega-codevisionavr/
    input password keypad mega
Tags: keypad 4x4lcd 16x2mega32mega8535
Share9Tweet
Previous Post

Rangkaian Lampu Led Sederhana – Dasar Sistem Digital Elektronika

Next Post

Jasa Cetak PCB, Berkualitas, Import dari China, Murah dan Terpercaya

Jimmi Sitepu

Jimmi Sitepu

Hobbyist Embedded System, Robotic, IOT and write all about them. So we have nice quote "Learning and Sharing"

Related Posts

Arduino

Sensor Tekanan Air Dan Udara Dengan Arduino

Desember 20, 2020
Data Logger Arduino, Simpan Data ke MikroSD atau SD Card
Arduino

Data Logger Arduino, Simpan Data ke MikroSD atau SD Card

Juli 19, 2019
monitoring listrik
Arduino

Monitoring Arus Listrik dengan Internet

Oktober 4, 2020
Pendeteksi Banjir Berbasis Arduino dan GSM
Arduino

Pendeteksi Banjir Berbasis Arduino dan GSM

April 24, 2019
Membuat Robot Sederhana dengan Arduino dan Ultrasonik, Lengkap dengan Pengujian dan Coding nya
Project

Membuat Robot Sederhana dengan Arduino dan Ultrasonik, Lengkap dengan Pengujian dan Coding nya

Oktober 11, 2018
Cara Mudah Program HT1621 LCD Pertamini, dengan Library HT1621 Arduino
Arduino

Cara Mudah Program HT1621 LCD Pertamini, dengan Library HT1621 Arduino

Februari 26, 2022
Next Post
MIKROAVR

Jasa Cetak PCB, Berkualitas, Import dari China, Murah dan Terpercaya

rangkaian lm2596 5v

Rangkaian Regulator dengan Rangkaian LM2596/LM2576 Arus 3A

Please login to join discussion

Tulisan Terbaru

sensor URM14 Arduino

Membaca Sensor URM14 RS485 dengan ESP32 Arduino

Juli 7, 2022
4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

Juni 13, 2022
Mendapatkan Waktu Akurat dengan NTP GPS

Mendapatkan Waktu Akurat dengan NTP GPS

Mei 8, 2022
Custome GPS Logger Arduino dengan Akeses Internet SIM7600 4G

Custome GPS Logger Arduino dengan Akeses Internet SIM7600 4G

April 14, 2022
Tutorial Menggunakan Weather Station DFRobot SEN0186 dengan Arduino ESP32

Tutorial Menggunakan Weather Station DFRobot SEN0186 dengan Arduino ESP32

Maret 9, 2022
ethernet arduino

Arduino Ethernet Tutorial, Project dengan Arduino Uno dan Mega

Februari 24, 2022

Browse by Category

  • Arduino
  • Ebook
  • ESP32
  • IOT
  • jasa
  • Komponen
  • PCB
  • Produk
  • program Arduino
  • Project
  • Rangkaian
  • Sensor
  • Tips
  • Uncategorized

Recent News

sensor URM14 Arduino

Membaca Sensor URM14 RS485 dengan ESP32 Arduino

Juli 7, 2022
4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

Juni 13, 2022
  • About US
  • Blog
  • MIKROAVR

© 2020 mikroavr.com - Learning and sharing.

Welcome Back!

Sign In with Google
OR

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

No Result
View All Result
  • About US
  • Blog
  • MIKROAVR

© 2020 mikroavr.com - Learning and sharing.