HƯỚNG DẪN LẬP TRÌNH UART VỚI ARDUINO

Hiện nay, chuẩn UART là chuẩn được dùng rất nhiều trong các board mạch điều khiển để truyền nhận dữ liệu giữa các thiết bị với nhau. Vì thế, để hiểu rõ chuẩn giao tiếp UART là như thế nào, thì hôm nay Arduino Shop ra hướng dẫn lập trình uart với arduino. Mong các bạn quan tâm và về hướng dẫn này. Nào, Bắt đầu với phần dưới đi nào?

Ngày đăng: 22-09-2016

7,988 lượt xem

1. Giới thiệu UART

Cổng giao tiếp uart trên chân TX/RX sử dụng mức logic TTL(5V hoặc 3.3V phụ thuộc điện áp trên board). Không kết nối trực tiếp với cổng RS232 do cổng này hoạt động điện áp +-12V và điều này làm nguy hại đến board arduino

Cổng này được dùng để giao tiếp giữa các board arduino với nhau và giữa arduino với máy tính. Tất cả board Arduino có ít nhất là 1 cổng UART hoặc USART. Nó sử dụng chân RX và TX để giao tiếp với máy tính hoặc các thiết bị khác. Trường hợp, nếu bạn đã dùng chức năng UART trên chân TX và RX thì sẽ không được dùng 2 chân này của arduino phục vụ cho input và output.

Hoàn toàn có thể sử dụng cổng này để thiết lập môi trường giao tiếp giữa các arduino với nhau hoặc giữa arduino với các thiết bị khác như Bluetooth HC-05, PN532 V3 NFC…
Đối với chip Arduino ATMEGA 2560 sẽ có them nhiều cổng UART hơn.

Hôm nay, Arduino shop sẽ hướng dẫn bằng một ví dụ minh họa lập trình UART với arduino. 

 Mình lấy một ví dụ đơn giản đọc dữ liệu từ máy tính tới arduino thông qua cổng UART và làm led tắt hoặc sáng dựa vào ký tự gởi.

2. Chuẩn Bị

Phần Cứng. 1 Chú arduino Uno R3 hoặc Arduino Mega 2560. Ở đây Arduino Shop sẽ dùng chip là mega 2560.
Hướng dẫn lập trình
// Định nghĩa các pin cần điều khiển. Bước này có thể ko cần cho dự án nhỏ, nhưng định nghĩa sẽ giúp chương trình dễ đọc và dễ hiểu hơn các bạn nha. Do relay được kết nối với các pin này, nên sẽ khai báo các chân như thế. Bạn muốn đèn nào sáng thì kết nối với chân đó.
#define  redPin      22
#define  greenPin  23
#define  bluePin     24
void setup() {
  Serial.begin(9600);
  pinMode(redPin, OUTPUT);
  digitalWrite(redPin,HIGH);
  pinMode(greenPin, OUTPUT);
  digitalWrite(greenPin,HIGH);
  pinMode(bluePin, OUTPUT);
  digitalWrite(bluePin,HIGH);

}

void loop() {

  if (Serial.available() > 0) {
    char c=Serial.read();
    Serial.println(c); // Test thử ký tự in ra có đúng ko
    if(c=='1') // Nếu giá trị nhập vào là 1 thì đèn 1 sẽ sáng lên, 2 đèn kia sẽ tắt
    {
      digitalWrite(redPin,LOW);
      digitalWrite(greenPin,HIGH);
      digitalWrite(bluePin,HIGH);     
    }else if(c=='2') // Nếu giá trị nhập vào là 2 thì đèn 2 sẽ sáng lên, 2 đèn kia sẽ tắt
    {
      digitalWrite(redPin,HIGH);
      digitalWrite(greenPin,LOW);
      digitalWrite(bluePin,HIGH); 
      }
      else if(c=='3') //// Nếu giá trị nhập vào là 3 thì đèn 3 sẽ sáng lên, 2 đèn kia sẽ tắt
      {
         digitalWrite(redPin,HIGH);
         digitalWrite(greenPin,HIGH);
         digitalWrite(bluePin,LOW);
       }
       else// Nếu giá trị nhập vào là bất kì thì 3 đèn kia sẽ tắt
       {
         digitalWrite(redPin,HIGH);
         digitalWrite(greenPin,HIGH);
         digitalWrite(bluePin,HIGH);
        }
  }
}

GỌI NGAY - 0902 37 12 52 (Mr Quốc): Tư vấn KT

ĐỂ ĐƯỢC TƯ VẤN VÀ CUNG CẤP GIẢI PHÁP KỊP THỜI CHO BẠN

ARDUINO SHOP

Địa chỉ: Số 41 Gò Dưa, Phường Tam Bình, Quận Thủ Đức, TP. Hồ Chí Minh
Email: arduinoshophcm@gmail.com

Bình luận (0)

Gửi bình luận của bạn

Captcha
<