Как получить ненулевой выход из HX711 и ячейки загрузки?
Пытаюсь настроить ячейку загрузки с помощью усилителя HX711. Всякий раз, когда я загружаю свой скетч, сериал монитор считывает только нули независимо от нагрузки, приложенной к датчику (кажется, что сигнал не передается от моей ячейки загрузки).
Вот моя проводка, с Arduino Uno, подключенным к COM-порту. Я использую Arduino Uno, HX711 и Sparkfun's TAL220 Straight Bar 10kg load cell.
Вот скетч калибровки, который я использую (из руководства по подключению HX711):
#include <HX711.h>
#define DOUT 9
#define CLK 8
HX711 scale(DOUT, CLK);
float calibration_factor = 282650; //-7050 работал для моей установки шкалы 440lb max
void setup() {
Serial.begin(9600);
Serial.println("Калибровочный скетч HX711");
Serial.println("Снять весь вес со шкал");
Serial.println("После начала показаний поместите известный вес на весы");
Serial.println("Нажмите + или a, чтобы увеличить калибровочный коэффициент");
Serial.println("Нажмите - или z, чтобы уменьшить калибровочный коэффициент");
scale.set_scale();
scale.tare(); //Reset the scale to 0
long zero_factor = scale.read_average(); //Получить базовое значение
Serial.print("Zero factor: "); //Это можно использовать для устранения необходимости тары весов. Полезно в проектах постоянного масштаба.
Serial.println(zero_factor);
}
void loop() {
scale.set_scale(calibration_factor); //Настройка на этот калибровочный коэффициент
Serial.print("Reading: ");
Serial.print(scale.get_units(), 1);
Serial.print(" kgs"); //Измените это значение на кг и заново отрегулируйте калибровочный коэффициент, если вы следуете единицам СИ, как здравомыслящий человек
Serial.print(" calibration_factor: ");
Serial.print(calibration_factor);
Serial.println();
if(Serial.available())
{
char temp = Serial.read();
if(temp == '+' || temp == 'a')
calibration_factor += 10;
else if(temp == '-' || temp == 'z')
calibration_factor -= 10;
}
}
И вот типичный выход из последовательного монитора (у меня раньше эта ячейка нагрузки работала правильно, поэтому мой калибровочный коэффициент так отличается).
Замечания:
- Всякий раз, когда я загружаю скетч и открываю последовательный монитор, индикатор TX на Arduino Uno будет мигать, но индикатор RX остается выключенным.
- Удаление шага scale.tare() выведет постоянное ненулевое значение, но ячейка загрузки не подвержена никаким нагрузкам:
- Я попробовал добавить внешний источник питания к сборке подключения (я не знаю, нужно ли это вообще, но я знаю, что ячейка загрузки требует возбуждения для работы, поэтому я решил попробовать). До сих пор это никак не меняло результат.
- Я также попытался настроить калибровочный коэффициент, который только компенсирует выводимое постоянное значение.
- Я снова припаял соединительные провода к тензодатчику и заменил оставшиеся провода, а также попробовал несколько плат Uno и новый USB-шнур. Я также проверил свою проводку и попросил своего лаборанта тоже проверить ее (хотя я определенно не исключаю, что это какая-то небольшая ошибка в проводке/аппаратном обеспечении с моей стороны, так как я все еще новичок в Arduino).
Спасибо вам за любые предложения!
@kmar13, 👍2
Обсуждение1 ответ
Нулевой коэффициент 8388607 появился в аналогичном вопросе на другом форуме и связан с диапазоном усилителя HX711. Это указывало на то, что мой усилитель был сломан; с тех пор я заменил его и теперь получаю сигнал от тензодатчика.
- Проблема с подключением датчика сердцебиения и температуры на arduino uno, но работает по отдельности
- Использовать все контакты как цифровые входы/выходы
- Сколько датчиков может поддерживать один модуль Arduino?
- Как контролировать количество void loop в секунду?
- Как остановить серводвигатель в текущем положении при использовании последовательного порта? Я хочу, чтобы он оставался в одном положении при получении «0».
- Метод перебора битов в байте, отправленном по последовательному каналу.
- Печатать на serial monitor, когда он обнаруживает изменение значения
- Arduino показывает "avrdude: ser_open(): can't open device ”\\.\COM3" после последней загрузки
похоже у вас нет никакого кода который считывает тензодатчик, @jsotola
Это калибровочный скетч, у меня также есть отдельный скетч, который считывает тензодатчик после завершения калибровки - вы это имеете в виду?, @kmar13
итак, если я использую калибровочный коэффициент 8388607 и t считывает ноль, то мой hx711 сломан? я попробовал, и там написано -0,5 кг, @Joe Magee