Bài 11: Xác định trạng thái của một nút nhấn (button) - INPUT_PULLUP

Nội dung chính, cần nắm

Tại bài viết Bài 3: Xác định trạng thái của một nút nhấn (button), bạn đã biết được cách để đọc tín hiệu từ một button bằng cách thiết đặt chân digital là INPUT. Hôm nay, ta cũng đào xới vấn đề đọc trạng thái của một nút nhấn, nhưng đi theo một hướng khác (không dùng điện trở như trong Bài 3). Cách làm này đơn giản hơn và thực tế thường được ứng dụng.

Phần cứng

Lắp mạch

Click vào ảnh để xem kích thước thật và lắp mạch bạn nhé

Lập trình và giải thích

Trước tiên, ta cần phải biết sự khác nhau của INPUT_PULLUPINPUT, nếu bạn chưa rõ thì cần tham khảo đường dẫn sau. Thực chất INPUT_PULLUP cũng như là INPUT thôi, nhưng cái điện trở mắc ngoài như ở INPUT được "thiết đặt sẵn" bên trong con vi điều khiển của Arduino và khi bạn pinMode một chân là INPUT_PULLUP thì bạn đã kích hoạt cái điện trở này lên. Và sau khi pinMode các chân digital là INPUT_PULLUP, nếu bạn digitalRead các chân này thì sẽ nhận được giá trị HIGH (điều này ngược lại với hướng dẫn tại bài 3). Nếu bạn nhấn button xuống thì chân  digitalRead sẽ trả về LOW. Bởi vì nguyên lý chỉ rất đơn giản như vầy thôi, nếu trong khuôn khổ bài viết này, tôi giải thích cặn cẽ tại sao lại như thế thì sẽ làm rối các bạn và không cần thiết. Để hiểu rõ nó hoạt động trong thực tế như thế nào thì hãy chạy đoạn mã dưới đây!

void setup(){
  // khởi động cổng Serial ở baudrate 9600
  Serial.begin(9600);
  // Cài đặt các chân digital
  pinMode(8, INPUT_PULLUP); //INPUT_PULLUP chân button
  pinMode(3, OUTPUT); // OUTPUT chân led

}

void loop(){
  //đọc tín hiệu chân digital
  int sensorVal = digitalRead(8);
  //Xuất tín hiệu ra serial
  Serial.println(sensorVal);
 

  if (sensorVal == HIGH) { //nếu chưa nhấn
    digitalWrite(3, LOW); // tắt đèn
  }  else {  // nếu đã nhấn 
    digitalWrite(3, HIGH);// bật đèn
  }
}
lên
28 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

ROBOT HAI BÁNH TỰ CÂN BẰNG - 2 WHEEL SELF BALANCING ROBOT

Hôm nay mình xin chia sẻ với các bạn cách làm một robot tự cân bằng trên hai bánh xe bằng Arduino từ xe đồ chơi bị hỏng của thằng nhóc ở nhà. Tất nhiên, hai động cơ và hai bánh xe chưa bị hỏng nhé. laugh. Để robot tự cân bằng trên hai bánh xe thì chuyển động của nó tương tự như việc giữ thăng bằng một cây gậy trên ngón tay. Điều này chắc các bạn cũng đã từng thử trước đây.

lên
16 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Đổi DNS Google cho Win 7 và Win 8 như thế nào?

Đổi sang dùng hệ thống DNS của Google sẽ giúp tăng tốc độ lướt web và đôi khi chỉ có đổi DNS thì bạn mới có thể truy cập vào một số trang. Vì thế hãy bắt đầu tham khảo cách làm như thế nào để đổi DNS với Win 7 và Win 8. Và đó cũng là cách giúp các bạn bình luận trên Arduino.vn nếu không thấy mục bình luận.

lên
22 thành viên đã đánh giá bài viết này hữu ích.

Sự sáng tạo qua các phiên bản phần cứng của mạch tự động Arduino

Trong bài viết ngày hôm nay, chúng ta sẽ tìm hiểu về lịch sử sáng tạo của mạch tự động Arduino qua các phiên bản mạch. Từ đó, tôi mong muốn bạn tìm được sự sáng tạo trong chính lịch sự của sự phát triển của Arduino. Bài viết này có thể chưa mô tả được hết sự sáng tạo, có thể nó chưa làm hài lòng mong đợi của bạn về sự sáng tạo, nhưng nó sẽ là một ghi chú hữu ích cho sự phát triển trong việc sáng tạo của riêng cá nhân / tổ chức của bạn.

lên
16 thành viên đã đánh giá bài viết này hữu ích.