Уроки Ардуино. Как написать скетч: многозадачность на millis() и переключение режимов
Вставка
- Опубліковано 2 чер 2024
- Сегодня займёмся фундаментальным вопросом: как написать серьёзную многозадачную программу?
► Огромный стартовый набор GyverKIT: kit.alexgyver.ru/
► Пример из видео: github.com/AlexGyver/tutorials/
► Текстовый урок по теме №1: alexgyver.ru/lessons/how-to-s...
► Текстовый урок по теме №2: alexgyver.ru/lessons/big-proj...
► Урок про CRT: alexgyver.ru/lessons/led-crt/
► EncButton: github.com/GyverLibs/EncButton
► TimerMs: github.com/GyverLibs/TimerMs
► GyverOS: github.com/GyverLibs/GyverOS
► Модули и датчики с Али: alexgyver.ru/arduino_shop/
► Страница "Заметок Ардуинщика": alexgyver.ru/arduino_lessons/
Содержание:
00:00 - Начало
00:43 - Текстовая версия
01:06 - Проблемы с delay
01:42 - Особенности программ для МК
02:19 - FreeRTOS
03:32 - Суперцикл
04:57 - Костыль yield()
06:22 - Программный таймер
07:50 - Мигаем светодиодом
08:38 - Мигаем с разным периодом
09:05 - Программный ШИМ
09:32 - Однократное выполнение
10:32 - Выполнить действие несколько раз
10:59 - Переключение состояния процесса
11:52 - Мигаем плавно
12:53 - Обработка кнопки
14:22 - Меняем яркость кнопкой
15:06 - Переключение режимов кнопкой
16:30 - Переключение режимов по таймеру
17:57 - Библиотека таймера
20:13 - Библиотека диспетчера задач
22:28 - Кодим пример
Теги: #arduino #уроки #ардуино #alexgyver
●●●●●●●●●●●●●●●●●●●●
► Основной канал: / alexgyvershow
► Поддержать автора alexgyver.ru/support_alex/
► Официальный сайт: alexgyver.ru/
► Почта: alex@alexgyver.ru - Наука та технологія
Десятки каналов учат мигать светодиодом и только Алекс Гайвер учит от А до Я. Легендарный чел!
вот именно что учит и разясняет! а не показывает мельком хрен пойми что..
И это его 2й канал)
Вы не понимаете сути работая со средой ардуино
знатно лизнул ,но ты не прав я повторял один проект он был не доделан я очень расстроился плюнул и сделал все сам с 0ля
так и не понял зачем мигать светодиодом
Gyver OS нуждается в обзоре для аудитории
Это шедевр!! Видос про ОС обязательно нужен
Видос про ОС
Е Бой
Палец в верх за отдельный урок и разбор работы гайвер ОС !!!
Ролик мультиплексирован инфой, на 5+, все по делу и ничего лишнего, как всегда на высоте! 👍💪🏆
Спасибо за Ваш труд. Уроки- высший пилотаж.
yield() - прям костыль из костылей. Я бы для опроса кнопок использовал аппаратное прерывание pcint.
Ох уж и вундервафля, увлекательный видос)))
"Жизнь Ардунщика ДО и После Delay"
Алекс спасибо за подробный разбор, очень полезно и познавательно!
Ура, я наконец-то замигал двумя светодиодами! Ваще класс!
@Scarlet Overlord это решает библиотека функций или классов!
Это можно сделать и без ардуины. И дешевле будет.
@@user-bl2qc5yt2d понятное дело, можно и по трубе постучать и счеты погонять вместо телефона
@@sledleo Ардуину имеет смысл использовать если нужно что-то автоматизировать. И то можно без неё обойтись. Если какой-то станок с ЧПУ или робот. Когда нужно помигать двумя светодиодами хватит 2 транзисторов и обвязка. Если светодиодов больше , то можно использовать микросхему.
Дело не в том ( по вашему транзисторы и микросхемы устарели и нужно делать все на контроллере) !
С точки зрения эффективности достижения цели помигать 2 светодиодами целесообразнее использовать 2 транзистора.
Использовать ардуину чтобы помигать 2 светодиодами это то же самое что использовать КАМАЗ для перевозки одной коробки с гвоздями.
Использовать можно , но не эффективно.
Производители используют контроллеры потому что им так выгодно. А самодельщики пихают эту ардуину в каждую бочку затычкой.
@@user-bl2qc5yt2d вижу что ты русский!...
За двумя соснами кое что есть, нужно только увидеть....
По-твоему орленку не нужно тренировать взмахи крыльями и уж тем более не нужно выпрыгивать из гнезда, чтобы совершить свой первый полет?! Ну ну...
Вспоминается: сначала научитесь плавать, а уж потом наполним бассейн...
Намек понятен? или еще разжевывать?!
Мощно задвинул, внушает! Респект за доходчивость и краткость - меньше чем за академический час выдал материала на целый семестр:)
Многозадачность - это как раз то, что мне нужно. В последние дни пытался нагуглить что-то подобное, и безуспешно. Спасибо, буду пробовать!
Урок был полезен и интересен даже далеко не новичкам 😋👍
Это божественно , я думаю ты просто армию программеров создаёшь своими роликами.
Это мега полезный контент ☝️👍
Спасибо. Как инженер преподаватель - Спасибо! даже с низким поклоном. У вас дар оратора, разъясняете кратко, понятно и не монотонно.
Один из важнейших видосов на канале, очень часто к нему обращаюсь
Спасибо, тебе, Александр!
Наконец-то получилось создать мелодию для проигрывания в фоновом режиме, используя millis() и tone().
Оказывается можно так просто озвучить любое событие в программе, не зависая не всяких delay().
Нужно создать пару массивов - для нот и длительностей (можно в PROGMEM области), да троечку глобальных переменных: таймер, счётчик и флаг запуска ( на static глючит).
Всё!
Пишем функцию и засовываем её имя в луп!
Привожу пример:
void music () {
if (flag_music) {
if (count < LENGTH && millis() - tmr > duration [count]) {
tone (PIN_TONE, note [count++]);
tmr = millis();
}
if (count_music >= LENGTH) {
noTone (PIN_TONE);
flag_music =0;
count =0;
}
}
}
Осталось в любом месте лупа поднять флаг (по условию, ессестно)!!!
Может кому пригодится для замены неприятных писков буззера!
Можно еще добавить возможность сделать затишье в мелодии, например по занесению < 0 вызывать noTone
Урок как всегда оказался очень даже полезным 👍
Хочу видос про Гайвер ОС !🛠️
Спасибо тебе за труд над этими видео!
Как всегда хорошо, быстро, без воды. Спасибо!
Титанический труд, как для одного человека за короткое время. Спасибо!
Отличное видео!
Обычно рассказывают только как пользоваться той или иной функцией, а как сделать более-менее сложную программу - не говорят.
Здесь как раз эта тема и раскрывается.
Огромное спасибо!
у нас тут необычные уроки =)
вот вот, мало кто показывает, как сделать что-то работающее и сделать это правильно и с нуля
Для этого нужно смотреть видео по алгоритмам, паттернам и т.д.. После чего применять их к конкретному микроконтроллеру пользуясь функциями или тем что для него есть чтобы эти алгоритмы, паттерны и т.д. реализовывать.
Спустя сколько лет мы узнали от гайвера как запустит одновременно два светодиода!!!
Многое из примеров уже было у него в программах. :)
программы != уроки
@@ArduNotes оригинальное объяснение
@@ArduNotes true
На одном дыхании видосик ! -) . спасибо за работу! всё как всегда на отлично))
Алекс, спасибо!
Действительно, за delay нужно двойки ставить как за goto, а тут всё логично расписано. За GyverOS отдельное спасибо!
Огромное человеческое СПАСИБО за уроки!
Давайте видео про GyverOS! Очень интересно будет посмотреть!
Прекрасный урок! Спасибо за такой подробный разбор.
Про OS было бы интересно посмотреть отдельный видос.
Огромное спасибо, Алекс! Безумно интересно! Успехов тебе!
Увлекательно. жутко интересно, очень ёмко и понятно.
Я Ещё новичок и не сделал ничего, но я прямо горю желанием воять полезные штучки на ардуино!
Алексу Гайверу огромный поклон и уважение - МОЛОДЕЦ!
Это очень интересное видео, в том плане, что сначала посмотрел, ничего не понял. Пересмотрел пару уроков, ещё почитал в интернете, понял уже 5 минут видео, ну и так далее)
Оно блин мотивирует к самообучению, спасибо, Сань!)
Как раз вовремя! Я только начал думать, как переключать режимы и настраивать яркость , и тут видео!
Спасибо за информацию. Собрал на ардуино контроллер для инкубатора с меню долго разбирался, но благодаря вашим библиотекам и объяснениям на сайте и в ютубе сделал и работает
Как всегда полезно и понятно, спасибо за труды!
Спасибо Gyver канала. Отлично и глубоко погрузили в тему.
Ура, я так счастлив! Как же он все доступно объясняет!
Думал что сегодня будет день повторения - мать учения, а нет - узнал кучу нового)
Отличные видео уроки по Arduino! Спасибо Автору за видео!
Гайвер, ты как всегда на высоте! Спасибо тебе!)
Большое спасибо, просто бомбезные ролики
Спасибо Алекс, полезные уроки.
32:50 думал показалось, перемотал назад, ну точно, показалось.
Очень крутой урок спасибо большое! Ждем подробный урок про ОС
Спасибо за этот урок очень полезно и интересно как всегда, давно искал похожие задачи.
Блин, оличнейший урок! Спасибо огроменное!
В области образования на просторах эксСССР Алекс наверняка сделал больше чем пару среднестатистических универов)
Нет конечно. Это слишком громкое утверждение. Но вклад а популяризацию "гиковости" безусловно весомый.
@@Dimabuxaet Образовач "в интернетах" очень сильно недооценен. Особенно по сравнению с "официальными" институциями.
@@Bleach666i согласен. Но не забывай(те), что сам Alex закончил институт, в отличии от многих блогеров. А это дает ему +100 к грамотности и подаче.
@@Dimabuxaet ну и я о том же) Очень грамотно и структурированно подан материал. Приятно смотреть и слушать.
@@Dimabuxaet не каждый окончевшый можэт так,
Уважэние и дальнейшых свершэний ему.
Самый полезный курс уроков, который видел.
Как все просто выглядит. И в то же время темный лес когда сам залезешь. Лойс!
Спасибо! Как всегда интересно!
Ладно, придется купить второй светодиод ((
и кнопку(
@@MrHiver2010 Чёрт! Кнопка! Как я про неё забыл?!((( Такое я не потяну, ардуино хобби отменяется! (((
Ну пока можно вместо светодиода поморгать глазом! Накопишь - купишь. Береги себя :))
Огромное спасибо. Пересмотрел кучу видео , перечитал кучу статей и только здесь действительно приводятся нормальные примеры, а не вот это вот выведем ХЕллоу в консоль!!!
Спасибо за видео урок,я давно искал такой урок.Когда запчасти придут,я бы хотел заново изучить уроки.
Спасибо за уроки, все понятно.
Очень полезный урок, спасибо.
Информативно! Полезно! Спасибо мастер!
Дай тебе бог здоровья. Голову сломал с таймерами Ардуино и расчетом промежутков времени, а оказалось они мне вообще не нужны. Спасибо большое
Уфф... как же все здорово! Спасибо большое!
Конечно интересно! Будем ждать.
Этот урок - прям вишенка на тортике! Благодарю!
Это отличный урок! Я вдохновлён!
Гайвер крут!!! Даже у меня на последнем скетче голова пухнет. Интересно было бы посмотреть как Гайвер сделал бы прогу управления твердотопливным котлом длительного горения :) ))))
точно так же как для теплицы
@@ArduNotes сделайте проект робота- газонокосилки
Я на газовом котле рожал скетч две недели по крупицам. Сперва просто розжиг с опросом ионного датчика. Потом таймеры на продувки. Потом правильную отработку аварий, вроде нерозжига, потом прикрутил термодатчик воды, потом воздуха, потом модуляцию газового клапана, потом выносной пульт управления, ватчдог, если зависнет.
Сейчас в свой скетч смотрю и не могу разобраться...
@@user-ub4ip7gw9z Так коментить надо... Я завел привычку коментить каждый блок.
очень полезно! Спасибо тебе! как по мне самый НУЖНЫЙ урок на канале
Полезно! Спасибо 👍
На удивление, годно. Спасибо!
Вот это просто супер познавательное видео!
Ждём обзора Gyver OS !
Библиотека интересная и очень удобная, буду юзать!
Награду Алексу! Я настаиваю!
Благодарю за просвещение!
Суперматериал! Огромное спасибище!
досмотрел до середины и понял что надо пересмотреть прошлые уроки!)))
Суперский и чёткий канал мне нравится и начинал с этого канала
Огромное СПАСИБО! Это здорово!
Посмотрел с удовольствием)
ВСЕ ПРОСТО СУПЕР!!! Пожалуйста сделайте урок по шине I2S!!!
дай вам бог здоровьичка!
Очень круто, спасибо!!!
С удовольствием глянул бы более подробно про Gyver OS.
приятно опять тебя видеть ведущим)
Спасибо за урок! Про Гайвер ОС отдельный урок!
Супер видос! Спасибо!
Очень грамотно! Прежде реализовал "таски" сам, и вот, нашел замечальное решение. Умные учатся на чужих, а неумные...
Запустил GyverOS на Атмеге8515, очень полезная библиотека, просто и шустро 👍
Этот канал - золото
Вот вообще спасибо, всё в тему
Очень просто и понятно👍
Давайте побольше таких уроков с разбором прошивок для какогото устройства
Это великий урок!)
Спасибо за видео!
Спасибо за видео, теперь буду, повторять, разбираться и запоминать. Шла речь об уроке про дисплей, а можно сделать урок/проект с дисплеем 12864 ST7920? Ну и конечно же урок по ОС нужен.
Спасибо за уроки!
Коммент в поддержку канала!
Великолепно! Спасибо
Супер. Спасибо!
урок по gyveros - да !
Как всегда бомбезно и полезно! Налетай!!
Кажется со мной что-то не так, потому что даже по таким качественным, подробным, полным и интересным урокам я всё равно не могу научиться разрабатывать системы управления для проектов на МК... Но уроки действительно потрясающие. Огромное вам спасибо.
Классный урок!
И кстати,
if(++mode >= 4) mode = 0;
Можно заменить на:
mode = (mode+1)%4;
Только не говорите об этом attiny13, у неё половина flash памяти улетит на взятие остатка от деления
Никому не советую юзать Ардуино. Но этот урок понравился! Лайк.
Отличный канал. Если вам будет интересно у меня идея. Если все получится будем воду греть почти бесплатно. Что если сделать не продуваемый квадратный медный змеевик из квадратной трубы. Взять бак на 1000л помпу ну тут подбирать нужно будет.
Взять кучу линз увеличительных не считал сколько тут нужно методом проб и ошибок подбирать все. Принцип такой зачет линз фокусировать солнечные лучи на поверхность змеевика.
Но тут много тонких моментов. Во первых нужно сделать каркас чтобы корректировать змеевик и линзы. Во вторых каркас должен быть как термос чтобы и зимой воду греть.
В третьих баки хранения горячей воды тоже должны быть как термос плюс иметь возможность самим греть воду для поддержания нужной температуры на случай жестокой непогоды. Вот мне интересно когда я был ребенком я на свежо вырезанной рогатке выпаливал узоры одной линзой.
Вот тогда я и задумался на счет этой идеи но тогда технологии не позволяли такое сделать. Теперь уже все гораздо проще на алиэкспресс 70% комплектующих уже есть.
Хотел бы я увидеть тесты хотя бы в миниатюре. Мне интересно какой должен быть змеевик и сколько нужно линз чтобы нагреть 100л воды до 60 градусов за 1 час. И какая нужна солнечная панель чтобы сделать эту систему автономной.
Надеюсь кому то такое интересно будет. Всем удачи.
Огромное спасибо!
Здравствуйте, снимите пожалуйста видео о том как реализовать следующую задачу: необходимо автоматически открывать (закрывать) окно для поддержания заданного интервала температуры в помещении. Имеется мотор-редуктор установленный на доводчик, умный термометр wi-fi, модули ардуино будут куплены по видео.