Skip to main content

Menggunakan Keypad 4x4 untuk mengetik teks dengan bascom avr + at mega 16

Jika anda pernah membaca postingan saya yang sebelumnya, dahulu saya pernah menuliskan tentang kases keypad untuk password berupa angka, pada tulisan kali ini saya akan mempostingkan tentang cara Menggunakan Keypad 4x4 untuk mengetik teks ditampilkan pada LCD yang terkoneksi pada pin mikrokontroler AT mega 16.

Biasanya posting tentang keypad 4*4 hanya dibahas mengenai cara membaca angka saja, dalam artian klik pada keypad, maka akan muncul angka numerik 0,1,2,3,4,5,6,7,8,9 , nah pada posting kali ini, saya berikan sample source code dengan bascom, supaya anda dapat mengetik kata tertentu, semisal TAUFIK dengan menggunakan keypad 4*4

Berikut ini adalah gambar skematik Menggunakan Keypad 4x4 untuk mengetik teks dengan bascom avr + at mega 16

Menggunakan Keypad 4x4 untuk mengetik teks dengan bascom avr + at mega 16
Menggunakan Keypad 4x4 untuk mengetik teks dengan bascom avr + at mega 16

sedangkan berikut ini adalah source code Menggunakan Keypad 4x4 untuk mengetik teks dengan at mega 16 yang ditulis dan dikompile dengan software bascom avr:
$regfile = "m16def.dat"
$crystal = 8000000

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Config Lcd = 16 * 2
Cursor Off
Cls
Lcd "Masukkan Kata"

Relay Alias Portb.1
Ddrb.1 = 1
Relay = 0

Dim Pos As Byte


Dim Urut As Byte
Dim Kodetombol1 As Byte
Dim Kodetombol2 As Byte
Dim Kodetombol3 As Byte
Dim Kodetombol4 As Byte
Dim Kodetombol5 As Byte
Dim Kodetombol6 As Byte
Dim Kodetombol7 As Byte
Dim Kodetombol8 As Byte
Dim Kodetombol9 As Byte
Dim Kodetombol0 As Byte
Dim Kodetombolbintang As Byte
Dim Kodetombolpagar As Byte
'Dim Flag As Bit
'Dim I As Word
Dim karakter As string * 1
Dim teks As string * 16
'Dim Angka As Integer
'Dim Pass As Integer , pw as string * 5
'Dim Simpan_pass As Eram Integer                             'variabel untuk EEPROM


Const Password = "12380"

Ddra = &B11110000
Porta = &HFF

'C = 1
'Lowerline
Do
Gosub Scan_keypad
Loop

Entri:
if Kodetombolbintang = 1 then
teks = teks + karakter
cls
locate 2 , 1
Lcd teks
Kodetombolbintang = 0
end IF



'Simpan_pass = Pass


Waitms 250
Return

Proses:
cls
locate 1 , 1
lcd teks
 wait 1
For Pos = 0 To 16 Step 1
    Waitms 500
    Shiftlcd Left
  Next Pos

Return

Scan_keypad:

do
'KOLOM 1
Porta = &B11101111

If Pina.0 = 0 Then
Kodetombol1 = Kodetombol1 + 1
if Kodetombol1 = 1 then
karakter = "?"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol1 = 2 then
karakter = "!"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
Kodetombol1 = 0
end IF


Gosub Entri


Elseif Pina.1 = 0 Then

Kodetombol4 = Kodetombol4 + 1
if Kodetombol4 = 1 then
karakter = "G"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol4 = 2 then
karakter = "H"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol4 = 3 then
karakter = "I"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
Kodetombol4 = 0
endif

Gosub Entri

Elseif Pina.2 = 0 Then
Kodetombol7 = Kodetombol7 + 1
if Kodetombol7 = 1 then
karakter = "P"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol7 = 2 then
karakter = "Q"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol7 = 3 then
karakter = "R"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol7 = 4 then
karakter = "S"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol7 = 0
endif

Gosub Entri

Elseif Pina.3 = 0 Then
Kodetombolbintang = 1
Gosub Entri
End If



'KOLOM 2
Porta = &B11011111
If Pina.0 = 0 Then
Kodetombol2 = Kodetombol2 + 1
if Kodetombol2 = 1 then
karakter = "A"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol2 = 2 then
karakter = "B"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol2 = 3 then
karakter = "C"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol2 = 0
endif

Gosub Entri

Elseif Pina.1 = 0 Then
Kodetombol5 = Kodetombol5 + 1
if Kodetombol5 = 1 then
karakter = "J"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol5 = 2 then
karakter = "K"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol5 = 3 then
karakter = "L"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol5 = 0
endif

Gosub Entri

Elseif Pina.2 = 0 Then
Kodetombol8 = Kodetombol8 + 1
if Kodetombol8 = 1 then
karakter = "T"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol8 = 2 then
karakter = "U"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol8 = 3 then
karakter = "V"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol8 = 0
endif

Gosub Entri

Elseif Pina.3 = 0 Then
Kodetombol0 = Kodetombol0 + 1
if Kodetombol0 = 1 then
karakter = " "
locate 1 , 1
lcd "                "
locate 1 , 1
lcd "Spasi"
end if
Gosub Entri

End If


'KOLOM 3
Porta = &B10111111
If Pina.0 = 0 Then
Kodetombol3 = Kodetombol3 + 1
if Kodetombol3 = 1 then
karakter = "D"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol3 = 2 then
karakter = "E"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol3 = 3 then
karakter = "F"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol3 = 0
endif

Gosub Entri

Elseif Pina.1 = 0 Then
Kodetombol6 = Kodetombol6 + 1
if Kodetombol6 = 1 then
karakter = "M"

locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol6 = 2 then
karakter = "N"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol6 = 3 then
karakter = "O"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol6 = 0
endif

Gosub Entri

Elseif Pina.2 = 0 Then
Kodetombol9 = Kodetombol9 + 1
if Kodetombol9 = 1 then
karakter = "W"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol9 = 2 then
karakter = "X"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol9 = 3 then
karakter = "Y"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter
elseif Kodetombol9 = 4 then
karakter = "Z"
locate 1 , 1
lcd "                "
locate 1 , 1
lcd karakter

Kodetombol9 = 0
end IF
Gosub Entri

Elseif Pina.3 = 0 Then

Gosub Proses                                                'ENTER

End If
'-------
'KOLOM 4
Porta = &B01111111

If Pina.0 = 0 Then
Cls
Cursor Off
Locate 1 , 1
Lcd "Masukkan Password ="
Locate 2 , 1
'Wait 1
Cursor Blink
Cursor On
Waitms 100


Elseif Pina.1 = 0 Then
Cls
Cursor Off
Locate 1 , 1
Lcd "Masukkan Password ="
Locate 2 , 1
'Wait 1
Cursor Blink
Cursor On
Waitms 100


Elseif Pina.2 = 0 Then
Waitms 100

Elseif Pina.3 = 0 Then
Waitms 100
EndIf

Loop
End

jika anda menekan tombol 2 sebanyak 1 kali akan muncul karakter A, jika 2 kali akan muncul karakter B, jika 3 kali akan muncul karakter C,

selanjutnya untuk menyimpan karakter menjadi teks, silakan tekan tombol pojok kiri bawah (di bawah tombol 7, sehingga karakter yang anda ketik akan ditambahkan atau digabungkan dengan karakter2 sebelumnya, pada contoh gambar di atas adalah teks TAUFIK yang merupakan gabungan dari karakter T, karakter A, dan seterusnya hingga karakter K) 


untuk mendownload simulasi dan source codeMenggunakan Keypad 4x4 untuk mengetik teks dengan bascom avr + at mega 16

KLIK DI SINI

Contact Person : Taufik Adi Sanjaya
No HP / Whats App : 0823 2613 3990
PIN BBM 5983E244
Alamat : Jalan Imogiri Timur KM 11, 
Blawong 1 , RT 01, Trimulyo, 
Jetis, Bantul 55781.

Anda membutuhkan komponen elektronik , Arduino, Sensor, Tutorial(paket belajar), jasa pembuatan alat berbasis mikrokontroler, kendali lampu via jaringan LAN, led running teks, pengendali lampu  atau peralatan listrik lainnya via internet dan sebagainya ? anda dapat membelinya di www.kedaiarduino.com
 www.kedaiarduino.com


Comments

  1. mohon bimbingannya mas, gmn contoh listing programnya klw stlah mmilih angka atw huruf mka otomasis menyimpan tanpa harus menekan tombol bintang, intinya persis sperti tombol hp gitu mas... mohon pencerahannya mas

    ReplyDelete

Post a Comment

Silakan dikomentari

Popular posts from this blog

GROUND bagian 1 by Sarono Elektronika Blog Adi Sanjaya Global Techno Solution - AS-GTS

GROUND bagian 1
Banyak pertanyaan kepada saya apa itu ground ? apa guna nya ? apakah selalu ground itu negatif ? Apa yang di maksud titik netral pada pencatu daya terbelah ?
Agak sulit menerangkan dengan kata kata, bahkan dari hasil diskusi saya dengan beberapa teman yang sudah pakar elektronik juga mereka menemukan kesulitan nya mengungkapkan dengan kata kata walau kita mengerti tentang ground.
Untuk itu saya mencoba menerangkan semaksimal mungkin, tetapi sesungguh nya yang"mendengar" mestinya sudah punya ilmu elektronika minimal sampai teknik penguat audio.
Jadi, jika belum memehami tentang teknik audio dan masih bingung tentang konsep dan aplikasi ground masih di maklum kan.
Pada rangkaian listrik sederhana tidak di perlukan ground, misalkan senter, (body nya terbuat dari plastik) itupun sering negatif nya di hubungkan dengan body senter terbuat dari logam.
a. Pengertian Ground
Ground adalah titik yang dianggap sebagai titik kembali nya arus listrik arus seara…

HAMBATAN LISTRIK by Sarono Elektronika Blog Adi Sanjaya Global Techno Solution - AS-GTS

HAMBATAN LISTRIK
Pada bahasan sebelumnya sudah di tegaskan bahwa menghubungkan langsung positip dan negatip battery tidak boleh di lakukan, karena jumlah elektron yang mengalir menjadi sangat besar dan selama mengalir antara elektron saling berbenturan dan menimbulkan panas yang besar.
TETAPI
1) Jika jalan yang di lalui panjang (kawat nya panjang), maka kawat itu akan menjadi perlawanan listrik, makin panjang kawat maka perlawanan terhadap arus listrik juga semakin besar.
2) Atau kalau jalan nya arus di kawat juga di kecilkan (tebal kawat) nya di tipiskan juga akan menghasilkan Hambatan bagi arus semakin besar (Hambatan listrik membesar).
Dengan demikian kita bisa menghambat arus listrik itu dengan membuat kawat yang panjang dan mengatur tipis nya (luas penampang) kawat.
Ada faktor ke 3 yaitu jenis kawat.
Jenis kawat tertentu lebih mudah melewatkan arus, sementara kawat yang lain lebih sulit melewatkan arus.
Dalam teori elektron dapat di jelas kan : kawat tertentu daya ika…

Cara menggunakan modul relay dengan arduino UNO.

Material yang di butuhkan:
- Relay module 2 channel
- Arduino UNO.
- kabel jumper male - female

Relay module 2 channel  5V dengan 2 channel output dapat digunakan sebagai saklar elektronik untuk mengendalikan perangkat listrik yang memerlukan tegangan dan arus yang besar. Kompatible dengan semua mikrokontroler khususnya Arduino


Spesifikasi
•    Jumlah Relay : 2
•    Control signal : TTL level (ACTIVE LOW) ini artinya relay akan aktif jika kita memberikan logika LOW ke pin trigger relay (pin in1 /in 2)

Catatan : gambar bisa jadi berbeda dengan fisik relay yang dikirim, tapi pin pin pasti terdiri dari pin Vcc GND dan pin in1/in2 … untuk jumlah channel lainnya maka pin in1 2, dst akan sesuai dengan jumlah channel relay modul
•    Rating arus : 10A 250VAC, 10A 30VDC, 10A 125VAC, 10A 28VDC
•    Contact action time : 10ms/5ms
•    Indikator LED untuk masing masing channel



Catatan : gambar bisa jadi berbeda dengan fisik relay yang dikirim, tapi pin pin pasti terdiri dari pin Vcc GND dan pin in1/in2…