การต่อใช้งาน Aruino กับ Kaypad 4x4 ออกจอ LCD

แสดงการต่อใช้งาน Arduino Uno R3 กับ Keypad 4x4 ออกจอ LCD แบบ 16x2

อุปกรณ์ที่ใช้ในการต่อ

Name Quantity Component
KEYPAD1 1 Keypad 4x4
U1 1 Arduino Uno R3
U3 1 LCD 16 x 2
Rpot2 1 250 kOhm, Potentiometer
R1 1 220 Ohm Resistor

วิธีต่อ

Aruino กับ Kaypad 4x4 LCD

โค้ตที่ใช้

#include <Keypad.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(5, 4, 3, 2, A4, A5);


const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {A0, A1, 11, 10}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {9, 8, 7, 6}; //connect to the column pinouts of the keypad
int LCDRow = 0;


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


void setup(){
   Serial.begin(9600);
   lcd.begin(16, 2);
   lcd.setCursor(LCDRow, 0);
   }
  
void loop(){
  char key = keypad.getKey();
  
  if (key){
    Serial.println(key);
    lcd.print(key);
    lcd.setCursor (++LCDRow, 0);
  }
}

อธิบายโปรการทำงานของโปรแกรม แรกเริ่มค่าที่เราเก็บการแสดงผลจะอยู่ที่ LCDRow เมื่อเรากด Key ใดๆ Key นั้นๆ จะถูกแสดงผลบนต่ำแหน่งแรกของ LCD ระบุ โดย LCDRow = 0 นำค่า key ที่กดได้ ไปแสดงที่ต่ำแหน่งแรกก่อน ด้านบนของ LCD ด้วย

lcd.setCursor (++LCDRow, 0);

เมื่อมีการกด Key ต่อไป Key นั้น จะถูกบวกต่ำแหน่งเข้าไปไว้ที่ตัวแปร LCDRow ด้วยคำสั่ง

++LCDRow

ค่าก็จำถูกบวกติดกันไปเรื่อยๆ โดยค่า key จะไม่ไปซ่อนทับกับค่าก่อนหน้า หากต้องการแสดงผลมาที่ บรรทัดที่ 2 ด้านล่าง ก็สามารถสั่งด้วย

lcd.setCursor (++LCDRow, 1);

ตัวอย่างการทำงาน

2020-07-02_10-42-37

สามารถลองเล่น Simulation ด้านล่าง

1 Like

ขอบคุณข้อมูลพื้นฐานดีๆ:sparkles::pray:

ถ้าใช้ Keypad เป็น 3*4 ล่ะครับ ต่อยังไงครับ

:sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles::sparkles:ครับ

ทำยังไงต่อครับ