ARDUINO Наливатор. Обсуждение проекта

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
нет. немножко не так. Нужна задержка после постановки стакана и перед движением сервы, а не остановкой и наливанием. Чтобы после установки стакана руку успевать убрать. А то знаете ли, с трезву еще так сяк, а после н ного количества выпитого реакция уже не та :)
да, ссори, немного не понял. Тогда поставьте задержку после

systemState = MOVING; // режим - движение
shotStates[curPumping] = IN_PROCESS; // стакан в режиме заполнения

в этом месте задержка будет перед движением сервопривода
так же можно запретить приводу после последней налитой рюмки двигаться в домашнее положение в автоматическом режиме. Думаю может оказаться нужным после нескольких рюмок. В том же файле вместо
if (noGlass) { // если не нашли ни одной рюмки
servoON();
servo.setTargetDeg(0); // цель серво - 0
if (servo.tick()) { // едем до упора
servoOFF(); // выключили серво
systemON = false; // выключили систему
DEBUG("no glass");
//timeoutReset();
}
}


замените на:
if (noGlass) { // если не нашли ни одной рюмки
if(workMode){
servoOFF(); // выключили серво
systemON = false; // выключили систему
DEBUG("no glass");
}
else {
servoON();
servo.setTargetDeg(0); // цель серво - 0
if (servo.tick()) { // едем до упора
servoOFF(); // выключили серво
systemON = false; // выключили систему
DEBUG("no glass");
}
}
}
 
Изменено:

renby

★✩✩✩✩✩✩
5 Янв 2020
58
11
да, ссори, немного не понял. Тогда поставьте задержку после

systemState = MOVING; // режим - движение
shotStates[curPumping] = IN_PROCESS; // стакан в режиме заполнения

в этом месте задержка будет перед движением сервопривода
так же можно запретить приводу после последней налитой рюмки двигаться в домашнее положение в автоматическом режиме. Думаю может оказаться нужным после нескольких рюмок. В том же файле вместо
if (noGlass) { // если не нашли ни одной рюмки
servoON();
servo.setTargetDeg(0); // цель серво - 0

замените на:
if (noGlass) { // если не нашли ни одной рюмки
if(!workMode){
servoON();
servo.setTargetDeg(0); // цель серво - 0
}
Что то не работает. Серва вообще не включается
 

YmitY

✩✩✩✩✩✩✩
18 Дек 2019
14
2
Тут уже писали про это. Когда я собрал свой, то понял в чем дело. В оригинальном проекте и скечах сделано: серва стоит осью вниз, а кто то делает осью вверх, соответсвенно направление наоборот
Вы конечно меня простите но я не услышал решения проблемы ! Серва как в оригинале осью вниз у меня стоит .
 

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
Вы конечно меня простите но я не услышал решения проблемы ! Серва как в оригинале осью вниз у меня стоит .
Странно, не знал, что сервы бывают инвертированны. Проблема решается заменой всех
servo.setTargetDeg(0);
на
servo.setTargetDeg(180);
Если я правильно понял вашу проблему
 
  • Лойс +1
Реакции: YmitY

medwed

★✩✩✩✩✩✩
12 Дек 2019
8
27
У меня одна серва из трёх крутилась в другую сторону. Просто поменял порядок углов.
Мне не было разницы слева направо или справа налево крутить.
 

YmitY

✩✩✩✩✩✩✩
18 Дек 2019
14
2
Странно, не знал, что сервы бывают инвертированны. Проблема решается заменой всех
servo.setTargetDeg(0);
на
servo.setTargetDeg(180);
Если я правильно понял вашу проблему
Да вы знаете серва теперь паркуется справа но первая рюмка наливается третьей , то есть ставлю рюмку на первый концевик а серва едет на третью . Помогите побороть !
 

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
Да вы знаете серва теперь паркуется справа но первая рюмка наливается третьей , то есть ставлю рюмку на первый концевик а серва едет на третью . Помогите побороть !
Нужно в правильном порядке указать углы для каждой рюмки вот тут:

// положение серво над центрами рюмокconst byte shotPos[] = {25, 60, 95, 145, 60, 60}; // угол для первой, второй, третьей, ... рюмки

Если уверенны, что там всё правильно, значит порядок концевиков неправильный. Изменить можно тут:

const byte SW_pins[] = {A0, A1, A2, A3, A4, A5}; // концевик для первой, второй, ... рюмки
 
  • Лойс +1
Реакции: YmitY

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
@ShONik, Д в общем то вся схема в сообщении #561. На модуле есть выходы с первых 8 сенсоров. Их подключаете к Ардуино вместо концевиков. Прошивку для них изменять не нужно, так как это просто замена стандартным концевикам
 

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
@YmitY, кстати. У меня вот домашнее положение тоже не на 0 градусов и с прошивкой от Алекса проблема в этом случае. Если после старта поставить рюмку номер 1 (которая у меня на 180 градусах) налить её в ручном режиме, убрать. Потом если через некоторое время до срабатывания таймаута поставить снова рюмку номер 1, то после нажатия на кнопку ничего не будет происходить. Но если поставить рюмку на любое другое место, то серво сразу же поедет туда без нажатия на кнопку. Баг вроде не страшный, но меня сильно бесил. Проблема оказалась в библиотеке servoSmooth. Решил. Если у Вас такое тоже наблюдается и бесит, могу написать решение.
 
Изменено:

aaa

✩✩✩✩✩✩✩
4 Янв 2020
6
0
Можно ли увеличить производительность помпы? Если да, то как
 

YmitY

✩✩✩✩✩✩✩
18 Дек 2019
14
2
@YmitY, кстати. У меня вот домашнее положение тоже не на 0 градусов и с прошивкой от Алекса проблема в этом случае. Если после старта поставить рюмку номер 1 (которая у меня на 180 градусах) налить её в ручном режиме, убрать. Потом если через некоторое время до срабатывания таймаута поставить снова рюмку номер 1, то после нажатия на кнопку ничего не будет происходить. Но если поставить рюмку на любое другое место, то снова сразу же поедет туда без нажатия на кнопку. Баг вроде не страшный, но меня сильно бесил. Проблема оказалась в библиотеке servoSmooth. Решил. Если у Вас такое тоже наблюдается и бесит, могу написать решение.
Да ,Пожалуйста , я новичок в этом ! Буду признателен ! ... и еще если в силах ; при функции " Р " все же серва стает влева а при нажатии на кнопку в режим "А" вправа !?
 

ShONik

★✩✩✩✩✩✩
30 Ноя 2019
53
14
@ShONik, Д в общем то вся схема в сообщении #561. На модуле есть выходы с первых 8 сенсоров. Их подключаете к Ардуино вместо концевиков. Прошивку для них изменять не нужно, так как это просто замена стандартным концевикам
спасибо!
 

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
Можно ли увеличить производительность помпы? Если да, то как
конечно можно. Нужно лишь поставить отдельный повышающий преобразователь отдельно для помпы, выставить нужное напряжение и подключить его к драйверу мотора. Только серводвигатель может сгореть, если напряжение будет выше максимально для него допустимого. Поэтому либо для серво ставить ещё один драйвер двигателя или мосфет либо вообще не подключать серво через драйвер, но тогда он может жужжать иногда.
 

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
@VICLER, А если можно скинуть другую прошивку , попробовать !
можете попробовать вот эту прошивку. Это немного модифицированная версия 1.2 от Aлекса.
Из модификаций:
  • устранён баг, в котором помпа продолжала качать, если рюмку убрать во время налива (баг устранён в версии 1.3 от Алекса, так что по сути это и есть версия 1.3, так как других изменений там не заявлено)
  • прокачка только над определённой рюмкой и только если она стоит. Номер рюмки (не пин концевика!) указывается в файле GyverDrink_v1.2.ino: #define PUMPING_SHOT ...
  • установка домашней позиции #define HOME_POS ... (указывается угол серво)
  • отображение текущего объёма во время налива
  • убраны буквы для отображения режима (если автоматический - горит двоеточие)
  • объём на дисплее отображается по центру
  • объём сохраняется в EEPROM после каждого изменения (у Алекса сохранение происходит после таймаута в 15 секунд бездействия системы)
  • в автоматическом режиме краник остаётся над последней налитой рюмкой (в ручном возвращается в домашнее положение)
  • радужная подсветка и анимация на дисплее при первом включении :D
 
Изменено:

aaa

✩✩✩✩✩✩✩
4 Янв 2020
6
0
конечно можно. Нужно лишь поставить отдельный повышающий преобразователь отдельно для помпы, выставить нужное напряжение и подключить его к драйверу мотора. Только серводвигатель может сгореть, если напряжение будет выше максимально для него допустимого. Поэтому либо для серво ставить ещё один драйвер двигателя или мосфет либо вообще не подключать серво через драйвер, но тогда он может жужжать иногда.
А если поставить отдельный повышающий преобразователь на входе питания помпы т.е. после драйвера, что бы не перегружать серво? Заранее спасибо!
 

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
А если поставить отдельный повышающий преобразователь на входе питания помпы т.е. после драйвера, что бы не перегружать серво? Заранее спасибо!
В принципе думаю можно, но есть один ньюанс. При включении драйвера на клеммах для двигателя будет напряжение 5в с первого преобразователя. Если хотите подключить второй, нужно минус второго подключать к плюсу на клемме для помпы, тогда напряжение на помпу суммируется от двух преобразователей. Но!! Так как земли у двух преобразователей общие, такое подключение приведёт к КЗ. Возможно будет работать, если ставить либо отдельный аккумулятор с преобразователем, либо отдельный источник питания. Проще наверное использовать второй преобразователь и ключ на мосфете.
Или ещё как вариант можно использовать реле, которое будет управляться с выхода драйвера.
 

aaa

✩✩✩✩✩✩✩
4 Янв 2020
6
0
В принципе думаю можно, но есть один ньюанс. При включении драйвера на клеммах для двигателя будет напряжение 5в с первого преобразователя. Если хотите подключить второй, нужно минус второго подключать к плюсу на клемме для помпы, тогда напряжение на помпу суммируется от двух преобразователей. Но!! Так как земли у двух преобразователей общие, такое подключение приведёт к КЗ. Возможно будет работать, если ставить либо отдельный аккумулятор с преобразователем, либо отдельный источник питания. Проще наверное использовать второй преобразователь и ключ на мосфете.
Или ещё как вариант можно использовать реле, которое будет управляться с выхода драйвера.
Ничего не понял, при чем здесь два преобразователя. Я говорил об одном преобразователе, но не перед драйвером а после, т.е непосредственно перед потребителем.
 

VICLER

★★★★★★✩
9 Дек 2019
801
662
Hamburg
Ничего не понял, при чем здесь два преобразователя. Я говорил об одном преобразователе, но не перед драйвером а после, т.е непосредственно перед потребителем.
не обращайте внимания на первый преобразователь, я почему-то подумал о версии с аккумулятором.
ещё я почему-то подумал насчёт последовательного подключения преобразователя к драйверу( мозг отключается под вечер). В общем, если на выход драйвера мотора поставите повышающий преобразователь - всё будет работать:)