Таймер для миксера
- Войдите на сайт для отправки комментариев
Пнд, 03/01/2022 - 22:55
Всех с наступившим Новым Годом!
Прошу помощи... В рамках "гаражной самопальщины" понадобилось сваять миксер. Работать будет так: Включается моторчик на 20 секунд, останавливается на 1 секунду, включается (вращаясь в другую сторону) на 20 секунд. И так по кругу. Останавливается вся эта пляска через пять минут. И стоит колом до перезапуска (откл/вкл питания). Точностей по выдержке времени никакой. Шим не нужен. Кнопки не нужны. Решил не наворачивать полну. DIN рейку таймеров, а начать осваивать ардуинку (как все нормальные люди). Соорудил вот такую великую программку:
Все это, ка ни странно (с учетом квалификации программиста) заработало. А вот с остановкой работы через 5 минут после старта, не задалось. Пробовал разные варианты таймеров. Сами по себе они работают, а остановить цикл не получается. Подскажите пожалуйста, как написать для этого код. Вот не догоняю...
Заранее благодарен.
без схемы обсуждать нечего, и да, код сейчас вас попросят вставить по правилам
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
Самое дубовое решение - добавить в нужном месте: if(millis() > 300000) while(1);
Исправился
Сами по себе они работают, а остановить цикл не получается. Подскажите пожалуйста, как написать для этого код.
Сейчас попробую
я то подумал что у него это все останавливается через 5 минут, а оказывается это так надо сделать ))
Сами по себе они работают, а остановить цикл не получается. Подскажите пожалуйста, как написать для этого код.
догадается что нет инициализации?
А вот останавливаться не хочет.... Может все дело в том, что пробую не на железе, а на симуляторе, но ведь запускается....
догадался))
ну и как работает?
с учетом ваших делайев, это надо править
хотя если точность не важна, забей..
догадается что нет инициализации?
Инициализации чего? Переменных нету.
догадается что нет инициализации?
Инициализации чего? Переменных нету.
пинов, епта
с учетом ваших делайев, это надо править
Если миксер должен выключится через 5 минут после включения, то зачем править?
А вот это волшебное слово MILLIS я не должен в качестве переменной прописать?
догадается что нет инициализации?
Инициализации чего? Переменных нету.
пинов, епта
Так у ТС инициализация пинов с самого начала же была прописана.
А вот это волшебное слово MILLIS я не должен в качестве переменной прописать?
millis() это встроенная функция. http://arduino.ru/Reference/Millis
догадается что нет инициализации?
Инициализации чего? Переменных нету.
пинов, епта
Так у ТС инициализация пинов с самого начала же была прописана.
он оказался продвинутый ))) а то залил твой код с правкой только лооп и - не работает!
А вот останавливаться не хочет.... Может все дело в том, что пробую не на железе, а на симуляторе, но ведь запускается....
ну вот
а 5 минут прошло?
Добавил к своему коду то, что посоветовали, это сюда и выложил
На опробование я изменил "время пробега" с 5*60*1000 на 1*60*1000
и что, как понимаешь что "не останавливается"?
На опробование я изменил "время пробега" с 5*60*1000 на 1*60*1000
Ну там, да, малость больше 5 минут будет крутить.
#define STOP_T (5*60*1000UL) //5 минут
Допишите UL
Если не хотите, чтобы пинали ногами, то код вставлять только так. Иначе, удем пинать.
Возьмите всё добро из функции lopp, и вставьте в setup семь раз. А loop оставьте пустым. Будет крутить 4 минуты 54 секунды и останавливаться. Вам же это надо?
Возьмите всё добро из функции lopp, и вставьте в setup семь раз. А loop оставьте пустым. Будет крутить 4 минуты 54 секунды и останавливаться.
Все гениальное - просто! ;)
Не вероятно! Заработало! Огромное спасибо! А что такое UL?
#define STOP_T (5*60*1000UL) //5 минут
Допишите UL
красава!!! я пропустил
Господа, всем огромное спасибо! Посмотрел, подумал... Наверное теперь озадачусь привязкой сюда ШИМ и сооответственно, ключей на полевиках. От полной дин рейки таймеров уйти и при этом оставить клацающие какие то там железяки, имея ардуино... Не Айс. Так что, надолго не прощаюсь... :)
Понял. Как то умножает по другому. Три часа ночи, вряд ли уже вникну, что и к чему...
надолго не прощаюсь... :)
И не надо.
Можно еще посмеяться. Не вижу Ваших сообщений, пока не выйду в корень форума, в свою тему..
F5 дави, это ж не чат тебе какой то.
Век живи, век учись и дураком помрешь.
да..., видно совсем зеленый, но смышленый))
на ночь зубрить до посинения
https://arduino-technology.ru/coding/language/datatype/
завтра скажешь на что можно заменить UL, в твоем случае))
Спасибо! Буду разбираться по мере поступивших задач.
Думаю, что на LONG
Думаю, что на LONG
Не угадал!
Вам же сказали
завтра скажешь
Думал так и сделать. Это моя первая, но не последняя самоделка на ардуино. По этому, буду пытаться делать хоть как то по человечьи :)
Думаю, что на LONG
Не угадал!
Вам же сказали
завтра скажешь
да ладно Евгений, угадал (почти), но завтра еще один вариант обязательно !! ))
эт че такое было, даже без "объяснений"???
эт че такое было, даже без "объяснений"???
Это было Crtl+C и Ctrl+V, логично же! А чепятать - не царское дело, пальчики еще устанут )))
Если не хотите, чтобы пинали ногами, то код вставлять только так. Иначе, удем пинать.
Возьмите всё добро из функции lopp, и вставьте в setup семь раз. А loop оставьте пустым. Будет крутить 4 минуты 54 секунды и останавливаться. Вам же это надо?
Не надо ничего вставлять 7 раз. Нужно добавить пустую функцию loop(), а функцию lopp() вызывать из setup в цикле 7 раз.
Добрейшего!
Перерыл туеву хучу всего, а кроме unsignet long ничего не нашел
вызывать из setup в цикле 7 раз.
Мне казалось, что семь раз нажать Ctrl+V легче, чем искать видосик с объяснением как это "вызывать в цикле". Может, и ошибаюсь.
Если бы на этом все и закончилось... :) Дурная голова рукам покоя не дает. Начал прилаживать туда всякие кнопочки, ШИМики и пр. украшательства. А если при этом "начальный вариант" кода получился покомпактнее, оно лучше.
Тогда 7 раз вызвать без цикла.
Если бы на этом все и закончилось... :) Дурная голова рукам покоя не дает. Начал прилаживать туда всякие кнопочки, ШИМики и пр. украшательства. А если при этом "начальный вариант" кода получился покомпактнее, оно лучше.
"всякие кнопочки, ШИМики и пр. украшательства" - это принципиально другая задача. добавить эти функции в программу не получится, нужно писать с нуля новую, без delay().
Доброго вечера!
Решил, ради спортивного интереса, запустить написанный Вами скетч. Сначала программа долго ругалась на всевозможные точки с запятой, скобки и пр. мелочь. Расставил, ругаться перестала. Но все равно, не работает. Оба светодиода горят и все тут. Может подскажите, в чем дело? Интересно же..