HIGH | LOW

Trong Arduino, HIGHLOW là hai giá trị logic được sử dụng để biểu thị trạng thái caothấ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. HIGHLOW là gì?

  1. 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.
  2. 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 HIGHLOW

  1. Điều khiển đầu ra số (Digital Output):
    Khi một chân được thiết lập là đầu ra (OUTPUT) bằng pinMode(pin, OUTPUT);, bạn có thể sử dụng digitalWrite() để đặ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
    }
  2. Đọ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ằng pinMode(pin, INPUT);, bạn có thể sử dụng digitalRead() để 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 ý:

  1. Điện áp tham chiếu:

    • Trạng thái HIGHLOW 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.
  2. 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);.
  3. 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.