Để 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ị HIGH
hoặ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 OUTPUT
vớ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 INPUT
, digitalWrite()
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.value
: HIGH
or LOW
.
Returns: Nothing
Example Code:
Đoạn code này làm chân digital số 13 là OUTPUT
và chuyển đổi giữa HIGH
và 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ự.

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ế độ.mode
: INPUT
, OUTPUT
, 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é!