ESP32 hay Arduino Nano: chọn board nào cho mạch của bạn
Hai board này phủ gần hết nhu cầu của mạch tự làm ở Việt Nam. Chọn đúng từ đầu đỡ phải hàn lại cả mạch.
Bảng so sánh
| Arduino Nano | ESP32 DevKit V1 | |
|---|---|---|
| Chip | ATmega328P, 8 bit, 16MHz | ESP32-WROOM-32, 32 bit, 2 nhân, 240MHz |
| Mức logic | 5V | 3,3V |
| Bộ nhớ chương trình | 32KB | 4MB |
| RAM | 2KB | 520KB |
| WiFi / Bluetooth | không | có sẵn cả hai |
| Chân vào ra dùng được | khoảng 18 | khoảng 22 |
| Chân đọc analog | 8 chân, 10 bit | nhiều chân, 12 bit nhưng kém tuyến tính |
| Giá tham khảo 2026 | khoảng 75.000đ | khoảng 110.000đ |
| Tiêu thụ điện | 30mA | 80 – 150mA, đỉnh tới 500mA khi phát WiFi |
Chọn Arduino Nano khi
- Mạch không cần mạng: đèn giao thông, đèn chạy đuổi, nhiệt kế để bàn, đồng hồ báo thức.
- Mạch làm việc với cảm biến và module 5V: HC-SR04, LCD 1602, module rơ-le — nối thẳng, không cần cầu chia áp.
- Bạn mới bắt đầu: ít thứ phải nhớ, chân nào cũng dùng được như nhau, gần như không có chân cấm.
- Mạch chạy pin lâu dài với yêu cầu đơn giản.
Ví dụ trong thư viện: đèn giao thông, nhiệt kế phòng LCD, 8 LED chạy đuổi.
Chọn ESP32 khi
- Cần điều khiển hoặc xem từ điện thoại: ESP32 tự phát WiFi và chạy được trang web ngay trong chip.
- Cần lấy giờ chính xác qua Internet, gửi thông báo, ghi nhật ký theo thời gian thật.
- Mạch cần bộ nhớ lớn: lưu cấu hình, trang web, bảng dữ liệu.
- Cần xử lý nhanh hoặc nhiều việc song song.
Ví dụ: công tắc WiFi, báo động nhiệt độ, điều khiển tivi qua điện thoại.
Khác biệt lớn nhất: 3,3V và 5V
Đây là nguồn gốc của hầu hết lỗi khi người quen Arduino chuyển sang ESP32.
- Chân ESP32 chỉ chịu 3,3V ở ngõ vào. Cảm biến xuất 5V nối thẳng vào là hỏng chân. Phải dùng cầu chia áp hai điện trở, ví dụ 1kΩ nối tiếp và 2kΩ xuống mát cho chân ECHO của HC-SR04.
- Chiều ngược lại thường không sao. Mức 3,3V từ ESP32 đủ để đa số module 5V hiểu là mức cao.
- Module cấp nguồn 5V nhưng xuất tín hiệu theo nguồn (như mắt thu hồng ngoại VS1838B, cảm biến MQ-2) thì nên cấp 3,3V cho module luôn, hoặc chia áp ngõ ra.
- PIR HC-SR501 là ngoại lệ dễ chịu: cấp 5V nhưng ngõ ra đã là 3,3V, nối thẳng ESP32 được.
ESP32 có chân cấm, Nano thì không
Trên ESP32, một số chân có nhiệm vụ riêng lúc khởi động hoặc không dùng được:
- GPIO6 đến GPIO11: nối với chip nhớ flash, dùng là treo board.
- GPIO34, 35, 36, 39: chỉ đọc, không xuất được tín hiệu ra.
- GPIO0, 2, 12, 15: chân cấu hình khởi động, kéo sai mức lúc cấp điện là không nạp được hoặc không chạy.
- Bộ đọc analog số 2 không dùng được khi WiFi đang bật.
Những ràng buộc này được kiểm tra tự động trong mọi mạch của Mạch Gọn, nên sơ đồ bạn nhận về không dính các bẫy trên.
Bẫy khi đổi board giữa chừng
- Tên chân khác hẳn. Nano gọi D2, A0; ESP32 gọi GPIO4, GPIO34. Code copy nguyên si sẽ chạy sai chân.
- Trị số điện trở cho LED phải đổi. Nguồn 3,3V cần trở nhỏ hơn so với 5V, xem bài tính trở cho LED.
- Thư viện không giống nhau. Ví dụ điều khiển hồng ngoại: Nano dùng IRremote, ESP32 dùng IRremoteESP8266.
- Nguồn phải khoẻ hơn. ESP32 giật dòng tới 500mA mỗi lần phát sóng; cổng USB máy tính thường không đủ.
Còn các board khác?
Arduino Uno giống hệt Nano về chip và cách dùng, chỉ to hơn và có chân cắm shield. ESP8266 (NodeMCU) rẻ hơn ESP32 nhưng ít chân, một chân analog, không Bluetooth. Raspberry Pi Pico mạnh và rẻ nhưng hệ sinh thái thư viện tiếng Việt còn mỏng. Với người làm mạch tại nhà ở Việt Nam, Nano và ESP32 vẫn là hai lựa chọn dễ mua và dễ hỏi nhất.
Câu hỏi thường gặp
Người mới hoàn toàn nên bắt đầu với board nào?
Arduino Nano. Ít ràng buộc, mọi hướng dẫn đều dùng mức 5V, sai cũng ít hỏng. Khi cần WiFi thì chuyển sang ESP32 là vừa.
Nano có thêm WiFi được không?
Được, qua module ESP-01 hoặc ESP8266 nối cổng nối tiếp, nhưng rắc rối và tốn chân. Cần WiFi thì dùng thẳng ESP32 gọn hơn nhiều.
Nạp code cho ESP32 báo lỗi kết nối thì sao?
Giữ nút BOOT khi thấy dòng chữ Connecting, thả ra khi bắt đầu nạp. Cáp USB chỉ có dây sạc mà không có dây dữ liệu cũng gây lỗi này.
Mạch dùng kiến thức này
Công tắc WiFi bật/tắt thiết bị 12–24V bằng điện thoại (hẹn giờ, lịch tự động)
Bật/tắt đèn, quạt, máy bơm chạy điện một chiều 12–24V từ điện thoại qua WiFi. Có hẹn giờ tắt sau N phút và lịch bật/tắt hằng ngày theo giờ Việt Nam (tự lấy giờ qua Internet). Tiếp điểm rơ-le cách ly hoàn toàn với ESP32 nhờ opto.
Mô hình đèn giao thông có nút nhấn cho người đi bộ (Arduino Nano)
Mô hình ngã tư cho học sinh: đèn xanh – vàng – đỏ cho xe và đèn đỏ/xanh cho người đi bộ chạy đúng chu kỳ. Người đi bộ bấm nút thì đèn xe rút ngắn thời gian xanh để cho sang đường. Code dạng máy trạng thái, không dùng delay chặn — bài học chuẩn về lập trình nhúng.
Nhiệt kế – ẩm kế phòng hiển thị LCD, có đèn báo mức dễ chịu
Đo nhiệt độ và độ ẩm trong phòng bằng DHT22, hiện lên màn LCD 1602 cùng mức cao nhất – thấp nhất trong ngày. Đèn xanh báo phòng đang dễ chịu, đèn đỏ báo quá nóng hoặc quá ẩm. Một nút nhấn để đổi màn hình và xoá mốc đo.
Chưa có mạch mình cần?
Gõ mục tiêu bằng tiếng Việt, Mạch Gọn trả về sơ đồ đấu dây, linh kiện kèm giá, code nạp sẵn và mạch in 1:1 để ủi — đã kiểm luật điện và mô phỏng dòng áp tự động.