Để viết được một chương trình Arduino, Bạn cần phải hiểu nó được viết như thế nào.
Một chương trình của Arduino bắt buộc phải có cấu trúc như sau
const int ledPin = 13; // Led được nối đến chân D13
// Hàm setup() này chỉ được chạy 1 lần từ lúc mạch Arduino khởi động lên
void setup()
{
pinMode(ledPin, OUTPUT); // Cấu hình chân D13 kiểu OUTPUT
}
// hàm loop() này sẽ được chạy lặp lại, khi đến lệnh cuối cùng trong loop() thì sẽ thực thi lại lệnh đầu trong loop()
void loop()
{
digitalWrite(ledPin, HIGH); // turn the LED on
delay(1000); // wait a second
digitalWrite(ledPin, LOW); // turn the LED off
delay(1000); // wait a second
}
Khi Arduino IDE hoàn tất việc tải mã chương trình lên Mạch, mỗi khi bạn bật nguồn Mạch đã tải lên mã này, nó bắt đầu ở đầu sketch và thực hiện các lệnh theo tuần tự tuần tự. Nó chạy mã trong setup() một lần và sau đó đến các lệnh nằm trong loop(). Khi đến cuối hàm loop() (được đánh dấu bằng dấu ngoặc đóng,}) nó sẽ đi trở lại đầu hàm loop() để thực thi lại.
Ví dụ trên liên tục nháy đèn LED bằng cách ghi các đầu ra HIGH (5V) và THẤP (0V) vào chân. . Khi bắt đầu sketch
lệnh trong setup() thiết lập chân 13 là dạng OUTPUT (xuất điện áp ra) (vì vậy nó có khả năng sáng đèn LED). Sau khi lệnh trong setup() chạy xong, lệnh trong loop() được gọi liên tục (để nháy LED) đến khi nào Board tắt nguồn mới hết.
Hàm main() ở đâu
Có một điều mà không phải ai cũng nhận ra, thực tế Arduino được xây dựng từ nguôn ngữ C/C++, và một Sketch khi được dịch sẽ được nạp thành một chương trình đầy đủ. Vậy bạn tự hỏi hàm main() huyền thoại trong C/C++ đã đi đâu ?. Thực tế trong quá trình dịch, một sketch sẽ có cấu trúc như sau
int main(void)
{
init();
setup();
for (;;)
loop();
return 0;
}