使用Arduino开发板连接HX711称重传感器模块制作数字体重秤 [复制链接]
https://item.taobao.com/item.htm?spm=a1z09.2.0.0.4c992e8deJNp96&id=575012000301&_u=i1qf7bf58a90
https://www.yiboard.com/thread-1241-1-1.html
、
称重传感器校准
要使用称重传感器,首先需要校准它。为此,请在Arduino开发板上上传以下代码。等到读取消息显示在串行监视器上,然后在称重传感器上放置指定的重量物体。使用A键,您可以将calibration_factor增加一个单位,您可以使用Z键减小它以获得正确的重量。
代码
本篇文章的代码使用的是HX711库:
/** * * HX711 library for Arduino - example file * https://github.com/bogde/HX711 * * MIT License * (c) 2018 Bogdan Necula * **/ #include "HX711.h" // HX711 circuit wiring const int LOADCELL_DOUT_PIN = 4; const int LOADCELL_SCK_PIN = 5; HX711 scale; void setup() { Serial.begin(38400); Serial.println("HX711 Demo"); Serial.println("Initializing the scale"); // Initialize library with data output pin, clock input pin and gain factor. // Channel selection is made by passing the appropriate gain: // - With a gain factor of 64 or 128, channel A is selected // - With a gain factor of 32, channel B is selected // By omitting the gain factor parameter, the library // default "128" (Channel A) is used here. scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); Serial.println("Before setting up the scale:"); Serial.print("read: "); Serial.println(scale.read()); // print a raw reading from the ADC Serial.print("read average: "); Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC Serial.print("get value: "); 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: "); 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: "); Serial.println(scale.read()); // print a raw reading from the ADC Serial.print("read average: "); Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC Serial.print("get value: "); 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: "); 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: "); Serial.print(scale.get_units(), 1); Serial.print(" | average: "); Serial.println(scale.get_units(10), 1); // scale.power_down(); // put the ADC in sleep mode delay(20); // scale.power_up(); }