• Arduino
    • Sensor
    • program Arduino
  • Project
  • Produk
  • IOT
Jumat, Juni 13, 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

Membaca Keypad 4×4 dan 3×4 dengan ATMEGA, AVR

Jimmi Sitepu by Jimmi Sitepu
Februari 26, 2022
0 0
0
interface keypad mikrokontroller

mikroavr.com

0
SHARES
4.8k
VIEWS
Share on FacebookShare on Twitter
interface keypad mikrokontroller
mikroavr.com

www.mikroavr.com,  Membaca Keypad 4×4 dan keypad 3×4 dengan Mikrokontroller ATMEGA digunakan dengan cara sistem scanning. Pin Kedua keypad ini akan di gunakan sebagai output sekaligus sebagai input. penggunaan keypad ini banyak kita jumpai di berbagai peralatan elektronik, seperti peralatan SPBU, PERTAMINI, Tombol Password pada perangkat seperti pintu, dan perlengakpan lainnya nah bagaimanakan cara membaca keypad ini dengan ATMEGA dan CODEVISION AVR sebagai compiler C nya. Nah sebelum memulai coding membaca keypad 4×4 atau 3×4.

Ada poin penting yang harus di perhatikan. Pertama adalah setting nilai register DDR dan PORT. Register ini berguna untuk menentukan apakah PORT pada ATMEGA BERGUNA sebagai input atau output.

READ ALSO

Sensor Tekanan Air Dan Udara Dengan Arduino

Data Logger Arduino, Simpan Data ke MikroSD atau SD Card

Karena keypad DI hubungkan dengan port a maka setting adalah PORTA=0XFF; DDRA=0xF0;

Disini kita menggunakan VARIANT AVR ATMEGA16, program ini bisa juga di gunakan dengan ATMEGA8535 dan ATMEGA32, karena ketiga jenis mikrokontroller ini memiliki konfigurasi pin yang hampir sama, untuk PORT I/O nya sama persis. ini programnya:



#include <mega16.h>

// Alphanumeric LCD functions
#include <alcd.h>
#include <delay.h>
#include <stdio.h>
#include <stdlib.h>

// Declare your global variables here
// Declare your global variables here
void simpan_dlm_1variabel();
void scanning_keypad();
void tampil_lcd();

float nilai = 0;
unsigned char temp[12];
unsigned char array[10];
int i=0;


void main(void)
{
// Declare your local variables here

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: 20
lcd_init(16);
lcd_gotoxy(0,0);
lcd_putsf("MIKROAVR.COM");
delay_ms(1000);
lcd_clear();

while (1)
      {
      // Place your code here
        scanning_keypad();
        tampil_lcd();
      }
}

void scanning_keypad()
{
 int waktu = 100;

 PORTA = 0b01111111;
 delay_ms(20);
 if(PINA.3 == 0){delay_ms(waktu);} //D
 if(PINA.2 == 0){delay_ms(waktu);} //C
 if(PINA.1 == 0){delay_ms(waktu);} //B
 if(PINA.0 == 0){lcd_clear();i=0;nilai=0;delay_ms(waktu);} //A

 PORTA = 0b10111111;
 delay_ms(20);
 if(PINA.3 == 0){
 delay_ms(waktu);
 i=0;
 nilai=0;
 lcd_clear();
 }    //#

 if(PINA.2 == 0){i++; array[i]=9; simpan_dlm_1variabel();delay_ms(waktu);}
 if(PINA.1 == 0){i++; array[i]=6; simpan_dlm_1variabel();delay_ms(waktu);}
 if(PINA.0 == 0){i++; array[i]=3; simpan_dlm_1variabel();delay_ms(waktu);}

 PORTA = 0b11011111;
 delay_ms(20);
 if(PINA.3 == 0){i++; array[i]=0; simpan_dlm_1variabel();delay_ms(waktu);}
 if(PINA.2 == 0){i++; array[i]=8; simpan_dlm_1variabel();delay_ms(waktu);}
 if(PINA.1 == 0){i++; array[i]=5; simpan_dlm_1variabel();delay_ms(waktu);}
 if(PINA.0 == 0){i++; array[i]=2; simpan_dlm_1variabel();delay_ms(waktu);}

 PORTA = 0b11101111;
 delay_ms(20);
 if(PINA.3 == 0){
 delay_ms(waktu);lcd_clear();

 } //*

 if(PINA.2 == 0){i++; array[i]=7; simpan_dlm_1variabel();delay_ms(waktu);}
 if(PINA.1 == 0){i++; array[i]=4; simpan_dlm_1variabel();delay_ms(waktu);}
 if(PINA.0 == 0){i++; array[i]=1; simpan_dlm_1variabel();delay_ms(waktu);}

}

void simpan_dlm_1variabel()
{
    if ( i == 1 ){nilai = array[i];}
    if ( i >= 2 &&  i <= 8 )
    {
        nilai = (nilai*10)+array[i];
    }
}

void tampil_lcd()
{
 lcd_gotoxy(0,0);
 lcd_putsf("test keypad");
 if(nilai>0)
 {
    ftoa(nilai,0,temp);
    lcd_gotoxy(0,1);
    lcd_puts(temp);
 }

}

Oke gan, program diatas bisa digunakan untuk keypad 4×4 dan 3×4. tinggal colok pin keypad ke PORTA mikrokontroller.

silahkan unduh program lengkap nya disini

PUNYA MASALAH dalam pembuatan project MIKROKONTROLLER ATAU ARDUINO, silahkan whatsapp: 085207770631, atas nama: jimmi kardo sitepu, Dengan senang HATI saling berbagi

Baca Artikel kami tentang modul pertamini di bawah ini, cukup klik link nya

Modul Pertamini digital berkualitas buatan mikroavr

Tags: atmegaavrcodevisionavrkeypad 3x4keypad 4x4mikrokontroller
ShareTweet
Next Post

Testing SIM800 Dengan PuTTY Untuk Tugas Akhir

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
Modul GSM SIM800L

Testing SIM800 Dengan PuTTY Untuk Tugas Akhir

water flow sensor

BELAJAR WATER FLOW SENSOR DENGAN ATMEGA DAN CODEVISION

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.