HTPro.vn chuyển về 137 Đường Đông Mỹ, Đông Mỹ, Thanh Trì, Hà Nội. VPGD ngoài giờ: CT4B-X2 Bắc Linh Đàm, Hoàng Liệt, Hoàng Mai, Hà Nội.

Hướng dẫn sử dụng module GY-MCU90615 v2 Uart

Thứ tư - 18/03/2020 13:04
Cảm biến nhiệt độ hồng ngoại không tiếp xúc giúp chúng ta đo được nhiệt độ các vật thể, bề mặt mà không phải chạm vào bề mặt, vật thể đó. Do đó nó được sử dụng trong nhiều lĩnh vực như ý tế, công nghiệp, .... và phát huy tác dụng to lớn của mình. Bài viết này hướng dẫn cách sử dụng module cảm biến GY-MCU90615 v2 với Arduino giao tiếp qua uart mềm một cách nhanh chóng và đơn giản.
Hướng dẫn sử dụng module GY-MCU90615 v2 Uart
1. Nguyên lý chung
Mỗi vật thể có nhiệt độ lớn hơn -273 độ C đều phát ra bức xạ. Trong điều kiện thông thường, ở nhiệt độ môi trường thì các bức xạ đó nằm trong vùng hồng ngoại. Cảm biến sẽ thu nhận các bức xạ này, tính toán và cho ra kết quả bằng bộ xử lý tín hiệu số DSP, cho độ chính xác cao ( 0.02 độ C).
2. Các phần cứng yêu cầu:
-  01 bo mạch Arduino ( ở đây sử dụng bo UNO R3).
- 01 cảm biến nhiệt độ hông ngoại không tiếp xúc GY-MCU90615 v2.
- 4 cọng dây nối mạch để kết nối cảm biến và arduino.
3. Sơ đồ kết nối
/*******************************************
Sensor VCC -> Arduino 5V
Sensor GND -> Arduino GND
Sensor Rx  -> Arduino 11
Sensor Tx  -> Arduino 10
*******************************************/
4. Code tham khảo:
#include<SoftwareSerial.h>
SoftwareSerial mySerial(10,11);
unsigned char output[33];
unsigned char need[2];
unsigned char checksum;
void setup() {
  Serial.begin(115200);
  while(!Serial){
    ;  
  }
  mySerial.begin(9600);
  mySerial.write(0xA5);
  mySerial.write(0x45);
  mySerial.write(0xEA);
}
void loop() {
  if(mySerial.available()){
    Serial.print("Đang đọc dữ liệu");
    for(int counter=0;counter<=32;counter++){
      output[counter] = (unsigned char)mySerial.read();
      Serial.print(".");
    }
    for(int obj=1;obj<=31;obj++){
      if(output[obj]==0x5A && output[obj+1]==0x5A ){
        if(obj <= 23)
          {
           checksum = 0;
           for(int i=0;i<=7;i++) checksum += output[obj+i];
           if(checksum == output[obj+8])
             {
               need[0] = output[obj+4];
               need[1] = output[obj+5];
               float temp = (float)(need[0] << 8 | need[1])/100;
               Serial.println();
               Serial.println("Nhiệt độ: ");
               Serial.print(temp);
            }
          }
      }
    }
    delay(100);
    }
}
Tiến hành biên dịch, nạp code và mở cổng serial với tốc độ 115200 lên để xem kết quả nhé.
mlx90615
 

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

Click để đánh giá bài viết

  Ý kiến bạn đọc

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây