Dùng cơ chế ngắt
Ví dụ dưới đây dùng ngắt cạnh xuống/sườn xuống tại chân D2 của Arduino Uno. Khi có 1 phím được nhấn thì nhảy vào chương trình phục vụ ngắt, kiểm tra phím nào được nhấn thông qua hàm digitalRead(pin).
Code:
int interruptPin=2;//xem thêm tại http://arduino.vn/reference/attachinterrupt
//Trên Uno bạn chỉ có thể dùng chân số 2 và số 3 với chức năng ngắt
void setup()
{
pinMode(8, INPUT);
pinMode(10, INPUT);
pinMode(12, INPUT)
pinMode(interruptPin, INPUT_PULLUP)
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, FALLING)
}
//hàm ngắt
void blink()
{ delay(30); //chống hiện tượng dội cho tất cả nút đang nhấn
//đọc giá trị từng chân xem chân nào nhấn.
bt1= digitalRead(8);
bt2= digitalRead(10);
bt1= digitalRead(12);
}
void loop() {}
Lưu ý: Các chân ngắt của các board Aruino như sau
Dùng chân Analog
Nguyên lý chung: Khi phím được nhấn chân Analog sẽ đọc được giá trị Analog khác nhau, dẫn đến nhận biết được phím nào đang được nhấn.
Ví dụ 1
Thư viện:
Code cấu hình giá trị của từng phím:
Code test full:
Ví dụ 2:
Thư viện khác hỗ trợ nhiều nút nhấn:
Nguồn: Arduino.vn