Home Internet of Things - IoT Digital I/O trong Arduino

Digital I/O trong Arduino

by Khanh Tran

Để bắt đầu với Arduino, chương trình cơ bản nhất là chương trình nhấp nháy led đơn. Tiếp đó là điều khiển led theo nút nhấn. Đó là những chương trình mà người mới nào cũng sẽ trải qua :D. Vậy để bắt đầu với những chương trình đó, chúng ta cần chuẩn bị những kiến thức lập trình nào của Arduino? Hôm nay tôi sẽ giới thiệu với các bạn về Digital I/O trong Arduino.

digitalRead()

Chức năng: Đọ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.

Syntax:digitalRead(pin)

Parameters: pin: Arduino pin number bạn muốn đọc.

Returns: HIGH or LOW

Example code:

Đặt chân 13 có cùng giá trị với chân 7, được khai báo là input.

int ledPin = 13;  // LED connected to digital pin 13
int inPin = 7;    // pushbutton connected to digital pin 7
int val = 0;      // variable to store the read value

void setup() {
  pinMode(ledPin, OUTPUT);  // sets the digital pin 13 as output
  pinMode(inPin, INPUT);    // sets the digital pin 7 as input
}

void loop() {
  val = digitalRead(inPin);   // read the input pin
  digitalWrite(ledPin, val);  // sets the LED to the button's value
}

Nếu pin không được kết nối với bất kỳ thứ gì, digitalRead()có thể trả về một trong hai giá trị HIGHhoặc LOW(và điều này có thể thay đổi ngẫu nhiên).

Các chân đầu vào analog có thể được sử dụng làm chân digital, được gọi là A0, A1, v.v. Ngoại lệ là các chân của Arduino Nano, Pro Mini và A6 và A7 của Mini, chỉ có thể được sử dụng làm đầu vào analog.

digitalWrite()

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

Nếu chân được cấu hình thành OUTPUTvới pinMode(), điện áp của nó sẽ được đặt thành giá trị tương ứng: 5V (hoặc 3.3V trên board 3.3V) đối với HIGH, 0V đối với LOW.

Khi chân được định cấu hình là một INPUTdigitalWrite()sẽ enable (HIGH) hoặc disable (LOW) internal pullup bên trong chấn INPUT.

Nếu bạn không đặt pinMode() là OUTPUT, và kết nối một đèn LED với chân đó. Khi gọi digitalWrite(HIGH), đèn LED có sáng mờ. Nếu không có thiết lập pinMode()digitalWrite()sẽ kích hoạt điện trở kéo lên bên trong. Nó sẽ hoạt động giống như một điện trở hạn dòng.

Syntax: digitalWrite(pin, value)

Parameters:

pin: Arduino pin number.
valueHIGH or LOW.

Returns: Nothing

Example Code:

Đoạn code này làm chân digital số 13 là OUTPUTvà chuyển đổi giữa HIGHvà LOW trong mỗi giây.

void setup() {
  pinMode(13, OUTPUT);    // sets the digital pin 13 as output
}

void loop() {
  digitalWrite(13, HIGH); // sets the digital pin 13 on
  delay(1000);            // waits for a second
  digitalWrite(13, LOW);  // sets the digital pin 13 off
  delay(1000);            // waits for a second
}

Các chân đầu vào tương tự có thể được sử dụng làm chân kỹ thuật số, được gọi là A0, A1, v.v. Ngoại lệ là các chân của Arduino Nano, Pro Mini và A6 và A7 của Mini, chỉ có thể được sử dụng làm đầu vào tương tự.

Hình 1: Digital pin Arduino UNO.

pinMode ()

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. 

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

Syntax: pinMode(pin, mode)

Parameters:

pin: chân Arduino để đặt chế độ.
modeINPUTOUTPUT, Hoặc INPUT_PULLUP.

Return: nothing.

Example code: Xem các ví dụ phía trên.

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

Digital I/O trong Arduino chỉ đơn giản có thế, nhưng nó là rất quan trọng. Bạn hãy sử dụng nó một cách linh hoạt nhé!

You may also like

Leave a Comment