Lập Trình điều Khiển Led Bằng Nút Bấm Với Board Mạch Arduino
1. Thiết kế mạch điều khiển led bằng nút bấm
Cấu tạo nút bấm (button)

Nút bấm có 4 chân chia làm 2 cặp. Những chân trong cùng một cặp được nối với nhau. Khi nhấn nút, cả 4 chân của nút bấm đều được nối với nhau, cho phép dòng điện từ một chân bất kì có thể tới 3 chân còn lại.
Nguyên lý hoạt động của button trong board mạch Arduino

Button muốn hoạt động cần có nguồn dương (5V) và nguồn âm (GND). Có 1 điện trở 10kΩ nối bên nguồn âm (GND). Trạng thái nút bấm là bấm nút (giá trị nhận được là 1) hoặc không bấm nút (giá trị nhận được là 0) sẽ được lấy ở chân 2 trên Arduino.
Khi chưa nhấn nút, chân 2 của Arduino được nối với GND qua một điện trở 10kΩ, lệnh digitalRead(2) sẽ trả về giá trị 0 (LOW).
Khi nhấn nút, chân 2 của Arduino sẽ được nối trực tiếp với 5V và nối với GND thông qua 1 điện trở 10kΩ, lệnh digitalRead(2) sẽ trả về giá trị 1 (HIGH).
Mạch điều khiển led bằng nút bằng với board mạch Arduino
Gồm 1 board Arduino, 1 led, 2 điện trở, 1 button.
Có thể thiết kế mạch giả lập với Proteus như hình bên dưới.
2. Viết chương trình điều khiển led sáng tắt bằng nút bấm
int button = 9; int led = 5; void setup() { pinMode(button, INPUT);//khai báo chân button có thể đọc dữ liệu pinMode(led,OUTPUT);//khai báo chân led là ngõ ra } void loop() { int buttonStatus = digitalRead(button);//đọc trạng thái button if (buttonStatus == HIGH) {//nếu mà button được nhấn digitalWrite(led,HIGH); //bật led } else {//ngược lại digitalWrite(led,LOW);//tắt led } }Biến buttonStatus lưu trữ trạng thái của nút bấm. Nếu đã bấm (buttonStatus == HIGH) thì bật đèn và ngược lại.
3. Đếm số lần nhấn button
Trong nhiều trường hợp, chúng ta cần đếm số lần nhấn button. Chương trình bên dưới giúp đếm số lần nhấn button.int button = 9; int led = 5; int preStateButton=LOW;//lưu trạng thái trước của button int count = 0;//biến lưu số lần nhấn button void setup() { pinMode(button, INPUT); pinMode(led,OUTPUT); } void loop() { int curStateButton = digitalRead(button);//lấy trạng thái hiện tại của button if (curStateButton==HIGH && preStateButton==LOW){ count++; } preStateButton=curStateButton; }
Biến count lưu số lần nhấn button. Ban đầu, count=0. Biến preStateButton lưu trạng thái trước đó của button. Biến curStateButton lưu trạng thái hiện tại của button. Chỉ khi nào curStateButton==HIGH (nhấn) và preStateButton==LOW (không nhấn) thì lúc đó mới là một lần nhấn button và mới đếm là một lần nhấn.
Để hiểu rõ hơn, chúng ta cùng xem dãy các trạng thái của button: ban đầu là LOW (không nhấn) rồi nhấn (HIGH) LOW HIGH LOW HIGH LOW…Rõ ràng, một button được xem là một lần nhấn khi và chỉ khi chuyển trạng thái từ LOW sang HIGH, còn từ HIGH sang LOW thì là không nhấn button.
4. Bài tập
Bài tập 1: Thiết kế mạch gồm 1 đèn LED kết nối với Arduino qua cổng ~10 và nút bấm qua cổng 2. Xử lí khi nhấn nút lần đầu thì đèn sáng, lần 2 đèn tắt, lần 3 đèn sáng, …
Bài tập 2: Thiết kế mạch gồm 1 đèn LED và 2 nút bấm (nút tăng và nút giảm) kết nối với Arduino. Xử lý khi nhấn nút tăng sẽ tăng dần độ sáng của đèn đến hết mức thì không thể tăng được nữa, nhấn nút giảm thì giảm dần độ sáng của đèn đến hết mức thì không thể giảm được nữa.
- Cấu trúc điều khiển vòng lặp while trong Python
- Lớp InputStreamReader và OutputStreamWriter trong Java
- Kiểm tra (validation) dữ liệu trong html form với PHP
- Mở (open) và đọc (read) file trong PHP
- Cấu trúc dữ liệu Tuple trong Python
Từ khóa » đọc Nút Nhấn Arduino
-
Bài 8: Dùng Button (nút Bấm) để điều Khiển Một đèn LED
-
Bài 3: Xác định Trạng Thái Của Một Nút Nhấn (button)
-
Sử Dụng Button Với Arduino - Viblo
-
[Arduino Cơ Bản] Giao Tiếp Với Nút Nhấn | MCA
-
Đọc Nhiều Phím Bấm Với Arduino - Điện Tử Hello
-
Hướng Dẫn điều Khiển Nút Nhấn Với Arduino Trên Tinkercad
-
Tự Học Arduino Bài 2: Điều Khiển LED Bằng Nút Nhấn - YouTube
-
Nút Nhấn: Cách Sử Dụng Phần Tử đơn Giản Này Với Arduino
-
Nút Nhấn - Unicloud Blogs
-
Top 19 điều Khiển Led Bằng 2 Nút Nhấn Mới Nhất 2022
-
Joystick Arduino - Nút Nhấn đa Hướng
-
Nhấn Nút Bật Tắt đèn LED - OhStem
-
Arduino Giao Tiếp Với Button (phần 3):Một Nút Nhấn điều Khiển 2 Led ...