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

yac
Offline
Зарегистрирован: 10.12.2019

VICLER пишет:
Да, тоже считаю, что ёмкостные датчики пока самый оптимальный вариант.

А как они реагируют на пролитый алкоголь? Никто не пробовал?

Somon
Offline
Зарегистрирован: 05.12.2019

Как и должны - срабатывают на любую ёмкость, достаточную для преодоления порога. Если крупная капля любой жидкости попадает непосредственно на сенсоную площадку 6х10мм, как и любой другой предмет (шланг с жидкостью, влажная салфетка, тряпка и т.п.), сенсор срабатывает.
Но просто пластиковые стаканы, предметы (даже 1мм толщиной) сухие предметы, вещи, пустые шланги - игнорирует.

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

коллеги, кто делал наливатор из танка ( гипермаркет Леонардо ) , вопрос : там достаточно места для сервы MG995 ????
размер её 20х55х36. отзовитесь, плиз. а то в субботу буду рядом с магазом, не хотелось бы обломаться .

Mairox
Mairox аватар
Offline
Зарегистрирован: 15.01.2020

Привет всем.

У меня, вот, вопрос к Павлу:

Идея такая- две емкости с разным составом ( допустим водка и сэм), две трубки, два насоса или клапана.

Появляется возможность делать коктейли, а в рулетку интереснее розлив получается.

Сам вопрос- есть ли возможность реализовать эту задумку?

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

Mairox пишет:

Привет всем.

У меня, вот, вопрос к Павлу:

Идея такая- две емкости с разным составом ( допустим водка и сэм), две трубки, два насоса или клапана.

Появляется возможность делать коктейли, а в рулетку интереснее розлив получается.

Сам вопрос- есть ли возможность реализовать эту задумку?

Есть

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

Nikolaj666 пишет:
коллеги, кто делал наливатор из танка ( гипермаркет Леонардо ) , вопрос : там достаточно места для сервы MG995 ????
размер её 20х55х36. отзовитесь, плиз. а то в субботу буду рядом с магазом, не хотелось бы обломаться .

Я делал с такой сервой. Только она не в танке, а ниже и крутит башню через втулку, закрепленную на самой серве и башне танка.
https://drive.google.com/folderview?id=166uO6WgajMbTbrsUmt7E5f7ADja-QvTF

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

Gridzilla пишет:
Nikolaj666 пишет:
коллеги, кто делал наливатор из танка ( гипермаркет Леонардо ) , вопрос : там достаточно места для сервы MG995 ????
размер её 20х55х36. отзовитесь, плиз. а то в субботу буду рядом с магазом, не хотелось бы обломаться .

Я делал с такой сервой. Только она не в танке, а ниже и крутит башню через втулку, закрепленную на самой серве и башне танка.
https://drive.google.com/folderview?id=166uO6WgajMbTbrsUmt7E5f7ADja-QvTF

спасибо, вечером изучу

Diglator
Offline
Зарегистрирован: 17.06.2016

Forthomo

Если возможно, пожалуйста, поделитесь своим крайним скетчем для lcd 1602
9112830094@yandex.ru
Заранее спасибо!
Gridzilla
Offline
Зарегистрирован: 25.10.2019

Ткните носом куда прописать, чтобы шаг был не в 1 мл а, допустим, 5 мл

     
 //Вращение влево
      if (encoder_B) {
        if (MenuFlag == 0) {
          (Menu <= 0 ) ? Menu = 2 : Menu--; 
          oled_menu(Menu);
       
        } else if (MenuFlag == 1) {
          (Drink <= min_Drink ) ? Drink = max_Drink : Drink--; 
          oled_auto(Drink);
       
        } else if (MenuFlag == 2) {
          (DrinkCount >= max_DrinkCount ) ? DrinkCount = 1 : DrinkCount++; 
          oled_manual(DrinkCount, Drink);
        }
        
//Вращение вправо
      } else {
        if (MenuFlag == 0) {
          (Menu >= 2 ) ? Menu = 0 : Menu++; 
          oled_menu(Menu);
       
        } else if (MenuFlag == 1) {
          (Drink >= max_Drink ) ? Drink = min_Drink : Drink++;
          oled_auto(Drink);
       
        } else if (MenuFlag == 2) {
          (Drink >= max_Drink ) ? Drink = min_Drink : Drink++;
          oled_manual(DrinkCount, Drink);
        }
     

 

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

я не знаю, но, кажись это DrinkCount = 1 надо на 5 поменять...

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

Gridzilla пишет:

Ткните носом куда прописать, чтобы шаг был не в 1 мл а, допустим, 5 мл

     
 //Вращение влево
      if (encoder_B) {
        if (MenuFlag == 0) {
          (Menu <= 0 ) ? Menu = 2 : Menu--; 
          oled_menu(Menu);
       
        } else if (MenuFlag == 1) {
          (Drink <= min_Drink ) ? Drink = max_Drink : Drink-=5;  //вот тут
          oled_auto(Drink);
       
        } else if (MenuFlag == 2) {
          (DrinkCount >= max_DrinkCount ) ? DrinkCount = 1 : DrinkCount++; 
          oled_manual(DrinkCount, Drink);
        }
        
//Вращение вправо
      } else {
        if (MenuFlag == 0) {
          (Menu >= 2 ) ? Menu = 0 : Menu++; 
          oled_menu(Menu);
       
        } else if (MenuFlag == 1) {
          (Drink >= max_Drink ) ? Drink = min_Drink : Drink+=5; //вот тут

          oled_auto(Drink);
       
        } else if (MenuFlag == 2) {
          (Drink >= max_Drink ) ? Drink = min_Drink : Drink+=5; //вот тут

          oled_manual(DrinkCount, Drink);
        }
 

Пример:

1
a > b ? cout << a : cout << b; // если а > b, то выполняется cout << a, иначе выполняется cout << b

 

AlVirtu
Offline
Зарегистрирован: 15.11.2019

Gridzilla пишет:

Ткните носом куда прописать, чтобы шаг был не в 1 мл а, допустим, 5 мл

const byte  min_Drink = 5; // Минимум в рюмку - 5 мл.
const byte  max_Drink = 50; // Максимум в рюмку - 50 мл.
 //Вращение влево
      if (enc.isLeft()) {
        if (MenuFlag == 0) {
          (Menu <= 0 ) ? Menu = 2 : Menu--; // Перемещение курсора по главному меню назад
          oled_menu(Menu);
        } else if (MenuFlag == 1) {
          (Drink <= min_Drink ) ? Drink = max_Drink : Drink -= 5; // Уменьшаем кол-во милилитров в рюмку
          oled_auto(Drink);	  
        } else if (MenuFlag == 2) {
          (DrinkCount >= max_DrinkCount ) ? DrinkCount = 1 : DrinkCount++; // Влево увечичиваем рюмки для ручного режима
          oled_manual(DrinkCount, Drink);
        }
        //Вращение вправо
      } //else {
      if (enc.isRight()) {
        if (MenuFlag == 0) {
          (Menu >= 2 ) ? Menu = 0 : Menu++; // Перемещение курсора по главному меню вперед.
          oled_menu(Menu);
        } else if (MenuFlag == 1) {
          (Drink >= max_Drink ) ? Drink = min_Drink : Drink +=5;
          oled_auto(Drink);
        } else if (MenuFlag == 2) {
          (Drink >= max_Drink ) ? Drink = min_Drink : Drink +=5;
          oled_manual(DrinkCount, Drink);
        }
      

 

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

Спасибо, друзья!! Изучаю дальше.. я ж забыл про знак равенства после плюса. Просто 5 писал, блин...

И с наступающим 23 февраля, Мужики!!! Круглое тащим, квадратное катим!!!

krot7
Offline
Зарегистрирован: 28.11.2019

Привет можно мне скетч плиз krot7@list.ru

krot7
Offline
Зарегистрирован: 28.11.2019

Привет можно мне скетч плиз krot7@list.ru

krot7
Offline
Зарегистрирован: 28.11.2019

Привет можно мне скетч плиз krot7@list.ru

krot7
Offline
Зарегистрирован: 28.11.2019

Привет можно мне скетч плиз krot7@list.ru

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

krot7 пишет:

Привет можно мне скетч плиз krot7@list.ru

 Конечно! Тут и Тут.

DrinK
Offline
Зарегистрирован: 03.01.2020

Forthomo

В твоём скетче в ручном режиме при выборе кол-ва румок светодиоды не реагируют никак. Загораются только в процессе налива.

Как добавить индикацию светодиодами кол-во выбранных рюмок ? 

Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

DrinK пишет:

Forthomo

В твоём скетче в ручном режиме при выборе кол-ва румок светодиоды не реагируют никак. Загораются только в процессе налива.

Как добавить индикацию светодиодами кол-во выбранных рюмок ? 

Наконец-то возник правильный вопрос. Режим когда рюмки еще не установлены, когда ставим рюмки на место диоды однозначно загораются.

Вместе подумаем. Итак. Ручной режим у нас прописан в процедуре:

void oled_manual(int DrinkCount, int Drink) {

следовательно когда выбирается количество рюмок достаточно расширить это меню и прописать туда светодиоды

  if (DrinkCount == 1) {
    lcd.setCursor(10, 1);
    lcd.print(F("КУ     "));

strip.setPixelColor(0, strip.Color(0, 0, 255)); // Подствечиваем синим 1-ю рюмку

  if (DrinkCount == 2) {
    lcd.setCursor(10, 1);
    lcd.print(F("КИ     "));

strip.setPixelColor(0, strip.Color(0, 0, 255)); // Подствечиваем синим 1-ю рюмку

strip.setPixelColor(1, strip.Color(0, 0, 255)); // Подствечиваем синим 2-ю рюмку

и так до 5-й, в конце добавить

  }
 strip.show();
}

Программисты и ардуинщики могут сделать это короче и лаконичней.

Скетч писал Павел!!! Я так, свистоперделки прикручивал, типа МП плеера, двустрочного экрана, не упомнишь всего...

Дерзайте, пробуйте и делитесь здесь на форуме.

 

Фишер64
Offline
Зарегистрирован: 12.08.2019

Фишер64
Offline
Зарегистрирован: 12.08.2019

Forthomo пишет:

Где то в начале темы, кто то в виде маяка хотел сделать.

К праздникам удалось собрать. Клапан нужно вставить . Ни разу не програмист не смог заставить мигать светодиод на маяке. Нужно что бы он вспыхивал и постепенно гас потом по новой. Светодиод простой АЛ 307 красный.  Если кто может ткните куда чего вставить. Скетч от Павла . 

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

да шо ж вы расточительные-то такие? Учитесь сразу, прям на уровне спинного мозга,  быть иканомными к памяти

void oled_manual(int DrinkCount, int Drink) {

int занимает 2 байта и он тут совершенно излишний, для количества рюмок достаточно одного, больше 255 рюмок я наливаторов никада не видел. А так как оно(количество) еще и не может быть отрицательным, то uint8_t тут в самый рас. 

void oled_manual(uint8_t DrinkCount, uint8_t Drink) {
DrinK
Offline
Зарегистрирован: 03.01.2020

 

Forthomo

При переходе в ручной режим(а по умолчанию уже первая рюмка активна) светодиод не горит. При увеличивании рюмок светодиоды моргнут разок(в соответствующем кол-ву выбранных рюмок) и все - не горят. 

Kray26@mail.ru
Kray26@mail.ru аватар
Offline
Зарегистрирован: 12.02.2020

в диодах встроен контроллер, который передаёт данные в 1 байт от одному диоду к другому. скорее всего один или более диодов убитые. предпологаю что первый в цепи. попробуйте поменять последовательность при пайке с целью выявления мертвого диода

Kray26@mail.ru
Kray26@mail.ru аватар
Offline
Зарегистрирован: 12.02.2020

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

==============//
void setup() {
    #define LED_PIN 5 // 5-й пин или впишите свой
}
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   
  delay(1000);                       // время горения (миллисекунд)
  digitalWrite(LED_BUILTIN, LOW);    
  delay(1000);                       // // время выключения (миллисекунд)
}
==============//
меняете время на своё и опытным путём добиваетесь комфортного мигания
теперь ещё момент
ваш светодиод предельно слабый, туда нужно ставить что-то по-мощней вот что-то типа такого

https://aliexpress.ru/item/1936218827.html?algo_expid=897aad04-88da-48cc-8fc1-46cbd7e0dfa4-1&algo_pvid=897aad04-88da-48cc-8fc1-46cbd7e0dfa4&btsid=0b8b15c415825519490965159e2de8&s=p&spm=a2g0o.productlist.0.0.3fd47882otbCu8&ws_ab_test=searchweb0_0%252Csearchweb201602_%252Csearchweb201603_&af=1011933&afref=&at_ts=1582551960&cv=47843&dp=172ec9b2d4ffaed448a0b2535aa73a14&mall_affr=pr3&utm_campaign=1011933&utm_content=47843&utm_medium=cpa&utm_source=admitad&aff_request_id=b397c952d8784fd7a709c766204cf7de-1582551960231-07500-VnYZvQVf&aff_platform=aaf&cpt=1582551960231&sk=VnYZvQVf&aff_trace_key=b397c952d8784fd7a709c766204cf7de-1582551960231-07500-VnYZvQVf&terminal_id=3860d8a3b0e14b568d4715102482c416

неплохо было добавить линзу 

https://aliexpress.ru/item/32966353750.html?spm=a2g0o.productlist.0.0.56ce188bhacfaH&algo_pvid=640bf898-e946-43d5-b454-f6b85909ca17&algo_expid=640bf898-e946-43d5-b454-f6b85909ca17-9&btsid=0b8b035c15825516216941831e5348&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

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

https://sun9-54.userapi.com/c206528/v206528850/807e8/YlfA3Uy1edw.jpg

Kray26@mail.ru
Kray26@mail.ru аватар
Offline
Зарегистрирован: 12.02.2020

const int LEDvalMax = 4096; // максимальная яркость

const int LEDvalMin = 256;  // минимальная яркость

const int LEDvalDelta = 64; // чем больше величина тем выше темп

int LEDval = LEDvalMin;

bool increase = true;



#define FadingLED 13 // заменить на номер пина к которому подключен маяк

// отрисовка светодиодов по флагу (100мс)

void LEDtick() {

 if (LEDchanged && LEDtimer.isReady()) {

   LEDchanged = false;

   strip.show();

 }

 analogWrite(FadingLED,LEDval);

 if (increase){

LEDval += LEDvalDelta;

if (LEDval >= LEDvalMax){

LEDval = LEDvalMax;

increase = false;

}

else {

LEDval -= LEDvalDelta;

if (LEDval <= LEDvalMin){

LEDval = LEDvalMin;

increase = true;

}

}

 }

}

будет работать эта шняга то я написал в слепую или нет я не знаю. тестируй
 
Forthomo
Forthomo аватар
Offline
Зарегистрирован: 10.04.2019

Фишер64 пишет:

К праздникам удалось собрать. Клапан нужно вставить . Ни разу не програмист не смог заставить мигать светодиод на маяке. Нужно что бы он вспыхивал и постепенно гас потом по новой. Светодиод простой АЛ 307 красный.  Если кто может ткните куда чего вставить. Скетч от Павла .

Вот для размышления

/*******************************************************
 * (C) jarduino.ru 2019
 * Изучение ардуино через опыты.
 *
 * Опыт №3.1. Управление яркостью светодиода
 *
 * ****************************************************/
 
// Глобальные константы и переменные
const int pinLed = 11; // порт для светодиода
 
const int nDelay = 2; // задержка в мсек. между изменением яркости
const int nLedMin = 0; // минимальная яркость
 
// настройка платы
void setup()
{
  pinMode(pinLed, OUTPUT);
}
 
// основной цикл
void loop()
{
  static int i = nLedMin; // статическая переменная для хранения текущей яркости светодиода
 
  // постепенной увеличиваем яркость светодиода:
  while (i < 255)
  {
    analogWrite(pinLed, i);
    delay(nDelay);
    ++i;
  }
 
  // постепенно уменьшаем яркость светодиода:
  while (i > nLedMin)
  {
    analogWrite(pinLed, i);
    delay(nDelay);
    --i;
  }
}

Взято отсюда.

void loop() переименовать -> void Flash()
void Flash(); - вставить в конце цикла loop 

Сам не пробовал не на чем пока.

Rolo1
Offline
Зарегистрирован: 13.09.2019

Господа подскажите в чем может быть проблема, лсд дисплей 1602А просто светится экран и все.

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

 

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

Rolo1 пишет:

Господа подскажите в чем может быть проблема, лсд дисплей 1602А

А покрутить синюю крутилку?

Rolo1
Offline
Зарегистрирован: 13.09.2019

Что ее крутить надо, щас попробую а то я голову сломал в чем дело

Rolo1
Offline
Зарегистрирован: 13.09.2019

Благодарю, заработала!

bwn
Offline
Зарегистрирован: 25.08.2014

Привет, наливайщикам. За темой не слежу, может и проскакивало, но искал идеи корпусов для часиков, а нашел наливатор в комплекте. ))

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

bwn пишет:

Привет, наливайщикам. За темой не слежу, может и проскакивало, но искал идеи корпусов для часиков, а нашел наливатор в комплекте. ))


баян

Nik_an
Nik_an аватар
Offline
Зарегистрирован: 20.11.2019

вот наливатор:) - www.youtube.com/watch?v=lQ1LPndp9vw

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

Nik_an пишет:

вот наливатор:) - www.youtube.com/watch?v=lQ1LPndp9vw

Ваш?

 

Nik_an
Nik_an аватар
Offline
Зарегистрирован: 20.11.2019

yct9 пишет:

Nik_an пишет:

вот наливатор:) - www.youtube.com/watch?v=lQ1LPndp9vw

Ваш?

 

нет, попался где - то,

а следующий этап  - что бы из бутылки наливал :)

sheff
Offline
Зарегистрирован: 14.11.2017

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

Repz
Offline
Зарегистрирован: 27.11.2019

Вот наливатор моего изготовления  (корпус взят с канала ReAlm), основа программной части с форума и мною доработана (добавлено меню "Музыка" - проигрывание музыкальных файлов из отдельной папки; "Русская рулетка"  - налив случайным образом в одну рюмку; "Американская рулетка" - НЕ наливает случайным образом в одну рюмку; "VinCazino" - наливает во все рюмки, но случайный объём от мин до мах: "Алкотестер" - определение количества алкоголя при выдохе. Датчик - MQ-3. Ссылка на видео и остальные фото:https://drive.google.com/drive/folders/1AFEec_ya2oStqfiqPwITs5k3kNxaNKzX?usp=sharing

Repz
Offline
Зарегистрирован: 27.11.2019

Вот наливатор моего изготовления  (корпус взят с канала ReAlm), основа программной части с форума и мною доработана (добавлено меню "Музыка" - проигрывание музыкальных файлов из отдельной папки; "Русская рулетка"  - налив случайным образом в одну рюмку; "Американская рулетка" - НЕ наливает случайным образом в одну рюмку; "VinCazino" - наливает во все рюмки, но случайный объём от мин до мах: "Алкотестер" - определение количества алкоголя при выдохе. Датчик - MQ-3. Ссылка на видео и остальные фото:https://drive.google.com/drive/folders/1AFEec_ya2oStqfiqPwITs5k3kNxaNKzX?usp=sharing

Repz
Offline
Зарегистрирован: 27.11.2019

Вот наливатор моего изготовления  (корпус взят с канала ReAlm), основа программной части с форума и мною доработана (добавлено меню "Музыка" - проигрывание музыкальных файлов из отдельной папки; "Русская рулетка"  - налив случайным образом в одну рюмку; "Американская рулетка" - НЕ наливает случайным образом в одну рюмку; "VinCazino" - наливает во все рюмки, но случайный объём от мин до мах: "Алкотестер" - определение количества алкоголя при выдохе. Датчик - MQ-3. Ссылка на видео и остальные фото:https://drive.google.com/drive/folders/1AFEec_ya2oStqfiqPwITs5k3kNxaNKzX?usp=sharing

 

Repz
Offline
Зарегистрирован: 27.11.2019

Ура! Научился вставлять фото

Repz
Offline
Зарегистрирован: 27.11.2019

Ура! Научился вставлять фото

DrinK
Offline
Зарегистрирован: 03.01.2020

А прошивку вашу можно увидеть ? 

krot7
Offline
Зарегистрирован: 28.11.2019

привет вот такой распечатал https://youtu.be/IYZ4vQS2z2w

krot7
Offline
Зарегистрирован: 28.11.2019

привет вот такой распечатал https://youtu.be/IYZ4vQS2z2w

Vovok
Offline
Зарегистрирован: 23.12.2015

Forthomo пишет:

AlexMik пишет:

Вышла новая серия. )

Велкам )

https://www.youtube.com/watch?v=HJ4Q6vz0GMI

Бюджетно и подробно, для новичков, мне понравилась дотошность в мелочах которые многие "гуры" просто упускают. Ящик из красного дерева тоже можно сделать , однако попробуйте на досуге встык две рейки соединить, даже не под углом, и чтобы щели  не было видно, тут опыт и терпение и не на один вечер работы. А шипоящик хорошее решение. Кому не нравиться пунктир - морилок и бейцев в продаже уйма.

Вот кстати мой чемоданчик.

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

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

Справа в крышке просятся места для хранения и переноски рюмок

Yzum
Offline
Зарегистрирован: 25.11.2019

можно с вами связаться по поводу приобретения прошивки, оставьте свою почту

Yzum
Offline
Зарегистрирован: 25.11.2019

Repz пишет:

Вот наливатор моего изготовления  (корпус взят с канала ReAlm), основа программной части с форума и мною доработана (добавлено меню "Музыка" - проигрывание музыкальных файлов из отдельной папки; "Русская рулетка"  - налив случайным образом в одну рюмку; "Американская рулетка" - НЕ наливает случайным образом в одну рюмку; "VinCazino" - наливает во все рюмки, но случайный объём от мин до мах: "Алкотестер" - определение количества алкоголя при выдохе. Датчик - MQ-3. Ссылка на видео и остальные фото:https://drive.google.com/drive/folders/1AFEec_ya2oStqfiqPwITs5k3kNxaNKzX?usp=sharing

 

как можно с вами связаться по поводу приобретения прошивки ?