Networks Business Online Việt Nam & International VH2

Cân điện tử dùng Arduino và module HX711

Đăng ngày 08 November, 2022 bởi admin
Làm thế nào để tiếp xúc Loadcell với Arduino ? Làm thế nào để sản xuất cân điện tử dùng Arduino cho riêng bạn ? Hôm nay, trong bài viết này, dientuviet.com sẽ giúp bạn tìm hiểu và khám phá cách tiếp xúc giữa Loadcell với Arduino và ở đầu cuối là tạo ra một cân điện tử để cân khối lượng của một vật và hiển thị lên màn hình hiển thị LCD. Cân điện tử được phong cách thiết kế trong bài hướng dẫn này hoàn toàn có thể cân được khối lượng lên đến 50 kg ( tùy thuộc vào cảm ứng lực sử dụng ) một cách đúng chuẩn và hiệu suất cao .

Linh kiện cần thiết cho cân điện tử

Số thứ tự Tên linh kiện Số lượng
1 Arduino Uno 1
2 Màn hình LCD 16×2 1
3 Load cell 1
4 Module HX711 1
5 Biến trở 10kΩ 1
6 Nút nhấn 1
7 Dây nối  

Loadcell là gì?

Loadcell còn được gọi là cảm ứng tải trọng hay cảm ứng lực là một bộ chuyển đổi được sử dụng để tạo ra một tín hiệu điện có độ lớn tỷ suất thuận với lực hoặc khối lượng được đo .

Cảm biến này sử dụng phương pháp cơ bản để đo độ giãn dài hoặc độ dịch chuyển. Phương pháp này sử dụng một máy đo biến dạng cung cấp sự thay đổi về điện trở tương ứng với độ giãn dài hoặc độ dịch chuyển của thước đo. Cảm biến lực này là máy đo biến dạng kiểu điện trở. Cảm biến lực hiện có trên thị trường được làm từ hợp kim nhôm vì nó có nhiều ưu điểm khác nhau như trọng lượng nhẹ, chính xác hơn, chống gỉ …. Cảm biến lực là máy đo biến dạng và hoạt động như cầu Wheatstone.

Phép đo biến dạng bằng cảm ứng lực giúp duy trì tính toàn vẹn của thiết bị chịu áp lực đè nén, bảo vệ người và thiết bị gần đó .
Xem thêm : Giới thiệu cảm ứng tải trọng Loadcell

Module HX711

module HX711

Tín hiệu điện ở đầu ra của cảm ứng lực là tín hiệu tựa như có giá trị rất nhỏ, khoảng chừng vài mV. Vì vậy, tất cả chúng ta cần sử dụng module khuếch đại HX711 lấy tín hiệu vào từ cảm ứng lực, khuếch đại và quy đổi tín hiệu này thành dạng tín hiệu số .
Module cảm ứng cân nặng HX711 là mạch đọc giá trị cảm ứng loadcell với độ phân giải 24 bit và sử dụng giao thức 2 dây ( SCK – Clock và DT – Data ) để gửi tài liệu cho vi tinh chỉnh và điều khiển hoặc arduino .
Module HX711 có hai kênh nguồn vào riêng không liên quan gì đến nhau, đó là kênh A và kênh B. Kênh A là bộ khuếch đại độ lợi lập trình được có độ lợi 128 hoặc 64 trong đó kênh B là bộ khuếch đại độ lợi cố định và thắt chặt là 32 .
Cảm biến tải trọng được liên kết với module cảm ứng tải trọng HX711 bằng bốn dây. Bốn dây này có màu Đỏ, Đen, Trắng và Xanh lá / Xanh dương. Màu sắc của những dây này hoàn toàn có thể khác nhau tùy theo loại module. Hình bên dưới cho thấy liên kết giữa module HX711 với loadcell .

  • Dây Đỏ được kết nối với E +
  • Dây Đen được kết nối với E-
  • Dây Trắng được kết nối với A-
  • Dây Xanh dương được kết nối với A +

Sơ đồ mạch cân điện tử dùng Arduino và module HX711

Sơ đồ nguyên tắc mạch cân điện tử dùng Arduino được biểu lộ ở hình bên dưới. Như đã nói trước đó, board Arduino UNO là trái tim của mạch. Ngoài ra, mạch còn có những linh phụ kiện khác như Loadcell, module cảm ứng khối lượng HX711, màn hình hiển thị LCD 16 × 2 và một vài điện trở .

mạch cân điện tử dùng arduino và module hx711

Việc liên kết mạch này khá thuận tiện và sơ đồ liên kết như hình bên trên. Các chân RS, EN, D4, D5, D6 và D7 của LCD 16 × 2 được liên kết với những chân số 7, 6, 5, 4, 3 và 2 của Arduino tương ứng. Các chân DT và SCK của module HX711 được liên kết trực tiếp với những chân A0 và A1 của Arduino. Kết nối giữa cảm ứng lực loadcell với module HX711 đã được lý giải trước đó và cũng được cho thấy trong sơ đồ mạch bên trên .

Giải thích hoạt động của mạch cân điện tử dùng Arduino

Nguyên lý hoạt động giải trí của mạch này rất đơn thuần. Đầu tiên, tất cả chúng ta phải hiệu chỉnh mạng lưới hệ thống này để đo khối lượng đúng mực. Khi người dùng bật nguồn, mạng lưới hệ thống sẽ tự động hóa mở màn hiệu chỉnh. Và nếu người dùng muốn hiệu chỉnh bằng tay thì hãy nhấn nút nhấn. Khi viết chương trình tất cả chúng ta tạo một hàm void calibrate ( ) cho mục tiêu hiệu chuẩn, hãy kiểm tra chương trình bên dưới .
Để hiệu chuẩn, hãy đợi hiển thị của màn hình hiển thị LCD để đưa 100 gam lên cảm ứng lực. Khi màn hình hiển thị LCD hiển thị “ Đặt 100 g ” thì bạn hãy đặt vật nặng 100 g lên cảm ứng lực và đợi trong giây lát. Sau vài giây, quy trình hiệu chuẩn sẽ kết thúc. Sau khi hiệu chuẩn, người dùng hoàn toàn có thể đặt bất kể khối lượng nào ( tối đa 40 kg ) lên cảm ứng lực và hoàn toàn có thể thấy giá trị trên màn hình hiển thị LCD tính bằng gam .
Trong mạch cân điện tử này, tất cả chúng ta đã sử dụng Arduino để tinh chỉnh và điều khiển hàng loạt hoạt động giải trí. Cảm biến lực cảm nhận khối lượng và phân phối điện áp tựa như cho module HX711 để khuếch đại và quy đổi tín hiệu điện tương tự như này sang tín hiệu số. Giá trị điện áp sau khi được khuếch đại được cấp cho Arduino. Bây giờ, Arduino đo lường và thống kê đầu ra của HX711 và quy đổi đó thành giá trị khối lượng tính bằng gam và hiển thị trên màn hình hiển thị LCD. Một nút nhấn được sử dụng để hiệu chỉnh mạng lưới hệ thống .

Chương trình

Phần lập trình cho hệ thống này hơi phức tạp đối với người mới bắt đầu. Trong chương trình này, chúng ta không sử dụng bất kỳ thư viện nào để giao tiếp module cảm biến tải trọng HX711 với Arduino. 

Trước hết, chúng ta sẽ khai báo file header cho LCD bằng lệnh #include và định nghĩa các chân cho LCD. Và đối với nút nhấn cũng vậy. Sau đó khai báo một số biến cho mục đích tính toán.

#include LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

#define DT A0
#define SCK A1
#define sw 9

long sample = 0;
float val = 0;
long count = 0;

Hàm bên dưới để đọc tài liệu từ module HX711 và trả về giá trị ở đầu ra .

unsigned long readCount(void)
{
   unsigned long Count;
   unsigned char i;
   pinMode(DT, OUTPUT);
   digitalWrite(DT, HIGH);
   digitalWrite(SCK, LOW);
   Count = 0;
   pinMode(DT, INPUT);
   while (digitalRead(DT));
   for (i = 0; i < 24; i++)
     {
     digitalWrite(SCK, HIGH);
     Count = Count << 1;
     digitalWrite(SCK, LOW);
     if (digitalRead(DT))
        Count++;
     }
     digitalWrite(SCK, HIGH);
     Count = Count ^ 0x800000;
     digitalWrite(SCK, LOW);
     return (Count);
}

Sau đó, tất cả chúng ta sẽ khởi tạo LCD và đưa ra hướng dẫn đến những chân input và output trong void setup ( ) .

void setup()
{
   pinMode(SCK, OUTPUT);
   pinMode(sw, INPUT_PULLUP);
   lcd.begin(16, 2);
   lcd.print(” Can dien tu “);
   lcd.setCursor(0, 1);
   lcd.print(” Dien tu viet “);
   delay(1000);
   lcd.clear();
   calibrate();
}

Tiếp theo trong hàm void loop ( ), tất cả chúng ta sẽ đọc tài liệu từ module HX711 và quy đổi tài liệu này thành khối lượng ( gam ) và gửi nó đến màn hình hiển thị LCD .

void loop()
{
   count = readCount();
   int w = (((count – sample) / val) – 2 * ((count – sample) / val));
   lcd.setCursor(0, 0);
   lcd.print(“Trong luong do duoc”);
   lcd.setCursor(0, 1);
   lcd.print(w);
   lcd.print(“g “);

   if (digitalRead(sw) == 0)
   {
    val = 0;
    sample = 0;
    w = 0;
    count = 0;
    calibrate();
    }
}

Chúng ta tạo một hàm để hiệu chuẩn cho cân điện tử bằng cách đặt vật nặng 100 gm lên trên cảm ứng lực .

void calibrate()
{
   lcd.clear();
   lcd.print(“Dang hieu chuan…”);
   lcd.setCursor(0, 1);
   lcd.print(“Vui long doi…”);
   for (int i = 0; i < 100; i++)
   {
     count = readCount();
     sample += count;
    }
   sample /= 100;
   lcd.clear();
   lcd.print(“Dat 100g & doi”);
   count = 0;
   while (count < 1000)
   {
     count = readCount();
     count = sample – count;
    }
    lcd.clear();
    lcd.print(“Vui long doi….”);
    delay(2000);
    for (int i = 0; i < 100; i++)
    {
      count = readCount();
      val += sample – count;
    }
    val = val / 100.0;
    val = val / 100.0; // đặt trọng lượng hiệu chuẩn
    lcd.clear();
}

Lời kết

Như vậy qua bài viết này, những bạn đã học về tiếp xúc cơ bản giữa cảm ứng lực Loadcell và module cảm ứng khối lượng HX711 với Arduino để đo khối lượng của một vật. Chúc những bạn học hỏi thêm được nhiều kỹ năng và kiến thức mới và tạo ra những loại sản phẩm có ích dựa trên bài hướng dẫn cơ bản này .

Source: https://vh2.com.vn
Category : Tin Học