Mục lục:

Thang đo Arduino với cảm biến tải trọng 5kg và bộ khuếch đại HX711: 4 bước (có hình ảnh)
Thang đo Arduino với cảm biến tải trọng 5kg và bộ khuếch đại HX711: 4 bước (có hình ảnh)

Video: Thang đo Arduino với cảm biến tải trọng 5kg và bộ khuếch đại HX711: 4 bước (có hình ảnh)

Video: Thang đo Arduino với cảm biến tải trọng 5kg và bộ khuếch đại HX711: 4 bước (có hình ảnh)
Video: 2 load cells using arduino & hx711 2024, Tháng mười một
Anonim
Thang đo Arduino với cảm biến tải trọng 5kg và bộ khuếch đại HX711
Thang đo Arduino với cảm biến tải trọng 5kg và bộ khuếch đại HX711
Thang đo Arduino với cảm biến tải trọng 5kg và bộ khuếch đại HX711
Thang đo Arduino với cảm biến tải trọng 5kg và bộ khuếch đại HX711

Tài liệu hướng dẫn này mô tả cách tạo một chiếc cân nhỏ bằng cách sử dụng các bộ phận sẵn có trên kệ.

Vật liệu cần thiết:

1. Arduino - thiết kế này sử dụng Arduino Uno tiêu chuẩn, các phiên bản Arduino khác hoặc bản sao cũng hoạt động

2. HX711 trên bảng đột phá - Bộ vi mạch này được chế tạo đặc biệt để khuếch đại tín hiệu từ các cảm biến lực và báo cáo chúng đến một bộ điều khiển gương khác. Các cảm biến lực cắm vào bảng này và bảng này cho Arduino biết cảm biến lực đo lường những gì.

3. Cảm biến lực 5kg - Cảm biến lực là các bộ phận kim loại có hình dạng đặc biệt có keo đồng hồ đo biến dạng. Đồng hồ đo biến dạng là điện trở thay đổi điện trở của chúng khi chúng bị uốn cong. Khi phần kim loại uốn cong, điện trở của cảm biến lực sẽ thay đổi (HX711 đo chính xác sự thay đổi nhỏ về điện trở này). Bạn có thể mua cả HX711 và cảm biến lực tại đây:

Nếu bạn mua bộ này, vui lòng để lại đánh giá! Nó thực sự hữu ích cho những người mua trong tương lai.

4. Bề mặt lắp phẳng chắc chắn (x2) - một miếng gỗ cứng hoặc kim loại cứng là lý tưởng.

5. Dây có nhiều màu sắc khác nhau để kết nối tất cả các bộ phận

6. Nguồn cung cấp cho Arduino

Bước 1: Gắn Load Cell

Gắn cảm biến lực
Gắn cảm biến lực

Đầu tiên, chúng ta sẽ gắn cảm biến lực. Thú cưỡi của bạn sẽ là duy nhất, nhưng đây là các nguyên tắc bạn cần tuân theo:

1. Cảm biến lực bằng nhôm phải có 4 lỗ gõ và nhãn hiển thị hướng của lực. Gắn mặt không có nhãn vào bề mặt cố định và gắn mặt có nhãn vào bề mặt chuyển động. Mũi tên ở phía có nhãn phải chỉ xuống theo hướng nền tảng sẽ di chuyển khi có tải trọng.

2. Tấm gắn và tấm di chuyển phải càng cứng càng tốt

3. Đảm bảo đặt một số dạng miếng đệm cứng giữa các tấm lắp và cảm biến lực. Máy giặt đứng hoặc máy giặt đều hoạt động tốt. Mục đích là bất kỳ lực nào tác dụng lên tấm chuyển động đều làm cho cảm biến lực bị uốn cong và xoắn. Không có miếng đệm, tải trọng sẽ được truyền trực tiếp từ tấm chuyển động sang tấm cố định mà không ảnh hưởng đến cảm biến lực.

Bước 2: Nối dây Load Cell và HX711

Nối dây các cảm biến lực và HX711
Nối dây các cảm biến lực và HX711

Xem sơ đồ nối dây để biết cách kết nối cảm biến lực, HX711 và Arduino.

Trên cảm biến lực bằng nhôm, nhiều đồng hồ đo biến dạng đã được kết nối với nhau cho một cầu Wheatstone. Tất cả những gì bạn cần làm là kết nối dây với bo mạch HX711 theo đúng hướng.

Bước 3: Thêm Thư viện HX711 vào IDE Arduino của bạn

Thư viện HX711 có sẵn tại đây:

Xem liên kết này trên trang web Arduino để biết hướng dẫn về cách thêm thư viện vào IDE Arduino của bạn:

Bước 4: Hiệu chỉnh và Cân

Hiệu chỉnh và Cân!
Hiệu chỉnh và Cân!

Sparkfun có các chương trình Arduino tuyệt vời để chạy quy mô. Các phiên bản cập nhật nhất hiện có trên GitHub và được in lại bên dưới:

Bước phần mềm đầu tiên là xác định các hệ số hiệu chuẩn cho cân. Để làm điều này, hãy chạy mã này:

/*

Ví dụ sử dụng bảng đột phá SparkFun HX711 với thang điểm Bởi: Nathan Seidle SparkFun Electronics Ngày: 19 tháng 11 năm 2014 Giấy phép: Mã này thuộc phạm vi công cộng nhưng bạn mua cho tôi một cốc bia nếu bạn sử dụng mã này và chúng ta sẽ gặp nhau vào một ngày nào đó (Giấy phép Beerware). Đây là bản phác thảo hiệu chuẩn. Sử dụng nó để xác định hệ số hiệu chỉnh mà ví dụ chính sử dụng. Nó cũng xuất ra zero_factor hữu ích cho các dự án có khối lượng cố định trên quy mô giữa các chu kỳ năng lượng. Thiết lập cân của bạn và bắt đầu phác thảo KHÔNG có trọng lượng trên cân Khi các kết quả đọc được hiển thị, đặt quả cân lên cân Nhấn +/- hoặc a / z để điều chỉnh hệ số hiệu chỉnh cho đến khi kết quả đọc đầu ra khớp với trọng lượng đã biết Sử dụng hệ số hiệu chỉnh này trên bản phác thảo ví dụ Ví dụ này giả định pound (lbs). Nếu bạn thích số kg hơn, hãy thay đổi Serial.print ("lbs"); dòng sang kg. Hệ số hiệu chuẩn sẽ khác nhau đáng kể nhưng nó sẽ liên quan tuyến tính với lbs (1 lbs = 0,453592 kg). Hệ số hiệu chuẩn của bạn có thể rất tích cực hoặc rất tiêu cực. Tất cả phụ thuộc vào việc thiết lập hệ thống tỷ lệ của bạn và hướng cảm biến lệch khỏi trạng thái 0 Mã ví dụ này sử dụng thư viện tuyệt vời của bogde: "https://github.com/bogde/HX711" Thư viện của bogde được phát hành theo GIẤY PHÉP CÔNG CỘNG CỦA GNU Chân 2 của Arduino -> HX711 CLK 3 -> DOUT 5V -> VCC GND -> GND Hầu hết mọi chân trên Arduino Uno sẽ tương thích với DOUT / CLK. Bo mạch HX711 có thể được cấp nguồn từ 2.7V đến 5V nên nguồn 5V của Arduino là ổn. * / #include "HX711.h" #define LOADCELL_DOUT_PIN 3 #define LOADCELL_SCK_PIN 2 Thang đo HX711; float hiệu chuẩn_factor = -7050; // - 7050 hoạt động cho thiết lập quy mô tối đa 440lb của tôi void setup () {Serial.begin (9600); Serial.println ("Bản phác thảo hiệu chuẩn HX711"); Serial.println ("Xóa tất cả trọng lượng khỏi cân"); Serial.println ("Sau khi bắt đầu đọc, đặt trọng lượng đã biết lên cân"); Serial.println ("Nhấn + hoặc a để tăng hệ số hiệu chuẩn"); Serial.println ("Nhấn - hoặc z để giảm hệ số hiệu chuẩn"); scale.begin (LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); scale.set_scale (); scale.tare (); // Đặt lại tỷ lệ thành 0 long zero_factor = scale.read_average (); // Lấy giá trị cơ sở đọc Serial.print ("Zero factor:"); // Điều này có thể được sử dụng để loại bỏ nhu cầu xé nhỏ. Hữu ích trong các dự án quy mô vĩnh viễn. Serial.println (zero_factor); } void loop () {scale.set_scale (hệ số hiệu chỉnh); // Điều chỉnh đến hệ số hiệu chuẩn này Serial.print ("Reading:"); Serial.print (scale.get_units (), 1); Serial.print ("lbs"); // Thay đổi giá trị này thành kg và điều chỉnh lại hệ số hiệu chuẩn nếu bạn tuân theo các đơn vị SI như một người lành mạnh Serial.print ("calibration_factor:"); Serial.print (hệ số hiệu chuẩn); Serial.println (); if (Serial.available ()) {char temp = Serial.read (); if (temp == '+' || temp == 'a') hệ số hiệu chỉnh + = 10; else if (temp == '-' || temp == 'z') hệ số hiệu chỉnh - = 10; }}

Sau khi hiệu chuẩn cân, bạn có thể chạy chương trình mẫu này, sau đó hack nó cho các mục đích của riêng bạn:

/*

Ví dụ sử dụng bảng đột phá SparkFun HX711 với thang điểm Bởi: Nathan Seidle SparkFun Electronics Ngày: 19 tháng 11 năm 2014 Giấy phép: Mã này thuộc phạm vi công cộng nhưng bạn mua cho tôi một cốc bia nếu bạn sử dụng mã này và chúng ta sẽ gặp nhau vào một ngày nào đó (Giấy phép Beerware). Ví dụ này cho thấy sản lượng quy mô cơ bản. Xem bản phác thảo hiệu chuẩn để nhận hệ số hiệu chỉnh cho thiết lập cảm biến lực cụ thể của bạn. Mã ví dụ này sử dụng thư viện tuyệt vời của bogde: "https://github.com/bogde/HX711" Thư viện của bogde được phát hành theo GIẤY PHÉP CÔNG CỘNG CỦA GNU HX711 thực hiện tốt một điều: đọc các cảm biến lực. Bảng đột phá tương thích với bất kỳ cảm biến lực dựa trên cầu đá lúa mì nào sẽ cho phép người dùng đo mọi thứ từ vài gam đến hàng chục tấn. Chân Arduino 2 -> HX711 CLK 3 -> DAT 5V -> VCC GND -> GND Bo mạch HX711 có thể cấp nguồn từ 2.7V đến 5V nên nguồn 5V của Arduino là ổn. * / #include "HX711.h" #define calibration_factor -7050.0 // Giá trị này nhận được bằng cách sử dụng bản phác thảo SparkFun_HX711_Calibration #define LOADCELL_DOUT_PIN 3 #define LOADCELL_SCK_PIN 2 thang đo HX711; void setup () {Serial.begin (9600); Serial.println ("Bản demo quy mô HX711"); scale.begin (LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); scale.set_scale (hệ số hiệu chuẩn); // Giá trị này nhận được bằng cách sử dụng bản phác thảo SparkFun_HX711_Calibration scale.tare (); // Giả sử không có trọng lượng nào trên cân khi khởi động, hãy đặt lại cân về 0 Serial.println ("Số lần đọc:"); } void loop () {Serial.print ("Đang đọc:"); Serial.print (scale.get_units (), 1); //scale.get_units () trả về một float Serial.print ("lbs"); // Bạn có thể thay đổi giá trị này thành kg nhưng bạn sẽ cần phải cấu trúc lại hệ số hiệu chuẩn Serial.println (); }

Đề xuất: