Input pull up là gì

Ngôn ngữ lập trình trên Arduino về cơ bản có thể được chia làm 3 phần:

- Giá trị: biến số (variable) và hằng số (constant) (hằng, biến số, kiểu dữ liệu...)
- Cấu trúc (structure) cấu trúc tuần tự (if, for, while,..), phép toán, toán tử,...
- Hàm và thủ tục (function)



Ở phần 1 và 2 hoàn toàn là ngôn ngữ C nên các bạn tham khảo các bài viết về ngôn ngữ C tại Serial về lập trình C. Chỉ riêng phần 3 là Hàm và thủ tục là các hàm dành riêng cho ngôn ngữ lập trình trên Arduino nên các bạn chỉ cần học them phần này sẽ lập trình được.  Lưu ý những hàm giới thiệu bên dưới là những gì cơ bản nhất.

==========================================================================




Cấu hình 1 pin quy định hoạt động như là một đầu vào (INPUT) hoặc đầu ra (OUTPUT). Xem mô tả kỹ thuật số (datasheet) để biết chi tiết về các chức năng của các chân. 


Như trong phiên bản Arduino 1.0.1, nó có thể kích hoạt các điện trở pullup nội bộ với chế độ INPUT_PULLUP. Ngoài ra, chế độ INPUT vô hiệu hóa một cách rõ ràng điện trở pullups nội bộ.



pinMode(pin, mode)

pin: Số của chân digital mà bạn muốn thiết đặt mode: INPUT, INPUT_PULLUP hoặc OUTPUT


không


int ledPin = 13; // đèn LED được kết nối với chân digital 13 void setup() { pinMode(ledPin, OUTPUT); // thiết đặt chân ledPin là OUTPUT } void loop() { digitalWrite(ledPin, HIGH); // bật đèn led delay(1000); // dừng trong 1 giây digitalWrite(ledPin, LOW); // tắt đèn led delay(1000); // dừng trong 1 giây }

Input pull up là gì



Các chân Analog cũng có thể được sử dụng dưới dạng Digital I/O. Ví dụ: A0, A1, ...

Xuất tín hiệu ra các chân digital, có 2 giá trị là HIGH hoặc là LOW

Nếu một pin được thiết đặt là OUTPUT bởi pinMode(). Và bạn dùng digitalWrite để xuất tín hiệu thì điện thế tại chân này sẽ là 5V (hoặc là 3,3 V trên mạch 3,3 V) nếu được xuất tín hiệu là HIGH, và 0V nếu được xuất tín hiệu là LOW.

Nếu một pin được thiết đặt là INPUT bởi pinMode(). Lúc này digitalWrite sẽ bật (HIGH) hoặc tắt (LOW) hệ thống điện trở pullup nội bộ. Chúng tôi khuyên bạn nên dùng INPUT_PULLUP nếu muốn bật hệ thống điện trở pullup nội bộ.

digitalWrite(pin,value) pin: Số của chân digital mà bạn muốn thiết đặt
value: HIGH hoặc LOW
không
int ledPin = 13; // đèn LED được kết nối với chân digital 13 void setup() { pinMode(ledPin, OUTPUT); // thiết đặt chân ledPin là OUTPUT } void loop() { digitalWrite(ledPin, HIGH); // bật đèn led delay(1000); // dừng trong 1 giây digitalWrite(ledPin, LOW); // tắt đèn led delay(1000); // dừng trong 1 giây }

Input pull up là gì

Đọc tín hiệu điện từ một chân digital (được thiết đặt là INPUT). Trả về 2 giá trị HIGH hoặc LOW.
digitalRead(pin) pin: giá trị của digital muốn đọc
HIGH hoặc LOW
Ví dụ này sẽ làm cho đèn led tại pin 13 nhận giá trị như giá trị tại pin 2
int ledPin = 13; // chân led 13 int inPin = 2; // button tại chân 2 int val = 0; // biến "val" dùng để lưu tín hiệu từ digitalRead void setup() { pinMode(ledPin, OUTPUT); // đặt pin digital 13 là output pinMode(inPin, INPUT); // đặt pin digital 2 là input } void loop() { val = digitalRead(inPin); // đọc tín hiệu từ digital2 digitalWrite(ledPin, val); // thay đổi giá trị của đèn LED là giá trị của digital 2 }

Input pull up là gì

Nếu chân input không được kết nối với bất kỳ một thứ gì thì hàm digitalRead() sẽ trả về tín hiệu HIGH hoặc LOW một cách "hên xui"

Các chân Analog cũng có thể dùng được digitalRead với các cổng pin có tên như là: A0, A1,...







pinMode()

Mô tả

Định cấu hình chân được chỉ định để hoạt động như một đầu vào hoặc một đầu ra. 

Kể từ Arduino 1.0.1, có thể kích hoạt các điện trở pullup bên trong với chế độ INPUT_PULLUP. Ngoài ra, chế độ INPUT vô hiệu hóa các pullup bên trong.

Cú pháp

pinMode(pin, mode)

Thông số

pin: số chân Arduino để đặt chế độ.

Input pull up là gì

chế độ: INPUT, OUTPUT hoặc INPUT_PULLUP. 

Return

Không có gì

Code mẫu

Code dưới đây làm cho chân kỹ thuật số 13 OUTPUT và chuyển đổi nó mức cao và mức thấp

Input pull up là gì

Lưu ý

Các chân đầu vào analog có thể được sử dụng như các chân kỹ thuật số, được gọi là A0, A1, ...

Đ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

Input pull up là gì

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.

Input pull up là gì

Đ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.

Input pull up là gì

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).

Input pull up là gì

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.

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!!!