Здравствуйте, прошу вас о помощи, можете подсказать схему подключения ваших весов, а именно 4 тензодатчиков с тремя проводами к HX711, хочу создать такие же весы как у вас)
Арарис, да я в этом источнике смотрел, но к сажлению так и не понял как посторить правильную схему(( Благодаря вашей подсказке попробую, еще раз спасибо.
В самом первом сообщении этой темы я выложил рабочий скетч. Пройдитесь по нему поиском по слову "scale." и перенесите в свой скетч фрагменты, связанные с измерением веса.
Благодарю Вас за скетч, пробовал многие другие, все время бежали какие-то погрешности, а тут все гуд. Подскажите, пожалуйста, как померить вес уже стоящего на весах предмета, используя Ваш скетч. Тоже занимаюсь пчеловодством, мерить будем вес улья.
Измерить вес уже стоящего на весах предмета без предварительной тарировки весов вряд ли удастся. Другое дело, когда её выполнять. В моём скетче за тарировку отвечает функция ScalesInit();, которая вызывается достаточно часто для достижения максимально точного взвешивания.
Завелся и откалибровался без особых проблем с такой библиотекой и таким скетчем. Проблема, однако, в том, что измеряется нормально только при запуске без груза (груз кладется только если измерения уже вышли на 0. Если же груз был сразу на платиформе при старте ардуины, то вес так и остается на нуле. Т.о., для стационарного контроля веса (напомню, у меня газовый баллон), подходит плохо, т.к. при сбое питания, придется всякий раз этот баллон поднимать и класть обратно на весы. Как быть? Есть идеи, чтобы запомнить рез-ты инициализации в EEPROM? Такая же проблема будет, видимо, у тов. пчеловода.
PS: а где брал библиотеку ув. топик стартер?
/* sample for digital weight scale of hx711
* library design: Weihong Guan (@aguegu)
* library host on
*https://github.com/aguegu/ardulibs/tree/3cdb78f3727d9682f7fd22156604fc1e4edd75d1/hx711
*/
// Hx711.DOUT - pin #A1
// Hx711.SCK - pin #A0
#include <hx711.h>
//#include "U8glib.h"
Hx711 scale(A1, A0);
//U8GLIB_SSD1306_128X64 u8g(10, 9, 8);
float G;
}
void setup() {
Serial.begin(9600);
/*Здесь необходимо подобрать калибровочный коэффиент.
В моем случае от получился 6500.
Схема подбора:
1) ставим на весы груз с известным весом;
2) загружаем скетч;
3) подбираем, пока не будет достигнута величина известного груза.*/
scale.setScale(208.5);
}
void loop() {
G = scale.getGram();
if(G<0)G=0;
Serial.print(G, 1);
Serial.println(" g");
delay(100);
}
Думаю, проблема не в библиотеке, а в необходимости иного построения скетча.
"Если же груз был сразу на платформе при старте ардуины, то вес так и остается на нуле." - ну да, так и должно быть, ведь при старте весы инициализируются и выставляются на нуль. Как с этим можно бороться ? Вот, что на ум пришло :
Весы не знают, стоит ли на них груз, поэтому будем пока что предполагать, что стоит постоянно (хотя вполне возможно организовать оптический/индукционный/магнитный датчик наличия груза на весах). Исходя из предположения :
1. После каждого взвешивания записываем его результат в EEPROM.
2. При старте читаем этот самый результат из EEPROM.
3. При взвешивании прибавляем его к результату нового взвешивания (который будет нулевым после сбоя питания и рестарта скетча). Насколько я помню, отрицательные результаты взвешивания там вполне допустимы (баллон ведь будет становиться легче с течением времени).
+. Для борьбы с погрешностями и при замене баллона делаем некий режим калибровки, вызываемый либо вручную (кнопкой, например), либо привязанный к датчику наличия груза на весах. Снимаем груз - выставляем нуль - возвращаем груз - взвешиваем - пункт 1.
Извините, мысли сумбурные и до конца не додуманные, но может чем поможет...
Хорошо бы, конечно, иметь датчик наличия груза на весах.
Спасибо всем за советы. Оказалось всё гораздо проще. В более новой библиотеке есть функция тарирования, которую достаточно закомментировать в скетче, тогда стартует вместе с грузом. У ТС такая функция в скетче также присутствует.
scale.tare(); // reset the scale to 0
Поставил на ночь, вес 7,5кг уплыл (потяжелел) на 6 гр., буду дальше смотреть на предмет живучести дадчика при постоянном замере.
ну делись кодом схемами. чтобы ничего не потерялось как у меня когда яндекс диск заглючил и почти все удалил. мне конечно дали тогда в компенсацию 200Гб, но данные это не вернет
ну гитхаб врядли отвалится, арзве что заблокируют, а вот что товар на ебее пропадет легко. и на гитхабе это либа. я говорил про конкретную схему и код. короче ты меня не понял
У меня схема из двух ардуин и двух ESP-шек с кучей датчиков и исполнительных устройств и несколько тыщ строк кода. Публиковать я его пока не готов. Может когда-нибудь, почищу, оптимизирую, уберу лишнее и тогда...
Весы там занимают от силы 10 строк кода, причем 100% скопипащены из примера из библиотеки.
вы библиотеку то скачайте по ссылке и пример оттуда запустите. потом посмотрите внимательно пост 70 и уже потом вопросы задавайте.
библиотеку по ссылке качал, пример запускал. Пост раз 100 прочитал. Все равно нечего не понял. Я только начинаю с ардуино знакомиться, может чего то не понимаю. Пожалуйста разъесните.
Спасибо большое за ответы. А проше никак нельзя сделать? Известны же параметры начальные 926620. Просто математикой нельзя их отнимать каждый раз. А это число в EEPROM записать. Или не правильно получиться?
Не помню сколько раз и как я свои калибровал, но помню, что довольно долго возился. Зачем что-то писать в eeprom вообще не понял. Один раз коэффицент пишется в скетч и всё работает месяцами...
Не помню сколько раз и как я свои калибровал, но помню, что довольно долго возился. Зачем что-то писать в eeprom вообще не понял. Один раз коэффицент пишется в скетч и всё работает месяцами...
выкладываю по просьбам трудящихся куски моего кода, связанного с весами
#include "HX711.h"
HX711 scale(11, 10); // parameter "gain" is ommited; the default value 128 is used by the library
float TARE = 233.5; // вес моей грузовой платформы, на которую ставится груз
float ScaleCalibration = 208.5; // основной гемор как раз рассчитать этот калибровочный коэффицент, читайте
readme
unsigned long HXloopTime = 0;
setup()
{
scale.set_scale(ScaleCalibration); // this value is obtained by calibrating the scale with known weights; see the README for details
#ifdef LCD_ON
myGLCD.print(String(int (scale.get_units(10)-TARE))+" g", 175,140); // у кого нет LCD везде заменить функцию на Serial.println();
#endif
}
loop()
{
unsigned long currentTime = millis();
if(currentTime >= (HXloopTime + 60000)) // каждые 60 секунд
{
// scale.power_up(); // режим энергосбережения у меня не заработал, у кого заработаел, отпишитесь
HXloopTime = currentTime; // Updates floopTime
Serial.print("one reading:\t");
Serial.print(scale.get_units()-TARE, 1);
Serial.print("\t| average:\t");
Serial.println(scale.get_units(10)-TARE, 1);
// scale.power_down(); // put the ADC in sleep mode
#ifdef LCD_ON
myGLCD.print(String(int (scale.get_units(10)-TARE))+" g", 175,140);
#endif
}
}
kirill.starodubov, добрый день. Извините, но я вряд ли смогу быть Вам полезен. Либо сами (советами, думаю, помогут), либо обратитесь в раздел "Ищу исполнителя" этого форума.
Здравствуйте, прошу вас о помощи, можете подсказать схему подключения ваших весов, а именно 4 тензодатчиков с тремя проводами к HX711, хочу создать такие же весы как у вас)
1. Схема подключения датчиков присутствует и в этой теме, и в первоисточнике на http://geektimes.ru/post/258592/
2. Если уж Вам недосуг разобраться, то вот, пожалуйста :
Спасибо, но вопрос, у HX711 есть 6 выходов Е+Е-А+А-В+В-, тензодатчики к каким разьемам подключать, подскажите пожалуйста
Арарис, да я в этом источнике смотрел, но к сажлению так и не понял как посторить правильную схему(( Благодаря вашей подсказке попробую, еще раз спасибо.
Спасибо, но вопрос, у HX711 есть 6 выходов Е+Е-А+А-В+В-, тензодатчики к каким разьемам подключать, подскажите пожалуйста
В+ и В- не используются, смотрите картинку выше, красные провода идут к Е+ Е- А+ А-.
Здравствуйте, к сожалению не запускается, уже не знаю в чем может быть проблема. Может дело в скетче:
Значения постоянно выходят 148 150 149 грамм, хоть давлю хоть не давлю на датчик, без изменения остаются такие же, результаты.
Думаю, дело в скетче. Интересно, зачем там объявлено HX711 scale(A0, A1); ?
на них вроде должны выводится данные? Можете посказать как будет правильнее?
В самом первом сообщении этой темы я выложил рабочий скетч. Пройдитесь по нему поиском по слову "scale." и перенесите в свой скетч фрагменты, связанные с измерением веса.
Как вы думаете, возможно ли это проблема в тензодатчиках? Может стоить поменять крйние провода местами?
Japar, я - пас. Вы правильно обратились в "Ищу исполнителя".
Благодарю Вас за скетч, пробовал многие другие, все время бежали какие-то погрешности, а тут все гуд. Подскажите, пожалуйста, как померить вес уже стоящего на весах предмета, используя Ваш скетч. Тоже занимаюсь пчеловодством, мерить будем вес улья.
Измерить вес уже стоящего на весах предмета без предварительной тарировки весов вряд ли удастся. Другое дело, когда её выполнять. В моём скетче за тарировку отвечает функция ScalesInit();, которая вызывается достаточно часто для достижения максимально точного взвешивания.
Уважаемый Voblin_UA вот здесь http://arduino.ru/forum/proekty/kontrolnye-vesy-dlya-paseki-s-otpravkoi-dannykh-v-sms поднимал тему взвешивания ульев, если Вы ещё не читали - рекомендую.
Подскажите, можно ли такими весами (после тарировки) измерять вес постоянно?
Не будут ли со временем датчики "уставать" и требовать перекалибровки?
Мне нужен постоянный мониторинг расхода газа в баллоне, стоящем стационарно на таких весах.
Даже и не знаю, логика и физика подсказывают, что чем нагрузка на датчик меньше максимальной, тем меньше будет "уставать" датчик.
День добрый еще раз.
купил вот такой комплект: http://www.ebay.com/itm/281925026200?_trksid=p2057872.m2749.l2649&ssPage...
Завелся и откалибровался без особых проблем с такой библиотекой и таким скетчем. Проблема, однако, в том, что измеряется нормально только при запуске без груза (груз кладется только если измерения уже вышли на 0. Если же груз был сразу на платиформе при старте ардуины, то вес так и остается на нуле. Т.о., для стационарного контроля веса (напомню, у меня газовый баллон), подходит плохо, т.к. при сбое питания, придется всякий раз этот баллон поднимать и класть обратно на весы. Как быть? Есть идеи, чтобы запомнить рез-ты инициализации в EEPROM? Такая же проблема будет, видимо, у тов. пчеловода.
PS: а где брал библиотеку ув. топик стартер?
Да, библиотека у меня была другая, где брал уж не упомню, но она присутствует в архиве https://www.dropbox.com/s/ik2pk27zog4nn7d/AVSmartScales.zip?dl=0
Думаю, проблема не в библиотеке, а в необходимости иного построения скетча.
"Если же груз был сразу на платформе при старте ардуины, то вес так и остается на нуле." - ну да, так и должно быть, ведь при старте весы инициализируются и выставляются на нуль. Как с этим можно бороться ? Вот, что на ум пришло :
Весы не знают, стоит ли на них груз, поэтому будем пока что предполагать, что стоит постоянно (хотя вполне возможно организовать оптический/индукционный/магнитный датчик наличия груза на весах). Исходя из предположения :
1. После каждого взвешивания записываем его результат в EEPROM.
2. При старте читаем этот самый результат из EEPROM.
3. При взвешивании прибавляем его к результату нового взвешивания (который будет нулевым после сбоя питания и рестарта скетча). Насколько я помню, отрицательные результаты взвешивания там вполне допустимы (баллон ведь будет становиться легче с течением времени).
+. Для борьбы с погрешностями и при замене баллона делаем некий режим калибровки, вызываемый либо вручную (кнопкой, например), либо привязанный к датчику наличия груза на весах. Снимаем груз - выставляем нуль - возвращаем груз - взвешиваем - пункт 1.
Извините, мысли сумбурные и до конца не додуманные, но может чем поможет...
Хорошо бы, конечно, иметь датчик наличия груза на весах.
Пустые весы: берём
zero= scale.read_average(50); EEPROM.writeLong(adrZero,zero);
при старте весов :
unsigned long zero=EEPROM.readLong(adrZero);
При измерений :
result=scale.read_average(50)-zero;
Спасибо всем за советы. Оказалось всё гораздо проще. В более новой библиотеке есть функция тарирования, которую достаточно закомментировать в скетче, тогда стартует вместе с грузом. У ТС такая функция в скетче также присутствует.
scale.tare(); // reset the scale to 0
Поставил на ночь, вес 7,5кг уплыл (потяжелел) на 6 гр., буду дальше смотреть на предмет живучести дадчика при постоянном замере.
К стати, кому интересно, нормально всё вроде. Пару месяцев весы фурычат 24/7 nonstop. Около 7 кг баллон измеряют.
Так что, для ульев подойдет, наверное тоже.
ну делись кодом схемами. чтобы ничего не потерялось как у меня когда яндекс диск заглючил и почти все удалил. мне конечно дали тогда в компенсацию 200Гб, но данные это не вернет
было же выше...
код тут: https://github.com/bogde/HX711
схема тут: http://www.ebay.com/itm/281925026200?_trksid=p2057872.m2749.l2649&ssPage...
ну гитхаб врядли отвалится, арзве что заблокируют, а вот что товар на ебее пропадет легко. и на гитхабе это либа. я говорил про конкретную схему и код. короче ты меня не понял
извиняюсь за долгий ответ.
У меня схема из двух ардуин и двух ESP-шек с кучей датчиков и исполнительных устройств и несколько тыщ строк кода. Публиковать я его пока не готов. Может когда-нибудь, почищу, оптимизирую, уберу лишнее и тогда...
Весы там занимают от силы 10 строк кода, причем 100% скопипащены из примера из библиотеки.
Про схему согласен, опубликую ка я её сюда:
.
Пожалуйста выложите код по весам что бы не обнулялись при пропадании питания. Газовое отопление, хотел контроль расхода газа сделать. Заранее спасибо.
смотри сообщение №70
Пожалуйста выложите код по весам что бы не обнулялись при пропадании питания. Газовое отопление, хотел контроль расхода газа сделать. Заранее спасибо.
А не проще для такого случая резервный аккумулятор поставить?
не надо гадать. был вопрос и был исчерпывающий ответ как раз для его случая.
А не проще для такого случая резервный аккумулятор поставить?
Неужели это проще? Safari же разобрался, тем более 10 строчек.
не надо гадать. был вопрос и был исчерпывающий ответ как раз для его случая.
ООО, вот человек который мне нужен))) Подскажите пожалуйста как сделать это?
Не спорю, у каждого свой вкус.)))
не надо гадать. был вопрос и был исчерпывающий ответ как раз для его случая.
Уважаемый SAFARI, пожалуйста не молчите.
вы библиотеку то скачайте по ссылке и пример оттуда запустите. потом посмотрите внимательно пост 70 и уже потом вопросы задавайте.
вы библиотеку то скачайте по ссылке и пример оттуда запустите. потом посмотрите внимательно пост 70 и уже потом вопросы задавайте.
библиотеку по ссылке качал, пример запускал. Пост раз 100 прочитал. Все равно нечего не понял. Я только начинаю с ардуино знакомиться, может чего то не понимаю. Пожалуйста разъесните.
в чем проблема?
в чем проблема?
запустил пример, вычитывает, вес показывает правильно. Вес остается на весах, отключил питание, подключил - вес сбрасывает на ноль.
Как же сделать что бы вес оставался?
// scale.tare(); // reset the scale to 0
// scale.tare(); // reset the scale to 0
закомментировал, теперь на пустых весах показывает 42 кг. Что я не так сделал?
весы калибровать надо.
https://github.com/bogde/HX711
How to Calibrate Your Scale
весы калибровать надо.
Спасибо большое за ответы. А проше никак нельзя сделать? Известны же параметры начальные 926620. Просто математикой нельзя их отнимать каждый раз. А это число в EEPROM записать. Или не правильно получиться?
Не помню сколько раз и как я свои калибровал, но помню, что довольно долго возился. Зачем что-то писать в eeprom вообще не понял. Один раз коэффицент пишется в скетч и всё работает месяцами...
Не помню сколько раз и как я свои калибровал, но помню, что довольно долго возился. Зачем что-то писать в eeprom вообще не понял. Один раз коэффицент пишется в скетч и всё работает месяцами...
Ок, буду пытаться калибровать.
выкладываю по просьбам трудящихся куски моего кода, связанного с весами
Короче не смог разобраться в калибровке и написал вот такой скетч, элементарный.
Посмотрите пожалуйста знатоки, теперь при сбросе питания и установленном грузе, все равно считается правильно.
Может, что то не правильно? Будут ли проблемы с таким скетчем?
Работает, и ладушки. А то я уже было хотел согласиться насчет ИБП :)
Работает, и ладушки. А то я уже было хотел согласиться насчет ИБП :)
Та ладно уж батарею от старой нокии+4056 с ИБП сравнивать. Загордятся.))))
Возник еще вопрос как сделать так чтобы через веб интерейс просматривать вес? В наличии esp-01. Выручайте.
Araris добрый день,
Случайно наткнулся на пост - вопрос: вы можете на базе весов/тензодатчиков собрать аналоговый датчик крутящего момента?
очень надо на малые усилия 0-5НМ
спсб!
kirill.starodubov, добрый день. Извините, но я вряд ли смогу быть Вам полезен. Либо сами (советами, думаю, помогут), либо обратитесь в раздел "Ищу исполнителя" этого форума.