Ветка обсуждения проекта Наливатор.
Видео:
Делитесь своими вариантами изготовления, модификациями и улучшениями!
Видео:
Делитесь своими вариантами изготовления, модификациями и улучшениями!
Изменено:
Тоже сейчас свою прошивку подключил к шаговику. И заработало, не без танцев конечно, но теперь работает и с шаговиком и с сервой, выбора по defineвсё же не удержался и собрал прошивку под работу с шаговым двигателем![]()
Ну если использовать драйвер, можно настроить ток. Я провёл пару тестов. В режиме удержания шаговик как резистор в 62,5Ома. Если питать его от 5В, будет кушать около 80мА. Чем быстрее крутится, тем меньше ток потребления и меньше момент. Если питать от 5 Вольт, то скорость выше 10об/мин лучше наверное не ставить, так как момент уж очень слабенький получается (5В, 10Об/мин - 40mA). Если хочется побыстрее, нужно подавать больше напряжение двигателю. Так как я буду ставить повышающий преобразователь на помпу до 9 вольт, то и мотор буду питать от него. От 9 вольт скорость можно уже повысить до 15 - 20 об/мин. При 9В, 15об/мин потребление 60мА.Но тут уже надо ставить приличный блок питания ставить. Я так понял шаговик начинает греться, если долго стоит в одном положении. За 3 часа движения он был не выше 35 градусов, т.е. тепла рукой я не чувствовал. Но вот пока отлаживал скетч он нагрелся градусов до 40-45. И тут я бы не сказал, что он много двигался.
Логический 0 ! = 0 вольт.@Старик Похабыч, по идее при подаче 0 на выводы, потреблять ничего не будет.
Можно, но не правильно как то@RomaT, а какая разница? Можно на все выводы и 5 Вольт подать. Главное, чтобы на обмотках двигателя был одинаковый потенциал.
Не работает с дисплеем 1.3 дюйма.кому интересно,скетч под oled дисплей
У Алекса в библиотеке есть SH1106.Потому что дисплей 1.3 дюйма это SH1106, а 0.96 это SSD1306, у них разные чипы, разная инициация, и , хотя и пишут, что они совместимы, им нужны разные библиотеки. Или одна но универсальная...
Именно поэтому я использовал библиотеку U8glib, она поддерживает и корректно работает с этими типами дисплеев.
....
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);
}
}