Khác biệt giữa các bản “Lập trình Arduino”

Từ ChipFC Wiki
Bước tới: chuyển hướng, tìm kiếm
(Chương trình giao tiếp với máy tính)
Dòng 20: Dòng 20:
 
Một chương trình Arduino với hai hàm setup() và loop() sẽ được viết như sau:
 
Một chương trình Arduino với hai hàm setup() và loop() sẽ được viết như sau:
  
<syntaxhighlight lang="cpp">
+
{| style="border-radius: 6px 6px 6px 6px;border: 1px dotted"
 +
|<syntaxhighlight lang="cpp">
 
void setup() {                 
 
void setup() {                 
 
   // code khởi tạo sẽ được viết ở đây
 
   // code khởi tạo sẽ được viết ở đây
Dòng 29: Dòng 30:
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
|}
  
 
== Chương trình Blink ==
 
== Chương trình Blink ==
 
   Chương trình Blink Led là một dạng chương trình "Hello World" rất cơ bản và hữu dụng trong lập trình.
 
   Chương trình Blink Led là một dạng chương trình "Hello World" rất cơ bản và hữu dụng trong lập trình.
<syntaxhighlight lang="cpp">
+
{| style="border-radius: 6px 6px 6px 6px;border: 1px dotted"
 +
|<syntaxhighlight lang="cpp">
 
int led = 13;
 
int led = 13;
  
Dòng 49: Dòng 52:
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
|}
  
 
== Chương trình giao tiếp với máy tính ==
 
== Chương trình giao tiếp với máy tính ==
Dòng 55: Dòng 59:
 
_ Khởi tạo trong setup:
 
_ Khởi tạo trong setup:
  
<syntaxhighlight lang="cpp">
+
{| style="border-radius: 6px 6px 6px 6px;border: 1px dotted"
 +
|<syntaxhighlight lang="cpp">
 
// Hàm setup chỉ chạy một lần khi bắt đầu khởi động lại
 
// Hàm setup chỉ chạy một lần khi bắt đầu khởi động lại
 
void setup() {                 
 
void setup() {                 
Dòng 61: Dòng 66:
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
|}
  
 
_ Sau đó có thể đọc và truyền dữ liệu từ cổng Serial một cách tuần tự:
 
_ Sau đó có thể đọc và truyền dữ liệu từ cổng Serial một cách tuần tự:
  
<syntaxhighlight lang="cpp">
+
{| style="border-radius: 6px 6px 6px 6px;border: 1px dotted"
 +
|<syntaxhighlight lang="cpp">
 
void loop() {
 
void loop() {
 
   if(Serial.available()){  //Check if have data in Serial Buffer
 
   if(Serial.available()){  //Check if have data in Serial Buffer
Dòng 73: Dòng 80:
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
|}
  
 
   Như vậy nếu bạn khéo léo kết hợp thì có thể dùng bàn phím truyền lệnh xuống như kiểu nút nhấn làm cho Arduino có thể lên tới hàng trăm lệnh điều khiển
 
   Như vậy nếu bạn khéo léo kết hợp thì có thể dùng bàn phím truyền lệnh xuống như kiểu nút nhấn làm cho Arduino có thể lên tới hàng trăm lệnh điều khiển

Phiên bản lúc 10:01, ngày 15 tháng 6 năm 2014


Bài này là một tham khảo cho người viết chương trình trên Arduino. Bạn có thể tham khảo thêm Bắt đầu với Arduino, Tham khảo lập trình Arduino

Editor.png

Bài viết này đang được phát triển hoặc chỉnh sửa lớn.
Bạn có thể đóng góp để bài viết hoàn thiện hơn.
Sau khi chỉnh sửa xong thông báo này sẽ được gỡ bỏ.

Hình thu nhỏ có lỗi: Không có tập tin
Chương trình ví dụ Blink viết cho Arduino

Cấu trúc cơ bản

Mô tả

Cấu trúc cơ bản của một chương trình Arduino gồm hai hàm chính setup()loop(). Hai hàm này là bắt buộc đối với một chương trình Arduino.

setup()

Hàm setup() được gọi khi chương trình bắt đầu. Thường dùng để hhởi tạo giá trị ban đầu cho biến, cài đặt chế độ hoạt động của các chân, khởi động việc sử dụng thư viện... Hàm setup() sẽ chỉ được gọi duy nhất một lần, ngay sau khi bật nguồn hoặc reset bo Arduino.

loop()

Sau khi thực hiện xong hàm setup(), hàm loop() sẽ được gọi để thực hiện và sẽ được gọi lặp đi lặp lại liên tục cho đến khi nào tắt hệ thống. Thường thì trong hàm loop() sẽ là chương trình chính, các công việc mà bạn muốn hệ thống Arduino của mình thực hiện.

Cách viết

Một chương trình Arduino với hai hàm setup() và loop() sẽ được viết như sau:

void setup() {                
  // code khởi tạo sẽ được viết ở đây
}

void loop() {
  // code phần công việc mà bạn muốn board Arduino của mình thực hiện sẽ viết ở đây
}

Chương trình Blink

 Chương trình Blink Led là một dạng chương trình "Hello World" rất cơ bản và hữu dụng trong lập trình.
int led = 13;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

Chương trình giao tiếp với máy tính

 Arduino có một điểm vô cùng lợi hại là đã kết hợp cổng nạp và giao tiếp trong một, nghĩa là sau khi nạp xong ta có thể ngay lập tức giao tiếp với bo để lấy thông tin
 Để giao tiếp với máy tính thì đơn giản bạn sử dụng class Serial có sẵn của Arduino:

_ Khởi tạo trong setup:

// Hàm setup chỉ chạy một lần khi bắt đầu khởi động lại
void setup() {                
  Serial.begin(9600); //Initialize Serial port with baud is 9600
}

_ Sau đó có thể đọc và truyền dữ liệu từ cổng Serial một cách tuần tự:

void loop() {
  if(Serial.available()){  //Check if have data in Serial Buffer
    char inMess = Serial.read();//Read data from Serial port
    Serial.println(inMess);//  Print to Serial port when you want send data to computer
  }
  delay(100);               // wait for a little
}
 Như vậy nếu bạn khéo léo kết hợp thì có thể dùng bàn phím truyền lệnh xuống như kiểu nút nhấn làm cho Arduino có thể lên tới hàng trăm lệnh điều khiển

Lập trình nâng cao

Chương trình con

Thư viện

Tham khảo