Viết chương trình Arduino đầu tiên
Trong bài viết này mình sẽ hướng dẫn các bạn viết một chương trình đầu tiên với Arduino, qua đó sẽ giúp bạn biết được cấu trúc ứng dụng Arduino.
Đây là một bài viết rất quan trọng, bởi chỉ cần các bạn hiểu được kiến thức cơ bản thì việc giải quyết các vấn đề khó trở nên dễ dàng hơn. Cụ thể chúng ta sẽ tìm hiểu về cấu trúc của chương trình, sau đó viết một chương trình đầu tiên với Arduino.
Cấu trúc của chương trình
Một chương trình với Arduino sẽ có hai phần chính đó là Setup và Loop. Tuy nhiên mình sẽ đưa ra tất cả các phần chi tiết trong một chương trình để có bạn có thể nắm rõ.
Cụ thể sẽ có 6 phần như sau:
Bài viết này được đăng tại [free tuts .net]
- Block comment.
- Libraries inclusion.
- Constant definition.
- Global variables declaration.
- Setup.
- Loop.
Block comment
Thường được dùng để ghi một số thông tin về tác giả, hướng dẫn nối dây, giải thích các dòng lệnh, ... . Arduino sẽ bỏ qua phần này khi chạy chương trình, đây giống như là lời chú thích giúp chúng ta dễ hiểu hơn.
Libraries inclusion
Được sử dụng để các thư viện vào chương trình. Khi các bạn sử dụng một thiết bị nào đó có thư viện hỗ trợ, thì cần khai báo thư viện đó vào đây để sử dụng.
Ví dụ mình khai báo hai thư viện như sau.
#include <Servo.h> #include <LiquidCrystal.h>
Constant definition
Được sử dụng để định nghĩa một hằng số, ví dụ dưới đây mình định nghĩa cho biến MAX_COUNT với giá trị là 200.
#define MAX_COUNT 200
Global variables declaration
Trong phần này sẽ khai báo các biến toàn cục, các biến này có thể được sử dụng trong toàn chương trình.
Servo servo; LiquidCrystal lcd(3, 4, 5, 6, 7, 8); int loop_count = 0;
Setup
Trong phần setup này, chúng ta cần khai báo các chân tín hiệu sử dụng và chức năng của nó. Trong phần này chương trình chỉ chạy một lần duy nhất.
void setup() { Serial.begin(9600); lcd.begin(16,2); servo.attach(9); serial.println("đây là phần setup"); }
Loop
Trong phần loop sẽ soạn thảo các dòng lệnh để xử lý, các dòng lệnh này được lặp đi lặp cho đến khi chương trình kết thúc.
void loop() { loop_count++; Serial.print("đây là phần loop, lần: "); Serial.println(loop_count); lcd.print("Hello !!!"); servo.write(loop_count); if(loop_count >= MAX_COUNT) loop_count = 0; delay(1000); }
Viết chương trình đầu tiên với Arduino
Dưới đây là một chương trình mình đã viết sãn trước đó, các bạn có thể xem và tham khảo nhé. Bây giờ mình sẽ giải thích từng phần và chức năng của nó trong chương trình.
//-----------Block comment--------------// /* Blink Turns an LED on for one second, then off for one second, repeatedly. Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to the correct LED pin independent of which board is used. If you want to know what pin the on-board LED is connected to on your Arduino model, check the Technical Specs of your board at: */ //-----------Libraries inclusion--------------// #include <Servo.h> // khái báo thư viện Servo #include <LiquidCrystal.h> // khai báo thư viện LiquidCrystal //-----------Constant definition--------------// #define MAX_COUNT 200 // định nghĩa biến MAX_COUNT với giá trị 200 //-----------Global variables declaration--------------// Servo servo; //khai báo biến servo LiquidCrystal lcd(3, 4, 5, 6, 7, 8); //khai báo biến lcd sử dụng các chân tín hiệu 3, 4, 5, 6, 7 , 8. int loop_count = 0;// khai báo biến loop_count = 0 //-----------Setup--------------// void setup() { Serial.begin(9600); // khai báo sử dụng cổng Serial 9600 lcd.begin(16,2); // khai báo sử dụng 16x2 ô trong màn hình servo.attach(9); serial.println("đây là phần setup");// hiển thị thông báo ra cổng serial } //-----------Loop--------------// void loop() { loop_count++; //thông báo ra công serial Serial.print("đây là phần loop, lần: "); Serial.println(loop_count); //hiển thị dòng chữ Hello !!! ra màn hình lcd lcd.print("Hello !!!"); servo.write(loop_count); if(loop_count >= MAX_COUNT) loop_count = 0; delay(1000); mỗi lần hiển thị được trì hoãn 1s tương đương với 1000ms }
Như các bạn đã thấy thì chương trình trên có đầy đủ 6 phần như mình đã nói chi tiết ở phần một.
Đoạn chương trình trên xử lý cho việc hiển thị dòng chữ "Hello!!!" lên màn hình LCD 16x2. Cùng với đó là hiển thị ra cổng giao tiếp Serial với thông báo tương tứng.
Kết quả 1: Trên màn hình LCD 16x2 sẽ hiển thị dòng chữ "Hello !!!"
Kết quả 2: Trên cổng giao tiếp Serial sẽ hiển thị như sau:
đây là phần setup đây là phần loop, lần: 1 đây là phần loop, lần: 2 đây là phần loop, lần: 3 . . . đây là phần loop, lần: 200
Kết luận
Như vậy là chúng ta đã tìm hiểu xong về cấu trúc chương trình trong Arduino. Cùng với đó là thực hiện viết một chương trình đơn giản để hiển thị thông báo ra cổng giao tiếp Serial. Ở bài tiếp theo mình sẽ hướng dẫn các bạn cách sử dụng các hàm cơ bản trong Arduino.