Tách Dữ Liệu Từ Chuỗi Trong Arduino

Hello Xin Chào Mọi Người! Hôm Nay Mình Xin Hướng Dẫn Các Bạn Các Tách Một Chuỗi Chứa Các Dữ Liệu Thành Các Dữ Liệu Riêng Biệt Để Xử Lí. Cụ Thể Mình Sẽ Viết Một Cái App Trên App Inventor Gửi Về Arduino Một Chuỗi Thông Qua Kết Nối Bluetooth.

1. Chuẩn Bị

Các bạn cần chuẩn bị:

Nối dây như sau:

HC05 Arduino
Vcc 5V
GND GND
Tx Rx1 (pin 19)
Rx Tx1 (pin 18)

2. Viết App

Ở đây mình sẽ không nói rõ mà chỉ đăng ảnh phần Code của app vì trên cộng đồng có khá nhiều bài nói về app inventor, bạn cứ search "app inventor" là ra.

App của mình gồm có 2 thanh trượt, mình sẽ code cho app gửi về hc05 1 chuỗi sau mỗi 100ms, chuỗi đó có cú pháp: "<giá trị thanh ray 1>,<giá trị thanh ray 2>" (Ví dụ "150,20").

Thiết kế App

Code cho việc kết nối bluetooth

Code gửi chuỗi qua bluetooth

3. Code Arduino

int val1, val2;
String chuoi = "90,90", chuoi1, chuoi2;
byte moc;
void setup()
{
    Serial1.begin(9600); // Serial 1 kết nối hc05
    Serial.begin(9600); //Serial này in ra màn hình máy tính
}

void loop()
{
    // Đọc và xử lí chuỗi từ app gửi về
    if (Serial1.available()) {
        chuoi = Serial1.readString(); //Serial đọc chuỗi
    }
    for (int i = 0; i < chuoi.length(); i++) {
        if (chuoi.charAt(i) == ',') {
            moc = i; //Tìm vị trí của dấu ","
        }
    }
    chuoi1 = chuoi;
    chuoi2 = chuoi;
    chuoi1.remove(moc); //Tách giá trị thanh trượt 1 ra chuoi1
    chuoi2.remove(0, moc + 1); ////Tách giá trị thanh trượt 2 ra chuoi2
    val1 = chuoi1.toInt(); //Chuyển chuoi1 thành số
    val2 = chuoi2.toInt(); //Chuyển chuoi2 thành số
    //In ra serial
    Serial.println(val1);
    Serial.println(val2);
}

Với đoạn code trên, nếu ai test với arduino không có hc05 và app thì arduino sẽ tách chuỗi "90,90" thành 2 giá trị 90 và 90 để in ra Serial trên máy tính.

Ai muốn tìm hiểu thêm về mấy câu lệnh xử lí chuỗi trong code này thì vào bài này:

http://arduino.vn/reference/library/string/1/gioi-thieu/string-object-doi-tuong-chuoi-cuc-manh-tren-arduino

4. Lời Kết

Chúc các bạn thành công! Hi vọng bài viết này sẽ giúp ích cho bạn và chúc bạn có nhiều niềm vui với Arduino.

lên
9 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Giới thiệu màn hình OLED 0.96 inch I2C

Xin chào mọi người! Hôm nay chúng ta sẽ cùng review cái màn hình oled 0.96in giao tiếp i2c này nha. Nhưng trước hết, ta hãy xem thử Oled là gì nha.

lên
13 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

Lập trình Arduino không cần viết code - Phần 12: Tạo hàm điều khiển motor

Đây là phần 12 của chuỗi bài viết "Lập trình Arduino không cần viết code"

- Xem lại phần 11 tại đây

Ở phần 9 mình đã hướng dẫn cách điều khiển motor với module L298, đồng thời ở phần trước mình cũng đã hướng dẫn cách tạo một hàm riêng. Hôm nay mình sẽ hướng dẫn các bạn tạo hàm điều khiển motor cho module L298. Vào luôn!

 

lên
9 thành viên đã đánh giá bài viết này hữu ích.