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

Старик Похабыч

★★★★★★★
14 Авг 2019
4,227
1,292
Москва
@VICLER, Ну если бы не сработало в таком виде , то можно было бы и подточить. Сделал тестовый курок, исключительно для тестов, - работает.
1585398341085.png
Но под конкретную модель корпуса скорее всего нужно будет свой курок. Собрать пока ничего не смогу - многого нет, концевиков нет, помпа у меня погружная, к ней больше вопросов. Ну а остальное есть.

Вообще стараюсь все делать так, что бы можно было разобрать и заменить все детали без каких либо проблем. Надо заменить мотор ? снял серую крышку и поставил на новый
 
  • Лойс +1
Реакции: Sergan

Хирург

✩✩✩✩✩✩✩
17 Мар 2020
12
7
Я думаю такая кнопка не лучший вариант, надежнее было бы концевик с металлической пластинкой как для стаканов, с этой кнопкой будет куча несработок.
 

Хирург

✩✩✩✩✩✩✩
17 Мар 2020
12
7
Надо было реализовать это на герконе с магнитом, меньше деталей ,надежней сработка
 
  • Лойс +1
Реакции: чайник 78

Старик Похабыч

★★★★★★★
14 Авг 2019
4,227
1,292
Москва
@Хирург, Мотор сам магнит, не уверен, что получиться, тогда надо водить куда то .. например на заднюю часть носика ставить магнит, а на ответную часть геркон. Вполне. Но геркона нет, магнит.. магнит есть ) Но теперь я эту крышку с кнопкой могу использовать для кучи целей.

всё же не удержался и собрал прошивку под работу с шаговым двигателем:)
Тоже сейчас свою прошивку подключил к шаговику. И заработало, не без танцев конечно, но теперь работает и с шаговиком и с сервой, выбора по define
Но тут уже надо ставить приличный блок питания ставить. Я так понял шаговик начинает греться, если долго стоит в одном положении. За 3 часа движения он был не выше 35 градусов, т.е. тепла рукой я не чувствовал. Но вот пока отлаживал скетч он нагрелся градусов до 40-45. И тут я бы не сказал, что он много двигался.
 

VICLER

★★★★★★✩
9 Дек 2019
801
660
Hamburg
Но тут уже надо ставить приличный блок питания ставить. Я так понял шаговик начинает греться, если долго стоит в одном положении. За 3 часа движения он был не выше 35 градусов, т.е. тепла рукой я не чувствовал. Но вот пока отлаживал скетч он нагрелся градусов до 40-45. И тут я бы не сказал, что он много двигался.
Ну если использовать драйвер, можно настроить ток. Я провёл пару тестов. В режиме удержания шаговик как резистор в 62,5Ома. Если питать его от 5В, будет кушать около 80мА. Чем быстрее крутится, тем меньше ток потребления и меньше момент. Если питать от 5 Вольт, то скорость выше 10об/мин лучше наверное не ставить, так как момент уж очень слабенький получается (5В, 10Об/мин - 40mA). Если хочется побыстрее, нужно подавать больше напряжение двигателю. Так как я буду ставить повышающий преобразователь на помпу до 9 вольт, то и мотор буду питать от него. От 9 вольт скорость можно уже повысить до 15 - 20 об/мин. При 9В, 15об/мин потребление 60мА.
Получается что кушает этот шаговик не больше, чем маленькая серво, токи которой от 5В могут достигать >300мА. В режиме удержания да, разница есть, но блок питания для этого мощнее не нужен. Я вообще после налива всех рюмок увожу шаговик домой к концевику и отключаю потом питание. Осталось только протестировать, можно ли отключать питание при простое во время налива, если да, то шаговик ещё и экономичнее получится.

PS: все вышеприведённые тесты проводил на TMC2208 выкрутив ток на максимум.
Из протестированных TMC2208, A4899, DRV8825, от 5 вольт работает только TMC. Остальным нужно больше.
 
Изменено:

Старик Похабыч

★★★★★★★
14 Авг 2019
4,227
1,292
Москва
@VICLER, Я пока не тестировал как отключить его с ULN2003A. Попробую просто подать 0 на все выходы. В момент налива видимо даже не буду отключать его. Это не долго. Но т.к. у мня может быть большое число светодиодов. (при кольце в 12 диодов аж 72 штуки), то питание нужно поприличнее. Выше 5 вольт подавать не буду, скорость не хуже сервы, ускорение и замедление не делал, и так красиво и тихо )
Но чувствую надо опять менять всю логику. т.к много мест с повторами и можно сохранить на этом памяти. И так забил практически всё.
 

VICLER

★★★★★★✩
9 Дек 2019
801
660
Hamburg
@Старик Похабыч, по идее при подаче 0 на выводы, потреблять ничего не будет.
Скорость то можно выставить и 20об/мин при 5Вольт, тол ко момент будет такой, что если в кран врежется муха, он остановится.
Кстати я удивился, когда Вы сказали, что у вас мотор на 4к шагов на оборот. Потом посмотрел пример, который Вы выкладывали и понял, что он у Вас в полушаговом режиме крутится.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,227
1,292
Москва
@VICLER, у меня более 12 не крутит вообще. Ну может на 13 заработает, на 14 точно нет. Я оставил 12. Но у нас драйвера разные. 2208 мне пришли, но я наверное их в принтер поставлю)

Да, полушаговый, он поддерживает.
 

VICLER

★★★★★★✩
9 Дек 2019
801
660
Hamburg
@Старик Похабыч, а 12 реальных или просто прописанно в прошивке?
Просто в Вашем примере
const int stepsLookup[8] = { B1000, B1100, B0100, B0110, B0010, B0011, B0001, B1001 };
Это последовательность для полушага и возможно реальная скорость у Вас в два раза выше. Или это учитыватся в библиотеке?
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,227
1,292
Москва
@RomaT, Свободных пинов уже нет , вернее остался только TX, но я его оставил для сериала, для отладки. Но в принципе можно заюзать. Но для начала завтра попробую как себя будет чувствовать мотор при подаче 4-х нулей. Т.к. там не драйвер в чистом виде, а транзисторный ключ, который берет 5 вольт и по маске выдает их на шаговик, то вполне возможно , и даже очень вероятно, что 4 нуля дадут отключение питания.
 

дрим93

✩✩✩✩✩✩✩
16 Ноя 2018
34
3
кто нибудь делал печатную плату для наливатора?Если да то можно прототип
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,227
1,292
Москва
Не правильно исключительно по человеческой логике - если ничего нет, то должно быть 0. Но если перевести в разность потенциалов, то получаем тот же 0
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,227
1,292
Москва
Потому что дисплей 1.3 дюйма это SH1106, а 0.96 это SSD1306, у них разные чипы, разная инициация, и , хотя и пишут, что они совместимы, им нужны разные библиотеки. Или одна но универсальная...
Именно поэтому я использовал библиотеку U8glib, она поддерживает и корректно работает с этими типами дисплеев.
 

Konder885

★✩✩✩✩✩✩
23 Ноя 2019
81
16
Потому что дисплей 1.3 дюйма это SH1106, а 0.96 это SSD1306, у них разные чипы, разная инициация, и , хотя и пишут, что они совместимы, им нужны разные библиотеки. Или одна но универсальная...
Именно поэтому я использовал библиотеку U8glib, она поддерживает и корректно работает с этими типами дисплеев.
У Алекса в библиотеке есть SH1106.
===== ДЕФАЙНЫ =====
OLED_NO_BUFFER - не использовать буфер вообще (активно по умолчанию)
OLED_HARD_BUFFER_64 - буфер на стороне дисплея (только для SSH1106)
OLED_SOFT_BUFFER_32 - буфер на стороне МК (для 128x32)
OLED_SOFT_BUFFER_64 - буфер на стороне МК (для 128x64)
USE_MICRO_WIRE - использовать библиотеку microWire.h (сильно облегчает код)
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,227
1,292
Москва
Ну попробовал с отключением двигателя. Получилось даже проще чем предполагал. Отключение двигателя Делаю в любое время - так получается проще. Приведу фрагмент кода , выше я уже весь показывал, обойдусь частью и пояснением

Собственно функция выключения мотора это StepperOFF()
Как и хотел я подаю нули на все 4 выхода. Нули потому что. когда 1 горят светодиоды, а зачем нам лишние лампочки ?
Я в стандартную библиотеку добавил функцию GetGoalStep, которая возвращает кол-во оставшихся шагов до нужного положения. Как только шагов не остается, я выключаю мотор и жду пару сек, чисто что бы было. Потом новое движение к случайному положению.

C++:
....
    
void StepperOFF()
{
  digitalWrite(motorPin1, 0);
  digitalWrite(motorPin2, 0);
  digitalWrite(motorPin3, 0);
  digitalWrite(motorPin4, 0);
}

....
    
void loop()
{
 
  if (stepper1.GetGoalStep() > 0)
  {
    stepper1.Update();
  }
  else
  {
    StepperOFF();
    delay(2000);
    uint16_t new_ugol = random(0, 359);
    Serial.print("Go to "); Serial.println(new_ugol);
    stepper1.Write(new_ugol);
  } 
}
Что показали тесты. Если мотор не выключать, то уже через 10 минут он ощутимо нагревается, градусов 40, а если выключать, то через 10 минут простоя он остается таким же холодным как и был.
 
  • Лойс +1
Реакции: slavikslk