Уроки Ардуино. Как написать скетч: многозадачность на millis() и переключение режимов

  Переглядів 373,584

Заметки Ардуинщика

Заметки Ардуинщика

День тому

Сегодня займёмся фундаментальным вопросом: как написать серьёзную многозадачную программу?
► Огромный стартовый набор 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

КОМЕНТАРІ: 546
@RK-wf1rn
@RK-wf1rn 2 роки тому
Gyver OS нуждается в обзоре для аудитории
@user-ds2uk9vi1k
@user-ds2uk9vi1k 2 роки тому
Десятки каналов учат мигать светодиодом и только Алекс Гайвер учит от А до Я. Легендарный чел!
@user-xc1ps7us9w
@user-xc1ps7us9w 2 роки тому
вот именно что учит и разясняет! а не показывает мельком хрен пойми что..
@user-hx4iq7gd8j
@user-hx4iq7gd8j 2 роки тому
И это его 2й канал)
@hieverybody359
@hieverybody359 2 роки тому
Вы не понимаете сути работая со средой ардуино
@user-xr3xy3tf1s
@user-xr3xy3tf1s Рік тому
знатно лизнул ,но ты не прав я повторял один проект он был не доделан я очень расстроился плюнул и сделал все сам с 0ля
@xyzw777
@xyzw777 Рік тому
так и не понял зачем мигать светодиодом
@user-uu2ye9go8q
@user-uu2ye9go8q 2 роки тому
Палец в верх за отдельный урок и разбор работы гайвер ОС !!!
@user-es1uq7ez5n
@user-es1uq7ez5n 2 роки тому
Это шедевр!! Видос про ОС обязательно нужен
@microfdevelopers9751
@microfdevelopers9751 2 роки тому
Видос про ОС Е Бой
@ALeX71Tula
@ALeX71Tula 2 роки тому
"Жизнь Ардунщика ДО и После Delay" Алекс спасибо за подробный разбор, очень полезно и познавательно!
@alex68e732g
@alex68e732g 2 роки тому
Мощно задвинул, внушает! Респект за доходчивость и краткость - меньше чем за академический час выдал материала на целый семестр:)
@homester8899
@homester8899 2 роки тому
Спасибо за Ваш труд. Уроки- высший пилотаж.
@Ais_Hunt
@Ais_Hunt 2 роки тому
yield() - прям костыль из костылей. Я бы для опроса кнопок использовал аппаратное прерывание pcint. Ох уж и вундервафля, увлекательный видос)))
@sledleo
@sledleo 2 роки тому
Ура, я наконец-то замигал двумя светодиодами! Ваще класс!
@sledleo
@sledleo 2 роки тому
@Scarlet Overlord это решает библиотека функций или классов!
@user-bl2qc5yt2d
@user-bl2qc5yt2d 2 роки тому
Это можно сделать и без ардуины. И дешевле будет.
@sledleo
@sledleo 2 роки тому
@@user-bl2qc5yt2d понятное дело, можно и по трубе постучать и счеты погонять вместо телефона
@user-bl2qc5yt2d
@user-bl2qc5yt2d 2 роки тому
@@sledleo Ардуину имеет смысл использовать если нужно что-то автоматизировать. И то можно без неё обойтись. Если какой-то станок с ЧПУ или робот. Когда нужно помигать двумя светодиодами хватит 2 транзисторов и обвязка. Если светодиодов больше , то можно использовать микросхему. Дело не в том ( по вашему транзисторы и микросхемы устарели и нужно делать все на контроллере) ! С точки зрения эффективности достижения цели помигать 2 светодиодами целесообразнее использовать 2 транзистора. Использовать ардуину чтобы помигать 2 светодиодами это то же самое что использовать КАМАЗ для перевозки одной коробки с гвоздями. Использовать можно , но не эффективно. Производители используют контроллеры потому что им так выгодно. А самодельщики пихают эту ардуину в каждую бочку затычкой.
@sledleo
@sledleo 2 роки тому
@@user-bl2qc5yt2d вижу что ты русский!... За двумя соснами кое что есть, нужно только увидеть.... По-твоему орленку не нужно тренировать взмахи крыльями и уж тем более не нужно выпрыгивать из гнезда, чтобы совершить свой первый полет?! Ну ну... Вспоминается: сначала научитесь плавать, а уж потом наполним бассейн... Намек понятен? или еще разжевывать?!
@user-mc4sf5ih3i
@user-mc4sf5ih3i 6 днів тому
Ролик мультиплексирован инфой, на 5+, все по делу и ничего лишнего, как всегда на высоте! 👍💪🏆
@yuripanov9670
@yuripanov9670 2 роки тому
Многозадачность - это как раз то, что мне нужно. В последние дни пытался нагуглить что-то подобное, и безуспешно. Спасибо, буду пробовать!
@Jerej1374
@Jerej1374 Рік тому
Спасибо, тебе, Александр! Наконец-то получилось создать мелодию для проигрывания в фоновом режиме, используя 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; } } } Осталось в любом месте лупа поднять флаг (по условию, ессестно)!!! Может кому пригодится для замены неприятных писков буззера!
@flashpaperdotru
@flashpaperdotru 2 роки тому
Урок был полезен и интересен даже далеко не новичкам 😋👍
@user-uw1uo3fu4m
@user-uw1uo3fu4m 2 роки тому
Это божественно , я думаю ты просто армию программеров создаёшь своими роликами. Это мега полезный контент ☝️👍
@SovietMark1917
@SovietMark1917 2 роки тому
Спустя сколько лет мы узнали от гайвера как запустит одновременно два светодиода!!!
@user-hd7hq4lf4y
@user-hd7hq4lf4y 2 роки тому
Многое из примеров уже было у него в программах. :)
@ArduNotes
@ArduNotes 2 роки тому
программы != уроки
@ignat945
@ignat945 2 роки тому
@@ArduNotes оригинальное объяснение
@user-hd7hq4lf4y
@user-hd7hq4lf4y 2 роки тому
@@ArduNotes true
@Garik_Vorota
@Garik_Vorota Рік тому
Спасибо. Как инженер преподаватель - Спасибо! даже с низким поклоном. У вас дар оратора, разъясняете кратко, понятно и не монотонно.
@dmitriyteslenko5836
@dmitriyteslenko5836 2 роки тому
Отличное видео! Обычно рассказывают только как пользоваться той или иной функцией, а как сделать более-менее сложную программу - не говорят. Здесь как раз эта тема и раскрывается. Огромное спасибо!
@ArduNotes
@ArduNotes 2 роки тому
у нас тут необычные уроки =)
@kalobyte
@kalobyte 2 роки тому
вот вот, мало кто показывает, как сделать что-то работающее и сделать это правильно и с нуля
@MsSergey1313
@MsSergey1313 2 роки тому
Для этого нужно смотреть видео по алгоритмам, паттернам и т.д.. После чего применять их к конкретному микроконтроллеру пользуясь функциями или тем что для него есть чтобы эти алгоритмы, паттерны и т.д. реализовывать.
@Vadim756
@Vadim756 2 роки тому
Как всегда хорошо, быстро, без воды. Спасибо!
@user-we3zi9yj8j
@user-we3zi9yj8j 2 роки тому
Думал что сегодня будет день повторения - мать учения, а нет - узнал кучу нового)
@alexone899
@alexone899 2 роки тому
Урок как всегда оказался очень даже полезным 👍 Хочу видос про Гайвер ОС !🛠️
@krukhlis
@krukhlis 2 роки тому
Титанический труд, как для одного человека за короткое время. Спасибо!
@maxlabVideo
@maxlabVideo 2 роки тому
Спасибо тебе за труд над этими видео!
@alexkoef1255
@alexkoef1255 2 роки тому
Алекс, спасибо! Действительно, за delay нужно двойки ставить как за goto, а тут всё логично расписано. За GyverOS отдельное спасибо!
@chelobozes
@chelobozes 2 роки тому
Увлекательно. жутко интересно, очень ёмко и понятно. Я Ещё новичок и не сделал ничего, но я прямо горю желанием воять полезные штучки на ардуино! Алексу Гайверу огромный поклон и уважение - МОЛОДЕЦ!
@od3417
@od3417 Рік тому
Один из важнейших видосов на канале, очень часто к нему обращаюсь
@Bleach666i
@Bleach666i 2 роки тому
В области образования на просторах эксСССР Алекс наверняка сделал больше чем пару среднестатистических универов)
@Dimabuxaet
@Dimabuxaet 2 роки тому
Нет конечно. Это слишком громкое утверждение. Но вклад а популяризацию "гиковости" безусловно весомый.
@Bleach666i
@Bleach666i 2 роки тому
@@Dimabuxaet Образовач "в интернетах" очень сильно недооценен. Особенно по сравнению с "официальными" институциями.
@Dimabuxaet
@Dimabuxaet 2 роки тому
@@Bleach666i согласен. Но не забывай(те), что сам Alex закончил институт, в отличии от многих блогеров. А это дает ему +100 к грамотности и подаче.
@Bleach666i
@Bleach666i 2 роки тому
@@Dimabuxaet ну и я о том же) Очень грамотно и структурированно подан материал. Приятно смотреть и слушать.
@wladimirmalachow5419
@wladimirmalachow5419 2 роки тому
@@Dimabuxaet не каждый окончевшый можэт так, Уважэние и дальнейшых свершэний ему.
@makskit3515
@makskit3515 Рік тому
Это очень интересное видео, в том плане, что сначала посмотрел, ничего не понял. Пересмотрел пару уроков, ещё почитал в интернете, понял уже 5 минут видео, ну и так далее) Оно блин мотивирует к самообучению, спасибо, Сань!)
@user-eo5hv8bo7n
@user-eo5hv8bo7n 2 роки тому
Прекрасный урок! Спасибо за такой подробный разбор. Про OS было бы интересно посмотреть отдельный видос.
@gideonwyeth9779
@gideonwyeth9779 2 роки тому
32:50 думал показалось, перемотал назад, ну точно, показалось.
@jaylayt
@jaylayt 2 роки тому
Давайте видео про GyverOS! Очень интересно будет посмотреть!
@FaxMaxx
@FaxMaxx 2 роки тому
Огромное человеческое СПАСИБО за уроки!
@ostretsov6339
@ostretsov6339 2 роки тому
Как раз вовремя! Я только начал думать, как переключать режимы и настраивать яркость , и тут видео!
@user-hd7hq4lf4y
@user-hd7hq4lf4y 2 роки тому
Гайвер крут!!! Даже у меня на последнем скетче голова пухнет. Интересно было бы посмотреть как Гайвер сделал бы прогу управления твердотопливным котлом длительного горения :) ))))
@ArduNotes
@ArduNotes 2 роки тому
точно так же как для теплицы
@TheShura2
@TheShura2 2 роки тому
@@ArduNotes сделайте проект робота- газонокосилки
@user-ub4ip7gw9z
@user-ub4ip7gw9z 2 роки тому
Я на газовом котле рожал скетч две недели по крупицам. Сперва просто розжиг с опросом ионного датчика. Потом таймеры на продувки. Потом правильную отработку аварий, вроде нерозжига, потом прикрутил термодатчик воды, потом воздуха, потом модуляцию газового клапана, потом выносной пульт управления, ватчдог, если зависнет. Сейчас в свой скетч смотрю и не могу разобраться...
@user-hd7hq4lf4y
@user-hd7hq4lf4y 2 роки тому
@@user-ub4ip7gw9z Так коментить надо... Я завел привычку коментить каждый блок.
@ilyayesman7534
@ilyayesman7534 2 роки тому
Ладно, придется купить второй светодиод ((
@MrHiver2010
@MrHiver2010 2 роки тому
и кнопку(
@ilyayesman7534
@ilyayesman7534 2 роки тому
@@MrHiver2010 Чёрт! Кнопка! Как я про неё забыл?!((( Такое я не потяну, ардуино хобби отменяется! (((
@daitedve1984
@daitedve1984 2 роки тому
Ну пока можно вместо светодиода поморгать глазом! Накопишь - купишь. Береги себя :))
@itsmesp6115
@itsmesp6115 2 роки тому
На одном дыхании видосик ! -) . спасибо за работу! всё как всегда на отлично))
@user-lo3tn4vc7w
@user-lo3tn4vc7w 2 роки тому
Спасибо за информацию. Собрал на ардуино контроллер для инкубатора с меню долго разбирался, но благодаря вашим библиотекам и объяснениям на сайте и в ютубе сделал и работает
@Markisi0
@Markisi0 2 роки тому
Огромное спасибо, Алекс! Безумно интересно! Успехов тебе!
@user-lw4dr5xg8n
@user-lw4dr5xg8n 2 роки тому
Как всегда полезно и понятно, спасибо за труды!
@slavaboston6887
@slavaboston6887 2 роки тому
Спасибо Gyver канала. Отлично и глубоко погрузили в тему.
@youngfishy9932
@youngfishy9932 2 роки тому
Ура, я так счастлив! Как же он все доступно объясняет!
@user-td8hj4fm4f
@user-td8hj4fm4f 2 роки тому
Спасибо за этот урок очень полезно и интересно как всегда, давно искал похожие задачи.
@user-iv5bk3bq1w
@user-iv5bk3bq1w 2 роки тому
Спасибо Алекс, полезные уроки.
@gor_7799
@gor_7799 2 роки тому
Ждём обзора Gyver OS !
@bycoub3176
@bycoub3176 Рік тому
Как все просто выглядит. И в то же время темный лес когда сам залезешь. Лойс!
@shockblaze8669
@shockblaze8669 2 роки тому
Дай тебе бог здоровья. Голову сломал с таймерами Ардуино и расчетом промежутков времени, а оказалось они мне вообще не нужны. Спасибо большое
@USSRxChis
@USSRxChis 2 роки тому
Большое спасибо, просто бомбезные ролики
@mih_a
@mih_a 2 роки тому
Гайвер, ты как всегда на высоте! Спасибо тебе!)
@oArleo
@oArleo 2 роки тому
Самый полезный курс уроков, который видел.
@avazhonmeliev2837
@avazhonmeliev2837 2 роки тому
Спасибо за видео урок,я давно искал такой урок.Когда запчасти придут,я бы хотел заново изучить уроки.
@deniskaravaev4944
@deniskaravaev4944 2 роки тому
Спасибо! Как всегда интересно!
@ArduBlock
@ArduBlock 2 роки тому
Отличные видео уроки по Arduino! Спасибо Автору за видео!
@artrueprod
@artrueprod 2 роки тому
Очень крутой урок спасибо большое! Ждем подробный урок про ОС
@user-gf8pq4xw6c
@user-gf8pq4xw6c 2 роки тому
Спасибо за уроки, все понятно.
@xeonpc6348
@xeonpc6348 2 роки тому
Полезно! Спасибо 👍
@landsknext
@landsknext 2 роки тому
Блин, оличнейший урок! Спасибо огроменное!
@user-yh6kv2fx8g
@user-yh6kv2fx8g 2 роки тому
Огромное спасибо. Пересмотрел кучу видео , перечитал кучу статей и только здесь действительно приводятся нормальные примеры, а не вот это вот выведем ХЕллоу в консоль!!!
@alexlaziness
@alexlaziness 2 роки тому
Конечно интересно! Будем ждать.
@Voldemar-tatarskiy
@Voldemar-tatarskiy 2 роки тому
Благодарю за просвещение!
@rintism9800
@rintism9800 2 роки тому
Уфф... как же все здорово! Спасибо большое!
@maratsharp4179
@maratsharp4179 2 роки тому
Награду Алексу! Я настаиваю!
@artplczkwcz3910
@artplczkwcz3910 2 роки тому
досмотрел до середины и понял что надо пересмотреть прошлые уроки!)))
@user-pm6gj3qc5y
@user-pm6gj3qc5y 2 роки тому
Спасибо. Очень полезный урок.
@aleksey_gapeev
@aleksey_gapeev 2 роки тому
Информативно! Полезно! Спасибо мастер!
@alexandrkuzmichenko8223
@alexandrkuzmichenko8223 2 роки тому
Этот урок - прям вишенка на тортике! Благодарю!
@sailtogether3236
@sailtogether3236 2 роки тому
На удивление, годно. Спасибо!
@user-oj7rn8zg5f
@user-oj7rn8zg5f Рік тому
Суперматериал! Огромное спасибище!
@RomanArsenev
@RomanArsenev 2 роки тому
Вот это просто супер познавательное видео!
@andpavlenko6342
@andpavlenko6342 2 роки тому
урок по gyveros - да !
@HuRuStav
@HuRuStav 2 роки тому
Это отличный урок! Я вдохновлён!
@fortaber
@fortaber 2 роки тому
Библиотека интересная и очень удобная, буду юзать!
@ilyacholakh2753
@ilyacholakh2753 2 роки тому
Огромное СПАСИБО! Это здорово!
@schrodingers_kater
@schrodingers_kater 2 роки тому
Посмотрел с удовольствием)
@tituszx1
@tituszx1 2 роки тому
Супер видос! Спасибо!
@user-sf9nn6dh2q
@user-sf9nn6dh2q 2 роки тому
Очень круто, спасибо!!!
@peteaivanov6572
@peteaivanov6572 2 роки тому
Очень просто и понятно👍
@andreyace8768
@andreyace8768 2 роки тому
Спасибо за видео!
@user-hf2kq1uy6c
@user-hf2kq1uy6c 2 роки тому
ВСЕ ПРОСТО СУПЕР!!! Пожалуйста сделайте урок по шине I2S!!!
@vladk.6589
@vladk.6589 2 роки тому
очень полезно! Спасибо тебе! как по мне самый НУЖНЫЙ урок на канале
@ArduBlock
@ArduBlock 7 місяців тому
Отлично 👍
@tree-service
@tree-service Рік тому
Вот вообще спасибо, всё в тему
@rematender4269
@rematender4269 2 роки тому
Спасибо за урок! Про Гайвер ОС отдельный урок!
@enisykin1299
@enisykin1299 2 роки тому
дай вам бог здоровьичка!
@MultiHoweee
@MultiHoweee 2 роки тому
Давайте побольше таких уроков с разбором прошивок для какогото устройства
@sozdatelEd
@sozdatelEd 2 роки тому
ардуинщики всё умнее и умнее))) Чую сейчас перед многими ардуинщиками открылся новый мир кодинга без delay))) Алекс, ты кого из них растишь? Они же теперь несколько ночей спать не будут - все проекты перепишут и у них всё начнёт работать)))
@sozdatelEd
@sozdatelEd 2 роки тому
@andrey ustinov мне то это зачем? Я в нормальных прогах приложения для десктопа и мобилок собираю.
@user-xc1ps7us9w
@user-xc1ps7us9w 2 роки тому
приятно опять тебя видеть ведущим)
@serhiihvozd3367
@serhiihvozd3367 2 роки тому
Супер. Спасибо!
@arscamera
@arscamera 2 роки тому
С удовольствием глянул бы более подробно про Gyver OS.
@paveltka6221
@paveltka6221 5 місяців тому
Великолепно! Спасибо
@user-vc4ox1yt2w
@user-vc4ox1yt2w 2 роки тому
Суперский и чёткий канал мне нравится и начинал с этого канала
@Vift01
@Vift01 2 роки тому
Огромное спасибо!
@norman_eisenhauer
@norman_eisenhauer 2 роки тому
Спасибо Большое!
@pavelsoloduhin3461
@pavelsoloduhin3461 5 місяців тому
Это великий урок!)
@enrewardronkhall8340
@enrewardronkhall8340 Рік тому
Кажется со мной что-то не так, потому что даже по таким качественным, подробным, полным и интересным урокам я всё равно не могу научиться разрабатывать системы управления для проектов на МК... Но уроки действительно потрясающие. Огромное вам спасибо.
@od3417
@od3417 2 роки тому
Этот канал - золото
@alimasters4473
@alimasters4473 2 роки тому
Клёво! 👍😀
@AntonyAntonys
@AntonyAntonys 2 роки тому
Спасибо за мою просьбу
@cvitaly2033
@cvitaly2033 2 роки тому
Коммент в поддержку канала!
@Lonely_Wolf24
@Lonely_Wolf24 2 роки тому
Спасибо за видео, теперь буду, повторять, разбираться и запоминать. Шла речь об уроке про дисплей, а можно сделать урок/проект с дисплеем 12864 ST7920? Ну и конечно же урок по ОС нужен. Спасибо за уроки!
@ivanmarchuk4942
@ivanmarchuk4942 2 роки тому
Классный урок! И кстати, if(++mode >= 4) mode = 0; Можно заменить на: mode = (mode+1)%4;
@MAD_ALEX
@MAD_ALEX 2 роки тому
Только не говорите об этом attiny13, у неё половина flash памяти улетит на взятие остатка от деления
@p.polunin
@p.polunin Рік тому
Очень грамотно! Прежде реализовал "таски" сам, и вот, нашел замечальное решение. Умные учатся на чужих, а неумные...
Программируем физику на Processing
55:12
Заметки Ардуинщика
Переглядів 62 тис.
Что купить новичку в Arduino? Большой обзор
21:49
Заметки Ардуинщика
Переглядів 855 тис.
How to get a FREE HYPERCHARGE SKIN!
02:07
Brawl Stars
Переглядів 15 млн
Крутое обновление microReader!
5:54
Заметки Ардуинщика
Переглядів 3,4 тис.
🤖Я в шоке! ChatGPT пишет Arduino проекты
28:24
AlexGyver
Переглядів 747 тис.
🛠️ТОП 15 САМОДЕЛОК 2019 [AlexGyver]
17:24
AlexGyver
Переглядів 1,8 млн
Уроки Ардуино. ПИД регулятор
28:57
Заметки Ардуинщика
Переглядів 446 тис.
Фишки Arduino, о которых ты не знал!
13:37
Заметки Ардуинщика
Переглядів 104 тис.
GitHub Copilot just got promoted to Captain
4:01
Fireship
Переглядів 441 тис.
Лучший телефон на андроиде?
0:25
Опросный
Переглядів 119 тис.