Наливатор - автоматизированная машина, которая будет разливать алкоголь по стопкам.

yrbasik
Offline
Зарегистрирован: 22.04.2020

Серво калибрует в обе стороны

raven78
Offline
Зарегистрирован: 03.11.2019

Какой у Вас энкодер? Попробовать во вкладке Nalivator20  найти строку

Encoder enc(CLK, DT, SW, TYPE2);

заменить на

Encoder enc(CLK, DT, SW, TYPE1);

 

 

yrbasik
Offline
Зарегистрирован: 22.04.2020

Разобрался!!! По ошибке убрал //  в строке 9

//#define MEMORY_ON // включение запись параметров в память, закомментировать - выключить для отладки

Всё заработало.

Acket
Offline
Зарегистрирован: 23.07.2019
Gridzilla
Offline
Зарегистрирован: 25.10.2019

Кто использует ТР223, перемычки какие-то запаивали? Должны на днях приехать сами датчики и микросхемки. Тоже перепаять хочу.

yrbasik
Offline
Зарегистрирован: 22.04.2020

Никаких перемычек не ставил, датчик заработал сразу.

Acket
Offline
Зарегистрирован: 23.07.2019

перемычки нужны либо для смены полярности сигнала срабатывания, либо для переключения режима с кнопки на включатель с сохранением состояния до повторного нажатия (триггер)... Для этого проекта перемычки не нужны, а вот микросхемы, скорее всего заменить придётся...

raven78
Offline
Зарегистрирован: 03.11.2019

Экспериментировал с обратными клапанами. От аквариума, если  уровень жижи выше носика наливатора, то есть не значительный тёк, капля собирается и в итоге капает.

Самым удачным вариантом оказался клапан стеклоочистителя тойота

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

Обновил скетч, добавлена доп-лед-лента и сенсорная кнопка ТР223 в башне, данные опции отключаемые в скетче. Двойной клик по кнопке на башне в меню автоналива и мультиналива, начинается разлив, долгое удержание кнопки на башне и клик в это время энкодером, запуск промывки, это чтобы долго не лазить по настройкам. Добавлены звуки, на некоторые события наливатора, в архиве папка с mp3, её поместить в корень флешки. Ещё мелкие правки.  Исходники  печатных моделей,тоже обновил.

Encoder
Offline
Зарегистрирован: 22.12.2019

сеня глянул датчик купленный тут

https://aliexpress.ru/item/32962993969.html?spm=a2g0s.9042311.0.0.365333...

 

норм работает около часа стоял без перебоев

Encoder
Offline
Зарегистрирован: 22.12.2019

raven78 пишет:

Экспериментировал с обратными клапанами. От аквариума, если  уровень жижи выше носика наливатора, то есть не значительный тёк, капля собирается и в итоге капает.

Самым удачным вариантом оказался клапан стеклоочистителя тойота

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

Обновил скетч, добавлена доп-лед-лента и сенсорная кнопка ТР223 в башне, данные опции отключаемые в скетче. Двойной клик по кнопке на башне в меню автоналива и мультиналива, начинается разлив, долгое удержание кнопки на башне и клик в это время энкодером, запуск промывки, это чтобы долго не лазить по настройкам. Добавлены звуки, на некоторые события наливатора, в архиве папка с mp3, её поместить в корень флешки. Ещё мелкие правки.  Исходники  печатных моделей,тоже обновил.

очень здоровский наливатор у Вас вышел! А Можно еще модельку носика?

Encoder
Offline
Зарегистрирован: 22.12.2019

raven78 пишет:

Экспериментировал с обратными клапанами. От аквариума, если  уровень жижи выше носика наливатора, то есть не значительный тёк, капля собирается и в итоге капает.

Самым удачным вариантом оказался клапан стеклоочистителя тойота

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

Обновил скетч, добавлена доп-лед-лента и сенсорная кнопка ТР223 в башне, данные опции отключаемые в скетче. Двойной клик по кнопке на башне в меню автоналива и мультиналива, начинается разлив, долгое удержание кнопки на башне и клик в это время энкодером, запуск промывки, это чтобы долго не лазить по настройкам. Добавлены звуки, на некоторые события наливатора, в архиве папка с mp3, её поместить в корень флешки. Ещё мелкие правки.  Исходники  печатных моделей,тоже обновил.

очень здоровский наливатор у Вас вышел! А Можно еще модельку носика?

raven78
Offline
Зарегистрирован: 03.11.2019

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

Encoder
Offline
Зарегистрирован: 22.12.2019

raven78 пишет:

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

 

ну тож интересно же попробовать, если что переделаем под микрики))) с ними вообще проблем не должно быть...

на tcrt5000 датчиках тоже глюков хватает )))

raven78
Offline
Зарегистрирован: 03.11.2019

Encoder пишет:

 А Можно еще модельку носика?

Вот два вида.  Первый вариант под стандартную качельку серво, но вроде подправить надо по аналогии со второй, но и так всё нормально, только сложно собирать будет. Вторая под другую качельку серво более массивную, у меня пришла такая новая, вот и делал второй вариант. В  трубку нужно будет просунуть шланг идущий от помпы, шланг примерно 6 мм снаружи или тоньше, как пойдёт.

Encoder
Offline
Зарегистрирован: 22.12.2019

raven78 пишет:

Encoder пишет:

 А Можно еще модельку носика?

Вот два вида.  Первый вариант под стандартную качельку серво, но вроде подправить надо по аналогии со второй, но и так всё нормально, только сложно собирать будет. Вторая под другую качельку серво более массивную, у меня пришла такая новая, вот и делал второй вариант. В  трубку нужно будет просунуть шланг идущий от помпы, шланг примерно 6 мм снаружи или тоньше, как пойдёт.

Огромное спасибо! ))

Acket
Offline
Зарегистрирован: 23.07.2019

какой из датчиков - там их 3 разновидности

Acket
Offline
Зарегистрирован: 23.07.2019

Круто! Лента получается, на отдельный пин посажена, не на один со стопками? 

Вот ещё хотел спросить - можно сделать регулируемым максимальный объём, чтобы можно было задать, скажем 100мл, а потом бы он уже автоматически дробился?

Gridzilla
Offline
Зарегистрирован: 25.10.2019

raven78 пишет:

Добавил диодов в башню, пущай сверкает)))  https://youtu.be/AGR2if2fc1U

Подскажи, как сделал чтобы отключалось, если поднять стопку во время налива? 

yct9
Offline
Зарегистрирован: 27.11.2015

Gridzilla пишет:

raven78 пишет:

Добавил диодов в башню, пущай сверкает)))  https://youtu.be/AGR2if2fc1U

Подскажи, как сделал чтобы отключалось, если поднять стопку во время налива? 

int delay_my(int time_delay, byte pin_no) {
  int i = 0;
  while (i < time_delay) {
    if ((pin_no != 255/*для ручного режима*/) && (digitalRead(pin_no) == LOW)) return 0;
    delay(50);
    i = i + 50;
  }
  return 1;
}

void pump_timer(byte Drink, byte pin_no) {
  digitalWrite(PIN_PUMP, 1); //вкл реле
 delay_my(map(Drink, min_Drink,  max_Drink, min_Drink_delay, max_Drink_delay), pin_no);
  digitalWrite(PIN_PUMP, 0); //выкл реле
  delay(1000); //анти капли
}

В loop вызываем 
pump_timer(Drink, sw[y]); // Налив. автм.
pump_timer(Drink, 255); //для ручного режима  

 

raven78
Offline
Зарегистрирован: 03.11.2019

Acket пишет:

Круто! Лента получается, на отдельный пин посажена, не на один со стопками? 

Вот ещё хотел спросить - можно сделать регулируемым максимальный объём, чтобы можно было задать, скажем 100мл, а потом бы он уже автоматически дробился?

Да доплента на отдельном пине и кнопка в башне тоже, пришлось для кнопки использовать пин com порта, пинов не хватает уже))))

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

Acket
Offline
Зарегистрирован: 23.07.2019

Ух, как оперативно! Спасибо! На отдельном пине лента даже удобнее.

Encoder
Offline
Зарегистрирован: 22.12.2019

Acket пишет:

какой из датчиков - там их 3 разновидности


Красный

Acket
Offline
Зарегистрирован: 23.07.2019
void kalibr_pump(uint8_t subPump) {
  if (subPump == 0) {
    lcd.clear();
    lcd.setCursor(1, 0);
    print_lcd(63);//  НАЛИВ 50ml ЗА:
    lcd.setCursor(8, 1);
    print_lcd(64);//  мс
    subPump = 1;

Калибровка будет проводится по 50мл? Может как-то значение указанное в константах сюда можно вставлять? т.е., если указал 95, то и калибровка делается на 95... 

raven78
Offline
Зарегистрирован: 03.11.2019

А смысл? Если откалибруем налив по 50 мл. , то 95 должно само получится в итоге. Этот параметр сделаем один раз и забудем про него.
 

Acket
Offline
Зарегистрирован: 23.07.2019

В принципе, логично. Лишь бы не перелилось выше края потом :)

fantomlds
Offline
Зарегистрирован: 27.04.2020

мой вариант такой

Gridzilla
Offline
Зарегистрирован: 25.10.2019

yct9 пишет:

int delay_my(int time_delay, byte pin_no) {
  int i = 0;
  while (i < time_delay) {
    if ((pin_no != 255/*для ручного режима*/) && (digitalRead(pin_no) == LOW)) return 0;
    delay(50);
    i = i + 50;
  }
  return 1;
}

void pump_timer(byte Drink, byte pin_no) {
  digitalWrite(PIN_PUMP, 1); //вкл реле
 delay_my(map(Drink, min_Drink,  max_Drink, min_Drink_delay, max_Drink_delay), pin_no);
  digitalWrite(PIN_PUMP, 0); //выкл реле
  delay(1000); //анти капли
}

В loop вызываем 
pump_timer(Drink, sw[y]); // Налив. автм.
pump_timer(Drink, 255); //для ручного режима  

Понял, спасибо огромное! До компьютера доберусь вечером, попробую. 

Только еще один вопрос можно для понимания, так сказать. pump_timer(Drink, sw[y]); - sw - Это что? 

Gridzilla
Offline
Зарегистрирован: 25.10.2019

Потихоньку вникаю. SW - это вместо оптодатчиков? В конце у вас, где опрос концевиков, так? 

if (currentTime >= (ledTime + 300)) {
  for (int i = 0; i < max_DrinkCount; i++) {
    if (digitalRead(Sw[i]) == LOW) { // считываем значение
      strip.setPixelColor(i, strip.Color(0, 0, 255));
    } else {
      strip.setPixelColor(i, strip.Color(0, 0, 0));
    }
  }
  strip.show();
  ledTime = currentTime;
}

Просто у меня там иначе 

const unsigned int Optics_porog[] = {1000, 1000, 1000, 1000, 1000};

// Работа оптодатчиков
    if (currentTime >= (ledTime + 300)) {
      for (int i = 0; i < max_DrinkCount; i++) {
        int val = analogRead(Optics[i]);     // считываем значение
        if (val > Optics_porog[i]) {
          strip.setPixelColor(i, strip.Color(0, 0, 255));
   } else {
          strip.setPixelColor(i, strip.Color(0, 0, 0));
  }
}
      strip.show();
      ledTime = currentTime;
    }

Заменить sw[y] на Optics[у] ? Тогда вот тут if ((pin_no != 255/*для ручного режима*/) && (digitalRead(pin_no) == LOW)) что прописать? Не пинайте, учусь :)) 

Gridzilla
Offline
Зарегистрирован: 25.10.2019

Разобрался. 

int delay_my(int time_delay, byte pin_no) {
  int i = 0;
  while (i < time_delay) {
    if ((pin_no != 255) && (analogRead(pin_no) > 1000)) return 0;
    delay(50);
    i = i + 50;
  }
  return 1;
}


void pump_timer(byte Drink, byte pin_no) {
  digitalWrite(PIN_PUMP, 1); //вкл реле
 delay_my(map(Drink, min_Drink,  max_Drink, min_Drink_delay, max_Drink_delay), pin_no);
  digitalWrite(PIN_PUMP, 0); //выкл реле
}

А в лупе pump_timer(Drink, Optics[y]);

 

З.Ы. Спасибо! 

Осталось прикрутить мелодию во время отмены налива )) Но пока не получается ((

Дмитрий2020
Offline
Зарегистрирован: 17.01.2020

stpavel пишет:

Клею корпус будущего наливатора


Добрый день, Павел! Подскажи, какие фрезы ты использовал?

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

это не фреза, а лазерная резка

Дмитрий2020
Offline
Зарегистрирован: 17.01.2020

А для фрезеровки дерева какую лучше фрезу использовать?

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

я фанеру 3-6 мм режу кукурузой 2мм. подача 15мм/сек глубина за проход 0,6мм шаг 0,5мм  10000 оборотов. станок cnc3018  

Дмитрий2020
Offline
Зарегистрирован: 17.01.2020

Nikolaj666 пишет:

я фанеру 3-6 мм режу кукурузой 2мм. подача 15мм/сек глубина за проход 0,6мм шаг 0,5мм  10000 оборотов. станок cnc3018  


Спасибо! Я собрал чпу, хочу корпус из дерева)

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

можно разными работать. смотря чего хочешь на выходе. из фанеры используя конструктор коробок достаточно кукурузы. из массива нужна черновая 6мм где-то чтоб большую массу лишнюю убрать. читай в инете

Дмитрий2020
Offline
Зарегистрирован: 17.01.2020

Из массива. Читал, но очень много вариантов. Можно использовать однозаходную?

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017

я однозаходкой тока оргстекло пробовал 

Nikolaj666
Nikolaj666 аватар
Offline
Зарегистрирован: 19.01.2017
Дмитрий2020
Offline
Зарегистрирован: 17.01.2020

Nikolaj666 пишет:

https://mnogofrez.ru/catalog/pryamye-dvukhzakhodnye-seriya-n/freza-pryamaya-dvukhzakhodnaya-djtol-n2zx3-22/  почитай описания. хороший сайт


СПАСИБО))))

Acket
Offline
Зарегистрирован: 23.07.2019

Дмитрий2020][quote=stpavel пишет:

Клею корпус будущего наливатора

 

Симпатично, только на эту рамку фанеры вагон уйдёт в обрезки... Это же пустотелые рамки получаются?

Gridzilla
Offline
Зарегистрирован: 25.10.2019

дел

Gridzilla
Offline
Зарегистрирован: 25.10.2019

Чуть добавил в предложенное от уважаемого yct9 в решении моего вопроса, когда поднимаешь рюмку, чтобы вырубалась помпа. Добавил воспроизведение мп3. Для тех, у кого начальные скетчи с этой темы от Павла

int delay_my(int time_delay, byte pin_no) {
  int i = 0;
  while (i < time_delay) {
    if (analogRead(pin_no) > 1000) {// порог срабатывания датчика под рюмкой. 
          myDFPlayer.playFolder (1, 88); // Хьюстон, у нас проблема
          delay (100);
    }
    if ((pin_no != 255) && (analogRead(pin_no) > 1000)) return 0; { 
    delay(50);
    i = i + 50;
  }
}
  return 1;
}

void pump_timer(byte Drink, byte pin_no) {
  digitalWrite(PIN_PUMP, 1); //вкл реле
  delay_my(map(Drink, min_Drink,  max_Drink, min_Drink_delay, max_Drink_delay), pin_no);
  digitalWrite(PIN_PUMP, 0); //выкл реле
}

А в лупе pump_timer(Drink, Optics[y]); для авто и pump_timer(Drink, 255); для ручного.

Acket
Offline
Зарегистрирован: 23.07.2019

Acket пишет:

Заказал тут https://aliexpress.ru/item/33020496400.html должны на днях прийти. Проверю - отпишусь.

Получил, перепаял - те же яйца, только в профиль... такие же микросхемы, похоже...

Алексин
Offline
Зарегистрирован: 04.05.2020

Encoder пишет:

raven78 пишет:

Экспериментировал с обратными клапанами. От аквариума, если  уровень жижи выше носика наливатора, то есть не значительный тёк, капля собирается и в итоге капает.

Самым удачным вариантом оказался клапан стеклоочистителя тойота

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

Обновил скетч, добавлена доп-лед-лента и сенсорная кнопка ТР223 в башне, данные опции отключаемые в скетче. Двойной клик по кнопке на башне в меню автоналива и мультиналива, начинается разлив, долгое удержание кнопки на башне и клик в это время энкодером, запуск промывки, это чтобы долго не лазить по настройкам. Добавлены звуки, на некоторые события наливатора, в архиве папка с mp3, её поместить в корень флешки. Ещё мелкие правки.  Исходники  печатных моделей,тоже обновил.

очень здоровский наливатор у Вас вышел! А Можно еще модельку носика?


Здравствуйте. Подскажите что я не так делаю? у меня не инициализируются светодиоды и не воспроизводятся треки с флешки хотя в меню при настройке их видно?

raven78
Offline
Зарегистрирован: 03.11.2019

Доброго. По названиям треков надеюсь читали текстовик в архиве, всё правильно сделали, громкость не на нуле?

Что значит не инициализируются диоды не работают вообще? Ленту свою на каком нибудь тестовом скетче проверяли? Какие диоды в башне или под стопками? Поподробней можно? В скетче, что нибудь меняли, типа назначение выводов? Схема точно правильно собрана?

Алексин
Offline
Зарегистрирован: 04.05.2020

здравствуйте. по организации треков и папок читал. В меню наливатора они видны но не воспроизводятся. светодиоды тестил на примере библиотеки ws2812fx все работает. при включении питания наливатора они просто горят все белым цветом.

Алексин
Offline
Зарегистрирован: 04.05.2020

здравствуйте. по организации треков и папок читал. В меню наливатора они видны но не воспроизводятся. светодиоды тестил на примере библиотеки ws2812fx все работает. при включении питания наливатора они просто горят все белым цветом.

Алексин
Offline
Зарегистрирован: 04.05.2020

здравствуйте. по организации треков и папок читал. В меню наливатора они видны но не воспроизводятся. светодиоды тестил на примере библиотеки ws2812fx все работает. при включении питания наливатора они просто горят все белым цветом. светодиоды под стопками пины не переназначал единственное что не ставил блоки повышаек по питанию все питается от 5 вольт пин проверки пит подтянул через резистор 10к к плюсу

Алексин
Offline
Зарегистрирован: 04.05.2020

упс несколько раз ответил сорян

raven78
Offline
Зарегистрирован: 03.11.2019

Тут можно много гадать, нужно перепроверить схему подключения более досконально. Остальное всё работает, во все меню заходит, энкодер не глючит? Ардуино какая, надеюсь не какой нибудь wavgat на 328pb?