Thứ Năm, 2 tháng 11, 2017

[Arduino cơ bản] Cân điện tử với HX711 và Arduino


Cân điện tử với Loadcell, HX711 và Arduino.

Xin chào các bạn,hôm nay mình xin hướng dẫn các bạn làm cân điện tử.
Các thiết bị(module) cần sử dụng:
1.Loadcell
2.Module ADC Hx711
3.Kit Arduino bất kì.

Trước tiên chúng ta cùng tìm hiểu 1 chút về các thiết bị trên:
1.Loadcell là gì?
Các Loadcell là các cảm biến lực(Khối lượng,monen xoắn...vv)
Khi có một lực tác động lên loadcell,loadcell sẽ chuyển đổi lực tác dụng thành tín hiệu điện.
Vậy tại sao nó có thể chuyển đổi thành điện áp được?
Nguyên nhân là các loadcell sử dụng điện trở (loại strain gauge-đây là loại điện trở thay đổi điện trở khi có tác dụng của lực lên nó)
Cấu trúc của strain gauge như sau:
Loadcell là gì ? Cấu tạo loadcell

Loadcell là gì ?

Cấu tạo chính của Loadcell như hình dưới:Nó sử dụng nguyên lý mạch cầu Wheatstone.
Ban đầu cầu cân bằng,điện áp ra bằng 0V.Khi có lực tác động lên điện trở strain gauge(được mắc dưới bàn cân) nó sẽ thay đổi giá trị => Mạch cầu không còn cân bằng nữa => Xuất hiện điện áp ở 2 điểm (Như hình). Từ đó ta lấy được khối lượng từ mức điện áp trả về.

Image result for strain gauge resistor


Thông tin về Loadcell các bạn có thể tìm hiểu thêm trên google nhé.Thân
2.Module ADC Hx711

Đây là module chuyển đổi tương tự-số ADC (Analog Digital Convert):
Độ phân giải 24bit và giao tiếp 2 dây với vi điều khiển: 2 chân SCK (Clock) và DT (Data).

Thông số kĩ thuật:
- Điện áp hoạt động: 2.7 V - 5V
- Dòng tiêu thụ <1.5mA
-Tốc độ lấy mẫu:10-80 SPS(Có thể tùy chỉnh)
-Độ phân giải điện áp:40mV

Datasheet Hx711 (PDF) : 
https://drive.google.com/file/d/0B0tmnvAt3D4aeGVicnBLTDdmWE0/view

Nhiều bạn hỏi mình,có nhiều module ADC,sao bắt buộc phải dụng module Hx711 này?
Xin trả lời như sau: Do output của loadcell có điện áp rất nhỏ,cở khoảng:1-3mV. Vì vậy cần những bộ ADC có độ phân giải cao để có thể đọc được mức điện áp mV trên.
Các bạn có thể sử dụng các bộ ADC 8bit nhưng chắc chắn đọc về sẽ toàn là 0 (Do độ phân giải 8bit => Độ phân giải  Analog = 5V/256 = 19.53mV > 1-3mV của output loadcell nên không đọc được đâu nhé.Haha)


3.Kết nối Hx711 với Arduino (Ở đây mình sử dụng Arduino Uno)
Các bạn chú ý đấu đúng màu dây từ loadcell về Hx711 nhé.

Image result for adc hx711

4. Sample code
Thư viện : Mình sử dụng thư viện của Scott Russel (Có trên Arduino Library).


Code thoai nào:

#include <Q2HX711.h>
#define SCK A0
#define DT A1

Q2HX711 hx711(DT,SCK);
void setup() {
  Serial.begin(9600);
}

void loop() {
 Serial.println(hx711.read()/100.0);
 delay(500);
}

7 nhận xét:

  1. a ơi e muốn thiết kế cán cân ntn nhưng k qua adruno mà qua con Stm32F103c8 lập trinh trên kelC thì làm ntn v a

    Trả lờiXóa
  2. bạn làm được chưa

    Trả lờiXóa
  3. Anh ơi em muốn hiện lcd thì ntn ạ

    Trả lờiXóa
  4. tín hiệu điện từ loadcell sang HX711 dùng mạch khuếch đại gì vậy ạ? Hay là có sẵn phần khuếch đại trong HX711 rồi ạ?

    Trả lờiXóa
  5. Anh ơi em muốn hiện lên led7thanh thì ntn ạ

    Trả lờiXóa