INPUT | INPUT_PULLUP | OUTPUT

Trong Arduino, các chế độ INPUT, INPUT_PULLUP, và OUTPUT được sử dụng để cấu hình chức năng của các chân (pins) của vi điều khiển.

Các chế độ này được thiết lập bằng hàm pinMode(pin, mode);, trong đó pin là số chân và mode là một trong ba chế độ nói trên.

1. INPUT

  • Mô tả:

    • Đặt chân thành đầu vào để đọc tín hiệu từ bên ngoài (nút bấm, cảm biến, công tắc, v.v.).
    • Ở chế độ này, chân có điện trở trở kháng cao (high-impedance), giúp giảm dòng điện tiêu thụ và hạn chế ảnh hưởng đến mạch bên ngoài.
  • Ứng dụng:

    • Sử dụng để đọc trạng thái từ nút bấm, cảm biến hoặc các thiết bị đầu vào khác.
  • Ví dụ:

    const int buttonPin = 2;  // Chân kết nối nút bấm
    
    void setup() {
    pinMode(buttonPin, INPUT);  // Đặt chân 2 làm đầu vào
    }
    
    void loop() {
    int buttonState = digitalRead(buttonPin);  // Đọc trạng thái nút bấm
    if (buttonState == HIGH) {
      // Thực hiện hành động khi nút bấm được nhấn
    }
    }
  • Lưu ý:

    • Nếu không có điện trở pull-up hoặc pull-down, chân có thể bị trôi (floating) và trả về trạng thái không ổn định.

2. INPUT_PULLUP

  • Mô tả:

    • Đặt chân làm đầu vào với điện trở pull-up nội bộ được bật.
    • Khi bật chế độ này, chân được kết nối nội bộ với nguồn điện áp cao (5V hoặc 3.3V) thông qua một điện trở. Điều này giúp đảm bảo trạng thái mặc định của chân là HIGH nếu không có tín hiệu đầu vào.
  • Ứng dụng:

    • Thường sử dụng với nút bấm hoặc cảm biến mà không cần thêm điện trở ngoài.
  • Ví dụ:

    const int buttonPin = 2;  // Chân kết nối nút bấm
    
    void setup() {
    pinMode(buttonPin, INPUT_PULLUP);  // Đặt chân 2 làm đầu vào với pull-up
    }
    
    void loop() {
    int buttonState = digitalRead(buttonPin);  // Đọc trạng thái nút bấm
    if (buttonState == LOW) {  // Nút bấm được nhấn (mức thấp)
      // Thực hiện hành động khi nút bấm được nhấn
    }
    }
  • Lưu ý:

    • Trạng thái mặc định là HIGH. Khi nút bấm được nhấn và kết nối chân với GND, trạng thái sẽ chuyển thành LOW.

3. OUTPUT

  • Mô tả:

    • Đặt chân làm đầu ra để điều khiển các thiết bị như LED, relay, motor, hoặc giao tiếp với các module khác.
    • Ở chế độ này, chân có thể xuất tín hiệu HIGH (5V hoặc 3.3V) hoặc LOW (0V).
  • Ứng dụng:

    • Điều khiển thiết bị ngoại vi hoặc tạo tín hiệu logic.
  • Ví dụ:

    const int ledPin = 13;  // Chân kết nối LED
    
    void setup() {
    pinMode(ledPin, OUTPUT);  // Đặt chân 13 làm đầu ra
    }
    
    void loop() {
    digitalWrite(ledPin, HIGH);  // Bật LED
    delay(1000);                // Chờ 1 giây
    digitalWrite(ledPin, LOW);   // Tắt LED
    delay(1000);                // Chờ 1 giây
    }
  • Lưu ý:

    • Khi chân được đặt ở mức HIGH, nó sẽ xuất điện áp cao (5V hoặc 3.3V).
    • Khi ở mức LOW, nó sẽ xuất điện áp thấp (0V).

Tóm tắt so sánh:

Chế độ Mô tả Ứng dụng
INPUT Đọc tín hiệu từ bên ngoài, chân có trở kháng cao. Đọc trạng thái nút bấm, cảm biến.
INPUT_PULLUP Đọc tín hiệu từ bên ngoài, với điện trở pull-up nội bộ (mặc định trạng thái là HIGH). Đọc tín hiệu nút bấm, tiết kiệm điện trở.
OUTPUT Xuất tín hiệu điều khiển thiết bị, chân có thể đặt trạng thái HIGH hoặc LOW. Điều khiển LED, relay, motor.