💡 Trong bài học này
🎯 Mục tiêu
Sau bài học này, bạn sẽ:
- Hiểu cấu trúc của một chương trình Arduino.
- Biết chức năng của hai hàm
setup()vàloop(). - Biết cách sử dụng Comment để ghi chú chương trình.
- Hiểu khái niệm biến và một số kiểu dữ liệu cơ bản.
- Biết quy tắc đặt tên biến.
- Hiểu một số toán tử thường dùng.
- Biết sử dụng câu lệnh điều kiện
if...else. - Hiển thị dữ liệu bằng Serial Monitor.

📖 Nội dung bài học
1. Hàm setup()
Hàm setup() được gọi một lần duy nhất khi ESP32 khởi động hoặc reset.
Hàm này thường được dùng để:
- Khởi tạo Serial.
- Cấu hình chân GPIO.
- Khởi tạo WiFi.
- Khởi tạo các thư viện.
Ví dụ
void setup()
{
Serial.begin(115200);
}2. Hàm loop()
Sau khi hàm setup() kết thúc, chương trình sẽ liên tục thực hiện hàm loop() cho đến khi ESP32 được tắt nguồn hoặc reset.
Hàm này thường được dùng để:
- Điều khiển LED.
- Đọc nút nhấn.
- Đọc cảm biến.
- Gửi và nhận dữ liệu.
- Thực hiện các công việc lặp đi lặp lại.
Ví dụ
void loop()
{
Serial.println("ESP32");
}3. Comment (Chú thích)
Comment dùng để ghi chú hoặc giải thích chương trình. Các dòng Comment chỉ dành cho người đọc và không được ESP32 thực thi.
Comment một dòng
// Đây là commentComment nhiều dòng
/*
Đây là
comment nhiều dòng
*/Nên sử dụng Comment để giải thích những đoạn code quan trọng hoặc chia chương trình thành các phần rõ ràng.
4. Biến và kiểu dữ liệu
Biến dùng để lưu trữ dữ liệu trong chương trình.
Cú pháp
kieu_du_lieu ten_bien = gia_tri;Ví dụ
int age = 20;
float temperature = 28.5;
bool ledState = true;
String name = "ESP32";Một số kiểu dữ liệu thường dùng:
| Kiểu dữ liệu | Ý nghĩa | Khoảng giá trị |
|---|---|---|
int | Số nguyên | -2,147,483,648 → 2,147,483,647 |
float | Số thực | Khoảng ±3.4 × 10³⁸ |
bool | Đúng hoặc Sai | false hoặc true |
char | Một ký tự | 0 → 255 (mã ASCII) |
String | Chuỗi ký tự | Độ dài thay đổi |
5. Quy tắc đặt tên biến
Khi đặt tên biến cần tuân thủ các quy tắc sau:
- Không bắt đầu bằng số.
- Không chứa khoảng trắng.
- Không sử dụng từ khóa của ngôn ngữ C/C++.
- Đặt tên ngắn gọn và thể hiện đúng ý nghĩa.
Ví dụ đúng:
int ledPin;
float temperature;
String wifiName;Ví dụ sai:
int 123abc;
int led pin;
int int;6. Toán tử
Toán tử dùng để tính toán hoặc so sánh dữ liệu.
Ví dụ:
int a = 10;
int b = 5;
int c = a + b;Một số toán tử thường dùng:
| Toán tử | Ý nghĩa |
|---|---|
= | Gán giá trị |
| += -= | Gán kết hợp |
+ - * / % | Phép toán (cộng, trừ, nhân, chia, chia lấy phần dư) |
++ -- | Tăng hoặc giảm 1 |
== != | So sánh (bằng, khác) |
> < >= <= | So sánh (lớn, bé, lớn hơn bằng, bé hơn bằng) |
&& || ! | Toán tử logic (và, hoặc, phủ định) |
7. Câu lệnh if...else
Câu lệnh if...else giúp chương trình đưa ra quyết định khi một điều kiện đúng hoặc sai.
Cú pháp
if (dieu_kien)
{
}
else
{
}Ví dụ
int age = 18;
if (age >= 18)
{
Serial.println("Ban da du 18 tuoi");
}
else
{
Serial.println("Ban chua du 18 tuoi");
}8. Serial Monitor
Serial Monitor giúp hiển thị thông tin từ ESP32 lên máy tính để theo dõi và kiểm tra chương trình.
Khởi tạo Serial
Serial.begin(115200);Hiển thị dữ liệu
Serial.print("Hello");Serial.println("ESP32");Trong đó:
Serial.print()hiển thị dữ liệu trên cùng một dòng.Serial.println()hiển thị dữ liệu và tự động xuống dòng.
💻 Source Code
// Khai báo biến
int age = 20;
void setup()
{
// Khởi tạo Serial
Serial.begin(115200);
// Kiểm tra tuổi
if (age >= 18)
{
Serial.println("Ban da du 18 tuoi");
}
else
{
Serial.println("Ban chua du 18 tuoi");
}
}
void loop()
{
}C++🔍 Giải thích chương trình
- Khai báo biến
ageđể lưu giá trị tuổi. - Trong
setup(), khởi tạo Serial với tốc độ 115200 bps. - Sử dụng câu lệnh
if...elseđể kiểm tra giá trị của biếnage. - Nếu
agelớn hơn hoặc bằng 18, chương trình hiển thị “Ban da du 18 tuoi”. - Ngược lại, chương trình hiển thị “Ban chua du 18 tuoi”.
- Hàm
loop()hiện chưa có nội dung và sẽ được sử dụng trong các bài học tiếp theo.
💡 Lưu ý
- Mọi chương trình Arduino đều phải có hai hàm
setup()vàloop(). - Mỗi câu lệnh thường kết thúc bằng dấu
;. - Phân biệt
=(gán giá trị) và==(so sánh). - Nên sử dụng Comment để chương trình dễ đọc và dễ bảo trì.
- Đặt tên biến ngắn gọn, đúng ý nghĩa.
⚠ Lỗi thường gặp
- Quên dấu
;. - Nhầm
=với==. - Quên dấu
{}. - Đặt tên biến không đúng quy tắc.
- Quên
Serial.begin()trước khi sử dụngSerial.print()hoặcSerial.println().
📝 Bài tập
Bài 1: Khai báo:
- Một biến kiểu
intlưu tuổi của bạn. - Một biến kiểu
Stringlưu họ và tên.
Bài 2: Sử dụng Serial.println() để hiển thị họ tên và tuổi lên Serial Monitor.
Bài 3: Viết câu lệnh if...else để kiểm tra một số có lớn hơn 10 hay không.
Bài 4: Thêm Comment để giải thích chức năng của từng phần trong chương trình.
📥 Tài liệu tải về
- Slide bài giảng.