hashem
Dependencies: mbed TextLCD keypad
Revision 0:593c5e55dd05, committed 2020-11-28
- Comitter:
- hashemjs
- Date:
- Sat Nov 28 17:04:22 2020 +0000
- Commit message:
- keypad_LCD
Changed in this revision
diff -r 000000000000 -r 593c5e55dd05 TextLCD.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Sat Nov 28 17:04:22 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/dreschpe/code/TextLCD/#a7c74d4c6911
diff -r 000000000000 -r 593c5e55dd05 keypad.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/keypad.lib Sat Nov 28 17:04:22 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/yoonghm/code/keypad/#da060f8c03e8
diff -r 000000000000 -r 593c5e55dd05 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Nov 28 17:04:22 2020 +0000 @@ -0,0 +1,81 @@ +#include "mbed.h" +#include "Keypad.h" +#include "TextLCD.h" +#include <string> + +#define PW_SIZE 5 +#define PASSWORD "1234A" + +Serial pc(USBTX, USBRX); + +//initialize LCD display +TextLCD lcd(p5, p7, p6, p11, p12, p13, p14, TextLCD::LCD16x2); // rs, rw, e, d0-d3 + +// Define keypad values +char Keytable[] = { '1', '2', '3', 'A', // r0 + '4', '5', '6', 'B', // r1 + '7', '8', '9', 'C', // r2 + '*', '0', '#', 'D' // r3 + }; + // c0 c1 c2 c3 + +//Initialize variables +uint32_t Index; +std::string pword; +const char * parray; +int psize=0; + +uint32_t cbAfterInput(uint32_t index) { + Index = index; + + //print entered value on LCD and save password in string + if(Keytable[Index] != '#' && Keytable[Index] != '*'){ + if(psize < PW_SIZE){ + pword.push_back(Keytable[Index]); + lcd.putc(Keytable[Index]); + parray = pword.c_str(); + psize++; + } + } + + if(Keytable[Index] == '*'){ + pword = ""; + lcd.cls(); + wait(0.001); + lcd.printf("Pass:"); + lcd.locate(0,1); + psize=0; + } + if(Keytable[Index] == '#'){ + lcd.cls(); + wait(0.001); + if(pword == PASSWORD) + lcd.printf("Correct"); + //lcd.printf("pword"); + //lcd.locate(0,1); + //lcd.printf(parray); + else + lcd.printf("Incorrect"); + } + return 0; +} + + +int main() { + + lcd.cls(); + wait(0.001); + lcd.printf("Pass:"); + lcd.locate(0,1); + + // r0 r1 r2 r3 c0 c1 c2 c3 + Keypad keypad(p28, p27, p26, p25, p21, p22, p23, p24); + keypad.attach(&cbAfterInput); + keypad.start(); // energize the keypad via c0-c3 + + while (1) { + __wfi(); + pc.printf("Interrupted\r\n"); + pc.printf("Index:%d => Key:%c\r\n", Index, Keytable[Index]); + } +} \ No newline at end of file
diff -r 000000000000 -r 593c5e55dd05 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Sat Nov 28 17:04:22 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file