MATHANGSPK BLOG

Chia sẽ các thủ thuật về máy tính, tin học, các kiến thức điện tử cơ bản

Thứ Sáu, 7 tháng 6, 2019

Cách trao đổi dữ liệu số float giữa 2 arduino với nhau

Ở bài viết này, mình sẽ hướng dẫn các bạn gửi dữ liệu float giữa 2 con arduino.
Bài toán thực tế:
1 con Arduino nhận dữ liệu từ sensor nhiệt độ (Arduino_ND). Giá trị nhiệt độ là giá trị float (kiểu số nguyên). Sau khi có giá trị nhiệt độ. Arduino_ND sẽ gửi giá trị của mình cho board NodeMcu 8266 (NodeMCU) để gửi dữ liệu lên server chẳng hạn, ở bài viết này mình chỉ dừng lại ở việc giao tiếp giữa 2 con arduino với nhau thôi.

Code Arduino_ND:

#include <SoftwareSerial.h>
float floatval;
SoftwareSerial mySerial(10,11); //RX,TX
void setup() {
  // put your setup code here, to run once:
  mySerial.begin(115200);
  floatval = 3.14;
}

void loop() {
  // put your main code here, to run repeatedly:
  mySerial.println(floatval,4);
  delay(2000);
}

Giải thích code: Code ở trên có 1 vài điểm lưu ý như sau:

  • Khi chúng ta muốn gửi giá trị float thì phải dùng Serial.println(floatval,4).
  • Số 4 ở đằng sau là số chữ số thập phân sau dấu phẩy.

Code ESP8266:

float byteRecive;
void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(115200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
}

void loop() { // run over and over
  if (Serial.available()) {
    byteRecive = Serial.parseFloat();
    Serial.print(byteRecive,4);
  }
}

Giải thích code: Để nhận giá trị float trong arduino trong hàm serial có hỗ trợ chúng ta option Serial.parseFloat(). Sẽ convert cho chúng ta ra dữ liệu float luôn rất là tiện lợi.

Code cũng khá là đơn giản thôi các bạn nhỉ. Tùy trường hợp để chúng ta có thể áp dụng các kiểu truyền nhận dữ liệu như vậy. Trên đây là bài chia sẽ của mình. Cám ơn các bạn đã theo dõi nhé.

Không có nhận xét nào:

Đăng nhận xét

Adbox