Bài 5: Điện trở kéo lên, kéo xuống và điều khiển đèn bằng nút nhấn

Điều khiển đèn LED bằng nút nhấn là một việc dễ dàng đối với các bạn bên điện tử. Thế còn việc sử dụng Raspberry Pi để làm điều đó có dễ không? Đối với các bạn mới bắt đầu có vẻ sẽ khó, bài viết này sẽ giúp bạn có thể làm được điều đó một cách dễ dàng nhé !


Qua bài trước, chúng ta đã có thể điều khiển đèn Led nhấp nháy bằng Raspberry Pi. Trước tiên, để có thể sử dụng nút nhấn, ta cùng nhau đi qua sơ đồ của nút nhấn và hai khái niệm “Điện trở kéo lên” (Pull-Up), “Điện trở kéo xuống” (Pull-Down).

Nút nhấn

Chúng ta sẽ sử dụng dạng nút nhấn 4 chân có sơ đồ như hình

Vì nút nhấn có 4 chân trong đó chân A và B luôn nối với nhau, C và D cũng vậy. Khi nhấn nút thì các chân sẽ thông với nhau. Nếu các bạn không xác định được chân thì có thể sử dụng VOM (đồng hồ đo vạn năng) để đo thông mạch (đo điện trở thấp).

Điện trở kéo lên (Pull-Up)

Như hình trên, chúng ta sẽ sử dụng chân 3.3V và GPIO23 của Raspberry Pi.

Điện trở kéo lên ở đây chính là R3 (10k). Lý do chúng ta gọi điện trở này là kéo lên vì nó có tác dụng làm cho chân GPIO23 nhận vào điện áp mức cao (3.3V) khi nút chưa được nhấn. Khi nút được nhấn, điện áp ở chân GPIO23 sẽ là mức thấp (0V).

Điện trở kéo xuống (Pull-Down)

Ngược lại, điện trở kéo xuống ở đây là R1 (10k), nó có nhiệm vụ giữ cho GPIO23 ở mức thấp khi nút chưa nhấn. Khi nút nhấn, GPIO23 sẽ lên mức cao.

Chuẩn bị

  • Raspberry Pi
  • 1 điện trở (220Ohm hoặc 1kOhm)
  • 1 điện trở 1kOhm
  • 1 đèn LED
  • 1 nút nhấn
  • Breadboard
  • Dây cắm Breadboard

Lắp mạch

Lưu ý: điện trở nối với nút nhấn là loại 1kOhm còn led thì từ 220Ohm đến 1kOhm đều được. Nối nút nhấn với điện trở để tránh việc hư hỏng chân GPIO.

Ở đây chúng ta sẽ dùng điện trở kéo xuống để dễ quy định (HIGH=nhấn,LOW=không nhấn).

Lập trình

Kết quả

Giải thích

  • from Thư_Viện import Function

Khai báo tên function thẳng từ thư viện không cần gọi như bài trước (time.sleep()) để có thể gọi trực tiếp.

  • IO.setup(pin,mode,pull)

Khai báo chân pin ở dạng mode với điện trở kéo lên hoặc kéo xuống (pull) với kéo lên là IO.PUD_UP và kéo xuống là IO.PUD_DOWN

Nếu chúng ta sử dụng điện trở kéo lên thì sao ? Các bạn hãy thử suy nghĩ và lập trình nhé!

Nguồn: Raspi.vn

Chúc các bạn may mắn và thành công!!!

Có thể bạn quan tâm ???