Mạch chuyển đổi ADC 24bit Loadcell HX711 được sử dụng để đọc giá trị điện trở thay đổi từ cảm biến Loadcell (thường rất nhỏ không thể đọc trực tiếp bằng VĐK) với độ phân giải ADC 24bit và chuyển sang giao tiếp 2 dây (Clock và Data) để gửi dữ liệu về Vi điều khiển, thích hợp để sử dụng với Loadcell trong các ứng dụng đo cân nặng. Show
Thông số kỹ thuật :
Hướng dẫn sử dụng (tham khảo ) của Spakfun Sơ đồ kết nối: Thông tin sản phẩm được Hshop.vn tự xây dựng, nếu sử dụng xin vui lòng ghi rõ nguồn, xin cảm ơn! Loadcell giao tiếp Arduino là dùng Cảm biến Loadcell là thiết bị cảm biến dùng để chuyển đổi lực hoặc trọng lượng thành tín hiệu điện. Khái niệm“strain gage”: cấu trúc có thể biến dạng đàn hồi khi chịu tác động của lực tạo ra một tín hiệu điện tỷ lệ với sự biến dạng này. Mỗi cảm biến Loadcell(cảm biến tải) một đầu ra độc lập, thường 1 đến 3 mV/V. Đầu ra kết hợp được tổng hợp dựa trên kết quả của đầu ra từng cảm biến tải – load cell. Các thiết bị đo lường hoặc bộ hiển thị khuyếch đại tín hiệu điện đưa về, qua chuyển đổi ADC, vi xử lý với phần mềm tích hợp sẵn thực hiện tính toán chỉnh định và đưa kết quả đọc được lên màn hình. Đa phần các thiết bị hay bộ hiển thị hiện đại đều cho phép giao tiếp với các thiết bị ngoài khác như máy tính hoặc máy in. Những load cell này dựa trên nguyên lý cầu điện trở cân bằng {Wheatstone} gọi là cảm biến tải cầu điện trở. Cảm biến Loadcell 1Kg, 5Kg, 10Kg, 20Kg sử dụng để đo khối lượng của vật thể tối đa, cảm biến bằng kim loại với thiết kế rất dễ lắp đặt, phù hợp với các ứng dụng cân điện tử, cảm biến khối lượng,…, lưu ý để sử dụng với Vi điều khiển cần mua thêm Mạch chuyển đổi ADC HX711 chuyên dụng dành cho Loadcell. Liên hệ làm Đồ án và Mạch điện tử Phone : 0967.551.477 Zalo : 0967.551.477 FB : Huỳnh Nhật Tùng Email : [email protected] Địa Chỉ: 171/25 Lê Văn Thọ, P8, Gò Vấp, Tp HCM Chi tiết: Nhận làm mạch và đồ án Điện tử Table of Contents 1. Linh kiện cần thiết làm mạch đọc cảm biến khối lượng Loadcell giao tiếp Arduino qua hx7111.1 Vi điều khiển Arduino trong mạch đọc cảm biến khối lượng Loadcell giao tiếp Arduino qua hx711a. Giới thiệuArduino Uno R3 (Dip) có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA. Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối). Các chức năng khácArduino Uno R3 là một bảng mạch vi điều khiển nguồn mở dựa trên vi điều khiển Microchip ATmega328 được phát triển bởi Arduino.cc. Bảng mạch được trang bị các bộ chân đầu vào/ đầu ra Digital và Analog có thể giao tiếp với các bảng mạch mở rộng khác nhau. Mạch Arduino Uno thích hợp cho những bạn mới tiếp cận và đam mê về điện tử, lập trình…Dựa trên nền tảng mở do Arduino.cc cung cấp các bạn dễ dàng xây dựng cho mình một dự án nhanh nhất ( lập trình Robot, xe tự hành, điều khiển bật tắt led…). Vi xử lý có rất nhiều loại bắt đầu từ 4 bit cho đến 32 bit, vi xử lý 4 bit hiện nay không còn nhưng vi xử lý 8 bit vẫn còn mặc dù đã có vi xử lý 64 bit. Lý do sự tồn tại của vi xử lý 8 bit là phù hợp với một số yêu cầu điều khiển trong công nghiệp. Các vi xử lý 32 bit, 64 bit thường sử dụng cho các máy tính vì khối lượng dữ liệu của máy tính rất lớn nên cần các vi xử lý càng mạnh càng tốt. Các hệ thống điều khiển trong công nghiệp sử dụng các vi xử lý 8 bit hay 16 bit như hệ thống điện của xe hơi, hệ thống điều hòa, hệ thống điều khiển các dây chuyền sản xuất, …b. Chức năng của Arduino R3:
Các chức năng khác
c.Thông số kỹ thuật Arduino Uno R3 (Dip)DatasheetsAtmega328Standard Package27CategoryIntegrated Circuits (ICs)FamilyEmbedded – AtmelSeriesAtmegaPackagingTubeCore ProcessorAVRCore Size8-BitSpeed16MHzConnectivityI²C, SPI, UART / USART, USBPeripheralsBrown-out Detec t/ Reset, HLVD, POR, PWM, WDTNumber of I /O14Program Memory Size32KBProgram Memory TypeFLASHEEPROM Size1KBRAM Size2KVoltage – Supply (Vcc/Vdd)4.2 V ~ 5.5 VData ConvertersA/D 6 x 10bitOscillator TypeInternalOperating Temperature-40°C ~ 85°CPackage / Case28-SOIC (0.295″, 7.50mm Width)Other NamesAtmega328 d. Power
e.Bộ nhớVi điều khiển ATmega328:
f. Các chân đầu vào và đầu raTrên Board Arduino Uno có 14 chân Digital được sử dụng để làm chân đầu vào và đầu ra và chúng sử dụng các hàm pinMode(), digitalWrite(), digitalRead(). Giá trị điện áp trên mỗi chân là 5V, dòng trên mỗi chân là 20mA và bên trong có điện trở kéo lên là 20-50 ohm. Dòng tối đa trên mỗi chân I/O không vượt quá 40mA để tránh trường hợp gây hỏng board mạch. Ngoài ra, một số chân Digital có chức năng đặt biệt:
1.2 Cảm biến khối lượng Loadcell giao tiếp Arduino qua hx711a. Giới thiệu
b. Thông số kỹ thuật khối lượng Loadcell
c. Chức năng các dây khối lượng Loadcell
d. Cấu tạo cảm biến khối lượng Loadcell giao tiếp Arduino qua hx711Loadcell được cấu tạo bởi hai thành phần là: Strain gage và Load. Một loadcell thường bao gồm các strain gage được dán vào bề mặt của thân loadcell. Thân loadcell là một khối kim loại đàn hồi và tùy theo từng loại loadcell và mục đích sử dụng loadcell, thân loadcell được thiết kế nhiều hình dạng khác nhau, chế tạo bằng nhiều vật liệu khác nhau (nhôm hợp kim, thép không gỉ…)
R = Điện trở strain gauge (Ohm) L = Chiều dài của sợi kim loại strain gauge (m) A = Tiết diện của sợi kim loại strain gauge (m2) r= Điện trở suất vật liệu của sợi kim loại strain gauge Khi dây kim loại bị lực tác động sẽ thay đổi điện trở Khi dây bị lực nén, chiều dài strain gauge giảm, điện trở sẽ giảm xuống. Khi dây bi kéo dãn, chiều dài strain gauge tăng, điện trở sẽ tăng lên Điện trở thay đổi tỷ lệ với lực tác động. e. Nguyên lý hoạt động cảm biến khối lượng LoadcellTại trạng thái cân bằng (trạng thái không tải), điện áp tín hiệu ra là số không hoặc gần bằng không khi bốn điện trở được gắn phù hợp về giá trị. Khi có tải trọng hoặc lực tác động lên thân loadcell làm cho thân loadcell bị biến dạng (giãn hoặc nén), dẫn đến sự thay đổi về chiều dài và tiết diện của các sợi kim loại của điện trở strain gage -> thay đổi giá trị điện trở -> thay đổi điện áp đầu ra. f. Ứng dụng của cảm biến khối lượng Loadcell
1.3 Module chuyển đổi ADC 24bit loadcell HX-711 khối lượng Loadcell giao tiếp Arduinoa. Giới thiệu
b. Thông số kỹ thuật
1.4 LCD 16×2 cho mạch đọc khối lượng Loadcell giao tiếp Arduino qua hx711a. Giới thiệuMàn hình text LCD1602 xanh lá sử dụng driver HD44780, có khả năng hiển thị 2 dòng với mỗi dòng 16 ký tự, màn hình có độ bền cao, rất phổ biến, nhiều code mẫu và dễ sử dụng thích hợp cho những người mới học và làm dự án. b. Thông số kỹ thuật
c. Sơ đồ chân LCD 16×2Số chânKý hiệu chânMô tả chân1VssCấp điện 0v2VccCấp điện 5v3V0Chỉnh độ tương phản4RSLựa chọn thanh ghi địa chỉ hay dữ liệu5RWLựa chọn thanh ghi Đọc hay Viết6ENCho phép xuất dữ liệu7D0Đường truyền dữ liệu 08D1Đường truyền dữ liệu 19D2Đường truyền dữ liệu 210D3Đường truyền dữ liệu 311D4Đường truyền dữ liệu 412D5Đường truyền dữ liệu 513D6Đường truyền dữ liệu 614D7Đường truyền dữ liệu 715AChân dương đèn màn hình16KChân âm đèn màn hình Trong 16 chân của LCD được chia ra làm 3 dạng tín hiệu như sau:
d. Địa chỉ ba vùng nhớ
e. Các lệnh điều khiển của LCD
f. Bảng mã ASCII sử dụng cho LCDg. Bảng địa chỉ cho LCD2. Hướng dẫn đồ án cảm biến khối lượng Loadcell giao tiếp Arduino qua hx711 hiển thị LCD1602Phần này chưa được chia sẻ. LIÊN HỆ thông tin ở TẠI ĐÂY để được hổ trợ tốt hơn. Phần cứngPhần mềmThư viện HX711.h tải từ phần mềm Arduino includeinclude "HX711.h"// HX711.DOUT – pin A1// HX711.PD_SCK – pin A0LiquidCrystal lcd(12, 11, 5, 4, 3, 2); HX711 scale(A1, A0); // parameter “gain” is ommited; the default value 128 is used by the library void setup() { Serial.begin(38400); lcd.begin(16, 2); lcd.print(“weight Measurement”); delay(1000); lcd.clear(); lcd.print(“setting up”); Serial.println(“Weight Measurement”); Serial.println(“Before setting up the scale:”); Serial.print(“read: \t\t”); Serial.println(scale.read()); // print a raw reading from the ADC Serial.print(“read average: \t\t”); Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC Serial.print(“get value: \t\t”); Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight (not set yet) Serial.print(“get units: \t\t”); Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight (not set) divided // by the SCALE parameter (not set yet) scale.set_scale(2280.f); // this value is obtained by calibrating the scale with known weights; see the README for details scale.tare(); // reset the scale to 0 Serial.println(“After setting up the scale:”); Serial.print(“read: \t\t”); Serial.println(scale.read()); // print a raw reading from the ADC Serial.print(“read average: \t\t”); Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC Serial.print(“get value: \t\t”); Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight, set with tare() Serial.print(“get units: \t\t”); Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight, divided // by the SCALE parameter set with set_scale Serial.println(“Readings:”); } void loop() { Serial.print(“one reading:\t”); Serial.print(scale.get_units(), 1); Serial.print(“\t| average:\t”); Serial.println(scale.get_units(10), 1); lcd.clear(); lcd.setCursor(1,1); lcd.print(scale.get_units(10), 1); scale.power_down(); // put the ADC in sleep mode delay(5000); scale.power_up(); } 3. Hoạt động của mạch đọc cảm biến khối lượng Loadcell giao tiếp Arduino qua hx711Khi cấp điện hệ thống hoạt động, vi điều khiển hiển thị thông tin ban đầu. Lúc này vi điều khiển chờ tín hiệu từ cảm biến loadcell trả về tín hiệu cho module chuyển đổi 24bit HX711 sau đó chuyển vào vi điều khiển, Khi nhận tín hiệu vi điều khiển tính toán, xử lý dữ liệu và xuất tín hiệu ra màn hình LCD1602 hiển thị thông tin có người hoặc không có người theo yêu cầu của người lập trình. |