Arduino - Điều khiển led đơn qua giao tiếp serial giữa Arduino và PC .

Thư viện Serial được dùng trong việc giao tiếp giữa các board mạch với nhau (hoặc board mạch với máy tính hoặc với các thiết bị khác). Tất cả các mạch Arduino đều có ít nhất 1 cổng Serial (hay còn được gọi là UART hoặc USART). Giao tiếp Serial được thực hiện qua 2 cổng digital 0 (RX) và 1 (TX) hoặc qua cổng USB tới máy tính. Vì vậy, nếu bạn đang sử dụng các hàm của thư viện Serial này, bạn không thể sử dụng các chân digital 0 và digital 1 để làm việc khác được!
Bạn có thể sử dụng bảng Serial monitor có sẵn trong Arduino IDE để giao tiếp với Arduino qua giao thức Serial. Kích vào biểu tượng Serial Monitor (hình kính lúp bên góc phải trên cùng ) hoặc nhấn tổ hợp phím Ctrl+Shift+M để mở bảng Serial Monitor, sau đó bạn kích chuột vào bảng chọn như hình dưới để chọn baudrate giống với baudrate được dùng trong quá trình lập trình của bạn. Mặc định là 9600.
Sau đây là 1 ví dụ đơn giản về việc điều khiển 1 led đơn tắt mở qua giao tiếp Serial giữa máy tính và arduino .

Nội dung :

Đọc dữ liệu nhập từ monitor .
Điều khiển led đơn .

Chuẩn bị :

Arduino Uno.
1 led đơn bất kì ( Đỏ ) .
Trở 330 .

Lắp mạch : 

Lập trình :

String x="";// khai báo biến x dạng chuỗi 
// do kí tự nhập từ bàn phím mang giá trị theo bảng mã ASCII
void setup() {
  Serial.begin(9600);
  pinMode(11,OUTPUT);// khai báo ngõ ra chân 11
  Serial.println("nhap trang thai led ( on or off ) :");
  //xuất ra monitor câu lệnh 
}

void loop() { 
   while(Serial.available()>0)//nếu có dữ liệu truyền tới thì vào làm các lệnh sau
  {
     x = Serial.readString();//gán dữ liệu truyền tới vào chuỗi x
     Serial.println(x);
    if(x == "on" ){ //nếu x = on thì chân 11 xuất mức cao => led sáng 
      digitalWrite(11,HIGH);
    }
    if(x == "off" ){//nếu x = off thì chân 11 xuất mức thấp  => led tắt  
      digitalWrite(11,LOW);
    }
  }
}

Tổng kết : 

Hi vọng sau bài viết này các bạn có thể hình dung được rõ hơn về chuẩn giao tiếp serial . Do kiến thực giới hạn nên nếu bài viết có sai sót gì mong các bạn góp ý.

4 nhận xét

  1. a ơi sao e nạp cái code ở trên vào mà led ko sáng. nó vẫn nhận lệnh từ monitor nhưng mà nó ko thực hiện digitalwite

    Trả lờiXóa
  2. anh ơi code sai rồi!
    char x; // khai báo biến x dạng chuỗi ký tự
    byte led = 13;

    void setup() {
    pinMode(led, OUTPUT);
    Serial.begin(9600);
    Serial.println("Nhap trang thai led: ");
    }

    void loop() {
    while (Serial.available()) { // nếu có tín hiệu vào
    x = (char)Serial.read(); // đọc tất cả các tín hiệu đó
    Serial.print((char)x); // in ra tất cả các tín hiệu đó
    if (x == '1') { // nếu là ký tự '1' là bật đèn
    digitalWrite(led, HIGH);
    }
    if (x == '2') { // nếu là ký tự '2' là tắt đèn
    digitalWrite(led, LOW);
    }
    }
    }

    Trả lờiXóa
  3. How to Make Money From Selling Sports Betting Odds
    Money Making is the process of งานออนไลน์ building a betting strategy for becoming 인카지노 a better bettor. Betting on sports at the money-making casino 메리트 카지노 games is also the process of

    Trả lờiXóa