Ветка обсуждения проекта Наливатор.
Видео:
Делитесь своими вариантами изготовления, модификациями и улучшениями!
Видео:
Делитесь своими вариантами изготовления, модификациями и улучшениями!
Изменено:
проверьте настройки в скетче@norem, Спасибо за консультацию ) схема стандартная библиотеки тоже(может правда устарели) но поведение сервы и диодов в хаотичном порядке . буду подбирать библиотеки по новее может и запустится )
вот код с использованием ServoSmooth и выводом на дисплей вылитого объёма во время прокачки:VICLER, ещё раз огромнейшее СПАСИБО.
недочетик скорей к механике - тобиш ко мне .
а скорость сервы в момент выезда- заезда для прокачки можно где то убавить , а то шторку аж срывает .
а так ,зачетно, даже можно сказать доп фича - ставь куда хочеш , наливай сколько хочеш - жалко только не считает
спасибо.
void btnTick() {
if (btn.holded()) {
timeoutReset();
workMode = !workMode;
dispMode();
}
if (encBtn.holding()) {
int8_t pumpingShot = -1;
if (!workMode) { // в ручном режиме ищем рюмку
for (byte i = 0; i < NUM_SHOTS; i++) { // поиск наличия рюмки
if (!digitalRead(SW_pins[i])) { // нашли рюмку
servoON();
servo.attach(SERVO_PIN);
servo.setTargetDeg(shotPos[i]);
pumpingShot = i;
}
}
if (pumpingShot == -1) return; // нет рюмок -> нет прокачки, ищем заново ^
while (!servo.tick()); // едем к рюмке
delay(300); // небольшая задержка перед наливом
}
else if(systemState != PUMPING) return;
else pumpingShot = curPumping;
pumpON(); // включаем помпу
timerMinim timer100(100);
int pumpVolume = 0;
while (!digitalRead(SW_pins[pumpingShot]) && !digitalRead(ENC_SW)) // пока стоит рюмка и зажат энкодер, продолжаем наливать
{
if (timer100.isReady()) {
pumpVolume += round(100 * 50.0 / time50ml);
disp.displayInt(pumpVolume);
}
}
pumpOFF();
delay(300);
servo.setTargetDeg(0);
while (!servo.tick()); // едем назад в нулевое положение
servoOFF();
servo.detach();
timeoutReset();
if (workMode) systemState = WAIT;
}
}
У меня тоже ваша прошивка отказалась работать.поведение сервы и диодов в хаотичном порядке .проверьте настройки в скетче
const byte shotPos[] = {34, 72, 113, 153, 0, 0}; //положение серво над центрами рюмок
const byte SW_pins[] = {A3, A2, A1, A0, 2}; //подключение концвиков
servo.setSpeed(8);
servo.setAccel(0.1);
как вариант скопировать эти данные с вашей предыдущей прошивки
И покажите видео как ведет себя блок, можно в лс
const byte SW_pins[] = {A3, A2, A1, A0, 2};
const byte SW_pins[] = {A0, A1, A2, A3, A4, A5};
Спс, сейчас попробую@kostyaskv,
в этой прошивке подключение датчиков не такое, как у Алекса. Для правильной работы нужно в файле GyverDrink.ino заменить
const byte SW_pins[] = {A3, A2, A1, A0, 2};
на
const byte SW_pins[] = {A0, A1, A2, A3, A4, A5};
блин , ели разобрался что где ...вот код с использованием ServoSmooth и выводом на дисплей вылитого объёма во время прокачки:
для корректной работы в сервисном режиме требуется добавить одну переменную в GyverDrink.ino(после переменных, которые там уже прописанны):
bool service = false;
а так же присвоить этой переменной true, когда вошли в сервис режим, и false, когда вышли:
C-like:void serviceMode() { if (!digitalRead(BTN_PIN)) { service = true; ... ... ... service = false; }
C-like:void btnTick() { if (btn.holded()) { timeoutReset(); workMode = !workMode; dispMode(); } if (encBtn.holded()) { int8_t pumpingShot = -1; for (byte i = 0; i < NUM_SHOTS; i++) { // поиск наличия рюмки if (!digitalRead(SW_pins[i])) { // нашли рюмку servoON(); servo.attach(SERVO_PIN); servo.setTargetDeg(shotPos[i]); pumpingShot = i; } } if (pumpingShot == -1) return; // нет рюмок -> нет прокачки, ищем заново ^ while (!servo.tick()); // едем к рюмке delay(300); // небольшая задержка перед наливом pumpON(); // включаем помпу timerMinim timer100(100); int pumpVolume = 0; while (!digitalRead(SW_pins[pumpingShot]) && !digitalRead(ENC_SW)) // пока стоит рюмка и зажат энкодер, продолжаем наливать { if (!service) { if (timer100.isReady()) { pumpVolume += round(100 * 50.0 / time50ml); disp.displayInt(pumpVolume); } } } pumpOFF(); dispMode(); delay(300); servo.setTargetDeg(0); while (!servo.tick()); // едем назад в нулевое положение servoOFF(); servo.detach(); timeoutReset(); systemState = WAIT; } }
Почему-то выдает ошибка архива!Добрый день. Немного переписал код алекса версии 1.5, добавив туда много замечательных функций сделанных нашим сообществом, за что хочу сказать им огромное спасибо.
Наливатор сделан по схеме Алекса на 4 стопки.
1. Добавлена светодиодная анимация включения.
2. Добавлена случайная анимация семисегментного экрана
3. Добавлена анамация после наполнения емкостей.
4. В процессе налива изменяется цвет стопки от оранжевого до зеленого
5. Индикация разлитой жидкости в мл после каждого налива
6. Прокачка в нужную стопку. Позиция стопки описывается в переменных. Таймаут включения увеличен до 3 сек.
7. Добавлены задержки перед наливом и движением сервы
8. Добавлен режим для девочек. Установка нужных позиций при кручении зажатым энкодером
9. Отображение на экране количества наливаемой жидкости
Еще раз хочу сказать спасибо друзьям без которых не получилось бы столь замечательного проекта. AlexGyver, VICLER, RomaT, Levonti, Старик Похабыч, и др
Наливатор
Вот здесь о ней говорили@TimicH, модифицированная 1.2 от Алекса это версия 1.3 от него же?
Спасибо, поздно прочитал совет... Вообщем поменял все светодиоды не помогло, затем поставил другую nano и все светодиоды загорелись))@Sipkomax, Возьми любой пример из библиотек Фастлед, микролед , поствь свой пин, и измени число светодиодов на 5. Если все спаяно верно , то все 5 должны светиться
я, кстати, продолжил её модифицировать) Тут можно попробовать: Github
Попробовал, класс!я, кстати, продолжил её модифицировать) Тут можно попробовать: Github
провел много изменений. Проверьте у кого не открывалось и работало некорректно
Наливатор сделан по схеме Алекса
В прошивке нет поддержки шагового двигателя и ОЛЕД дисплея!
1. Добавлена светодиодная анимация включения
2. Добавлена случайная анимация семисегментного экрана
3. Добавлена анимация после наполнения емкостей.
4. В процессе налива изменяется цвет стопки от оранжевого до зеленого
5. Индикация разлитой жидкости в мл после каждого налива
6. Прокачка в нужную стопку. Позиция стопки описывается в переменных(PUMPING_SHOT).
7. Добавлены задержки перед наливом и движением сервопривода
8. Добавлен режим для девочек. Установка нужных позиций при кручении зажатым энкодером
9. Отображение на экране количества наливаемой жидкости
провел много изменений. Проверьте у кого не открывалось и работало некорректно
Наливатор сделан по схеме Алекса
В прошивке нет поддержки шагового двигателя и ОЛЕД дисплея!
1. Добавлена светодиодная анимация включения
2. Добавлена случайная анимация семисегментного экрана
3. Добавлена анимация после наполнения емкостей.
4. В процессе налива изменяется цвет стопки от оранжевого до зеленого
5. Индикация разлитой жидкости в мл после каждого налива
6. Прокачка в нужную стопку. Позиция стопки описывается в переменных(PUMPING_SHOT).
7. Добавлены задержки перед наливом и движением сервопривода
8. Добавлен режим для девочек. Установка нужных позиций при кручении зажатым энкодером
9. Отображение на экране количества наливаемой жидкости
Как по схеме = один конец на минус - второй на драйвер, перепроверил еще раз@Мисье Уй, а помпа как управляется помпа ? какая схема ?