Arduino chạy setup và loop như thế nào?
- Cơ bản
- Bài viết
- Từ 13 tuổi
- 4 phút đọc

Mục lục
- Máy tính có Arduino IDE
- Bo Arduino
- Tín hiệu ra
Bạn sẽ học được gì
- Nêu được Arduino là gì và nạp mã bằng cách nào.
- Mô tả được thứ tự chạy của setup() và loop().
- Giải thích được vì sao loop() không có khoảng nghỉ.
Cần biết trước
Nên biết GPIO là gì.
Arduino là gì?
Arduino là nền tảng mã nguồn mở dùng để xây dựng các dự án điện tử. Arduino IDE dùng một phiên bản đơn giản của C++, nên dễ học lập trình hơn.
Kết nối USB cũng là cách để nạp mã lên bo Arduino. Bo Arduino UNO chứa mọi thứ cần thiết để hỗ trợ vi điều khiển; chỉ cần nối với máy tính bằng cáp USB.
- Sketch
- Hàm setup
- Hàm loop
setup() và loop() chạy theo thứ tự nào?
Một sketch mới trong hướng dẫn này được tạo với hai hàm setup() và loop(). Hàm setup() chạy một lần khi sketch chạy, còn hàm loop() lặp lại liên tục.
Sau khi bo được cấp nguồn, setup() chạy trước, rồi đến loop(). Nếu xóa cả hai để sketch trống hoàn toàn thì nó không qua được bước kiểm tra.
- Cấp nguồn
- setup chạy một lần
- loop chạy
- Quay lại loop
Vì sao loop() không có khoảng nghỉ?
Không có độ trễ nào được tự động đặt trong loop. Khi mã trong loop() chạy xong, nó bắt đầu lại ngay lập tức.
Muốn chạy chậm lại, có thể thêm độ trễ bằng hàm delay(). Ví dụ sketch đầu tiên của Arduino IDE là Blink.
- Loop không delay
- Loop có delay
- Khoảng chờ
Ví dụ trong đời sống
Hãy cùng người lớn nghĩ về một đèn báo nhấp nháy. Phần chuẩn bị chỉ cần làm một lần ở setup(). Việc bật, tắt đèn lặp đi lặp lại nằm trong loop().
Hiểu lầm thường gặp
setup() chạy lặp lại cùng loop(). setup() chạy một lần, còn loop() mới lặp liên tục.
loop() tự chờ giữa hai vòng. Không có độ trễ nào được tự động đặt trong loop; có thể dùng delay() hoặc một cách định thời khác để giãn các lần thực hiện.
Câu hỏi thường gặp
setup() và loop() khác nhau thế nào?
setup() chạy một lần khi sketch chạy, còn loop() lặp lại liên tục.
loop() có thể để trống phần thân không?
Có. Hàm vẫn có thể tồn tại dù bên trong hai dấu ngoặc nhọn không có câu lệnh nào. Nếu xóa cả setup() và loop(), sketch trống sẽ không qua bước kiểm tra.
Hàm delay() dùng để làm gì?
Để thêm độ trễ và làm chậm vòng loop.
Nạp mã lên Arduino bằng cách nào?
Qua kết nối USB.
Tóm tắt
Thuật ngữ trong bài
Tên tiếng Việt, tên tiếng Anh và nghĩa dùng trong bài. Di chuột, chạm hoặc dùng phím Tab tới từ có gạch chân chấm để xem giải thích ngay khi đọc.
- Arduino
- Nền tảng mã nguồn mở gồm bo mạch và phần mềm để xây dựng các dự án điện tử.
- Sketch
- Chương trình viết cho Arduino, gồm hai hàm setup() và loop().
- Hàm setupsetup function
- Hàm chạy một lần khi sketch bắt đầu, sau khi bo được cấp nguồn.
- Hàm looploop function
- Hàm chạy lặp lại liên tục sau setup(), bắt đầu lại ngay khi chạy xong.
- Arduino IDE
- Môi trường lập trình dùng phiên bản đơn giản của C++ để viết và nạp sketch.
- Hàm delaydelay function
- Hàm thêm một khoảng chờ để làm chậm vòng loop.
Bài này chưa được đánh dấu là đã xem
Thấy nội dung sai hoặc chưa an toàn?
Báo cho quản trị viên qua email. Thư có sẵn tên bài và đường dẫn.
Có thể bạn cũng quan tâm
Cơ bảnMQTT chuyển bản tin qua broker như thế nào?
MQTT là giao thức xuất bản và đăng ký: broker nhận bản tin theo chủ đề rồi chuyển cho bên đã đăng ký; bài nêu chủ đề, ký tự thay thế, ba mức QoS.
Internet vạn vật (IoT)4 phút đọc
Khởi độngTổng quan: Bo mạch ESP32, Arduino và lựa chọn khác
Tổng quan bo ESP32, Arduino và cách chọn theo kết nối, điện áp, nguồn và vi điều khiển.
Internet vạn vật (IoT)4 phút đọc
Cơ bảnModbus RTU hỏi và trả lời dữ liệu như thế nào?
Modbus RTU hoạt động theo kiểu hỏi và đáp giữa master và slave: bài giải thích địa chỉ, mã chức năng, kiểm tra lỗi và khoảng lặng tách khung.
Internet vạn vật (IoT)4 phút đọc
Cơ bảnRS-485 truyền tín hiệu vi sai ra sao?
RS-485 gửi tín hiệu qua hai dây và so sánh hiệu điện áp giữa chúng nên chịu nhiễu tốt, đi xa và cho nhiều thiết bị dùng chung một đường truyền.
Internet vạn vật (IoT)4 phút đọc
Nguồn
Các nguồn này viết cho người đọc lớn hơn. Nếu thấy khó, hãy đọc cùng người lớn.
- Arduino programming (Internet of Things tutorial)(mở trong thẻ mới)
Edinburgh Napier UniversityBậc A: cơ quan, tổ chức chuẩn hoặc nghiên cứuĐọc ngày 29 tháng 10, 2026
- Arduino Program Structure(mở trong thẻ mới)
SunFounderBậc C: nguồn khácĐọc ngày 29 tháng 10, 2026
- What is an Arduino?(mở trong thẻ mới)
SparkFun ElectronicsBậc C: nguồn khácĐọc ngày 29 tháng 10, 2026
- Arduino UNO Rev3(mở trong thẻ mới)
ArduinoBậc C: nguồn khácĐọc ngày 29 tháng 10, 2026
