Алекс, ты очень качественно делаешь свои видео. Респект. Я занимаюсь разного рода программированием, самому страшно с 1984 года, это 33, матьих, года. Как раз в 84 году студентом, на Электронике-60 (это советский клон PDP-11) писал программу обслуживания оборудования в реальном времени, используя прерывания. К чему это я? А к тому, что всё это мне ясно и понятно давно, но всё равно смотрю твои уроки с удовольствием и без ускоренной перемотки. Рассказывать, объяснять узконаправленные, технические темы -- это отдельный вид творчества, причём, мне кажется, совсем не простой. Там внизу комментаторы советовали набыдлокодить покруче, не слушай их. Пусть сами быдлокодят и быдлобложат потом. Всё очень точно дозировано. Молодец.
Тоже присоединяюсь👍 Не меняй формат видео! В баню Джереми тут интереснее и понятнее, спасибо! Жду продолжения, дисплеи, меню, клавиатуры, энкодеры и т.д.
Ты просто маньяк, и это заразительно - я все видео на одном дыхании посмотрел. Давненько не было ничего на этом канале, но я все равно в некоторые ответственные моменты открываю твои видео как справочную литературу)) Очень хочется увидеть (ты зарекался) ряд видео с обзорами всевозможных датчиков и примеров и идей работы с ними, работа большая но я думаю она того стоит! А потом можно и на STM32 перейти (в плане уроков), как настроить Arduino IDE под стмку и прочие подводные камни и особенности. В твоем исполнении это будет очень интересно смотреть!
Большое спасибо автору за видео курс. Просмотрел многие уроки по нескольку раз. Мне как радиоинженеру, а не программисту, весьма помогло преодолеть барьер освоения нового направления. С тех пор сделал несколько различных проектов для цифровой радиосвязи, радиотелеметрии и для RC пилотажек. Перешел сейчас с AVR на STM32 и графические дисплеи. Очень доволен возможностями ARDUINO IDE, но иногда знакомые советуют переходить на STM32Cube IDE. Но так как ARDUINO мне пока вполне хватает, то с переходом не тороплюсь. И еще понял, что с программированием как с изучением иностранного языка - весьма желательно заниматься регулярно, с минимальными паузами и нельзя бросать на несколько месяцев программирование, занимаясь проектированием "железа".
Алекс, хочу сказать тебе большое спасибо за твои уроки по ардуино и вообще за основной канал, так как завлек в эту увлекательную историю) решил тебе написать не просто так, я выиграл олимпиаду высшая проба*, в которой одно из заданий было сделать проект на ардуино, на этом задании я как раз и затащил))) конечно я занимался не только по твоим урокам и проектам, но в том числе и ты помог мне добиться этого!! *дает оч жесткие привилегии при поступлении
Сань, пожалуйста, я тебя прошу, выпусти уже урок про то, как работать с библиотекой LOW_POWER. В интернете много всякой херни, а этого толком нету. Только ты можешь объяснить понятно и доходчиво! Спасибо за понимание.
Пересмотрел все видосы, все очень круто, доступно и понятно. Осталось только дождаться, когда ардуинка придет мне с алика. Вот только чего не хватает на данном канале - видео урока про разного рода дисплеи, как с ними работать и подключать. Вот если с библиотеками для них еще можно разобраться самостоятельно, а вот по поводу тонкостей их подключения посложнее: к примеру вдруг подсветка дисплея должна подключаться обязательно через резюк, и чтобы лишний раз не жечь детали лучше все-таки рассказать. Был бы очень рад подобному видео!
Дооошлооооо!!!!! Ура!!! Наконец-то до меня дошлоооо!!! ))) Победил я копилку эту... На меге делал... долго разбирался... фуф. пошел жмакать кнопку "я сделяль"))
Спасибо тебе огромное, хороший человек, за твой труд! Жаль, что серия прервалась... на прерываниях. Но это заставило погуглить... и нагуглилоссь же!!! Куча книжек!!! Ура, теперь читаем )))
Кому интересно какие пины на каких платах используються для прерывания: ________________плата ------> цифровые пины Uno, Nano, Mini и другие на базе 328 ------> 2,3 Mega, Mega2560, MegaADK ------> 2, 3, 18, 19, 20, 21 Micro, Leonardo и другие на базе 32u4 ------> 0, 1, 2, 3, 7 Zero ------> все, кроме 4 MKR1000 Rev.1 ------> 0, 1, 4, 5, 6, 7, 8, 9, A1, A2 Due ------> все цифровые пины
Внешнее прерывание: 2 (прерывание 0), 3 (прерывание 1), 18 (прерывание 5), 19 (прерывание 4), 20 (прерывание 3), и 21 (прерывание 2). А если еще точнее то вот так. Надеюсь тоже кому то помого. Алекс Респект
Как всегда материал подан на 5 с + :-) :-) :-) Маленькое уточнение внешние прерывания вроде не только на 2 ноги вешать... thewanderingengineer.com/2014/08/11/arduino-pin-change-interrupts/ И по хорошему нажо было бы озвучить, что у 328 есть прерывания по таймеру, уарту, концу обработки ацп и т.д. :-)
что-бы безопасно считать или изменить переменную, которая может измениться в прерывании, нужно запрещать все прерывания функцией cli() оно же noInterrupts(), а после разрешать их функцией sei() оно же interrupts(). А volatile это другое.
Отличные уроки. Жаль нет продолжения. Хотелось бы услышать про использование структур и классов. Так же интересно про подключение дисплея, который вы использовали на заставке и передачу данных с датчика в интернет для сбора статистики например. Спасибо большое.
4:00 Но ведь режимов пять, есть еще "HIGH" А чтобы не мучаться и не искать какой интеррапт идет к нужному пину - attachInterrupt(digitalPinToInterrupt(intPin), myInterrupt, CHANGE);
Отличный канал и этот и основной! Нет желания сделать видео по управлению светодиодами или светодиодной лентой через фотоэлемент? Я бы повторил например для ночника для дочки, чтобы не тыкать выключателями а включение и отключение зависило от яркости света. Я думаю такое можно не только в ночнике организовать но и подсветках разного типа.
четко и понятно. не слушай идиотов, которым что-то не нравится. 1)возможно они кроме этого мало что умеют. 2)если нет вежливости, пусть дальше бьют себя пяткой в грудь 3)так доступно, мало кто объясняет.
Алекс, я тебя прошу, ну сними ты ещё видюшочечек... ну пожаааалуйста, они самые лучшие!!!! Я много смотрел видео, они и рядом не стоят ни по доступности понимания, ни по краткости, ни по информативности. Особенно радуют разные фишечки, (типо массивов, millis за место delay, и т.д) за счёт чего я смог самостоятельно разобраться как делать анимированные значки, более того, смог выйти за пределы ограничений по символам в LCD 16x2 и теперь могу впихнуть невпихиваемое, например полную кириллицу. А ведь я был полный 0 в программировании!
Привет Алекс, можешь пожалуйста сделать видом о том как подключать и управлять шаровым двигателем , а то я вообще не пойму какие нужны команды для работы движка .
Есть же toggle, срабатывает и на rising и на falling. Если тебе нужно именно различить, какое событие, то внутри функции-обработчика проверяешь состояние пина через digitalRead и ставишь соответствующий флаг. Больше никакой логики в функции-обработчике не пишешь, прерывание должно быть обработано максимально быстро. Потом, в основном цикле проверяешь, если поднят флаг rising, снимаем его и делаем что-то. Если поднят флаг falling снимаем его и делаем что-то другое.
А можете сделать видео на тему: вызов прерывания по аналоговому входу ардуино. На практике применение:" продолжить выполнение программы, при достижении определённой температуры среды, по показаниям датчика температуры (терморезистора)"
Алекс, расскажи людям что можно использовать датчики андурино без самого андурино! А то многие вообще не вкурсе) . Я имею ввиду взять к примеру реле и геркон подносом магнит к геркону силовое реле включается и андурино сдесь ненужна. Или реле и датчик движения вот и получилась включение света по движению.
Спасибо за видео. Искал материал про прерывания на ардуино и все заканчивается на внешних прерываниях INT0, etc. Но ведь практически каждый модуль имеет по нескольку своих прерываний. В основном это конечно таймеры (переполнение, совпадение и т.д.), но и UART тоже важная вещь (по приему байта, передача завершена). С этими прерываниями возможно как-то работать?
Сделай пожалуйста урок об управлении тиристором (нагрузка двигатель), чтобы можно было управлять оборотами двигателя, обратная связь для стабильной скорости ивывод информации на дисплей. Please
это про что? у стаба идет в первую очередь механика, а потом уже электроника... как можно делать ролик про стаб "вообще" разве что про мозги для одной конкретной реализации железа, только многим ли оно будет актуально? а в целом, можешь сделать железо для стаба, значит понимаешь бюджет проекта.. при этом значительно проще и разумнее взять готовый оригинальный AlexMos, ну или из вечного желания сэкономить и остаться без обновленией и поддержки, взять AlexMos с алиэкспресса...
А можно сделать, что при включении контролера он сначала проверял работоспособность датчиков и т.п., а результаты выводил на жк дисплей и уже после приступал к работе? Не нашел видео по этому вопросу.
Алекс Гайвер, а при программировании Ардуинки, ты пользуешься в основном, теми, базовыми командами, про которые ты рассказал в своих предыдущих видео. Или что бы достичь на Ардуинке высшего пилотажа надо изучать и другие, более сложные?
Ещё прерывания по таймеру интересная штука, можно разобраться, как работает тот же метод millis(). Разве что библиотек хороших я так и не нашел, пришлось разбираться, как работать с таймерами на C. И сторожевой таймер вещь полезная, но приходится прошивать кастомный загрузчик, иначе ардуинка уходит в бутлуп после первого сброса.
Embedded Programmer если устройство собрано, протестировано, работает без зависаний и ошибок, но предполагает стационарную установку с трудным доступом, то сторожевой таймер лишним не будет, как по мне.
Alex, а когда будет видео по работе с ультразвуковыми дальномерами? А то используется много где и штука забавная по сути своей, но нигде толком не разжевывают как с ней работать.
Здравствуйте, Алекс. Хотел поблагодарить вас, за качественное и понятное видео. У меня к вам вопрос, можно сделать управление радиоуправляемой машинки на базе ардуино, с управлением со смартфона ? Если да, то какое приложение использовать для управления ?
привет Алекс. Давно смотрю твои видео, мне очень интересно. Можешь сделать видео про бидлиотеку ЕЕПРОМ и работу с ней, ато не очень понимаю принцип работы. Буду благодарен.
Алекс, а как быть если у меня есть светодиод в автомобиле. И он по ШИМ управляется. А мне надо отследить когда он выключится и свое устройство тоже вырубить. Подскажи пожалуйста. И про энергосбережение тоже очень хочется видос посмотреть уже.
Доброго дня! Имеем оптический датчик (endstop) и перфорированное колесо. Необходимо посчитать количество оборотов. Проблема: показания в Serial как в видео со скачками. Неужели дребезг? Если да то как как избавиться? Заранее спасибо.
а вы знали что можно использовать Sublime text для разработки, с привязкой возможностей Aduino IDE, ну и само собой шикарного сета работы с кодом для саблайма, а то из IDE хуже обычного нотепада, тупо все для того чтобы как можно больше усложнить, а вот на саблайме теперь одно удовольствие
Подскажите, а прерывания по переполнению, совпадению таймера в ардуино можно настроить? Писал проги только в AVR studio. Или на этой платформе такое не реализовать?
Из простых методов: Либо ставишь RC-фильтр после кнопки в сторону питания, либо программно, запрещаешь прерывания на определенное время, после срабатывания прерывания.
Использовать программную обработку(есть библиотеки или самому сделать), поставить RC-фильтр, самое надежное - использовать кнопку переключения(а не замыкания) совместно с парой резисторов и одним конденсатором но такие кнопки обычно больше по габаритам и поэтому не везде удобно использовать.
Очень хорошие Видосы но самое главное не сказал, чем можешь сильно запутать начинающих. Прерывания не только Int0 и int1 , это только внешние прерывания , но есть много и других, таймер, например ,или прерывания UART. Если ты работаешь не на прямую с AVR gcc (где все прерывания задаёшь сам ), а используешь среду Arduino, то многие прерывания могут быть заданны не явно. Тот же таймер 0, который в Ардуино используется для функций времени . Прерывания работают по флаговому принципу. Когда случилось событие взводится флаг, по факту взведённых флагов по приоритетам вызываются функции прерываний, чередуясь с,не менее одной, инструкцией из основного потока. При вызове функции обработчика прерываний (вектора) , по умолчанию ,все остальные прерывания запрещаются, после её завершения снова разрешаются вызовом инструкции reti. Запрещаются ВСЕ, а не только то что ты обрабатываешь, это и ответ на вопрос почему не работает delay , millis , micros . Из этого следует, что функции , обработчики прерываний , должны быть максимально короткими по времени выполнения . Никаких расчётов , никакой логики, и уж тем более никакого вывода и потому что долго , и потому что Serial сам использует прерывания ( хотя для вывода вроде бы и нет, а на ввод поледняя версия библиотеки корректно это обрабатывает ... нео тем не менее )! Разберёмся почему. Если у нас обрабатывается прерывание , каким то долгим, по времени , обработчиком, и в момент его обработки, появится другое прерывание, ну или тоже самое , что произойдёт ? Взведётся флаг, что это прерывание произошло. И, через одну инструкцию основного потока , после завершения текущего обработчика , снова вызовется обработчик. И это верно. А что случится если во время выполнения обработчика, какое-то прерывание случится 2 раза (и более) ? Обработчик будет вызван один раз, а все остальные факты срабатывания будут утрачены. Так ,например, можно потерять прерывание таймера , которое обрабатывало переполнение, и millis откатится назад.Кстати недавно, у кого-то была такая проблема на ардуиновском форуме. Вообще внутри обработчика прерываний , можно явно разрешить обработку других, но надо чётко представлять зачем, а понимание этого наивысший пилотаж , и косячат с этим даже супер гуру, попадая на сильную вложенность вызова обработчика ( аппаратную рекурсию , когда прерывание рождается быстрее чем обрабатывается). Секция noInterrupts(); // критичный ко времени участок кода interrupts(); Обладает всеми свойствами и рисками обработчика прерываний. Не рекомендуется её использовать без нужды, а нужда в этом , в общем признак пролюба в архитектуре. Пару слов про volatile. Обработчик прерывания - аппаратно вызываемая функция , не из основного flow выполнения. Компилятор не может понять, как происходит её вызов и может не правильно оптимизировать работу переменных , которые используются в прерывании. По этому оптимизацию работы таких переменных мы должны запретить явно , используя слово *volatile*. Пример с- псевдокод. int cnt=0; void Inerrupt() { ++cnt; } int main(int ac, char** av) { cnt = 0; for (;;) { if (cnt > 1000 ) doSomthing(); usleep(10); } return 0; } Если cnt не volatile, компилятор ,c большой долей вероятности, выбросит if (cnt > 1000 ) ... , как не достижимый кусок кода ,так как с его точки обзора, переменная cnt не может стать равной 1000, так как она не изменяется в основном flow программы. Хотя компиляторы с годами всё умнее и умнее.
Алекс, ты очень качественно делаешь свои видео. Респект. Я занимаюсь разного рода программированием, самому страшно с 1984 года, это 33, матьих, года. Как раз в 84 году студентом, на Электронике-60 (это советский клон PDP-11) писал программу обслуживания оборудования в реальном времени, используя прерывания. К чему это я? А к тому, что всё это мне ясно и понятно давно, но всё равно смотрю твои уроки с удовольствием и без ускоренной перемотки. Рассказывать, объяснять узконаправленные, технические темы -- это отдельный вид творчества, причём, мне кажется, совсем не простой. Там внизу комментаторы советовали набыдлокодить покруче, не слушай их. Пусть сами быдлокодят и быдлобложат потом. Всё очень точно дозировано. Молодец.
Присоединяюсь!
Действительно - так объяснять - это талант.
Алекс, хочешь, я тебя за это в подмосковье на параплане покатаю?
Тоже присоединяюсь👍
Не меняй формат видео!
В баню Джереми тут интереснее и понятнее, спасибо!
Жду продолжения, дисплеи, меню, клавиатуры, энкодеры и т.д.
Я с вами соглашаюсь, видео Алекса самые топовые!
Солидарен с Вами!
Эдуард Щеблыкин спасибо
ДИЧАЙШАЯ ПОЛЬЗА от аппаратного прерывания! Не представляю, как прожил всю жизнь без этого :-D Спасибо, Алекс!!!
Хотим ещё!!! по больше примеров и интересных уроков. Алекс тебе большая 5 с большим +. Очень всё понятно и и затягивает. Надо уметь. Ты молоток.
Ты просто маньяк, и это заразительно - я все видео на одном дыхании посмотрел. Давненько не было ничего на этом канале, но я все равно в некоторые ответственные моменты открываю твои видео как справочную литературу))
Очень хочется увидеть (ты зарекался) ряд видео с обзорами всевозможных датчиков и примеров и идей работы с ними, работа большая но я думаю она того стоит! А потом можно и на STM32 перейти (в плане уроков), как настроить Arduino IDE под стмку и прочие подводные камни и особенности. В твоем исполнении это будет очень интересно смотреть!
Большое спасибо автору за видео курс. Просмотрел многие уроки по нескольку раз. Мне как радиоинженеру, а не программисту, весьма помогло преодолеть барьер освоения нового направления. С тех пор сделал несколько различных проектов для цифровой радиосвязи, радиотелеметрии и для RC пилотажек. Перешел сейчас с AVR на STM32 и графические дисплеи. Очень доволен возможностями ARDUINO IDE, но иногда знакомые советуют переходить на STM32Cube IDE. Но так как ARDUINO мне пока вполне хватает, то с переходом не тороплюсь. И еще понял, что с программированием как с изучением иностранного языка - весьма желательно заниматься регулярно, с минимальными паузами и нельзя бросать на несколько месяцев программирование, занимаясь проектированием "железа".
Убедительная просьба: сделай виде про сон ардуинки.
Поддерживаю!
Присоединяюсь к просьбе. А в целом - курс очень подробный и доходчивый, спасибо!
Чет не убедительно
Сериал не продлили на второй сезон, так что идём читать уроки на сайте.
Уже есть!!!!
Автору ОГРОМНОЕ спасибо и респект! Только учусь программировать. Все предельно понятно и интересно!
В точку
Алекс, не шути так- что один из последних уроков!!! уроки у тебя отличные да и тем еще множество.
ЩЕ ЩЕ потрібно ще уроків) ти один нормально все розказуєш ) Дякую
Алекс, хочу сказать тебе большое спасибо за твои уроки по ардуино и вообще за основной канал, так как завлек в эту увлекательную историю) решил тебе написать не просто так, я выиграл олимпиаду высшая проба*, в которой одно из заданий было сделать проект на ардуино, на этом задании я как раз и затащил))) конечно я занимался не только по твоим урокам и проектам, но в том числе и ты помог мне добиться этого!!
*дает оч жесткие привилегии при поступлении
Очень интересные и очень понятные уроки. Хочется больше видео и чаще.
Больше, больше ещё больше уроков и не только:) все что связано с ардуинкой, БОЛЬШЕЕЕЕЕ
Сань, пожалуйста, я тебя прошу, выпусти уже урок про то, как работать с библиотекой LOW_POWER. В интернете много всякой херни, а этого толком нету. Только ты можешь объяснить понятно и доходчиво! Спасибо за понимание.
Пересмотрел все видосы, все очень круто, доступно и понятно. Осталось только дождаться, когда ардуинка придет мне с алика.
Вот только чего не хватает на данном канале - видео урока про разного рода дисплеи, как с ними работать и подключать. Вот если с библиотеками для них еще можно разобраться самостоятельно, а вот по поводу тонкостей их подключения посложнее: к примеру вдруг подсветка дисплея должна подключаться обязательно через резюк, и чтобы лишний раз не жечь детали лучше все-таки рассказать. Был бы очень рад подобному видео!
Дооошлооооо!!!!! Ура!!! Наконец-то до меня дошлоооо!!! ))) Победил я копилку эту... На меге делал... долго разбирался... фуф. пошел жмакать кнопку "я сделяль"))
Благодарствую, это мне и нужно! Супер!
Чувак, ты гений который не плагиатит. Не вкоем случае не бросай ютуб
Спасибо тебе огромное, хороший человек, за твой труд! Жаль, что серия прервалась... на прерываниях. Но это заставило погуглить... и нагуглилоссь же!!! Куча книжек!!! Ура, теперь читаем )))
Очень понятные, внятные уроки. Нет ээээээ, уууууу, ммммм. Огромное спасибо
Алекс ты красава каждый урок я узнаю что то новое спасибо тебе
Спасибо! как всегда интересно и полезно) пойду поломаю голову над кодом с прерыванием. Удачи тебе, жду видос про спящий режим)
*А гле продолжения????*
все кина не будет
@@МеняЗовутМитяйРаспздяйВторой уроки начинают выходить
Моледец! Просмотрел курс за пару часов. Изи
Вот сейчас пришло понимание правильной работы с кнопками и всякими крутилками!
Это дет совсем новое направление идей в плане программировании.
С нетерпением ждем новых уроков
Вот это уже было круто! давай еще видео!
Супер. Спасибо! Всё понятно и доступно
Спасибо за видео и советы
Кому интересно какие пины на каких платах используються для прерывания:
________________плата ------> цифровые пины
Uno, Nano, Mini и другие на базе 328 ------> 2,3
Mega, Mega2560, MegaADK ------> 2, 3, 18, 19, 20, 21
Micro, Leonardo и другие на базе 32u4 ------> 0, 1, 2, 3, 7
Zero ------> все, кроме 4
MKR1000 Rev.1 ------> 0, 1, 4, 5, 6, 7, 8, 9, A1, A2
Due ------> все цифровые пины
Спасибо, добрый человек)
Внешнее прерывание: 2 (прерывание 0), 3 (прерывание 1), 18 (прерывание 5), 19 (прерывание 4), 20 (прерывание 3), и 21 (прерывание 2). А если еще точнее то вот так. Надеюсь тоже кому то помого. Алекс Респект
Спасибо
@@Liliumenergyeng Спасибо огромное!
Человечище! Благодарю! :)
Как всегда материал подан на 5 с + :-) :-) :-)
Маленькое уточнение внешние прерывания вроде не только на 2 ноги вешать... thewanderingengineer.com/2014/08/11/arduino-pin-change-interrupts/
И по хорошему нажо было бы озвучить, что у 328 есть прерывания по таймеру, уарту, концу обработки ацп и т.д. :-)
dima sanei это ж видос про внешнее прерывание. По таймеру-это внутреннее, об этом отдельный видос имеется на этом же канале
Да, у Меги прерываний от ног больше. Но новички обычно не начинают с Мега, незачем их путать.
Очень полезный урок спасибо!!!!!
Спасибо большое, Алекс! Доступненько :)
Алекс, куда пропал? Где #17й урок про режим энергосбережения ардуины?
Мы заждались! Скоро пол года с крайнего видоса.
Творческий кризис?
@Тарас Атавин Смешное замечание
это был последний )))
что-бы безопасно считать или изменить переменную, которая может измениться в прерывании, нужно запрещать все прерывания функцией cli() оно же noInterrupts(), а после разрешать их функцией sei() оно же interrupts(). А volatile это другое.
Отличные уроки. Жаль нет продолжения. Хотелось бы услышать про использование структур и классов. Так же интересно про подключение дисплея, который вы использовали на заставке и передачу данных с датчика в интернет для сбора статистики например. Спасибо большое.
Спасибо! Давно ждал.
Ржу с кода!)))) Делэй 10000, потому что так захотелось)))))
Алекс красавчик, все понятно, я усвоил!
классняк, то что мне нужно было для светодиодной текстовой панельки :)
Сегодня узнал о существовании твоего 2-го канала( замтки ардуи...) Подписка с меня. Спасибо тебе за твой труд.
4:00 Но ведь режимов пять, есть еще "HIGH"
А чтобы не мучаться и не искать какой интеррапт идет к нужному пину - attachInterrupt(digitalPinToInterrupt(intPin), myInterrupt, CHANGE);
HIGH работает не на всех ардуинках.
Отличный канал и этот и основной! Нет желания сделать видео по управлению светодиодами или светодиодной лентой через фотоэлемент? Я бы повторил например для ночника для дочки, чтобы не тыкать выключателями а включение и отключение зависило от яркости света. Я думаю такое можно не только в ночнике организовать но и подсветках разного типа.
Ждём продолжения
ГДЕ УРОКИ????
четко и понятно. не слушай идиотов, которым что-то не нравится. 1)возможно они кроме этого мало что умеют. 2)если нет вежливости, пусть дальше бьют себя пяткой в грудь 3)так доступно, мало кто объясняет.
Очень доходчиво, большое спасибо. Единственное смотрю на скорости 0.9, очень быстрая речь :)
AlextGyver, прошу, скажи название библиотеки для глубокого энергосбережения. Пожалуйста!
Пожалуйста не бросай эта дело!!!
Сделай видео "Как управлять GSM или GPRS модулем"
у arduinoLab-а посмотри.. очень качественные разборы работы различных модулей
Ничосе, вот это интересно ....
Алекс, очень люблю твои каналы, прошу, сделай наиподробнейший туториал по XOD
Алекс, я тебя прошу, ну сними ты ещё видюшочечек... ну пожаааалуйста, они самые лучшие!!!! Я много смотрел видео, они и рядом не стоят ни по доступности понимания, ни по краткости, ни по информативности. Особенно радуют разные фишечки, (типо массивов, millis за место delay, и т.д) за счёт чего я смог самостоятельно разобраться как делать анимированные значки, более того, смог выйти за пределы ограничений по символам в LCD 16x2 и теперь могу впихнуть невпихиваемое, например полную кириллицу. А ведь я был полный 0 в программировании!
Вот это лойс! Алекс, ты юзал когда-нибудь esp8266? Может про него что-ибудь снимешь?
Вот его видео с участием ESP8266: ua-cam.com/video/oVBnyr9lpOk/v-deo.html;
Привет Алекс, можешь пожалуйста сделать видом о том как подключать и управлять шаровым двигателем , а то я вообще не пойму какие нужны команды для работы движка .
Можно ли сделать несколько прерываний на один пин(например RISING и FALLING)?
Есть же toggle, срабатывает и на rising и на falling. Если тебе нужно именно различить, какое событие, то внутри функции-обработчика проверяешь состояние пина через digitalRead и ставишь соответствующий флаг.
Больше никакой логики в функции-обработчике не пишешь, прерывание должно быть обработано максимально быстро. Потом, в основном цикле проверяешь, если поднят флаг rising, снимаем его и делаем что-то. Если поднят флаг falling снимаем его и делаем что-то другое.
А можете сделать видео на тему: вызов прерывания по аналоговому входу ардуино. На практике применение:" продолжить выполнение программы, при достижении определённой температуры среды, по показаниям датчика температуры (терморезистора)"
Отлично.
Алекс, пожалуйста расскажи в своих видео о подключении сдвигового регистра к ардуино. В инете мало инфы о таких скетчах
Будет продолжение уроков?
Уроки отличные! Когда продолжение?
бомба , спасибо
Алекс, Очень нравятся твои видео. А по малине у тебя не планируется? Было бы интересно посмотреть на трюки с объединением малины и ардуино
Алекс, расскажи людям что можно использовать датчики андурино без самого андурино! А то многие вообще не вкурсе) . Я имею ввиду взять к примеру реле и геркон подносом магнит к геркону силовое реле включается и андурино сдесь ненужна. Или реле и датчик движения вот и получилась включение света по движению.
Спасибо за видео. Искал материал про прерывания на ардуино и все заканчивается на внешних прерываниях INT0, etc. Но ведь практически каждый модуль имеет по нескольку своих прерываний. В основном это конечно таймеры (переполнение, совпадение и т.д.), но и UART тоже важная вещь (по приему байта, передача завершена). С этими прерываниями возможно как-то работать?
Ты можешь сделать радиодальномер, по принципу прохождение радиосигнала за определенный обьем работы какого-либо процесса?
а про pin change interrupt можно, пожалуйста? спасибо)
А долго ждать след серии? ❤️
И моя душа требует новой порции интересной информации! :)
Сделай пожалуйста урок об управлении тиристором (нагрузка двигатель), чтобы можно было управлять оборотами двигателя, обратная связь для стабильной скорости ивывод информации на дисплей. Please
Охуенный канал. Пили плиз ещё!
Будут ли ещё уроки?
Alex, не планируешь сделать электронный стабилизатор для камеры на ардуино? Было бы очень круто и полезно. Кто за - лайкайте!
это про что? у стаба идет в первую очередь механика, а потом уже электроника... как можно делать ролик про стаб "вообще" разве что про мозги для одной конкретной реализации железа, только многим ли оно будет актуально?
а в целом, можешь сделать железо для стаба, значит понимаешь бюджет проекта.. при этом значительно проще и разумнее взять готовый оригинальный AlexMos, ну или из вечного желания сэкономить и остаться без обновленией и поддержки, взять AlexMos с алиэкспресса...
А где продолжение банкета? Хотелось бы увидеть еще уроков
Требуем урок про сон Ардуинки!
А можно сделать, что при включении контролера он сначала проверял работоспособность датчиков и т.п., а результаты выводил на жк дисплей и уже после приступал к работе? Не нашел видео по этому вопросу.
Алекс Гайвер, а при программировании Ардуинки, ты пользуешься в основном, теми, базовыми командами, про которые ты рассказал в своих предыдущих видео. Или что бы достичь на Ардуинке высшего пилотажа надо изучать и другие, более сложные?
Ещё прерывания по таймеру интересная штука, можно разобраться, как работает тот же метод millis(). Разве что библиотек хороших я так и не нашел, пришлось разбираться, как работать с таймерами на C. И сторожевой таймер вещь полезная, но приходится прошивать кастомный загрузчик, иначе ардуинка уходит в бутлуп после первого сброса.
Embedded Programmer если устройство собрано, протестировано, работает без зависаний и ошибок, но предполагает стационарную установку с трудным доступом, то сторожевой таймер лишним не будет, как по мне.
МОЯ ХОТЕТЬ ЕЩЁ ВИДЕО!!!!!!!
Alex, а когда будет видео по работе с ультразвуковыми дальномерами? А то используется много где и штука забавная по сути своей, но нигде толком не разжевывают как с ней работать.
Видосы - цены нет! Хотелось бы понять как осуществить без сбойный приём смс сообщений на программный UART Arduino.
Можно ли использовать оба прерывания в одном коде и какие при этом ограничения?
Здравствуйте, Алекс. Хотел поблагодарить вас, за качественное и понятное видео. У меня к вам вопрос, можно сделать управление радиоуправляемой машинки на базе ардуино, с управлением со смартфона ? Если да, то какое приложение использовать для управления ?
Планируется ли урок про спящий режим?
Алекс, сделай подробный урок по созданию часов из семисегментного индикатора
Т.е. получается для организации счетчика на прерываниях можно задействовать любой из вариантов? 1 - обработка сигнала на пине и 2 - обработка флага. ?
привет Алекс. Давно смотрю твои видео, мне очень интересно. Можешь сделать видео про бидлиотеку ЕЕПРОМ и работу с ней, ато не очень понимаю принцип работы. Буду благодарен.
спасибо уважуха!
Пожалуйста, сделай урок по работе с дисплеем.
Алекс, а как быть если у меня есть светодиод в автомобиле. И он по ШИМ управляется. А мне надо отследить когда он выключится и свое устройство тоже вырубить. Подскажи пожалуйста. И про энергосбережение тоже очень хочется видос посмотреть уже.
супер!
Доброго дня! Имеем оптический датчик (endstop) и перфорированное колесо. Необходимо посчитать количество оборотов. Проблема: показания в Serial как в видео со скачками. Неужели дребезг? Если да то как как избавиться?
Заранее спасибо.
В какой программе ты ресуешь схемы
Сделай пожалуйста видео про подключение различных датчиков
А когда следующий урок?)
Будут ещё видео?
а вы знали что можно использовать Sublime text для разработки, с привязкой возможностей Aduino IDE, ну и само собой шикарного сета работы с кодом для саблайма, а то из IDE хуже обычного нотепада, тупо все для того чтобы как можно больше усложнить, а вот на саблайме теперь одно удовольствие
Подскажите, а прерывания по переполнению, совпадению таймера в ардуино можно настроить? Писал проги только в
AVR studio. Или на этой платформе такое не реализовать?
Алекс, ролик шикарен как всегда, подскажи по дребезгу кнопки - как от него можно избавиться при обработке прерываний?
Из простых методов:
Либо ставишь RC-фильтр после кнопки в сторону питания, либо программно, запрещаешь прерывания на определенное время, после срабатывания прерывания.
Использовать программную обработку(есть библиотеки или самому сделать), поставить RC-фильтр, самое надежное - использовать кнопку переключения(а не замыкания) совместно с парой резисторов и одним конденсатором но такие кнопки обычно больше по габаритам и поэтому не везде удобно использовать.
так ведь на этом же канале есть урок про кнопки и устранение дребезга
aleks mar
Относительно прерывания это отдельная узконаправленная тема (много нюансов с задержками + как выше сказали проблема помехозащищённости!)
Так ведь там используется неработающая в прерывании millis?
уроки то будут продолжение?
А еще будут уроки?
Очень хорошие Видосы но самое главное не сказал, чем можешь сильно запутать начинающих.
Прерывания не только Int0 и int1 , это только внешние прерывания , но есть много и других, таймер, например ,или прерывания UART. Если ты работаешь не на прямую с AVR gcc (где все прерывания задаёшь сам ), а используешь среду Arduino, то многие прерывания могут быть заданны не явно. Тот же таймер 0, который в Ардуино используется для функций времени .
Прерывания работают по флаговому принципу. Когда случилось событие взводится флаг, по факту взведённых флагов по приоритетам вызываются функции прерываний, чередуясь с,не менее одной, инструкцией из основного потока.
При вызове функции обработчика прерываний (вектора) , по умолчанию ,все остальные прерывания запрещаются, после её завершения снова разрешаются вызовом инструкции reti. Запрещаются ВСЕ, а не только то что ты обрабатываешь, это и ответ на вопрос почему не работает delay , millis , micros .
Из этого следует, что функции , обработчики прерываний , должны быть максимально короткими по времени выполнения . Никаких расчётов , никакой логики, и уж тем более никакого вывода и потому что долго , и потому что Serial сам использует прерывания ( хотя для вывода вроде бы и нет, а на ввод поледняя версия библиотеки корректно это обрабатывает ... нео тем не менее )! Разберёмся почему.
Если у нас обрабатывается прерывание , каким то долгим, по времени , обработчиком, и в момент его обработки, появится другое прерывание, ну или тоже самое , что произойдёт ?
Взведётся флаг, что это прерывание произошло. И, через одну инструкцию основного потока , после завершения текущего обработчика , снова вызовется обработчик. И это верно.
А что случится если во время выполнения обработчика, какое-то прерывание случится 2 раза (и более) ? Обработчик будет вызван один раз, а все остальные факты срабатывания будут утрачены.
Так ,например, можно потерять прерывание таймера , которое обрабатывало переполнение, и millis откатится назад.Кстати недавно, у кого-то была такая проблема на ардуиновском форуме.
Вообще внутри обработчика прерываний , можно явно разрешить обработку других, но надо чётко представлять зачем, а понимание этого наивысший пилотаж , и косячат с этим даже супер гуру, попадая на сильную вложенность вызова обработчика ( аппаратную рекурсию , когда прерывание рождается быстрее чем обрабатывается).
Секция
noInterrupts();
// критичный ко времени участок кода
interrupts();
Обладает всеми свойствами и рисками обработчика прерываний. Не рекомендуется её использовать без нужды, а нужда в этом , в общем признак пролюба в архитектуре.
Пару слов про volatile.
Обработчик прерывания - аппаратно вызываемая функция , не из основного flow выполнения. Компилятор не может понять, как происходит её вызов и может не правильно оптимизировать работу переменных , которые используются в прерывании. По этому оптимизацию работы таких переменных мы должны запретить явно , используя слово *volatile*.
Пример с- псевдокод.
int cnt=0;
void Inerrupt() {
++cnt;
}
int main(int ac, char** av) {
cnt = 0;
for (;;) {
if (cnt > 1000 ) doSomthing();
usleep(10);
}
return 0;
}
Если cnt не volatile, компилятор ,c большой долей вероятности, выбросит if (cnt > 1000 ) ... , как не достижимый кусок кода ,так как с его точки обзора, переменная cnt не может стать равной 1000, так как она не изменяется в основном flow программы. Хотя компиляторы с годами всё умнее и умнее.
Урок называется "аппаратные прерывания", о них и шла речь. Урок из базовых, поэтому никаких флагов, никаких регистров, людям и это сложно даётся
Спасибо за краткое пояснение, сразу много вопросов сняло!
Внезапно вспомнилась глава про прерывания в 8086 из книжки Нортона! (-: