lnwshop logo
  • ตอบกระทู้
  • ตั้งกระทู้ใหม่
QUOTE 

รบกวนหน่อยคับ พอดีผมจะเขียนโค๊ค รับค่าจาก keypad อะคับ

Jakrapong Jitsup
Jakrapong Jitsup
IP: 171.99.237.x
3 เดือนที่ผ่านมา

รบกวนหน่อยคับ พอดีผมจะเขียนโค๊ค รับค่าจาก keypad 2 ครั้ง ตัวอย่างแบบว่า

1. จะเลือกของชนิดข้าว แบบว่ามี 4 ชนิด

2. เลือกจำนวนน้ำหนัก เช่น 1 กก. 2กก. ....

ตอนเลือกชนิดได้เเล้ว จะไปเลือกน้ำหนัก ตรง(input weight) อะคับ

ลองเขียนเเล้ว มันกดได้แค่ตัวเลข 1 2 3 4 (พอดีมือไหม่อะคับ รบกวนหน่อยคับ)

#include

#include

#include

LiquidCrystal_I2C lcd(0x3F, 20, 4);

const byte ROWS = 4; //four rows

const byte COLS = 3; //three columns

char keys[ROWS][COLS] = {

{'1','2','3'},

{'4','5','6'},

{'7','8','9'},

{'.','0',' '}

};

byte rowPins[ROWS] = {43, 41, 39, 37}; //connect to the row pinouts of the keypad

byte colPins[COLS] = {35, 33, 31}; //connect to the column pinouts of the keypad

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

char num;

int Buzzer = 53;

int pin;

//char checkwieght;

void setup()

{

Serial.begin(9600);

lcd.begin();

lcd.setCursor(0,0);

lcd.print("Select num = ");

lcd.setCursor(0, 1);

lcd.print("Select Weight = ");

lcd.setCursor(0,2);

lcd.print("Coin = ");

lcd.setCursor(0,3);

lcd.print("Coin in= ");

pinMode(Buzzer,OUTPUT);

digitalWrite(Buzzer,HIGH);

lcd.blink();

lcd.setCursor(13,0);

}

void loop(){

char key = customKeypad.getKey(); //read keypad

if(key != NO_KEY){

if(key == '1')

{

lcd.print(key);

Serial.print(key);

Beep();

lcd.setCursor(16,1);

.............................................. // input weight

}

if(key == '2') {

lcd.print(key);

Beep();

lcd.setCursor(16,1);

.............................................. // input weight

}

if(key == '3') {

lcd.print(key);

Beep();

lcd.setCursor(16,1);

.............................................. // input weight

}

if(key == '4'){

lcd.print(key);

Beep();

lcd.setCursor(16,1);

.............................................. // input weight

}

}

}

void Beep()

{

digitalWrite(Buzzer,LOW);

delay(50);

digitalWrite(Buzzer,HIGH);

}

QUOTE 
ความคิดเห็นที่ #1
เจ้าของร้าน
เจ้าของร้าน
3 เดือนที่ผ่านมา

ลองดูโคดการใช้งาน keypad เพิ่มเติม ตามตัวอย่างนี้ครับ

http://tronixstuff.com/2011/11/12/tutorial-arduino-and-numeric-keypads-part-two/

QUOTE 
ความคิดเห็นที่ #2
Jakrapong Jitsup
Jakrapong Jitsup
IP: 171.99.237.x
3 เดือนที่ผ่านมา
เเละถ้าจาก code ข้างล่าง จะเก็บค่า key ที่ได้จากการกด keypad ไปเปรียบเทียบ หรือใช้งานต่อ ละคับ int count=0;

while(count < 4)

{ char key = customKeypad.getKey();

if(key != NO_KEY){

Serial.print(key);

count++;

if(key== '*') break;

}

}

QUOTE 
ความคิดเห็นที่ #3
เจ้าของร้าน
เจ้าของร้าน
3 เดือนที่ผ่านมา

ให้เก็บไว้ในตัวแปรข้างนอกวงเล็บ

เช่น ประกาศ char key ไว้บนสุด ค่าจะไม่หาย สามารถนำไปเปรียบเทียบได้ครับ

char key;

void setup() {

}

void loop() {

 int count=0;

 

while(count < 4)

 

{ key = customKeypad.getKey();

 

if(key != NO_KEY){

 

Serial.print(key);

 

count++;

 

if(key== '*') break;

 

}

 

}

}

 

1
แสดงความคิดเห็นที่ 1-3 จากทั้งหมด 3 ความคิดเห็น
ข้อความ
ชื่อผู้โพส
ข้อมูลสำหรับการติดต่อกลับ (ไม่เปิดเผย เห็นเฉพาะเจ้าของร้าน)
อีเมล
เบอร์มือถือ
  • ตอบกระทู้

หมวดหมู่สินค้า

สมาชิก Arduino All

เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)

Arduino All ขายดี

รหัสสินค้า A015
275.00 บาท
  • สั่งซื้อ
รหัสสินค้า A233
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A115
10.00 บาท
  • สั่งซื้อ
รหัสสินค้า A238
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A097
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A474
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A014
90.00 บาท
  • สั่งซื้อ
รหัสสินค้า A237
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A225
5.00 บาท
  • สั่งซื้อ
Go to Top