ARDUINO Der Наливатор. Модифицированная версия GyverDrink

Der Наливатор. Модифицированная версия GyverDrink
Эта тема для обсуждения проекта Der Наливатор, созданного на основе прошивки от Alex Gyver - GyverDrink.


С начала устранения пары багов до сегодняшнего момента, прошивка раздулась и обзавелась дополнительным функционалом. Из ключевых особенностей в сравнении с оригинальной версией:
  • Поддержка нескольких типов графических OLED дисплеев с диагоналями 0.96", 1.3", 1.54", 2.42" на контроллерах SSD1306, SSD1309, SH1106.
  • Поддержка (не замена!) шагового двигателя вместо сервопривода для более плавных и бесшумных движений на любой диапазон углов (от 0 до 360 градусов).
  • Автономность засчёт питания устройства от аккумулятора с мониторингом напряжения и заряда.
  • Возможность установки разного объёма жидкости для каждой рюмки отдельно.
  • Дополнительный статус-светодиод, сигнализирующий об актуальном режиме/статусе.
  • Ведение статистики
  • Все необходимые библиотеки для работы устройства "вшиты" в проект, ничего дополнительного искать и устанавливать не требуется.

scheme2.png
scheme3.png
НазваниеКорпусПроизводительUGS(th)/VUDS / VID / AP / WRDS,on / mΩПримечаниеЦена / €
IRLML6244SOT-23IRF0,5-1,1206,31,3210,13
SI2302DSSOT-23Vishay0,65-4,52061,25702,5V LL, очень дёшево0,01
IRFP4310ZTO-247ACirf2,0-4,01001202804,81,80
IRFP450TO-247irf2,0-4,0500141904001,20
IRF530TO-220irf2,91001694160LIN0,44
IRL3103TO-220ABirf1,0306494124,5V LL, Qg=33nC (!)0,95
IRF730ATO-220ABirf2,0-4,54005,5741000Qg=22nC (!)0,54
IRFP064TO-247ACirf2,060703009Qg=190 nC1,65
IRF3205TO-220ABirf2,05511020080,69
IRL3803TO-220ABirf1,03014020064,5V LL, Qg=140nC0,96
IRF540TO-220ABirf31002815077LIN0,52
IRF7401SO-8irf2,7208,72,0222,7V LL0,45
IRF7403SO-8irf4,85308,52,5224,5V LL0,42
IRF7413SO-8irf3,03013,02,5114,5V LL0,41
BUZ11TO-220ST4,05033,090,030LIN0,50
BSS83SOT143NXP2,0100,050,2345000не путать с BSS83P0,10
BS170TO-92gs2,0600,30,835000LIN0,13
BSN20SOT-23gs1,8500,180,3560004,5V LL, LIN0,092
BSS138SOT-23div0,8-1,6500,220,3620005V LL, LIN0,06
BSS123SOT-23div0,8-1,61000,170,3610000 @ 4,5V,4,5V LL, LIN0,06
IRFP2907TO-247ACirf4,0752094704,52,70
2N7000TO-92ON3,0600,20,3550004,5V LL, LIN0,13
BS107TO-92ON, Phi3,02000,250,356400/140002,6V LL; LIN0,18
BS108TO-92ON, Phi2,02000,250,3580002V LL; LIN0,14
BUK100TO-220Phi3,05013,540125Защита от перегрузки и ESD1,40
IRL3705NTO-220ABirf2,05589170104V LL, Qg=98nC1,20
BUZ72ATO-220Infineon4,01009,0402505V LL, LIN0,45
IRLZ34NTO-220irf2,5553068354V LL, LIN0,39
IRLZ44NTO-220irf25547110224V LL, LIN0,49
IRLML2502SOT-23irf1,2204,21452,5V LL0,17
IRF1404TO-220ABirf4,0402023334-1,10
IRL1004TO-220irf2,7401302006,5-1,25
IRL530TO220, D2Packirf210015,0881600,57
IRF830TO220ABirf2,0-4,55005,0741400LIN0,57
IRF840TO220ABirf2,0-4,05008,01258500,57
FDC645NSuperSOT-6Fairchild1,5305,50,8/1,630-0,7
BSP297SOT-223Siemens/Infineon0,8-2,42000,651,86000200V UDS, SMD и 4,5VLL, LIN (редкая комбинация)0,56
IRF7455SO-8irf4,530152,57,51,04
SI4442DYSO-8vis2,530222,55/4,5V1,64
IRLU2905TO251, DPackirf2,05542110274V LL0,54
IRFD014HEXDIP/DIP4irf2,0-4,0601,71,32000,52
IRFD024HEXDIP/DIP4irf2,0-4,0602,51,31000,54
IRLD024HEXDIP/DIP4irf1,0-2,0602,51,31004V LL0,47
IRLU3717I-Pakirf2,0201201,5/8944,5V LL, Qg=21nC,1,15
IRFP3703TO-247ACirf4,0302102302,85,08
IRF3710TO-220ABirf410057200230,83
IRLR7843D-Packirf2,3301641403,34,5V LL, Qg: 34nC0,70
IRF1010NTO-220ABirf45585180111,99
IRF1010ZTO-220ABirf455751407,51,99
IRLIZ44NTO-220-Fullpakirf1,0 - 2,0553045254V LL0,80
IRLU024NTO-251AAirf1,0 - 2,0551745804V LL, Qg=15 nC (!)0,40
IRFZ48NTO-220ABirf35564130140,60
IRL2505TO-220ABirf2,55510484V LL3,99
IRF7607Micro8irf1,2206,51,8302,5V LL1,89
IRF3708TO-220ABirf0,6 - 230628782,8V LL0,69
GF2304SOT-23gs1,0302,51,25135Qg=3,7nC0,05
IRLR8743I-Pak, D2PackIRF1,93050683,14,5V LL, Qg=39nC1,15
AOC2414MCSPAlpha&Omega0,5284,50,55191,2V LL, Qg=21,5nC
Ссылка на первоисточник
TTP229_configuration.png
StepMot_connection.png
  • Прокачка. Поставьте рюмку, нажмите и удерживайте кнопку энкодера.
    Прокачка проводится только в ручном режиме и только при наличии рюмки.
    Возврат крана в домашнее положение и сброс счётчика объёма жидкости происходит после снятия рюмки.
  • Режим изменяется удержанием основной кнопки в течении полусекунды.
    Ручной режим: разлив начинается только после однократного нажатия на основную кнопку.
    Авто режим: разлив начинается автоматически сразу после установки рюмки.
  • Целевой объём изменяется вращением энкодера. При одновременном нажатии и вращении энкодера, объём изменяется на 10 единиц, без нажатия на 1 единицу
  • Возможность настроить объём для каждой рюмки отдельно:
    Функция активна только если количество поставленных рюмок > 1
    При однократном нажатии на энкодер подсвечивается место рюмки, объём которой изменяется вращением энкодера. При повторном нажатии подсвечивается следующая установленная рюмка.
    Если же ни одна рюмка не подсвечивается белым, вращение энкодера изменяет объём для всех рюмок одновременно (как в обычном ручном режиме).
  • Разлив можно остановить в любое время нажатием на основную кнопку.
  • Последний выбранный объём сохраняется сразу после налива первой рюмки.
  • Дополнительный статус-светодиод подключается к светодиоду последней рюмки, активируется в STATUS_LED. Служит для индикации режимов работы.
  • Индикация заряда аккумулятора и слежение за напряжением.
    Активируется раскоментированием строки #define BATTERY_PIN ...
    При напряжении, меньшем чем BATTERY_LOW (по умолчанию 3.3В), устройство перестаёт реагировать на внешние воздействия и на дисплее мигает иконка батареи.
    Если при первом включении мигает иконка аккумулятора, но напряжение в порядке(больше, чем BATTERY_LOW) -> нажмите и удерживайте кнопку до появления меню калибровки аккумулятора.
    Для отслеживания статуса зарядки, IN+ с модуля заряда TP4056 нужно подключить к пину A6. При зарядке появится анимация заряда акб.
  • Стартовая анимация и динамическая подсветка рюмок во время и после налива.
Сервис режим:
Вход в сервис режим осуществляется удержанием основной кнопки выбора режима во время стартовой анимации до появления на дисплее надписи "SerViCE". После отпускания кнопки на дисплее появится номер этапа калибровки:
  • - 1 - На этом этапе производится настройка положений сервопривода над рюмками.
    • Уберите все рюмки. На дисплее отобразится положение парковочной позиции в градусах. При этом по краям дисплея будут отображенны штрихи (при градусе > 99, штрих только с правой стороны).
    • Вращением энкодера измените положение парковочной позиции
    • Поставьте рюмку. На дисплее отобразится номер рюмки и позиция в градусах. Вращением энкодера подстройте положение точно над рюмкой. Уберите рюмку.
    • Повторите предыдущий пункт для всех остальных рюмок.
    • После настройки позиций для всех рюмок нажмите основную кнопку изменения режима пока на дисплее не появится номер следующего этапа калибровки.
  • - 2 - На этом этапе производится калибровка таймера для налития 50мл.
    • Поставьте рюмку в любое положение. Кран встанет над этой рюмкой.
    • Нажатием на кнопку энкодера включится помпа. Удерживайте до тех пор, пока не польётся жидкость.
    • Снимите рюмку и поставьте пустую в любое положение.
    • Удерживайте кнопку энкодера, пока не нальётся ровно 50мл.
    • Снимите рюмку. Нажмите основную кнопку изменения режима. Если мониторинг АКБ активен, на дисплее отобразится следующий номер этапа калибровки. В обратном случае калибровка оконченна. На дисплее отобразится основной объём.
  • - 3 - На этом этапе производится калибровка напряжения аккумулятора.
    • На дисплее отобразится напряжение аккумулятора в [mV].
    • Вращением энкодера подстройте отображаемое напряжение до измеренного вольтметром.
    • Нажмите основную кнопку изменения режима. Калибровка оконченна. На дисплее отобразится основной объём.
  • При зажатии кнопки выбора режима более 5 секунд, происходит сброс настроек из памяти (TIME_50ML, SHOT_POSITIONS, PARKING_POS и BATTERY_CAL) до первоначальных, прописанных в Config.h
  • Наличие полноценного, графического меню. Вход/Выход зажатием основной кнопки более полусекунды. Выход из подменю в основное однократным нажатием.
  • Калибровка объёма за единицу времени, калибровка углов сервопривода для рюмок и калибровка напряжения аккумулятора осуществляется в сервисном меню. Вход в сервисное меню осуществляется зажатием основной кнопки во время стартовой анимации.
  • Возможность изменять настройки прошивки прямо в меню. Для этого нажмите на кнопку энкодера на параметре и вращением измените его значение.
  • Ведение статистики. Количество налитых рюмок, объём за сеанс (до выключения устройства) и общий объём, сохраняемый в памяти. При нажатии на кнопку энкодера, выбранное значение сбрасывается

Обязательно к прочтению
Очень часто проблемы возникают из-за некачественной пайки и остатков флюса на компонентах. Обязательно после пайки, до подачи питания, тщательно прочистить все места пайки спиртосодержащим средством и щёткой!
  • Зачастую проблемы с серводвигателем возникают из-за плохого качества самого привода. Дешёвые серво (хоть и цена это не первостепенный показатель качества, но всё же дешевле 6-7$ за серво микро размера брать не советую). Обратите внимание на фирму-производителя. На приводе должен быть лейбл с граматически правильным написанием фирмы (Например оригинальное название фирмы Tower Pro, не TowerPro и не Towerpro). Для данного проекта (и не только) рекомендую привод EMAX ES08MD II
  • Сенсоры TTP229 не стоит тестировать просто лежащими на столе и не зафиксированными (или приклееными абы как на коленку). Эти датчики, в отличии от обычных механических выключателей, очень капризные к окружающей среде и требуют особого подхода. При подаче питания, они анализируют ёмкость между входом (пластиной, площадкой) и окружающей её средой. Измеренная ёмкость является референсной (с которой будут сравниваться последующие изменения ёмкости) до отключения питания. Поэтому во время подачи питания не следует ставить вблизи сенсора какие-либо предметы. Если оставить рюмку на сенсоре до включения, то для того, чтобы сенсор среагировал, нужно уже будет поднести к нему что-то большего размера (например руку или большой стакан), так как срабатывание датчика происходит если измеренная ёмкость окружающей среды больше референсной. При фиксации в корпусе референсная ёмкость будет достаточно большой, чтобы не реагировать на каждую пылинку, пролетающую мимо, а только на предметы, находящиеся вблизи, ведь ёмкость зависит не только от площади (размеров) детектируемого предмета, но и от расстояния до него - чем ближе, тем больше. Следовательно, если датчик плохо реагирует на рюмку/стакан (сбрасывается или не реагирует вообще, однако на палец без проблем) то стоит либо уменьшить расстояние от рюмки до пластины сенсора, либо увеличить площадь самой пластины. Так же держите сигнальные и силовые провода подальше от площадок сенсоров либо экранируйте их во избежание помех.
  • Если планируется делать устройство на макс. 4 рюмки, то TTP224 Ваш выбор. К тому же, некоторые наливаторостроители говорят, что этот модуль менее капризен, чем TTP229.
  • Повышающий преобразователь. По результатам теста тут, модуль DD03AJTA предпочтительнее чем народный MT3608
  • При любой непонятной ситуации или странном поведении устройства рекомендуется сначала произвести сброс настроек (очистка EEPROM) в сервисном меню или любым другим способом.
  • Зависает или совсем не работает OLED дисплей? Добавьте подтягивающие резисторы (4.7к) на линии i2c. То есть один между VCC и A4, второй между VCC и A5. Если не работает с двумя резисторами, попробуйте оставить один только на A4 (sda).
  • Ошибка компиляции: #error "Not ATmega328P board!". На данный момент поддерживаются только платы на ATmega328P (Uno, Nano, Mini).
  • Параметры из Config.h не учитываются после прошивки - чтобы эти параметры вступили в силу - сбростьте настройки по умолчанию (коими и являются все из Config.h) в сервисном меню (вход зажатием основной кнопки до окончания стартовой анимации), либо удержанием основной кнопки в течении 5секунд до появления надписи "Сброс настроек" в любом рабочем режиме.
  • Серводвигатель постоянно вращается без остановки - это сервопривод постоянного вращения (без обратной связи по положению). Для данного проекта не подойдёт. Нужен такой, который имеет определённый диапазон установки положения (обычно 120 - 180 градусов).
  • Серводвигатель постоянно дёргается, моргает дисплей и/или светодиоды - Причин может быть много, но в большинстве случаев это проблемы с питанием (нехватка мощности, помехи, неисправный преобразователь напряжения(повышайка)). Рекомендую установить аккумулятор (18650 Li-Ion например, можно несколько штук параллельно для увеличения ёмкости). Желательно новый, не стоит на этом экономить.
  • Иногда дёргается сервопривод. В прошивке встроена дополнительная библиотека Adafruit TicoServo для управления серводвогателем. В некоторых случаях сервопривод работает с ней стабильнее. Для использования этой библиотеки нужно:
    • Поменять местами провода на пинах D5 и D10
    • В файле Config.h так же поменять эти пины: #define SERVO_PIN 10 и #define ENC_CLK 5
    • В файле GyverDrink_VICLER_MOD раскомментировать строку #define USE_TICOSERVO
  • Серводвигатель не поворачивается на 180 градусов. Увы и ах, не все сервоприводы способны поворачиваться на 180 градусов. Тут либо замена на другой, проверенный привод (читать предыдущий спойлер), либо конструкция устройства под имеющийся.
  • Как подключить TTP224/TTP229 к Arduino? На модулях TTP есть ножки, обозначенные как выходы (OUT1, OUT2 и т.д). Вот их и подключаем к пинам A0, A1, A2... (#define SW_PINS в Config.h).
  • Светодиоды не реагируют при срабатывании датчиков (все, либо после какого-то определённого светодиода). Если неисправен один светодиод в цепи, то все последующие (подключенные после него) работать не будут.
  • На краю OLED дисплея полоса на всю высоту из хаотично расставленных пикселей? Смените контроллер дисплея с SSD1306 на SH1106 или наоборот.
  • Проблемы с контроллером LGT8F328p (например китайский клон WavGat) ? Инструкция от @Fedor73
Настройка

В прошивке есть конфигурационный файл Config.h,(нажмите, чтобы ознакомиться) в котором производятся все натройки устройства, такие как тип дисплея (олед или семисегментный), тип привода (шаговик или серво), количество рюмок, назначение пинов и многих других. Назначение каждого параметра описанно в комментарии к нему. По умолчанию прошивка без изменений полностью совместима с оригинальным проектом Наливатора от Alex Gyver.
На версии с OLED дисплеем в файле Config.h достаточно выбрать тип дисплея и настроить первые 6 параметров (в секции основные настройки). Все остальные настройки устройства можно провести через меню дисплея. Для того, чтобы параметры из Config.h вступили в силу, нужно сбросить настройки в сервисном меню, либо удержанием основной кнопки в течении 5секунд до появления надписи "Сброс настроек"

Актуальная прошивка доступна для скачивания в GitHub репозитории
 
Изменено:

Комментарии

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
Эта тема для обсуждения проекта Der Наливатор, созданного на основе прошивки от Alex Gyver - GyverDrink.


С начала устранения пары багов до сегодняшнего момента, прошивка раздулась и обзавелась дополнительным функционалом. Из ключевых особенностей в сравнении с оригинальной версией:
  • Поддержка нескольких типов графических OLED дисплеев с диагоналями 0.96", 1.3", 1.54", 2.42" на контроллерах SSD1306, SSD1309, SH1106.
  • Поддержка (не замена!) шагового двигателя вместо сервопривода для более плавных и бесшумных движений на любой диапазон углов (от 0 до 360 градусов).
  • Автономность засчёт питания устройства от аккумулятора с мониторингом напряжения и заряда.
  • Возможность установки разного объёма жидкости для каждой рюмки отдельно.
  • Дополнительный статус-светодиод, сигнализирующий об актуальном режиме/статусе.
  • Ведение статистики
  • Все необходимые библиотеки для работы устройства "вшиты" в проект, ничего дополнительного искать и устанавливать не требуется.

scheme2.png
scheme3.png
НазваниеКорпусПроизводительUGS(th)/VUDS / VID / AP / WRDS,on / mΩПримечаниеЦена / €
IRLML6244SOT-23IRF0,5-1,1206,31,3210,13
SI2302DSSOT-23Vishay0,65-4,52061,25702,5V LL, очень дёшево0,01
IRFP4310ZTO-247ACirf2,0-4,01001202804,81,80
IRFP450TO-247irf2,0-4,0500141904001,20
IRF530TO-220irf2,91001694160LIN0,44
IRL3103TO-220ABirf1,0306494124,5V LL, Qg=33nC (!)0,95
IRF730ATO-220ABirf2,0-4,54005,5741000Qg=22nC (!)0,54
IRFP064TO-247ACirf2,060703009Qg=190 nC1,65
IRF3205TO-220ABirf2,05511020080,69
IRL3803TO-220ABirf1,03014020064,5V LL, Qg=140nC0,96
IRF540TO-220ABirf31002815077LIN0,52
IRF7401SO-8irf2,7208,72,0222,7V LL0,45
IRF7403SO-8irf4,85308,52,5224,5V LL0,42
IRF7413SO-8irf3,03013,02,5114,5V LL0,41
BUZ11TO-220ST4,05033,090,030LIN0,50
BSS83SOT143NXP2,0100,050,2345000не путать с BSS83P0,10
BS170TO-92gs2,0600,30,835000LIN0,13
BSN20SOT-23gs1,8500,180,3560004,5V LL, LIN0,092
BSS138SOT-23div0,8-1,6500,220,3620005V LL, LIN0,06
BSS123SOT-23div0,8-1,61000,170,3610000 @ 4,5V,4,5V LL, LIN0,06
IRFP2907TO-247ACirf4,0752094704,52,70
2N7000TO-92ON3,0600,20,3550004,5V LL, LIN0,13
BS107TO-92ON, Phi3,02000,250,356400/140002,6V LL; LIN0,18
BS108TO-92ON, Phi2,02000,250,3580002V LL; LIN0,14
BUK100TO-220Phi3,05013,540125Защита от перегрузки и ESD1,40
IRL3705NTO-220ABirf2,05589170104V LL, Qg=98nC1,20
BUZ72ATO-220Infineon4,01009,0402505V LL, LIN0,45
IRLZ34NTO-220irf2,5553068354V LL, LIN0,39
IRLZ44NTO-220irf25547110224V LL, LIN0,49
IRLML2502SOT-23irf1,2204,21452,5V LL0,17
IRF1404TO-220ABirf4,0402023334-1,10
IRL1004TO-220irf2,7401302006,5-1,25
IRL530TO220, D2Packirf210015,0881600,57
IRF830TO220ABirf2,0-4,55005,0741400LIN0,57
IRF840TO220ABirf2,0-4,05008,01258500,57
FDC645NSuperSOT-6Fairchild1,5305,50,8/1,630-0,7
BSP297SOT-223Siemens/Infineon0,8-2,42000,651,86000200V UDS, SMD и 4,5VLL, LIN (редкая комбинация)0,56
IRF7455SO-8irf4,530152,57,51,04
SI4442DYSO-8vis2,530222,55/4,5V1,64
IRLU2905TO251, DPackirf2,05542110274V LL0,54
IRFD014HEXDIP/DIP4irf2,0-4,0601,71,32000,52
IRFD024HEXDIP/DIP4irf2,0-4,0602,51,31000,54
IRLD024HEXDIP/DIP4irf1,0-2,0602,51,31004V LL0,47
IRLU3717I-Pakirf2,0201201,5/8944,5V LL, Qg=21nC,1,15
IRFP3703TO-247ACirf4,0302102302,85,08
IRF3710TO-220ABirf410057200230,83
IRLR7843D-Packirf2,3301641403,34,5V LL, Qg: 34nC0,70
IRF1010NTO-220ABirf45585180111,99
IRF1010ZTO-220ABirf455751407,51,99
IRLIZ44NTO-220-Fullpakirf1,0 - 2,0553045254V LL0,80
IRLU024NTO-251AAirf1,0 - 2,0551745804V LL, Qg=15 nC (!)0,40
IRFZ48NTO-220ABirf35564130140,60
IRL2505TO-220ABirf2,55510484V LL3,99
IRF7607Micro8irf1,2206,51,8302,5V LL1,89
IRF3708TO-220ABirf0,6 - 230628782,8V LL0,69
GF2304SOT-23gs1,0302,51,25135Qg=3,7nC0,05
IRLR8743I-Pak, D2PackIRF1,93050683,14,5V LL, Qg=39nC1,15
AOC2414MCSPAlpha&Omega0,5284,50,55191,2V LL, Qg=21,5nC
Ссылка на первоисточник
TTP229_configuration.png
StepMot_connection.png
  • Прокачка. Поставьте рюмку, нажмите и удерживайте кнопку энкодера.
    Прокачка проводится только в ручном режиме и только при наличии рюмки.
    Возврат крана в домашнее положение и сброс счётчика объёма жидкости происходит после снятия рюмки.
  • Режим изменяется удержанием основной кнопки в течении полусекунды.
    Ручной режим: разлив начинается только после однократного нажатия на основную кнопку.
    Авто режим: разлив начинается автоматически сразу после установки рюмки.
  • Целевой объём изменяется вращением энкодера. При одновременном нажатии и вращении энкодера, объём изменяется на 10 единиц, без нажатия на 1 единицу
  • Возможность настроить объём для каждой рюмки отдельно:
    Функция активна только если количество поставленных рюмок > 1
    При однократном нажатии на энкодер подсвечивается место рюмки, объём которой изменяется вращением энкодера. При повторном нажатии подсвечивается следующая установленная рюмка.
    Если же ни одна рюмка не подсвечивается белым, вращение энкодера изменяет объём для всех рюмок одновременно (как в обычном ручном режиме).
  • Разлив можно остановить в любое время нажатием на основную кнопку.
  • Последний выбранный объём сохраняется сразу после налива первой рюмки.
  • Дополнительный статус-светодиод подключается к светодиоду последней рюмки, активируется в STATUS_LED. Служит для индикации режимов работы.
  • Индикация заряда аккумулятора и слежение за напряжением.
    Активируется раскоментированием строки #define BATTERY_PIN ...
    При напряжении, меньшем чем BATTERY_LOW (по умолчанию 3.3В), устройство перестаёт реагировать на внешние воздействия и на дисплее мигает иконка батареи.
    Если при первом включении мигает иконка аккумулятора, но напряжение в порядке(больше, чем BATTERY_LOW) -> нажмите и удерживайте кнопку до появления меню калибровки аккумулятора.
    Для отслеживания статуса зарядки, IN+ с модуля заряда TP4056 нужно подключить к пину A6. При зарядке появится анимация заряда акб.
  • Стартовая анимация и динамическая подсветка рюмок во время и после налива.
Сервис режим:
Вход в сервис режим осуществляется удержанием основной кнопки выбора режима во время стартовой анимации до появления на дисплее надписи "SerViCE". После отпускания кнопки на дисплее появится номер этапа калибровки:
  • - 1 - На этом этапе производится настройка положений сервопривода над рюмками.
    • Уберите все рюмки. На дисплее отобразится положение парковочной позиции в градусах. При этом по краям дисплея будут отображенны штрихи (при градусе > 99, штрих только с правой стороны).
    • Вращением энкодера измените положение парковочной позиции
    • Поставьте рюмку. На дисплее отобразится номер рюмки и позиция в градусах. Вращением энкодера подстройте положение точно над рюмкой. Уберите рюмку.
    • Повторите предыдущий пункт для всех остальных рюмок.
    • После настройки позиций для всех рюмок нажмите основную кнопку изменения режима пока на дисплее не появится номер следующего этапа калибровки.
  • - 2 - На этом этапе производится калибровка таймера для налития 50мл.
    • Поставьте рюмку в любое положение. Кран встанет над этой рюмкой.
    • Нажатием на кнопку энкодера включится помпа. Удерживайте до тех пор, пока не польётся жидкость.
    • Снимите рюмку и поставьте пустую в любое положение.
    • Удерживайте кнопку энкодера, пока не нальётся ровно 50мл.
    • Снимите рюмку. Нажмите основную кнопку изменения режима. Если мониторинг АКБ активен, на дисплее отобразится следующий номер этапа калибровки. В обратном случае калибровка оконченна. На дисплее отобразится основной объём.
  • - 3 - На этом этапе производится калибровка напряжения аккумулятора.
    • На дисплее отобразится напряжение аккумулятора в [mV].
    • Вращением энкодера подстройте отображаемое напряжение до измеренного вольтметром.
    • Нажмите основную кнопку изменения режима. Калибровка оконченна. На дисплее отобразится основной объём.
  • При зажатии кнопки выбора режима более 5 секунд, происходит сброс настроек из памяти (TIME_50ML, SHOT_POSITIONS, PARKING_POS и BATTERY_CAL) до первоначальных, прописанных в Config.h
  • Наличие полноценного, графического меню. Вход/Выход зажатием основной кнопки более полусекунды. Выход из подменю в основное однократным нажатием.
  • Калибровка объёма за единицу времени, калибровка углов сервопривода для рюмок и калибровка напряжения аккумулятора осуществляется в сервисном меню. Вход в сервисное меню осуществляется зажатием основной кнопки во время стартовой анимации.
  • Возможность изменять настройки прошивки прямо в меню. Для этого нажмите на кнопку энкодера на параметре и вращением измените его значение.
  • Ведение статистики. Количество налитых рюмок, объём за сеанс (до выключения устройства) и общий объём, сохраняемый в памяти. При нажатии на кнопку энкодера, выбранное значение сбрасывается

Обязательно к прочтению
Очень часто проблемы возникают из-за некачественной пайки и остатков флюса на компонентах. Обязательно после пайки, до подачи питания, тщательно прочистить все места пайки спиртосодержащим средством и щёткой!
  • Зачастую проблемы с серводвигателем возникают из-за плохого качества самого привода. Дешёвые серво (хоть и цена это не первостепенный показатель качества, но всё же дешевле 6-7$ за серво микро размера брать не советую). Обратите внимание на фирму-производителя. На приводе должен быть лейбл с граматически правильным написанием фирмы (Например оригинальное название фирмы Tower Pro, не TowerPro и не Towerpro). Для данного проекта (и не только) рекомендую привод EMAX ES08MD II
  • Сенсоры TTP229 не стоит тестировать просто лежащими на столе и не зафиксированными (или приклееными абы как на коленку). Эти датчики, в отличии от обычных механических выключателей, очень капризные к окружающей среде и требуют особого подхода. При подаче питания, они анализируют ёмкость между входом (пластиной, площадкой) и окружающей её средой. Измеренная ёмкость является референсной (с которой будут сравниваться последующие изменения ёмкости) до отключения питания. Поэтому во время подачи питания не следует ставить вблизи сенсора какие-либо предметы. Если оставить рюмку на сенсоре до включения, то для того, чтобы сенсор среагировал, нужно уже будет поднести к нему что-то большего размера (например руку или большой стакан), так как срабатывание датчика происходит если измеренная ёмкость окружающей среды больше референсной. При фиксации в корпусе референсная ёмкость будет достаточно большой, чтобы не реагировать на каждую пылинку, пролетающую мимо, а только на предметы, находящиеся вблизи, ведь ёмкость зависит не только от площади (размеров) детектируемого предмета, но и от расстояния до него - чем ближе, тем больше. Следовательно, если датчик плохо реагирует на рюмку/стакан (сбрасывается или не реагирует вообще, однако на палец без проблем) то стоит либо уменьшить расстояние от рюмки до пластины сенсора, либо увеличить площадь самой пластины. Так же держите сигнальные и силовые провода подальше от площадок сенсоров либо экранируйте их во избежание помех.
  • Если планируется делать устройство на макс. 4 рюмки, то TTP224 Ваш выбор. К тому же, некоторые наливаторостроители говорят, что этот модуль менее капризен, чем TTP229.
  • Повышающий преобразователь. По результатам теста тут, модуль DD03AJTA предпочтительнее чем народный MT3608
  • При любой непонятной ситуации или странном поведении устройства рекомендуется сначала произвести сброс настроек (очистка EEPROM) в сервисном меню или любым другим способом.
  • Зависает или совсем не работает OLED дисплей? Добавьте подтягивающие резисторы (4.7к) на линии i2c. То есть один между VCC и A4, второй между VCC и A5. Если не работает с двумя резисторами, попробуйте оставить один только на A4 (sda).
  • Ошибка компиляции: #error "Not ATmega328P board!". На данный момент поддерживаются только платы на ATmega328P (Uno, Nano, Mini).
  • Параметры из Config.h не учитываются после прошивки - чтобы эти параметры вступили в силу - сбростьте настройки по умолчанию (коими и являются все из Config.h) в сервисном меню (вход зажатием основной кнопки до окончания стартовой анимации), либо удержанием основной кнопки в течении 5секунд до появления надписи "Сброс настроек" в любом рабочем режиме.
  • Серводвигатель постоянно вращается без остановки - это сервопривод постоянного вращения (без обратной связи по положению). Для данного проекта не подойдёт. Нужен такой, который имеет определённый диапазон установки положения (обычно 120 - 180 градусов).
  • Серводвигатель постоянно дёргается, моргает дисплей и/или светодиоды - Причин может быть много, но в большинстве случаев это проблемы с питанием (нехватка мощности, помехи, неисправный преобразователь напряжения(повышайка)). Рекомендую установить аккумулятор (18650 Li-Ion например, можно несколько штук параллельно для увеличения ёмкости). Желательно новый, не стоит на этом экономить.
  • Иногда дёргается сервопривод. В прошивке встроена дополнительная библиотека Adafruit TicoServo для управления серводвогателем. В некоторых случаях сервопривод работает с ней стабильнее. Для использования этой библиотеки нужно:
    • Поменять местами провода на пинах D5 и D10
    • В файле Config.h так же поменять эти пины: #define SERVO_PIN 10 и #define ENC_CLK 5
    • В файле GyverDrink_VICLER_MOD раскомментировать строку #define USE_TICOSERVO
  • Серводвигатель не поворачивается на 180 градусов. Увы и ах, не все сервоприводы способны поворачиваться на 180 градусов. Тут либо замена на другой, проверенный привод (читать предыдущий спойлер), либо конструкция устройства под имеющийся.
  • Как подключить TTP224/TTP229 к Arduino? На модулях TTP есть ножки, обозначенные как выходы (OUT1, OUT2 и т.д). Вот их и подключаем к пинам A0, A1, A2... (#define SW_PINS в Config.h).
  • Светодиоды не реагируют при срабатывании датчиков (все, либо после какого-то определённого светодиода). Если неисправен один светодиод в цепи, то все последующие (подключенные после него) работать не будут.
  • На краю OLED дисплея полоса на всю высоту из хаотично расставленных пикселей? Смените контроллер дисплея с SSD1306 на SH1106 или наоборот.
  • Проблемы с контроллером LGT8F328p (например китайский клон WavGat) ? Инструкция от @Fedor73
Настройка

В прошивке есть конфигурационный файл Config.h,(нажмите, чтобы ознакомиться) в котором производятся все натройки устройства, такие как тип дисплея (олед или семисегментный), тип привода (шаговик или серво), количество рюмок, назначение пинов и многих других. Назначение каждого параметра описанно в комментарии к нему. По умолчанию прошивка без изменений полностью совместима с оригинальным проектом Наливатора от Alex Gyver.
На версии с OLED дисплеем в файле Config.h достаточно выбрать тип дисплея и настроить первые 6 параметров (в секции основные настройки). Все остальные настройки устройства можно провести через меню дисплея. Для того, чтобы параметры из Config.h вступили в силу, нужно сбросить настройки в сервисном меню, либо удержанием основной кнопки в течении 5секунд до появления надписи "Сброс настроек"

Актуальная прошивка доступна для скачивания в GitHub репозитории
 
Изменено:

khseal

✩✩✩✩✩✩✩
3 Фев 2021
76
6
Может кто подскажет, а то похоже на баг. Настраиваю статус батареи. Раскомментировал нужные строчки. Плюс аккумулятора подключен к А7.
В итоге батарея пустая, захожу в калибровку батареи, там фактор стоит нули и контроллер зависает. В чем может быть проблема?
Попробую ради эксперемента, переопредлить на ногу А6.

UPD
Помог сброс калибровок. Но микроконтроллер почему-то зависает периодически. Может ли микроконтроллер виснуть из-за дисплея?
UPD2
Запитал дисплей от 3.3В. Зависания исчезли. После сброса калибровок, микроконтроллер почему-то не выключается после долгого простоя. Видимо какие-то приколы в еепроме... =( Надо попробовать рецепт что написали выше...
UPD3
Короче в любых не понятных ситуациях нужно сбрасывать еепром. Все работает...
 
Изменено:

Димьян

✩✩✩✩✩✩✩
9 Мар 2020
67
9
Может ли микроконтроллер виснуть из-за дисплея?
[/QUOTE]
Да может. Если у вас Oled дисплей, то для начала попробуйте в прошивке поменять чистоту с 800 на 200 если заработает, значит нужно к экрану подцепить резисторы. Уже были люди с проблемными экранами в том числе и я.
 

Александр218

✩✩✩✩✩✩✩
13 Апр 2020
11
5
Подскажите пжл, вот так нужно подключать tp229? И что делать с резистором в кружочке?

Посмотреть вложение 24008
подключение да правильно, резистор для индикации процесса зарядки
//#define CHARGER_PIN A6 // IN+ с TP4056. Используется для детектирования зарядки. Раскомментировать, если подключен

можете не ставить если эта функция не нужна
 

стасян

✩✩✩✩✩✩✩
8 Сен 2019
33
4
Как пишут ремонтники компов, если не знаешь куда копать дальше, шей БИОС, в нашем случае, чисти еепром, мне и многим помогало. Ну и еще нужно обращать внимание на китайское качество деталей "Китайский ГОСТ" :).
очистка помогла,дисплей работает,а вот помпа на отрез отказывается работать,если в первом она работает только без резистора,то на втором и с ним и без не работает
 
Изменено:

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
Запитал дисплей от 3.3В. Зависания исчезли.
Странно, на плате на экране стоит стабилизатор напряжения на 3.3в, Может не кондиция, замерь напряжение со стабилизатора на экране.
Короче в любых не понятных ситуациях нужно сбрасывать еепром
Точно так. Правда я чистил всего один раз.
Плюс аккумулятора подключен к А7.
В итоге батарея пустая, захожу в калибровку батареи, там фактор стоит нули и контроллер зависает. В чем может быть проблема?
Попробую ради эксперемента, переопредлить на ногу А6.
Интересно, в это случае они (А6 А7) на вход работают как АЦП, Что 0в или 4.2в (до5в) контроллер видит число от 0-1024, видимо дело в другом.
 

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
а вот помпа на отрез отказывается работать
1) По какой схеме подключение? 2) Работает ли помпа напрямую (от 5в или через повышайку Более 5в). Если через повышайку проверить подав 5 в на повышайку и включить помпу. 3) На всякий случай, проверь ток потребления помпы на прямую, и через повышайку, вдруг брак помпы, межвитковое замыкание и там большие токи, идет просадка напряжения. Ну и последнее, если на транзисторе сделан ключ, проверь этот кусок отдельно, может транзистор полу дохлый, подай на затвор (через резистор как на схеме) 5В от БП, имитация логической единицы, включение помпы, можно повесить после полевика какую либо нагрузку, и так от ардуины до помпы проверяя напряжения по цепи до помпы. Удачи.
 

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
Почти дособирал свой. Жду помпу и клапан. Полный хэндмэйд ))
Прикольно, танки видел, роботов алкашей, сельхоз технику еще нет,класс. А в бункер комбайна, можно и вододуличку заливать, так сказать закрома. А в кабине статус диод?
 

ZerGint

★✩✩✩✩✩✩
13 Дек 2020
19
10
Прикольно, танки видел, роботов алкашей, сельхоз технику еще нет,класс. А в бункер комбайна, можно и вододуличку заливать, так сказать закрома. А в кабине статус диод?
Не, бункер не функциональный ). Сильно заморачиваться надо. В кабине статус диод. Думал жатку вращать при наливе (редуктор специально приобрел), но решил что это лишнее, да и лишняя нагрузка на питание. А сам наливатор думаю отчиму в подарок, он всю жизнь на сельхозтехнике проработал.
 

khseal

✩✩✩✩✩✩✩
3 Фев 2021
76
6
Странно, на плате на экране стоит стабилизатор напряжения на 3.3в, Может не кондиция, замерь напряжение со стабилизатора на экране.

Точно так. Правда я чистил всего один раз.

Интересно, в это случае они (А6 А7) на вход работают как АЦП, Что 0в или 4.2в (до5в) контроллер видит число от 0-1024, видимо дело в другом.
Я выше дополнил что все глюки с АЦП были из-за кривого еепрома. Т.к. изначально я тестировал прошивку без аккумулятора, потом расскоментировал строчки, но видимо еепром не дописался.

Стабилизатор проверять лениво, т.к. от 3.3в все работает стабильно, хотя возможно это совпадение. Т.к. я еще понизил напряжение на преобразователе повышающем.
 

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
что все глюки с АЦП были из-за кривого еепрома. Т.к. изначально я тестировал прошивку без аккумулятора
Вот оно что, ты не писал, что тестировал от БП, без акб. У меня четко работает чисто от АКБ, даже если подключаю зарядку от телефона, начинается цветомузыка фантомы глюки и т д. Думаю скорее всего это от внешнего БП проблемы.
 

стасян

✩✩✩✩✩✩✩
8 Сен 2019
33
4
1) По какой схеме подключение? 2) Работает ли помпа напрямую (от 5в или через повышайку Более 5в). Если через повышайку проверить подав 5 в на повышайку и включить помпу. 3) На всякий случай, проверь ток потребления помпы на прямую, и через повышайку, вдруг брак помпы, межвитковое замыкание и там большие токи, идет просадка напряжения. Ну и последнее, если на транзисторе сделан ключ, проверь этот кусок отдельно, может транзистор полу дохлый, подай на затвор (через резистор как на схеме) 5В от БП, имитация логической единицы, включение помпы, можно повесить после полевика какую либо нагрузку, и так от ардуины до помпы проверяя напряжения по цепи до помпы. Удачи.
схема 1. напрямую помпа работает(проверил 2 шт.). через повышайку тоже. при включении налива,ток на помпу 3.90,при ожидании 4.30,но при наливе,после транзистора 0.0. повышайка накручена на 5.0
 

Anatolyj

★✩✩✩✩✩✩
30 Янв 2020
134
16
схема 1. напрямую помпа работает(проверил 2 шт.). через повышайку тоже. при включении налива,ток на помпу 3.90,при ожидании 4.30,но при наливе,после транзистора 0.0. повышайка накручена на 5.0
Если преобразователь дает 5, а ток на помпу 3.90 что-то мало! Где-то наверно просадка.
 

стасян

✩✩✩✩✩✩✩
8 Сен 2019
33
4
Если преобразователь дает 5, а ток на помпу 3.90 что-то мало! Где-то наверно просадка.
получается,5.0 как только включил аппарат,от ардуино до транзистора 5.0,включаю налив,просаживается до 3.90. после этого,от ардуино до транзистора 4.30 постоянно.
 

ZerGint

★✩✩✩✩✩✩
13 Дек 2020
19
10
схема 1. напрямую помпа работает(проверил 2 шт.). через повышайку тоже. при включении налива,ток на помпу 3.90,при ожидании 4.30,но при наливе,после транзистора 0.0. повышайка накручена на 5.0
У меня была проблема чем то похожая. Без помпы все нормально. Напряжения на вход помпы подавались какие нужно. Но когда помпа физически была подключена, то просаживалось напряжение и помпа заводится не хотела. В итоге по совету на форуме замена транзистора (IRF830) на другой решила проблему (поставил IRL2505). Видимо первый почему-то не полностью открывал канал.
 
  • Лойс +1
Реакции: стасян

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
схема 1. напрямую помпа работает(проверил 2 шт.). через повышайку тоже. при включении налива,ток на помпу 3.90,при ожидании 4.30,но при наливе,после транзистора 0.0. повышайка накручена на 5.0
Так дружок, включай видео или ищи в нете, что такое и как меряется ток (Амперы). В любом случае, у тебя идет просадка по напряжению на полевике, меняй транзистор и проверь резистор 10кОм между затвором и стоком (крайние ноги). Но одно точно, ключ не работает.

получается,5.0 как только включил аппарат,от ардуино до транзистора 5.0,включаю налив,просаживается до 3.90. после этого,от ардуино до транзистора 4.30 постоянно.
Я выдираю полевики из старых материнок. (Токи огромные, заведомо рабочие, да и фирмовые), и халява
 
  • Лойс +1
Реакции: стасян

стасян

✩✩✩✩✩✩✩
8 Сен 2019
33
4
Я выдираю полевики из старых материнок. (Токи огромные, заведомо рабочие, да и фирмовые), и халява
транзистор,который по схеме,заказывал пачку,на первую сборку вытащил из пачки,работал,сейчас попробовал 5 шт.подряд и на 6-й раз поставил рандомный,выпаяный из старой платы. работает система.

Есть у меня еще один вопрос. Дисплей стоит 128x64 I2C ssd1306. Мне нужно менять цифру,в зависимости от дисплея или нет?
 

Вложения

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
@стасян, там выше ведь написано, для ssd1306 цифра должна быть 0
Насчёт мосфета, похоже либо был не рабочий, либо какой-то "китайский". В шапке есть список подходящих мосфетов. Лучше тот, у которого RDS on меньше
 
  • Лойс +1
Реакции: стасян

Шурупчик

★✩✩✩✩✩✩
10 Фев 2020
177
43
транзистор,который по схеме,заказывал пачку,на первую сборку вытащил из пачки,работал,сейчас попробовал 5 шт.подряд и на 6-й раз поставил рандомный,выпаяный из старой платы. работает система.
Поздравляю, совместными усилиями сделали доброе дело, в очередной раз подвел "китайский ГОСТ", мать его! А про амперы, как мерять, все же прочти.
 
  • Лойс +1
Реакции: стасян

Anatolyj

★✩✩✩✩✩✩
30 Янв 2020
134
16
схема 1. напрямую помпа работает(проверил 2 шт.). через повышайку тоже. при включении налива,ток на помпу 3.90,при ожидании 4.30,но при наливе,после транзистора 0.0. повышайка накручена на 5.0
Сейчас собираю наливатор танк с мп3 плеером и LCD экраном. Так вот спаял все. Стал включать. при включении мп3 плеера экран тускнел, серво работала хаотично, звук хрипел. Стал мерить напряжение и выяснил, что оно с 5,2 вольт просаживалось до 3,9 вольт. Пересобрал почти все (заменил провода на силиконовые и большим сечением). Все тоже самое было. Питалось от одной банки лития высокотоковой). Подключил лабораторный блок питания. Повторилось тоже самое. Минусовые провода я брал с входа преобразователя. Что я сделал. Я взял и запаял все минуса (помпы, плеера и сервы напрямую от АКБ. Сейчас все работает идеально.
Да и еще собирал до этого наливатор другу тоже мучился не работала помпа через мосфет. Замена мосфета тогда помогла.
 
  • Лойс +1
Реакции: стасян

стасян

✩✩✩✩✩✩✩
8 Сен 2019
33
4
Поздравляю, совместными усилиями сделали доброе дело, в очередной раз подвел "китайский ГОСТ", мать его! А про амперы, как мерять, все же прочти.
Я обязательно уделю амперам время.
Ещё раз,всем спасибо.
Для изучения чего либо,слишком мало времени,когда под боком двое маленьких детей,приходиться постоянно отвлекаться. Вот и приходиться искать помощи здесь.
 

MendeleevMaks

✩✩✩✩✩✩✩
23 Дек 2020
34
6
Сейчас собираю наливатор танк с мп3 плеером и LCD экраном. Так вот спаял все. Стал включать. при включении мп3 плеера экран тускнел, серво работала хаотично, звук хрипел. Стал мерить напряжение и выяснил, что оно с 5,2 вольт просаживалось до 3,9 вольт. Пересобрал почти все (заменил провода на силиконовые и большим сечением). Все тоже самое было. Питалось от одной банки лития высокотоковой). Подключил лабораторный блок питания. Повторилось тоже самое. Минусовые провода я брал с входа преобразователя. Что я сделал. Я взял и запаял все минуса (помпы, плеера и сервы напрямую от АКБ. Сейчас все работает идеально.
Да и еще собирал до этого наливатор другу тоже мучился не работала помпа через мосфет. Замена мосфета тогда помогла.
Здравствуйте. А вы собирали наливатор из соседней ветки от Похабыча? А то вот тоже думаю собрать, но не нашел ни одного комментария от людей у кого все работает и без глюков! И еще где-то видел от Вас сообщение, что вы собрали два экземпляра с шаговыми двигателями и собственно вопрос: какие драйвера использовались? А то мне пока так и не удалось наладить работоспособность на TMC 2208v3.0, а на TMC 2208v1.2 все работает!
 
Изменено:

Anatolyj

★✩✩✩✩✩✩
30 Янв 2020
134
16
Здравствуйте. А вы собирали наливатор из соседней ветки от Похабыча? А то вот тоже думаю собрать, но не нашел ни одного комментария от людей у кого все работает и без глюков! И еще где-то видел от Вас сообщение, что вы собрали два экземпляра с шаговыми двигателями и собственно вопрос: какие драйвера использовались? А то мне пока так и не удалось наладить работоспособность на TMC 2208v3.0, а на TMC 2208v1.2 все работает!
Да из соседней ветки от Похабыча я собирал на шаговом двигателе 28YBJ-48 c ним в комплекте идет свой драйвер. А сейчас собираю наливатор с другого форума.
Все ну почти все глюки связаны с питанием. А наливатор с светодиодными кольцами, тостами, динамиками, моторами очень требователен к питанию.
 
Изменено: