-
Làm quen với cấu trúc chương trình Arduino:
setup()
vàloop()
. -
Viết chương trình điều khiển đèn LED nhấp nháy.
-
Biết cách nạp code vào board Arduino và quan sát kết quả thực tế.
1. Cấu trúc một chương trình Arduino
Mỗi chương trình Arduino (gọi là sketch) gồm 2 hàm chính:
void setup() {
// Chạy một lần khi Arduino bắt đầu chạy
}
void loop() {
// Lặp đi lặp lại liên tục
}
➕ Giải thích:
-
setup()
: Dùng để khởi tạo, ví dụ: khai báo chân input/output. -
loop()
: Vòng lặp chính, chạy mãi mãi sau khi setup() chạy xong.
2. Bật tắt LED – Dự án “Hello World” của Arduino
Hầu hết board Arduino đều có một đèn LED tích hợp sẵn, thường nối với chân số 13.
Trong bài viết này mình sẽ sử dụng board Arduino UNO R3 và bật tắt LED ở chân số 3
3. Code ví dụ: Blink
void setup() {
pinMode(3, OUTPUT); // Thiết lập chân D3 là OUTPUT
}
void loop() {
digitalWrite(3, HIGH); // Bật đèn LED
delay(1000); // Đợi 1 giây
digitalWrite(3, LOW); // Tắt đèn LED
delay(1000); // Đợi 1 giây
}
Giải thích:
-
pinMode(pin, mode)
: khai báo chân là INPUT, OUTPUT, hoặc INPUT_PULLUP. -
digitalWrite(pin, HIGH/LOW)
: bật/tắt chân sốpin
. -
delay(ms)
: dừng chương trìnhms
mili giây.
4. Kết nối phần cứng
➕ Nếu dùng LED ngoài:
-
Dây nối:
-
Chân dương (anode) của LED nối với chân D3 qua điện trở ~220Ω.
-
Chân âm (cathode) nối với GND.
-
📌 Dùng điện trở để tránh cháy LED do dòng quá cao.
5. Upload chương trình vào board
-
Mở Arduino IDE.
-
Chọn đúng board:
Tools > Board > Arduino Uno/Nano/...
. -
Chọn cổng COM đúng:
Tools > Port
. -
Nhấn Upload (nút mũi tên phải).
-
Quan sát đèn LED nhấp nháy mỗi 1 giây.
6. Thử thay đổi
-
Thay đổi thời gian
delay(1000)
thànhdelay(200)
hoặcdelay(2000)
để điều chỉnh tốc độ nháy. -
Thay
digitalWrite(3, HIGH)
bằngLOW
trước để đổi thứ tự.
Một số hàm cơ bản và phổ biến
1. Nhóm thiết lập chân (I/O pin)
Hàm | Chức năng |
---|---|
pinMode(pin, mode) |
Thiết lập chế độ của chân (INPUT, OUTPUT, INPUT_PULLUP) |
digitalWrite(pin, HIGH/LOW) |
Gửi tín hiệu mức cao/thấp ra chân digital |
digitalRead(pin) |
Đọc trạng thái chân digital (HIGH hoặc LOW) |
analogWrite(pin, value) |
Gửi tín hiệu xung PWM (giá trị từ 0 đến 255) |
analogRead(pin) |
Đọc giá trị điện áp analog (từ 0 đến 1023) |
2. Nhóm thời gian
Hàm | Chức năng |
---|---|
delay(ms) |
Dừng chương trình trong ms mili giây |
millis() |
Trả về số mili giây từ khi Arduino khởi động |
micros() |
Trả về số micro giây từ khi Arduino khởi động |
delayMicroseconds(us) |
Dừng chương trình trong us micro giây |
3. Nhóm giao tiếp Serial
Hàm | Chức năng |
---|---|
Serial.begin(baudrate) |
Khởi tạo giao tiếp Serial với tốc độ truyền (baudrate ) |
Serial.print(data) |
In dữ liệu ra cổng Serial (hiển thị liên tục) |
Serial.println(data) |
In dữ liệu ra cổng Serial, xuống dòng sau mỗi lần |
Serial.read() |
Đọc 1 byte từ Serial |
Serial.available() |
Kiểm tra có dữ liệu chờ đọc từ Serial không |
4. Nhóm toán học & logic
Hàm | Chức năng |
---|---|
constrain(val, min, max) |
Giới hạn giá trị trong khoảng từ min đến max |
map(val, fromLow, fromHigh, toLow, toHigh) |
Ánh xạ giá trị val từ khoảng này sang khoảng khác |
abs(x) |
Trị tuyệt đối |
max(a, b) / min(a, b) |
Lấy giá trị lớn nhất / nhỏ nhất |
5. Nhóm tiện ích khác
Hàm | Chức năng |
---|---|
random(min, max) |
Tạo số ngẫu nhiên trong khoảng [min, max-1] |
randomSeed(value) |
Thiết lập seed cho random |
noTone(pin) |
Ngừng phát âm thanh trên pin |
tone(pin, freq) |
Phát âm thanh tần số freq Hz trên pin |
Nhận xét