Ứng dụng của HX711 trong đo lường Load Cell và Hiển thị lên LCD 1602 với Micropython
HX711 là một vi mạch chuyển đổi tín hiệu analog sang digital (ADC) được sử dụng rộng rãi trong các ứng dụng đo lường trọng lượng, thường kết hợp với các cảm biến load cell....
Giới thiệu về HX711
HX711 là một vi mạch chuyển đổi tín hiệu analog sang digital (ADC) được sử dụng rộng rãi trong các ứng dụng đo lường trọng lượng, thường kết hợp với các cảm biến load cell. Đặc điểm nổi bật của HX711 là khả năng cung cấp dữ liệu đầu ra với độ phân giải cao và ổn định, phù hợp cho các ứng dụng yêu cầu độ chính xác cao như trong công nghiệp, nghiên cứu và các dự án DIY.
Lý do sử dụng HX711
Độ chính xác và ổn định
HX711 được thiết kế để đảm bảo độ chính xác và ổn định cao trong việc đo lường trọng lượng. Vi mạch này tích hợp sẵn các bộ khuếch đại và bộ chuyển đổi ADC, giúp cải thiện khả năng xử lý tín hiệu từ load cell và cung cấp dữ liệu chính xác.
Tích hợp dễ dàng
HX711 có thiết kế đơn giản và dễ dàng tích hợp vào các dự án điện tử. Nó hỗ trợ nhiều nền tảng vi điều khiển và ngôn ngữ lập trình, bao gồm cả Micropython, giúp đơn giản hóa quá trình phát triển và triển khai các ứng dụng đo lường.
Hỗ trợ đa nền tảng
Vi mạch HX711 có thể hoạt động với nhiều nền tảng vi điều khiển như ESP32, ESP8266, hoặc Pyboard, cho phép tích hợp linh hoạt vào các dự án IoT và điện tử DIY.
Kết nối và cài đặt phần cứng
Chuẩn bị phần cứng
- **HX711 và Load Cell:** Kết nối HX711 với load cell theo đúng mạch kết nối.
- **LCD 1602 I2C:** Kết nối LCD 1602 với vi điều khiển thông qua giao tiếp I2C. Đảm bảo đúng chân kết nối SDA và SCL của vi điều khiển.
Chương trình mẫu
Dưới đây là một ví dụ về việc sử dụng HX711 để đo lường trọng lượng từ load cell và hiển thị giá trị đo được lên màn hình LCD 1602 qua giao tiếp I2C với Micropython:
from machine import Pin, I2C
import time
from hx711 import HX711
from lcd_i2c import I2cLcd
# Thiết lập chân kết nối HX711 và load cell
hx711 = HX711(dout=Pin(21), pd_sck=Pin(22))
# Thiết lập chân kết nối LCD 1602 I2C
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000)
lcd = I2cLcd(i2c, 0x27, 2, 16) # Địa chỉ I2C và kích thước LCD (2 dòng, 16 cột)
# Thiết lập trọng lượng tối đa và điểm zero (không)
hx711.set_scale(2000) # Thiết lập scale cho 2000g
hx711.tare() # Thiết lập zero point
# Vòng lặp để đọc và hiển thị trọng lượng lên LCD
while True:
try:
# Đọc giá trị từ load cell
weight = hx711.get_weight()
# Hiển thị lên LCD
lcd.clear()
lcd.putstr("Trong luong:")
lcd.move_to(0, 1)
lcd.putstr("{:.2f} g".format(weight))
# Đợi một khoảng thời gian trước khi đọc lại
time.sleep(0.5)
except KeyboardInterrupt:
print("Dừng chương trình.")
break
# Đóng kết nối HX711
hx711.power_down()
# Đóng kết nối LCD
lcd.clear()
lcd.backlight_off()
Giải thích code
- `HX711` và `I2cLcd` được import từ các thư viện tương ứng.
- `Pin(21)` và `Pin(22)` là các chân kết nối giữa vi điều khiển và HX711, cũng như kết nối I2C giữa vi điều khiển và LCD 1602.
- `hx711.set_scale(2000)` và `hx711.tare()` được sử dụng để thiết lập scale và zero point cho load cell.
- Trong vòng lặp `while`, chương trình liên tục đọc giá trị từ load cell và hiển thị lên LCD 1602.
- `time.sleep(0.5)` để đợi một khoảng thời gian giữa các lần đọc để tránh đọc dữ liệu quá nhanh.
Kết luận
Việc kết hợp giữa HX711 và LCD 1602 thông qua Micropython cung cấp một giải pháp đơn giản và hiệu quả cho các ứng dụng đo lường trọng lượng. Với sự hỗ trợ đa nền tảng và tính linh hoạt, HX711 và Micropython hứa hẹn sẽ tiếp tục được ứng dụng rộng rãi trong các lĩnh vực như công nghiệp, nghiên cứu và các dự án DIY đòi hỏi độ chính xác cao.
Việc hiển thị dữ liệu trực tiếp từ HX711 lên LCD 1602 không chỉ giúp theo dõi và kiểm tra trọng lượng một cách thuận tiện mà còn mở rộng khả năng ứng dụng của các dự án IoT và điện tử DIY.
Xem thêm