Алекс, ты очень качественно делаешь свои видео. Респект. Я занимаюсь разного рода программированием, самому страшно с 1984 года, это 33, матьих, года. Как раз в 84 году студентом, на Электронике-60 (это советский клон PDP-11) писал программу обслуживания оборудования в реальном времени, используя прерывания. К чему это я? А к тому, что всё это мне ясно и понятно давно, но всё равно смотрю твои уроки с удовольствием и без ускоренной перемотки. Рассказывать, объяснять узконаправленные, технические темы -- это отдельный вид творчества, причём, мне кажется, совсем не простой. Там внизу комментаторы советовали набыдлокодить покруче, не слушай их. Пусть сами быдлокодят и быдлобложат потом. Всё очень точно дозировано. Молодец.
@PavelAmazing7 жыл бұрын
Присоединяюсь! Действительно - так объяснять - это талант. Алекс, хочешь, я тебя за это в подмосковье на параплане покатаю?
@Константин-н4г6б7 жыл бұрын
Тоже присоединяюсь👍 Не меняй формат видео! В баню Джереми тут интереснее и понятнее, спасибо! Жду продолжения, дисплеи, меню, клавиатуры, энкодеры и т.д.
@Erdan_Oskonbai_tegin7 жыл бұрын
Я с вами соглашаюсь, видео Алекса самые топовые!
@ВладимирСамокиш-т6г6 жыл бұрын
Солидарен с Вами!
@alexgyver31266 жыл бұрын
Эдуард Щеблыкин спасибо
@ИльяЕвгеньевич-б9ь4 жыл бұрын
ДИЧАЙШАЯ ПОЛЬЗА от аппаратного прерывания! Не представляю, как прожил всю жизнь без этого :-D Спасибо, Алекс!!!
@krispraison36577 жыл бұрын
Убедительная просьба: сделай виде про сон ардуинки.
@dmawzx6 жыл бұрын
Поддерживаю!
@ПавелВасильев-д4ф5 жыл бұрын
Присоединяюсь к просьбе. А в целом - курс очень подробный и доходчивый, спасибо!
@GroveLoveBIG5 жыл бұрын
Чет не убедительно
@Perega4 жыл бұрын
Сериал не продлили на второй сезон, так что идём читать уроки на сайте.
@ShElectricheskiy3 жыл бұрын
Уже есть!!!!
@ВалдосАрдуино6 жыл бұрын
Хотим ещё!!! по больше примеров и интересных уроков. Алекс тебе большая 5 с большим +. Очень всё понятно и и затягивает. Надо уметь. Ты молоток.
@ra3apw2 жыл бұрын
Большое спасибо автору за видео курс. Просмотрел многие уроки по нескольку раз. Мне как радиоинженеру, а не программисту, весьма помогло преодолеть барьер освоения нового направления. С тех пор сделал несколько различных проектов для цифровой радиосвязи, радиотелеметрии и для RC пилотажек. Перешел сейчас с AVR на STM32 и графические дисплеи. Очень доволен возможностями ARDUINO IDE, но иногда знакомые советуют переходить на STM32Cube IDE. Но так как ARDUINO мне пока вполне хватает, то с переходом не тороплюсь. И еще понял, что с программированием как с изучением иностранного языка - весьма желательно заниматься регулярно, с минимальными паузами и нельзя бросать на несколько месяцев программирование, занимаясь проектированием "железа".
@yuriykim96 жыл бұрын
Автору ОГРОМНОЕ спасибо и респект! Только учусь программировать. Все предельно понятно и интересно!
@mr.flastik Жыл бұрын
В точку
@DeltaDesignRus6 жыл бұрын
Ты просто маньяк, и это заразительно - я все видео на одном дыхании посмотрел. Давненько не было ничего на этом канале, но я все равно в некоторые ответственные моменты открываю твои видео как справочную литературу)) Очень хочется увидеть (ты зарекался) ряд видео с обзорами всевозможных датчиков и примеров и идей работы с ними, работа большая но я думаю она того стоит! А потом можно и на STM32 перейти (в плане уроков), как настроить Arduino IDE под стмку и прочие подводные камни и особенности. В твоем исполнении это будет очень интересно смотреть!
@АлександрВишняков-г7и7 жыл бұрын
Алекс, не шути так- что один из последних уроков!!! уроки у тебя отличные да и тем еще множество.
@АндрейПестов-э6ф6 жыл бұрын
Алекс, хочу сказать тебе большое спасибо за твои уроки по ардуино и вообще за основной канал, так как завлек в эту увлекательную историю) решил тебе написать не просто так, я выиграл олимпиаду высшая проба*, в которой одно из заданий было сделать проект на ардуино, на этом задании я как раз и затащил))) конечно я занимался не только по твоим урокам и проектам, но в том числе и ты помог мне добиться этого!! *дает оч жесткие привилегии при поступлении
@sendarium6 жыл бұрын
Сань, пожалуйста, я тебя прошу, выпусти уже урок про то, как работать с библиотекой LOW_POWER. В интернете много всякой херни, а этого толком нету. Только ты можешь объяснить понятно и доходчиво! Спасибо за понимание.
@mrrubikman_88536 жыл бұрын
Чувак, ты гений который не плагиатит. Не вкоем случае не бросай ютуб
@Ihorko927 жыл бұрын
Кому интересно какие пины на каких платах используються для прерывания: ________________плата ------> цифровые пины 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 ------> все цифровые пины
@СветланаЛуцышина5 жыл бұрын
Спасибо, добрый человек)
@Liliumenergyeng5 жыл бұрын
Внешнее прерывание: 2 (прерывание 0), 3 (прерывание 1), 18 (прерывание 5), 19 (прерывание 4), 20 (прерывание 3), и 21 (прерывание 2). А если еще точнее то вот так. Надеюсь тоже кому то помого. Алекс Респект
@Агентмк4 жыл бұрын
Спасибо
@ИльяЕвгеньевич-б9ь4 жыл бұрын
@@Liliumenergyeng Спасибо огромное!
@ИльяЕвгеньевич-б9ь4 жыл бұрын
Человечище! Благодарю! :)
@ГригорийКобзаренко-и1в6 жыл бұрын
Очень интересные и очень понятные уроки. Хочется больше видео и чаще.
@Chiroff_sib6 жыл бұрын
Больше, больше ещё больше уроков и не только:) все что связано с ардуинкой, БОЛЬШЕЕЕЕЕ
@konstantin96556 жыл бұрын
Пересмотрел все видосы, все очень круто, доступно и понятно. Осталось только дождаться, когда ардуинка придет мне с алика. Вот только чего не хватает на данном канале - видео урока про разного рода дисплеи, как с ними работать и подключать. Вот если с библиотеками для них еще можно разобраться самостоятельно, а вот по поводу тонкостей их подключения посложнее: к примеру вдруг подсветка дисплея должна подключаться обязательно через резюк, и чтобы лишний раз не жечь детали лучше все-таки рассказать. Был бы очень рад подобному видео!
@sergeygordich4 жыл бұрын
Вот сейчас пришло понимание правильной работы с кнопками и всякими крутилками! Это дет совсем новое направление идей в плане программировании.
@olehshewchenko65564 жыл бұрын
ЩЕ ЩЕ потрібно ще уроків) ти один нормально все розказуєш ) Дякую
@ArsenyAI6 жыл бұрын
*А гле продолжения????*
@МеняЗовутМитяйРаспздяйВторой4 жыл бұрын
все кина не будет
@rifatzabirov98004 жыл бұрын
@@МеняЗовутМитяйРаспздяйВторой уроки начинают выходить
@olegp.3012 Жыл бұрын
что-бы безопасно считать или изменить переменную, которая может измениться в прерывании, нужно запрещать все прерывания функцией cli() оно же noInterrupts(), а после разрешать их функцией sei() оно же interrupts(). А volatile это другое.
@Ruthbate16 жыл бұрын
Алекс, куда пропал? Где #17й урок про режим энергосбережения ардуины? Мы заждались! Скоро пол года с крайнего видоса. Творческий кризис?
@AL-ip7yf4 жыл бұрын
@Тарас Атавин Смешное замечание
@Manowaroff4 жыл бұрын
это был последний )))
@АлексейФишер-э3ж3 жыл бұрын
Спасибо тебе огромное, хороший человек, за твой труд! Жаль, что серия прервалась... на прерываниях. Но это заставило погуглить... и нагуглилоссь же!!! Куча книжек!!! Ура, теперь читаем )))
@docer_man4 жыл бұрын
Благодарствую, это мне и нужно! Супер!
@happyjoe73516 жыл бұрын
Алекс ты красава каждый урок я узнаю что то новое спасибо тебе
@vladik-gadik6 жыл бұрын
Дооошлооооо!!!!! Ура!!! Наконец-то до меня дошлоооо!!! ))) Победил я копилку эту... На меге делал... долго разбирался... фуф. пошел жмакать кнопку "я сделяль"))
@borisfrolov10466 жыл бұрын
С нетерпением ждем новых уроков
@dimasanei43457 жыл бұрын
Как всегда материал подан на 5 с + :-) :-) :-) Маленькое уточнение внешние прерывания вроде не только на 2 ноги вешать... thewanderingengineer.com/2014/08/11/arduino-pin-change-interrupts/ И по хорошему нажо было бы озвучить, что у 328 есть прерывания по таймеру, уарту, концу обработки ацп и т.д. :-)
@aleks-mar7 жыл бұрын
dima sanei это ж видос про внешнее прерывание. По таймеру-это внутреннее, об этом отдельный видос имеется на этом же канале
@sergeymarkisev21454 жыл бұрын
Да, у Меги прерываний от ног больше. Но новички обычно не начинают с Мега, незачем их путать.
@Parkan155 жыл бұрын
Очень понятные, внятные уроки. Нет ээээээ, уууууу, ммммм. Огромное спасибо
@Чистота-залогздоровья2 жыл бұрын
Очень доходчиво, большое спасибо. Единственное смотрю на скорости 0.9, очень быстрая речь :)
@elenapoplos95373 жыл бұрын
Спасибо за видео и советы
@NuChamu3 жыл бұрын
Моледец! Просмотрел курс за пару часов. Изи
@PSDimaR137 жыл бұрын
Спасибо! как всегда интересно и полезно) пойду поломаю голову над кодом с прерыванием. Удачи тебе, жду видос про спящий режим)
@AndreyZloy6 жыл бұрын
Вот это уже было круто! давай еще видео!
@barmaleydp5 жыл бұрын
Супер. Спасибо! Всё понятно и доступно
@DimiEG6 жыл бұрын
Отличные уроки. Жаль нет продолжения. Хотелось бы услышать про использование структур и классов. Так же интересно про подключение дисплея, который вы использовали на заставке и передачу данных с датчика в интернет для сбора статистики например. Спасибо большое.
@ВалдосАрдуино6 жыл бұрын
Пожалуйста не бросай эта дело!!!
@GennPen7 жыл бұрын
4:00 Но ведь режимов пять, есть еще "HIGH" А чтобы не мучаться и не искать какой интеррапт идет к нужному пину - attachInterrupt(digitalPinToInterrupt(intPin), myInterrupt, CHANGE);
@Diselect.6 жыл бұрын
HIGH работает не на всех ардуинках.
@scetchrr6 жыл бұрын
Очень полезный урок спасибо!!!!!
@neposeda28967 жыл бұрын
четко и понятно. не слушай идиотов, которым что-то не нравится. 1)возможно они кроме этого мало что умеют. 2)если нет вежливости, пусть дальше бьют себя пяткой в грудь 3)так доступно, мало кто объясняет.
@nickpalmer_offc7 жыл бұрын
Сделай видео "Как управлять GSM или GPRS модулем"
@miggszzz5 жыл бұрын
у arduinoLab-а посмотри.. очень качественные разборы работы различных модулей
@Михалыч-я2к6 жыл бұрын
Отличный канал и этот и основной! Нет желания сделать видео по управлению светодиодами или светодиодной лентой через фотоэлемент? Я бы повторил например для ночника для дочки, чтобы не тыкать выключателями а включение и отключение зависило от яркости света. Я думаю такое можно не только в ночнике организовать но и подсветках разного типа.
@firekoxin4 жыл бұрын
видео старое но может кому пригодится. для того чтобы конвертировать номер ноги в номер прерывания используйте функцию digitalPinToInterrupt(), в качестве параметра передаёте номер ноги типа digitalPinToInterrupt(D3) а он возвращает номер прерывания или -1 если эта нога не может использоваться для вызова прерываний
@hassikc20582 жыл бұрын
Огромное спасибо! У меня китайская плата и я очень долго копался в даташитах, так ничего и не нашёл. Если бы не ты - не представлю, сколько времени я бы еще на это потратил. :)
@firekoxin2 жыл бұрын
@@hassikc2058 рад что эта информация помогла хоть одному человеку ;)
@Yupitrer7 жыл бұрын
Спасибо! Давно ждал.
@leonmiha905 жыл бұрын
Спасибо большое, Алекс! Доступненько :)
@andreilavrov26 жыл бұрын
Алекс, расскажи людям что можно использовать датчики андурино без самого андурино! А то многие вообще не вкурсе) . Я имею ввиду взять к примеру реле и геркон подносом магнит к геркону силовое реле включается и андурино сдесь ненужна. Или реле и датчик движения вот и получилась включение света по движению.
@Lukanyator7 жыл бұрын
классняк, то что мне нужно было для светодиодной текстовой панельки :)
@МаратНургалиев-д2к6 жыл бұрын
Алекс, я тебя прошу, ну сними ты ещё видюшочечек... ну пожаааалуйста, они самые лучшие!!!! Я много смотрел видео, они и рядом не стоят ни по доступности понимания, ни по краткости, ни по информативности. Особенно радуют разные фишечки, (типо массивов, millis за место delay, и т.д) за счёт чего я смог самостоятельно разобраться как делать анимированные значки, более того, смог выйти за пределы ограничений по символам в LCD 16x2 и теперь могу впихнуть невпихиваемое, например полную кириллицу. А ведь я был полный 0 в программировании!
@eugenevladoff27586 жыл бұрын
Алекс красавчик, все понятно, я усвоил!
@user-dm3hj8rg5f6 жыл бұрын
Привет Алекс, можешь пожалуйста сделать видом о том как подключать и управлять шаровым двигателем , а то я вообще не пойму какие нужны команды для работы движка .
@bonjorik79906 жыл бұрын
ГДЕ УРОКИ????
@vladislaviaroshchuk82937 жыл бұрын
Ещё прерывания по таймеру интересная штука, можно разобраться, как работает тот же метод millis(). Разве что библиотек хороших я так и не нашел, пришлось разбираться, как работать с таймерами на C. И сторожевой таймер вещь полезная, но приходится прошивать кастомный загрузчик, иначе ардуинка уходит в бутлуп после первого сброса.
@vladislaviaroshchuk82937 жыл бұрын
Embedded Programmer если устройство собрано, протестировано, работает без зависаний и ошибок, но предполагает стационарную установку с трудным доступом, то сторожевой таймер лишним не будет, как по мне.
@AAAAAA-lt9mi5 жыл бұрын
Сделай пожалуйста урок об управлении тиристором (нагрузка двигатель), чтобы можно было управлять оборотами двигателя, обратная связь для стабильной скорости ивывод информации на дисплей. Please
@tolkinnet54414 жыл бұрын
а вы знали что можно использовать Sublime text для разработки, с привязкой возможностей Aduino IDE, ну и само собой шикарного сета работы с кодом для саблайма, а то из IDE хуже обычного нотепада, тупо все для того чтобы как можно больше усложнить, а вот на саблайме теперь одно удовольствие
@Altai20005 жыл бұрын
А можете сделать видео на тему: вызов прерывания по аналоговому входу ардуино. На практике применение:" продолжить выполнение программы, при достижении определённой температуры среды, по показаниям датчика температуры (терморезистора)"
@КолайдрАндроидный6 жыл бұрын
Сегодня узнал о существовании твоего 2-го канала( замтки ардуи...) Подписка с меня. Спасибо тебе за твой труд.
@Vlad_45726 жыл бұрын
Ржу с кода!)))) Делэй 10000, потому что так захотелось)))))
@flatronchik87386 жыл бұрын
AlextGyver, прошу, скажи название библиотеки для глубокого энергосбережения. Пожалуйста!
@goldirus7 жыл бұрын
задержка 10000 потому что разработчику так захотелось))) вообще прерывания довольно сложная вещь и даже после того как поймешь суть ее работы
@Gggc4066 жыл бұрын
Ждём продолжения
@yuristrakhov64586 жыл бұрын
Отлично.
@alexandrpistoletov49666 жыл бұрын
Алекс, очень люблю твои каналы, прошу, сделай наиподробнейший туториал по XOD
@РоманСоколов-й8с5 жыл бұрын
Написал скетч на двух прерываниях. Первый вызыват следующую функцию: Caunt++; detachInterrupt(0); attachInterrupt(1, function, mode) ; Второе прерывание функцию: detachInterrupt(1); attachInterrupt(0, function, mode) ; По задумке при срабатывании первого прерывания должен обновляться счётчик на +1, отключаться обработка первого прерываня (что должно исключать эффект дребезга и любого другого ложного срабатывания при остановке на первом датчике), а второе прерывание должно снова включать первое прерывание и выключать второе. На деле выходит следующее, при первом срабатывании первого прерывания все правильно счётчик обновляется на +1, при срабатывании второго прерывания счётчик снова обновляется на +1 (хотя вроде не должен), при следующем срабатывании первого прерывания счётчик обновляется на +2 (!??), и далее все повторяется снова на второе +1, на первое +2. Не могу понять почему так происходит. Я скетч переделал с использованием флагов, все работает как надо, но то что происходит в первом варианте варианте не даёт мне покоя. В функции loop нет ничего такого, что могло бы обновлять счётчик, там только выводится значение счётчика на экран. Если кто знает отпишитесь.
@ezscalp6 жыл бұрын
Привет Благодаря тебе я сегодня потратил 21 тысячу рублей на али экспересс! Спасибо!!!
@РоманЮщенко-ю5о5 жыл бұрын
Можно ли сделать несколько прерываний на один пин(например RISING и FALLING)?
@ИмяФамилия-э4ф7в3 жыл бұрын
Есть же toggle, срабатывает и на rising и на falling. Если тебе нужно именно различить, какое событие, то внутри функции-обработчика проверяешь состояние пина через digitalRead и ставишь соответствующий флаг. Больше никакой логики в функции-обработчике не пишешь, прерывание должно быть обработано максимально быстро. Потом, в основном цикле проверяешь, если поднят флаг rising, снимаем его и делаем что-то. Если поднят флаг falling снимаем его и делаем что-то другое.
@vi-sky Жыл бұрын
Ты можешь сделать радиодальномер, по принципу прохождение радиосигнала за определенный обьем работы какого-либо процесса?
@SIM31r6 жыл бұрын
Timer0 тоже доступен, только в другом файле нужно его искать )) Удобен, так как примерно 1000 Гц и уже настроен.
@illya-litkin2 жыл бұрын
а про pin change interrupt можно, пожалуйста? спасибо)
@artemdavinci3 жыл бұрын
Можно ли использовать оба прерывания в одном коде и какие при этом ограничения?
@ВадимЯрков-т2т4 жыл бұрын
вот еще напишу второй коммент, через прерывание я получаю значение от датчика оборотов (типа tcrt5000) через lm358 делаю их до бинарного состояния, а вот дальше что с этими данными делать, как из них высчитать, расстояние между импульсами, т.е. оборотами, именно на что оперецо-то?
@tree-service Жыл бұрын
бомба , спасибо
@ДенисГригорьев-ю3м7 жыл бұрын
Ничосе, вот это интересно ....
@ipasenko7 жыл бұрын
Вот это лойс! Алекс, ты юзал когда-нибудь esp8266? Может про него что-ибудь снимешь?
@Erdan_Oskonbai_tegin7 жыл бұрын
Вот его видео с участием ESP8266: kzbin.info/www/bejne/pYeln6yobtGjhc0;
@zbruy7 жыл бұрын
Alex, не планируешь сделать электронный стабилизатор для камеры на ардуино? Было бы очень круто и полезно. Кто за - лайкайте!
@miggszzz5 жыл бұрын
это про что? у стаба идет в первую очередь механика, а потом уже электроника... как можно делать ролик про стаб "вообще" разве что про мозги для одной конкретной реализации железа, только многим ли оно будет актуально? а в целом, можешь сделать железо для стаба, значит понимаешь бюджет проекта.. при этом значительно проще и разумнее взять готовый оригинальный AlexMos, ну или из вечного желания сэкономить и остаться без обновленией и поддержки, взять AlexMos с алиэкспресса...
@АндрейМазена6 жыл бұрын
МОЯ ХОТЕТЬ ЕЩЁ ВИДЕО!!!!!!!
@АндрейЗинченко-ш9л7 жыл бұрын
Алекс, пожалуйста расскажи в своих видео о подключении сдвигового регистра к ардуино. В инете мало инфы о таких скетчах
@NickNaskida4 жыл бұрын
А в тахометре ты какой режим выбирал?rising?или change ответь пж
@yurikostsov8697 Жыл бұрын
Т.е. получается для организации счетчика на прерываниях можно задействовать любой из вариантов? 1 - обработка сигнала на пине и 2 - обработка флага. ?
@designecca6 жыл бұрын
Алекс, сделай подробный урок по созданию часов из семисегментного индикатора
@zvukache5 жыл бұрын
Вопросы продвинутым ардуинщикам. 1. Можно ли вызывать внутри функции обработки прерывания другую функцию? Т.е. мне нужно, чтобы в момент нажатия кнопки (по прерыванию) программа не просто прервалась, а перепрыгнула на нужную мне функцию и не возвращалась в то место, где её застигло прерывание. 2. Вопрос в продолжение предыдущего. Можно ли внутри функции обработки прерывания использовать переход goto? Потребности всё те же. Нужно, чтобы по прерыванию ход выполнения программы кардинально изменился. Заранее спасибо за конструктивный ответ.
@Дмитрий-д8т9щ5 жыл бұрын
Пожалуйста, сделай урок по работе с дисплеем.
@MemnyiPapirus3 жыл бұрын
спасибо уважуха!
@Qapernik4 жыл бұрын
интересно. на NodeMCU(esp8666) без ICACHE_RAM_ATTR ошибка и постоянная перезагрузка «ISR not in IRAM!»: Пример: ICACHE_RAM_ATTR void detectsClick() {}
@alexandersedunov91173 жыл бұрын
А можно пакеты по Wi-Fi в ESP8266 принимать и анализировать по прерыванию ? Если нет, то по каким причинам ?
@НикитаДоронин-р6к6 жыл бұрын
Сделай пожалуйста видео про подключение различных датчиков
@TNT-pv5yl6 жыл бұрын
пожалуйста сними видео про Arduino и Processing
@ChubzikSOFT6 жыл бұрын
А долго ждать след серии? ❤️
@zhygar.dmitry6 жыл бұрын
И моя душа требует новой порции интересной информации! :)
@eduardmart12373 жыл бұрын
А есть ограничение на размер функции в обработчике прерываний? Можно например в прерываниях логику реализовывать?
@ArduNotes3 жыл бұрын
что угодно, хоть тысячу флоатов в степень возводить. Но пока выполняется прерывание - другие прерывания не могут его прервать, поэтому программа может перестать нормально работать. Не говоря о том, что millis() уедет
@true_Cake6 жыл бұрын
Алекс, расскажи про типы потенциометров: какой лучше подходит для игрового манипулятора на ардуино леонардо? линейный (А) или логарифмический (В) ??
@alexandrgruzevich55616 жыл бұрын
А можно сделать, что при включении контролера он сначала проверял работоспособность датчиков и т.п., а результаты выводил на жк дисплей и уже после приступал к работе? Не нашел видео по этому вопросу.
@elyakas783 жыл бұрын
Здравствуйте, подскажите, как сделать так, чтобы нажать кнопку и удерживать, и только в положении удержания этой кнопки нажать другую кнопку, чтобы включить светодиод. то есть мы можем включать светодиод второй кнопкой только в том случае, если нажата первая кнопка. я не прошу код, просто объясните каким образом можно реализовать?
@ІванГулейчук-п6р6 жыл бұрын
привет Алекс. Давно смотрю твои видео, мне очень интересно. Можешь сделать видео про бидлиотеку ЕЕПРОМ и работу с ней, ато не очень понимаю принцип работы. Буду благодарен.
@AlexA-ff9uf6 жыл бұрын
Привет. Помогите новичку. Подключаю LCD 1602 через i2c к Меgе UNO при загрузке скетча через Flprog и в среде Arduino через примеры скетчей пробовал - в итоге просто синий экран (резистор крутил, адрес i2c-3F). Что можно попробовать сделать? Может бракованный LCD или i2c? Подскажите.
@s.g.72134 жыл бұрын
Очень хорошие Видосы но самое главное не сказал, чем можешь сильно запутать начинающих. Прерывания не только 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 программы. Хотя компиляторы с годами всё умнее и умнее.
@ArduNotes4 жыл бұрын
Урок называется "аппаратные прерывания", о них и шла речь. Урок из базовых, поэтому никаких флагов, никаких регистров, людям и это сложно даётся
@AlexanderSolowjow Жыл бұрын
Спасибо за краткое пояснение, сразу много вопросов сняло! Внезапно вспомнилась глава про прерывания в 8086 из книжки Нортона! (-:
@90_RUS5 жыл бұрын
Алекс, а как быть если у меня есть светодиод в автомобиле. И он по ШИМ управляется. А мне надо отследить когда он выключится и свое устройство тоже вырубить. Подскажи пожалуйста. И про энергосбережение тоже очень хочется видос посмотреть уже.
@tulskijpryanic5 жыл бұрын
Спасибо за видео. Искал материал про прерывания на ардуино и все заканчивается на внешних прерываниях INT0, etc. Но ведь практически каждый модуль имеет по нескольку своих прерываний. В основном это конечно таймеры (переполнение, совпадение и т.д.), но и UART тоже важная вещь (по приему байта, передача завершена). С этими прерываниями возможно как-то работать?
@ардуинонуб7 жыл бұрын
можно пожалуйста сделать скетч который будет принимать значения с приёмника RC а на выходе в переменную например val записывалось значение от 0 до предположим 1024?
@whatevsimbulletproof5 жыл бұрын
Охуенный канал. Пили плиз ещё!
@ПавелКудряшов-к3ъ6 жыл бұрын
Alex можешь ли ты описать как подключается и написание прошивки для работы с буквами. (хочу внедрить lcd дисплей в проект замок с поролем)
@ПавелКудряшов-к3ъ6 жыл бұрын
Lsd дисплей маленький такой
@Yar65007 жыл бұрын
Алекс, ролик шикарен как всегда, подскажи по дребезгу кнопки - как от него можно избавиться при обработке прерываний?
@ildarius1167 жыл бұрын
Из простых методов: Либо ставишь RC-фильтр после кнопки в сторону питания, либо программно, запрещаешь прерывания на определенное время, после срабатывания прерывания.
@GennPen7 жыл бұрын
Использовать программную обработку(есть библиотеки или самому сделать), поставить RC-фильтр, самое надежное - использовать кнопку переключения(а не замыкания) совместно с парой резисторов и одним конденсатором но такие кнопки обычно больше по габаритам и поэтому не везде удобно использовать.
@aleks-mar7 жыл бұрын
так ведь на этом же канале есть урок про кнопки и устранение дребезга
@Константин-н4г6б7 жыл бұрын
aleks mar Относительно прерывания это отдельная узконаправленная тема (много нюансов с задержками + как выше сказали проблема помехозащищённости!)
@АлексейНеделин-ч5з6 жыл бұрын
Так ведь там используется неработающая в прерывании millis?
@Nehochuha_koto_vibral_etot_nik6 жыл бұрын
Подскажите пожалуйсто, делаю умный до на ардуино, и на входе в комнату стоит 2 лазера и при их пересечении в разном порядке 1 или добавляется или отнимается, за щот того что они направлены на фоторезисторы, которые подключены к аналоовым пинам, так вот вопрос как сделать прерывания на эти пины (у меня ето А5 и А6)? Зарание спасибо.
@almasbatashev87036 жыл бұрын
Здравствуйте, Алекс. Хотел поблагодарить вас, за качественное и понятное видео. У меня к вам вопрос, можно сделать управление радиоуправляемой машинки на базе ардуино, с управлением со смартфона ? Если да, то какое приложение использовать для управления ?