Весы.

ViktorF

Если с пайкой никаких проблем не возникает, то с прошивкой Ардуины их вагон и маленькая тележка.
Переустановка софта IDE, месторасположение скетчей, библиотеки, правка кода и т.п. В общем почти всё, что могло пойти не так, случилось. 😃
Но вроде всё начинает оживать.

ViktorF

Пульт для калибровки готов, можно настраивать.

EHOT

Щас спою…
Попробовал откомпилировать в Ардуино IDE скетчи. Собрались со второго раза. Просто поленился во второй скетч посмотреть. Ж-)
Нужно:
0. Завершаем работу ВСЕХ копий Arduino IDE, что сейчас запущены

  1. Скачать у того же камрада библиотеки дисплея github.com/olkal/LCD_ST7032 и ADC HX711_ADC github.com/olkal/HX711_ADC
  2. распаковываем архивы и копируем папки HX711_ADC-master и LCD_ST7032-master в c:\Users\User\Documents\Arduino\libraries\
    User - имя пользователя, под которым Вы работаете в Windows. Я старый солдат и не знаю других слов, обозначил себя предельно просто User )))
  3. Скопированные папки с библиотеками переименовываем в HX711_ADC и LCD_ST7032 - сокращаем суффикс “-master”
  4. В любом удобном месте на диске (удобно в c:\Users\User\Documents\Arduino\) создаем папки CG_scale и SimpleSerialDisplay
  5. Из папки “Arduino files” основного архива (первая ссылка первого сообщения темы) копируем в эти папки по одному скетчу CG_scale.ino и SimpleSerialDisplay.ino СООТВЕТСТВЕННО. Имена папок и помещенных в них файлов-скетчей должны совпадать!
  6. запускаем Arduino IDE (я пока пользуюсь версией 1.6.9 - лень песок вытряхивать), открываем скетч CG_scale “File=>Sketchbook=>CG_scale” и “File=>Sketchbook=>SimpleSerialDisplay” в разных окнах.
  7. Подключаем проводами или кабелем Arduino, жмем кнопку Upload для разных плат по отдельности, 2 раза.

Это было для версии с дисплеем с паралелльным интерфейсом и 2мя платами ардуино.

По второму варианту - все помещается в одну плату и дисплей подключается (по моим оценкам 4 проводами V, GNG, SCA, SDL) по шине I2C

Эх, у меня с десяток таких дисплеев лежат беспиризорные, брал для другого проекта, не понадобилось. Наваять мне весов что-ли? Ардуино знаю, секс люблю )))
Но пока оно все приедет из поднебесной - все терпение выветрится

ViktorF

Калибровка прошла благополучно. При весе калибровочного груза 1140 грамм показания после настройки колеблются в пределах одного грамма.
Протестировал и с батареей 3S. Напряжение питания на показания не влияет. После нескольких минут с включенным дисплеем кренка едва теплая. Потребляемый устройством ток не измерял, но по данным компонентов он должен быть не более 160-180 мА. Это при включенном дисплее. В дежурном режиме гораздо меньше.

ViktorF

Как я и предполагал, никаких серьёзных проблем с контролем и индикацией напряжения аккумулятора нет. Напряжение, поступающие на аналоговый вход Ардуины с делителя, находится в допустимом диапазоне даже в случае питания устройства от аккумулятора 3S.
Дисплей уверенно отображает напряжение любого аккумулятора.
Правда показания занижены примерно на 0.4 вольта для 2S. Но это вопрос калибровки.
И здесь у нас, как говорится, два путя: либо поиграться с коэффициентом в 473 строке скетча, либо подобрать резисторы делителя.
Вариант со скетчем конечно изящней, но я поступил так, как мне было удобней в данный момент. В итоге всего 50 ом, добавленных последовательно к нижнему плечу делителя, закрыли вопрос.
В случае 2S показание соответствуют до 0.1 вольта. А в случае 3S показания завышены на пару-тройку десятых. Тут дело скорее всего в нелинейности встроенного АЦП.

И еще по поводу того, вклеивать разъём питания в корпус или нет.
Если разъём будет вклеен в основание, подлезать к нему будет не очень удобно. Так и хочется взять устройство в руки, чтобы воткнуть фишку.
Но это не очень правильно, так как при включении устройство автоматически тарируется. Ему бы надо при включении и последующие секунд пять не шевелиться.

Фото делителя. Если присмотреться, можно разглядеть 2 SMD резистора в параллель, подоткнутых к среднему проводу.

EHOT

Виктор, а датчики на 1кг какой макс вес модели допустим? (для 2х кг датчиков чтото мало предложений)

ViktorF

В зависимости от центровки.
При центровке 150 мм весь вес модели будет приходиться на задний датчик (1). При центровке 120 мм - 0.83 на задний и 0.17 на передний, при центровке 70мм - 0.58 на задний и 0.42 на передний.
То есть для Скифа весом два кило и центровкой 110 на грудь заднего датчика ляжет примерно 1.83 кило, что многовато для килограммового.

ViktorF

К вопросу перегрузки.
В описаниях применяемых датчиков попадается информация, что допустимая перегрузка составляет 150%, а максимальная допустимая перегрузка составляет 200% от номинала датчика.
Итак, имеем весы с датчиками 2+2 килограмма.
Да, при соответствующем усилии на датчиках весы показывают и 5 килограмм и более. Но какова точность?
Грузим что есть.

Отдельная стальная чушка имеется, но её проблематично взвесить целиком. Поэтому пришлось делать составной груз.
На выходе имеем следующее.

Путем несложных вычислений (124х3875/150) выясняется, что на задний датчик приходится порядка 3203 грамм. Это примерно соответствует перегрузке в 160%.
А что с погрешностью?
По бумажкам получается 316+1348+1101+1106=3871 грамм.
На дисплее 3875 грамм.
Таким образом погрешность взвешивания составляет 4 грамма или около 1%. Погрешность в расчёте положения ЦТ должна быть где-то рядом.

P.S. Десятые доли грамма особо не считал и сборный груз, взвешенный скопом на контрольный весах может немного отличаться от суммы цифр по бумажкам.

Taboo
ViktorF:

3875 грамм.
Таким образом погрешность взвешивания составляет 4 грамма или около 1%

0.1% 😃
И это очень хорошо!

alex-6892

Всех мужчин с 23 февраля!!!
Собрал себе такие же, всё работает, стаб на 5в лишний, на ардуине есть выход 5в 500ма, устройство потребляет от кроны 9в: 60ма с подсветкой и 40ма в дежурном режиме.
Поставил пищалку как на схеме, полезная вещь, периодически напоминает про выкл. устройства если на весах ничего нет.
Вообще хороший проект, дёшево и очень удобно.

ViktorF

У ардуины есть встроенный линейный стабилизатор с нагрузочной способностью 500 мА. Она в свою очередь ограничена температурным режимом и диапазоном питающих напряжений.
О нагрузочной способности на выходе данные самые противоречивые, как и о токе, потребляемом применяемым дисплеем. Попадалась и цифра в 160 мА.
Буду собирать следующее устройство - непременно все перемеряю и проверю возможность запитаться только через ардуину от батареи до 3S с сохранением допустимого температурного режима встроенного линейного стабилизатора.

ViktorF

Даташиты-то с мануалами я смотрел разумеется. Внимательно смотрел.
Суньте своему устройству 12 вольт, таким же холодным будет 78М05?

alex-6892

Сегодня не смогу, а завтра суну 3S, измерю ток и температуру.

alex-6892
ViktorF:

Суньте своему устройству 12 вольт, таким же холодным будет 78М05?

3S 12.42V …61.15mA… 40.86mA…, соответственно.
Температуру не мерил, смысла нет.

ViktorF

Чтобы можно было обмерять модели с хордой менее 150мм, пришлось полностью перерисовать нагрузочные вилки. Удалось ужаться примерно на 15мм. Больше только если смещать датчики на основании.

alex-6892

Вот в программе:
строки 95-97

//physical dimensions (distances), make sure that these are coherent with the mechanical unit
float WingPegDist = 119.8; //calibration value in mm, projected distance between wing support points, measure with calliper
float LEstopperDist = 30.0; //calibration value in mm, projected distance from front wing support point to leading edge (stopper pin), measure with calliper

Я так понимаю 119.8 это расстояние между передними и задними опорами, а 30.0 это между передней опорой и упором передней кромки.
Если я прав, можно изменять эти расстояния на весах как Вам нужно относительно “ноля” (оси симметрии перед-зад), под любую хорду, соответственно корректируя эти размеры в программе.
Проверить сейчас не могу, весов нет под рукой.

ViktorF

Да. В случае изменения расстояний между упором и опорами в скетч нужно внести соответствующие поправки.