HIGH | LOW
Trong Arduino, HIGH và LOW là hai giá trị logic được sử dụng để biểu thị trạng thái cao và thấp của một chân (pin) trên vi điều khiển. Chúng được sử dụng chủ yếu trong việc điều khiển đầu ra và đọc trạng thái đầu vào của các chân số (digital pins).
1. HIGH và LOW là gì?
-
HIGH:
- Biểu thị mức logic cao (logical high).
- Tương ứng với điện áp 5V (hoặc 3.3V trên các bo mạch Arduino chạy ở 3.3V như Arduino Due hoặc Nano 33 BLE).
- Được biểu diễn bằng số nguyên 1.
-
LOW:
- Biểu thị mức logic thấp (logical low).
- Tương ứng với điện áp 0V.
- Được biểu diễn bằng số nguyên 0.
2. Sử dụng HIGH và LOW
-
Điều khiển đầu ra số (Digital Output):
Khi một chân được thiết lập là đầu ra (OUTPUT) bằngpinMode(pin, OUTPUT);
, bạn có thể sử dụngdigitalWrite()
để đặt trạng thái của chân đó là HIGH hoặc LOW.Ví dụ:
void setup() { pinMode(13, OUTPUT); // Đặt chân 13 là đầu ra } void loop() { digitalWrite(13, HIGH); // Bật LED (chân 13 mức HIGH) delay(1000); // Chờ 1 giây digitalWrite(13, LOW); // Tắt LED (chân 13 mức LOW) delay(1000); // Chờ 1 giây }
-
Đọc trạng thái đầu vào số (Digital Input):
Khi một chân được thiết lập là đầu vào (INPUT) bằngpinMode(pin, INPUT);
, bạn có thể sử dụngdigitalRead()
để kiểm tra xem chân đó đang ở trạng thái HIGH hay LOW.Ví dụ:
const int buttonPin = 2; // Chân kết nối nút bấm const int ledPin = 13; // Chân kết nối LED void setup() { pinMode(buttonPin, INPUT); // Đặt chân 2 là đầu vào pinMode(ledPin, OUTPUT); // Đặt chân 13 là đầu ra } void loop() { int buttonState = digitalRead(buttonPin); // Đọc trạng thái nút bấm if (buttonState == HIGH) { // Nếu nút bấm được nhấn (mức HIGH) digitalWrite(ledPin, HIGH); // Bật LED } else { digitalWrite(ledPin, LOW); // Tắt LED } }
3. Lưu ý:
-
Điện áp tham chiếu:
- Trạng thái HIGH và LOW phụ thuộc vào điện áp của bo mạch. Đối với các bo mạch Arduino chạy ở 5V, HIGH là 5V và LOW là 0V. Đối với bo mạch chạy ở 3.3V, HIGH là 3.3V.
-
Pull-up/Pull-down Resistors:
- Nếu bạn sử dụng chân đầu vào số (INPUT) mà không có điện trở pull-up hoặc pull-down, trạng thái của chân có thể không ổn định (floating). Bạn có thể sử dụng điện trở ngoài hoặc kích hoạt điện trở pull-up nội bộ bằng cách sử dụng
pinMode(pin, INPUT_PULLUP);
.
- Nếu bạn sử dụng chân đầu vào số (INPUT) mà không có điện trở pull-up hoặc pull-down, trạng thái của chân có thể không ổn định (floating). Bạn có thể sử dụng điện trở ngoài hoặc kích hoạt điện trở pull-up nội bộ bằng cách sử dụng
-
Thời gian trễ (Debouncing):
- Khi đọc trạng thái từ các nút bấm hoặc cảm biến, tín hiệu có thể bị nhiễu (bouncing). Cần sử dụng kỹ thuật debouncing để đảm bảo độ chính xác.
Tóm tắt:
- HIGH: Tương ứng mức logic cao (5V hoặc 3.3V).
- LOW: Tương ứng mức logic thấp (0V).
- Sử dụng: Dùng để điều khiển hoặc kiểm tra trạng thái của các chân số trên Arduino.