Уроки Ардуино #16 - аппаратные прерывания

  Рет қаралды 244,661

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

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

Күн бұрын

Пікірлер: 385
@EdGreenTube
@EdGreenTube 7 жыл бұрын
Алекс, ты очень качественно делаешь свои видео. Респект. Я занимаюсь разного рода программированием, самому страшно с 1984 года, это 33, матьих, года. Как раз в 84 году студентом, на Электронике-60 (это советский клон PDP-11) писал программу обслуживания оборудования в реальном времени, используя прерывания. К чему это я? А к тому, что всё это мне ясно и понятно давно, но всё равно смотрю твои уроки с удовольствием и без ускоренной перемотки. Рассказывать, объяснять узконаправленные, технические темы -- это отдельный вид творчества, причём, мне кажется, совсем не простой. Там внизу комментаторы советовали набыдлокодить покруче, не слушай их. Пусть сами быдлокодят и быдлобложат потом. Всё очень точно дозировано. Молодец.
@PavelAmazing
@PavelAmazing 7 жыл бұрын
Присоединяюсь! Действительно - так объяснять - это талант. Алекс, хочешь, я тебя за это в подмосковье на параплане покатаю?
@Константин-н4г6б
@Константин-н4г6б 7 жыл бұрын
Тоже присоединяюсь👍 Не меняй формат видео! В баню Джереми тут интереснее и понятнее, спасибо! Жду продолжения, дисплеи, меню, клавиатуры, энкодеры и т.д.
@Erdan_Oskonbai_tegin
@Erdan_Oskonbai_tegin 7 жыл бұрын
Я с вами соглашаюсь, видео Алекса самые топовые!
@ВладимирСамокиш-т6г
@ВладимирСамокиш-т6г 6 жыл бұрын
Солидарен с Вами!
@alexgyver3126
@alexgyver3126 6 жыл бұрын
Эдуард Щеблыкин спасибо
@ИльяЕвгеньевич-б9ь
@ИльяЕвгеньевич-б9ь 4 жыл бұрын
ДИЧАЙШАЯ ПОЛЬЗА от аппаратного прерывания! Не представляю, как прожил всю жизнь без этого :-D Спасибо, Алекс!!!
@krispraison3657
@krispraison3657 7 жыл бұрын
Убедительная просьба: сделай виде про сон ардуинки.
@dmawzx
@dmawzx 6 жыл бұрын
Поддерживаю!
@ПавелВасильев-д4ф
@ПавелВасильев-д4ф 5 жыл бұрын
Присоединяюсь к просьбе. А в целом - курс очень подробный и доходчивый, спасибо!
@GroveLoveBIG
@GroveLoveBIG 5 жыл бұрын
Чет не убедительно
@Perega
@Perega 4 жыл бұрын
Сериал не продлили на второй сезон, так что идём читать уроки на сайте.
@ShElectricheskiy
@ShElectricheskiy 3 жыл бұрын
Уже есть!!!!
@ВалдосАрдуино
@ВалдосАрдуино 6 жыл бұрын
Хотим ещё!!! по больше примеров и интересных уроков. Алекс тебе большая 5 с большим +. Очень всё понятно и и затягивает. Надо уметь. Ты молоток.
@ra3apw
@ra3apw 2 жыл бұрын
Большое спасибо автору за видео курс. Просмотрел многие уроки по нескольку раз. Мне как радиоинженеру, а не программисту, весьма помогло преодолеть барьер освоения нового направления. С тех пор сделал несколько различных проектов для цифровой радиосвязи, радиотелеметрии и для RC пилотажек. Перешел сейчас с AVR на STM32 и графические дисплеи. Очень доволен возможностями ARDUINO IDE, но иногда знакомые советуют переходить на STM32Cube IDE. Но так как ARDUINO мне пока вполне хватает, то с переходом не тороплюсь. И еще понял, что с программированием как с изучением иностранного языка - весьма желательно заниматься регулярно, с минимальными паузами и нельзя бросать на несколько месяцев программирование, занимаясь проектированием "железа".
@yuriykim9
@yuriykim9 6 жыл бұрын
Автору ОГРОМНОЕ спасибо и респект! Только учусь программировать. Все предельно понятно и интересно!
@mr.flastik
@mr.flastik Жыл бұрын
В точку
@DeltaDesignRus
@DeltaDesignRus 6 жыл бұрын
Ты просто маньяк, и это заразительно - я все видео на одном дыхании посмотрел. Давненько не было ничего на этом канале, но я все равно в некоторые ответственные моменты открываю твои видео как справочную литературу)) Очень хочется увидеть (ты зарекался) ряд видео с обзорами всевозможных датчиков и примеров и идей работы с ними, работа большая но я думаю она того стоит! А потом можно и на STM32 перейти (в плане уроков), как настроить Arduino IDE под стмку и прочие подводные камни и особенности. В твоем исполнении это будет очень интересно смотреть!
@АлександрВишняков-г7и
@АлександрВишняков-г7и 7 жыл бұрын
Алекс, не шути так- что один из последних уроков!!! уроки у тебя отличные да и тем еще множество.
@АндрейПестов-э6ф
@АндрейПестов-э6ф 6 жыл бұрын
Алекс, хочу сказать тебе большое спасибо за твои уроки по ардуино и вообще за основной канал, так как завлек в эту увлекательную историю) решил тебе написать не просто так, я выиграл олимпиаду высшая проба*, в которой одно из заданий было сделать проект на ардуино, на этом задании я как раз и затащил))) конечно я занимался не только по твоим урокам и проектам, но в том числе и ты помог мне добиться этого!! *дает оч жесткие привилегии при поступлении
@sendarium
@sendarium 6 жыл бұрын
Сань, пожалуйста, я тебя прошу, выпусти уже урок про то, как работать с библиотекой LOW_POWER. В интернете много всякой херни, а этого толком нету. Только ты можешь объяснить понятно и доходчиво! Спасибо за понимание.
@mrrubikman_8853
@mrrubikman_8853 6 жыл бұрын
Чувак, ты гений который не плагиатит. Не вкоем случае не бросай ютуб
@Ihorko92
@Ihorko92 7 жыл бұрын
Кому интересно какие пины на каких платах используються для прерывания: ________________плата ------> цифровые пины 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 жыл бұрын
Спасибо, добрый человек)
@Liliumenergyeng
@Liliumenergyeng 5 жыл бұрын
Внешнее прерывание: 2 (прерывание 0), 3 (прерывание 1), 18 (прерывание 5), 19 (прерывание 4), 20 (прерывание 3), и 21 (прерывание 2). А если еще точнее то вот так. Надеюсь тоже кому то помого. Алекс Респект
@Агентмк
@Агентмк 4 жыл бұрын
Спасибо
@ИльяЕвгеньевич-б9ь
@ИльяЕвгеньевич-б9ь 4 жыл бұрын
@@Liliumenergyeng Спасибо огромное!
@ИльяЕвгеньевич-б9ь
@ИльяЕвгеньевич-б9ь 4 жыл бұрын
Человечище! Благодарю! :)
@ГригорийКобзаренко-и1в
@ГригорийКобзаренко-и1в 6 жыл бұрын
Очень интересные и очень понятные уроки. Хочется больше видео и чаще.
@Chiroff_sib
@Chiroff_sib 6 жыл бұрын
Больше, больше ещё больше уроков и не только:) все что связано с ардуинкой, БОЛЬШЕЕЕЕЕ
@konstantin9655
@konstantin9655 6 жыл бұрын
Пересмотрел все видосы, все очень круто, доступно и понятно. Осталось только дождаться, когда ардуинка придет мне с алика. Вот только чего не хватает на данном канале - видео урока про разного рода дисплеи, как с ними работать и подключать. Вот если с библиотеками для них еще можно разобраться самостоятельно, а вот по поводу тонкостей их подключения посложнее: к примеру вдруг подсветка дисплея должна подключаться обязательно через резюк, и чтобы лишний раз не жечь детали лучше все-таки рассказать. Был бы очень рад подобному видео!
@sergeygordich
@sergeygordich 4 жыл бұрын
Вот сейчас пришло понимание правильной работы с кнопками и всякими крутилками! Это дет совсем новое направление идей в плане программировании.
@olehshewchenko6556
@olehshewchenko6556 4 жыл бұрын
ЩЕ ЩЕ потрібно ще уроків) ти один нормально все розказуєш ) Дякую
@ArsenyAI
@ArsenyAI 6 жыл бұрын
*А гле продолжения????*
@МеняЗовутМитяйРаспздяйВторой
@МеняЗовутМитяйРаспздяйВторой 4 жыл бұрын
все кина не будет
@rifatzabirov9800
@rifatzabirov9800 4 жыл бұрын
@@МеняЗовутМитяйРаспздяйВторой уроки начинают выходить
@olegp.3012
@olegp.3012 Жыл бұрын
что-бы безопасно считать или изменить переменную, которая может измениться в прерывании, нужно запрещать все прерывания функцией cli() оно же noInterrupts(), а после разрешать их функцией sei() оно же interrupts(). А volatile это другое.
@Ruthbate1
@Ruthbate1 6 жыл бұрын
Алекс, куда пропал? Где #17й урок про режим энергосбережения ардуины? Мы заждались! Скоро пол года с крайнего видоса. Творческий кризис?
@AL-ip7yf
@AL-ip7yf 4 жыл бұрын
@Тарас Атавин Смешное замечание
@Manowaroff
@Manowaroff 4 жыл бұрын
это был последний )))
@АлексейФишер-э3ж
@АлексейФишер-э3ж 3 жыл бұрын
Спасибо тебе огромное, хороший человек, за твой труд! Жаль, что серия прервалась... на прерываниях. Но это заставило погуглить... и нагуглилоссь же!!! Куча книжек!!! Ура, теперь читаем )))
@docer_man
@docer_man 4 жыл бұрын
Благодарствую, это мне и нужно! Супер!
@happyjoe7351
@happyjoe7351 6 жыл бұрын
Алекс ты красава каждый урок я узнаю что то новое спасибо тебе
@vladik-gadik
@vladik-gadik 6 жыл бұрын
Дооошлооооо!!!!! Ура!!! Наконец-то до меня дошлоооо!!! ))) Победил я копилку эту... На меге делал... долго разбирался... фуф. пошел жмакать кнопку "я сделяль"))
@borisfrolov1046
@borisfrolov1046 6 жыл бұрын
С нетерпением ждем новых уроков
@dimasanei4345
@dimasanei4345 7 жыл бұрын
Как всегда материал подан на 5 с + :-) :-) :-) Маленькое уточнение внешние прерывания вроде не только на 2 ноги вешать... thewanderingengineer.com/2014/08/11/arduino-pin-change-interrupts/ И по хорошему нажо было бы озвучить, что у 328 есть прерывания по таймеру, уарту, концу обработки ацп и т.д. :-)
@aleks-mar
@aleks-mar 7 жыл бұрын
dima sanei это ж видос про внешнее прерывание. По таймеру-это внутреннее, об этом отдельный видос имеется на этом же канале
@sergeymarkisev2145
@sergeymarkisev2145 4 жыл бұрын
Да, у Меги прерываний от ног больше. Но новички обычно не начинают с Мега, незачем их путать.
@Parkan15
@Parkan15 5 жыл бұрын
Очень понятные, внятные уроки. Нет ээээээ, уууууу, ммммм. Огромное спасибо
@Чистота-залогздоровья
@Чистота-залогздоровья 2 жыл бұрын
Очень доходчиво, большое спасибо. Единственное смотрю на скорости 0.9, очень быстрая речь :)
@elenapoplos9537
@elenapoplos9537 3 жыл бұрын
Спасибо за видео и советы
@NuChamu
@NuChamu 3 жыл бұрын
Моледец! Просмотрел курс за пару часов. Изи
@PSDimaR13
@PSDimaR13 7 жыл бұрын
Спасибо! как всегда интересно и полезно) пойду поломаю голову над кодом с прерыванием. Удачи тебе, жду видос про спящий режим)
@AndreyZloy
@AndreyZloy 6 жыл бұрын
Вот это уже было круто! давай еще видео!
@barmaleydp
@barmaleydp 5 жыл бұрын
Супер. Спасибо! Всё понятно и доступно
@DimiEG
@DimiEG 6 жыл бұрын
Отличные уроки. Жаль нет продолжения. Хотелось бы услышать про использование структур и классов. Так же интересно про подключение дисплея, который вы использовали на заставке и передачу данных с датчика в интернет для сбора статистики например. Спасибо большое.
@ВалдосАрдуино
@ВалдосАрдуино 6 жыл бұрын
Пожалуйста не бросай эта дело!!!
@GennPen
@GennPen 7 жыл бұрын
4:00 Но ведь режимов пять, есть еще "HIGH" А чтобы не мучаться и не искать какой интеррапт идет к нужному пину - attachInterrupt(digitalPinToInterrupt(intPin), myInterrupt, CHANGE);
@Diselect.
@Diselect. 6 жыл бұрын
HIGH работает не на всех ардуинках.
@scetchrr
@scetchrr 6 жыл бұрын
Очень полезный урок спасибо!!!!!
@neposeda2896
@neposeda2896 7 жыл бұрын
четко и понятно. не слушай идиотов, которым что-то не нравится. 1)возможно они кроме этого мало что умеют. 2)если нет вежливости, пусть дальше бьют себя пяткой в грудь 3)так доступно, мало кто объясняет.
@nickpalmer_offc
@nickpalmer_offc 7 жыл бұрын
Сделай видео "Как управлять GSM или GPRS модулем"
@miggszzz
@miggszzz 5 жыл бұрын
у arduinoLab-а посмотри.. очень качественные разборы работы различных модулей
@Михалыч-я2к
@Михалыч-я2к 6 жыл бұрын
Отличный канал и этот и основной! Нет желания сделать видео по управлению светодиодами или светодиодной лентой через фотоэлемент? Я бы повторил например для ночника для дочки, чтобы не тыкать выключателями а включение и отключение зависило от яркости света. Я думаю такое можно не только в ночнике организовать но и подсветках разного типа.
@firekoxin
@firekoxin 4 жыл бұрын
видео старое но может кому пригодится. для того чтобы конвертировать номер ноги в номер прерывания используйте функцию digitalPinToInterrupt(), в качестве параметра передаёте номер ноги типа digitalPinToInterrupt(D3) а он возвращает номер прерывания или -1 если эта нога не может использоваться для вызова прерываний
@hassikc2058
@hassikc2058 2 жыл бұрын
Огромное спасибо! У меня китайская плата и я очень долго копался в даташитах, так ничего и не нашёл. Если бы не ты - не представлю, сколько времени я бы еще на это потратил. :)
@firekoxin
@firekoxin 2 жыл бұрын
@@hassikc2058 рад что эта информация помогла хоть одному человеку ;)
@Yupitrer
@Yupitrer 7 жыл бұрын
Спасибо! Давно ждал.
@leonmiha90
@leonmiha90 5 жыл бұрын
Спасибо большое, Алекс! Доступненько :)
@andreilavrov2
@andreilavrov2 6 жыл бұрын
Алекс, расскажи людям что можно использовать датчики андурино без самого андурино! А то многие вообще не вкурсе) . Я имею ввиду взять к примеру реле и геркон подносом магнит к геркону силовое реле включается и андурино сдесь ненужна. Или реле и датчик движения вот и получилась включение света по движению.
@Lukanyator
@Lukanyator 7 жыл бұрын
классняк, то что мне нужно было для светодиодной текстовой панельки :)
@МаратНургалиев-д2к
@МаратНургалиев-д2к 6 жыл бұрын
Алекс, я тебя прошу, ну сними ты ещё видюшочечек... ну пожаааалуйста, они самые лучшие!!!! Я много смотрел видео, они и рядом не стоят ни по доступности понимания, ни по краткости, ни по информативности. Особенно радуют разные фишечки, (типо массивов, millis за место delay, и т.д) за счёт чего я смог самостоятельно разобраться как делать анимированные значки, более того, смог выйти за пределы ограничений по символам в LCD 16x2 и теперь могу впихнуть невпихиваемое, например полную кириллицу. А ведь я был полный 0 в программировании!
@eugenevladoff2758
@eugenevladoff2758 6 жыл бұрын
Алекс красавчик, все понятно, я усвоил!
@user-dm3hj8rg5f
@user-dm3hj8rg5f 6 жыл бұрын
Привет Алекс, можешь пожалуйста сделать видом о том как подключать и управлять шаровым двигателем , а то я вообще не пойму какие нужны команды для работы движка .
@bonjorik7990
@bonjorik7990 6 жыл бұрын
ГДЕ УРОКИ????
@vladislaviaroshchuk8293
@vladislaviaroshchuk8293 7 жыл бұрын
Ещё прерывания по таймеру интересная штука, можно разобраться, как работает тот же метод millis(). Разве что библиотек хороших я так и не нашел, пришлось разбираться, как работать с таймерами на C. И сторожевой таймер вещь полезная, но приходится прошивать кастомный загрузчик, иначе ардуинка уходит в бутлуп после первого сброса.
@vladislaviaroshchuk8293
@vladislaviaroshchuk8293 7 жыл бұрын
Embedded Programmer если устройство собрано, протестировано, работает без зависаний и ошибок, но предполагает стационарную установку с трудным доступом, то сторожевой таймер лишним не будет, как по мне.
@AAAAAA-lt9mi
@AAAAAA-lt9mi 5 жыл бұрын
Сделай пожалуйста урок об управлении тиристором (нагрузка двигатель), чтобы можно было управлять оборотами двигателя, обратная связь для стабильной скорости ивывод информации на дисплей. Please
@tolkinnet5441
@tolkinnet5441 4 жыл бұрын
а вы знали что можно использовать Sublime text для разработки, с привязкой возможностей Aduino IDE, ну и само собой шикарного сета работы с кодом для саблайма, а то из IDE хуже обычного нотепада, тупо все для того чтобы как можно больше усложнить, а вот на саблайме теперь одно удовольствие
@Altai2000
@Altai2000 5 жыл бұрын
А можете сделать видео на тему: вызов прерывания по аналоговому входу ардуино. На практике применение:" продолжить выполнение программы, при достижении определённой температуры среды, по показаниям датчика температуры (терморезистора)"
@КолайдрАндроидный
@КолайдрАндроидный 6 жыл бұрын
Сегодня узнал о существовании твоего 2-го канала( замтки ардуи...) Подписка с меня. Спасибо тебе за твой труд.
@Vlad_4572
@Vlad_4572 6 жыл бұрын
Ржу с кода!)))) Делэй 10000, потому что так захотелось)))))
@flatronchik8738
@flatronchik8738 6 жыл бұрын
AlextGyver, прошу, скажи название библиотеки для глубокого энергосбережения. Пожалуйста!
@goldirus
@goldirus 7 жыл бұрын
задержка 10000 потому что разработчику так захотелось))) вообще прерывания довольно сложная вещь и даже после того как поймешь суть ее работы
@Gggc406
@Gggc406 6 жыл бұрын
Ждём продолжения
@yuristrakhov6458
@yuristrakhov6458 6 жыл бұрын
Отлично.
@alexandrpistoletov4966
@alexandrpistoletov4966 6 жыл бұрын
Алекс, очень люблю твои каналы, прошу, сделай наиподробнейший туториал по XOD
@РоманСоколов-й8с
@РоманСоколов-й8с 5 жыл бұрын
Написал скетч на двух прерываниях. Первый вызыват следующую функцию: Caunt++; detachInterrupt(0); attachInterrupt(1, function, mode) ; Второе прерывание функцию: detachInterrupt(1); attachInterrupt(0, function, mode) ; По задумке при срабатывании первого прерывания должен обновляться счётчик на +1, отключаться обработка первого прерываня (что должно исключать эффект дребезга и любого другого ложного срабатывания при остановке на первом датчике), а второе прерывание должно снова включать первое прерывание и выключать второе. На деле выходит следующее, при первом срабатывании первого прерывания все правильно счётчик обновляется на +1, при срабатывании второго прерывания счётчик снова обновляется на +1 (хотя вроде не должен), при следующем срабатывании первого прерывания счётчик обновляется на +2 (!??), и далее все повторяется снова на второе +1, на первое +2. Не могу понять почему так происходит. Я скетч переделал с использованием флагов, все работает как надо, но то что происходит в первом варианте варианте не даёт мне покоя. В функции loop нет ничего такого, что могло бы обновлять счётчик, там только выводится значение счётчика на экран. Если кто знает отпишитесь.
@ezscalp
@ezscalp 6 жыл бұрын
Привет Благодаря тебе я сегодня потратил 21 тысячу рублей на али экспересс! Спасибо!!!
@РоманЮщенко-ю5о
@РоманЮщенко-ю5о 5 жыл бұрын
Можно ли сделать несколько прерываний на один пин(например RISING и FALLING)?
@ИмяФамилия-э4ф7в
@ИмяФамилия-э4ф7в 3 жыл бұрын
Есть же toggle, срабатывает и на rising и на falling. Если тебе нужно именно различить, какое событие, то внутри функции-обработчика проверяешь состояние пина через digitalRead и ставишь соответствующий флаг. Больше никакой логики в функции-обработчике не пишешь, прерывание должно быть обработано максимально быстро. Потом, в основном цикле проверяешь, если поднят флаг rising, снимаем его и делаем что-то. Если поднят флаг falling снимаем его и делаем что-то другое.
@vi-sky
@vi-sky Жыл бұрын
Ты можешь сделать радиодальномер, по принципу прохождение радиосигнала за определенный обьем работы какого-либо процесса?
@SIM31r
@SIM31r 6 жыл бұрын
Timer0 тоже доступен, только в другом файле нужно его искать )) Удобен, так как примерно 1000 Гц и уже настроен.
@illya-litkin
@illya-litkin 2 жыл бұрын
а про pin change interrupt можно, пожалуйста? спасибо)
@artemdavinci
@artemdavinci 3 жыл бұрын
Можно ли использовать оба прерывания в одном коде и какие при этом ограничения?
@ВадимЯрков-т2т
@ВадимЯрков-т2т 4 жыл бұрын
вот еще напишу второй коммент, через прерывание я получаю значение от датчика оборотов (типа tcrt5000) через lm358 делаю их до бинарного состояния, а вот дальше что с этими данными делать, как из них высчитать, расстояние между импульсами, т.е. оборотами, именно на что оперецо-то?
@tree-service
@tree-service Жыл бұрын
бомба , спасибо
@ДенисГригорьев-ю3м
@ДенисГригорьев-ю3м 7 жыл бұрын
Ничосе, вот это интересно ....
@ipasenko
@ipasenko 7 жыл бұрын
Вот это лойс! Алекс, ты юзал когда-нибудь esp8266? Может про него что-ибудь снимешь?
@Erdan_Oskonbai_tegin
@Erdan_Oskonbai_tegin 7 жыл бұрын
Вот его видео с участием ESP8266: kzbin.info/www/bejne/pYeln6yobtGjhc0;
@zbruy
@zbruy 7 жыл бұрын
Alex, не планируешь сделать электронный стабилизатор для камеры на ардуино? Было бы очень круто и полезно. Кто за - лайкайте!
@miggszzz
@miggszzz 5 жыл бұрын
это про что? у стаба идет в первую очередь механика, а потом уже электроника... как можно делать ролик про стаб "вообще" разве что про мозги для одной конкретной реализации железа, только многим ли оно будет актуально? а в целом, можешь сделать железо для стаба, значит понимаешь бюджет проекта.. при этом значительно проще и разумнее взять готовый оригинальный AlexMos, ну или из вечного желания сэкономить и остаться без обновленией и поддержки, взять AlexMos с алиэкспресса...
@АндрейМазена
@АндрейМазена 6 жыл бұрын
МОЯ ХОТЕТЬ ЕЩЁ ВИДЕО!!!!!!!
@АндрейЗинченко-ш9л
@АндрейЗинченко-ш9л 7 жыл бұрын
Алекс, пожалуйста расскажи в своих видео о подключении сдвигового регистра к ардуино. В инете мало инфы о таких скетчах
@NickNaskida
@NickNaskida 4 жыл бұрын
А в тахометре ты какой режим выбирал?rising?или change ответь пж
@yurikostsov8697
@yurikostsov8697 Жыл бұрын
Т.е. получается для организации счетчика на прерываниях можно задействовать любой из вариантов? 1 - обработка сигнала на пине и 2 - обработка флага. ?
@designecca
@designecca 6 жыл бұрын
Алекс, сделай подробный урок по созданию часов из семисегментного индикатора
@zvukache
@zvukache 5 жыл бұрын
Вопросы продвинутым ардуинщикам. 1. Можно ли вызывать внутри функции обработки прерывания другую функцию? Т.е. мне нужно, чтобы в момент нажатия кнопки (по прерыванию) программа не просто прервалась, а перепрыгнула на нужную мне функцию и не возвращалась в то место, где её застигло прерывание. 2. Вопрос в продолжение предыдущего. Можно ли внутри функции обработки прерывания использовать переход goto? Потребности всё те же. Нужно, чтобы по прерыванию ход выполнения программы кардинально изменился. Заранее спасибо за конструктивный ответ.
@Дмитрий-д8т9щ
@Дмитрий-д8т9щ 5 жыл бұрын
Пожалуйста, сделай урок по работе с дисплеем.
@MemnyiPapirus
@MemnyiPapirus 3 жыл бұрын
спасибо уважуха!
@Qapernik
@Qapernik 4 жыл бұрын
интересно. на NodeMCU(esp8666) без ICACHE_RAM_ATTR ошибка и постоянная перезагрузка «ISR not in IRAM!»: Пример: ICACHE_RAM_ATTR void detectsClick() {}
@alexandersedunov9117
@alexandersedunov9117 3 жыл бұрын
А можно пакеты по Wi-Fi в ESP8266 принимать и анализировать по прерыванию ? Если нет, то по каким причинам ?
@НикитаДоронин-р6к
@НикитаДоронин-р6к 6 жыл бұрын
Сделай пожалуйста видео про подключение различных датчиков
@TNT-pv5yl
@TNT-pv5yl 6 жыл бұрын
пожалуйста сними видео про Arduino и Processing
@ChubzikSOFT
@ChubzikSOFT 6 жыл бұрын
А долго ждать след серии? ❤️
@zhygar.dmitry
@zhygar.dmitry 6 жыл бұрын
И моя душа требует новой порции интересной информации! :)
@eduardmart1237
@eduardmart1237 3 жыл бұрын
А есть ограничение на размер функции в обработчике прерываний? Можно например в прерываниях логику реализовывать?
@ArduNotes
@ArduNotes 3 жыл бұрын
что угодно, хоть тысячу флоатов в степень возводить. Но пока выполняется прерывание - другие прерывания не могут его прервать, поэтому программа может перестать нормально работать. Не говоря о том, что millis() уедет
@true_Cake
@true_Cake 6 жыл бұрын
Алекс, расскажи про типы потенциометров: какой лучше подходит для игрового манипулятора на ардуино леонардо? линейный (А) или логарифмический (В) ??
@alexandrgruzevich5561
@alexandrgruzevich5561 6 жыл бұрын
А можно сделать, что при включении контролера он сначала проверял работоспособность датчиков и т.п., а результаты выводил на жк дисплей и уже после приступал к работе? Не нашел видео по этому вопросу.
@elyakas78
@elyakas78 3 жыл бұрын
Здравствуйте, подскажите, как сделать так, чтобы нажать кнопку и удерживать, и только в положении удержания этой кнопки нажать другую кнопку, чтобы включить светодиод. то есть мы можем включать светодиод второй кнопкой только в том случае, если нажата первая кнопка. я не прошу код, просто объясните каким образом можно реализовать?
@ІванГулейчук-п6р
@ІванГулейчук-п6р 6 жыл бұрын
привет Алекс. Давно смотрю твои видео, мне очень интересно. Можешь сделать видео про бидлиотеку ЕЕПРОМ и работу с ней, ато не очень понимаю принцип работы. Буду благодарен.
@AlexA-ff9uf
@AlexA-ff9uf 6 жыл бұрын
Привет. Помогите новичку. Подключаю LCD 1602 через i2c к Меgе UNO при загрузке скетча через Flprog и в среде Arduino через примеры скетчей пробовал - в итоге просто синий экран (резистор крутил, адрес i2c-3F). Что можно попробовать сделать? Может бракованный LCD или i2c? Подскажите.
@s.g.7213
@s.g.7213 4 жыл бұрын
Очень хорошие Видосы но самое главное не сказал, чем можешь сильно запутать начинающих. Прерывания не только 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 программы. Хотя компиляторы с годами всё умнее и умнее.
@ArduNotes
@ArduNotes 4 жыл бұрын
Урок называется "аппаратные прерывания", о них и шла речь. Урок из базовых, поэтому никаких флагов, никаких регистров, людям и это сложно даётся
@AlexanderSolowjow
@AlexanderSolowjow Жыл бұрын
Спасибо за краткое пояснение, сразу много вопросов сняло! Внезапно вспомнилась глава про прерывания в 8086 из книжки Нортона! (-:
@90_RUS
@90_RUS 5 жыл бұрын
Алекс, а как быть если у меня есть светодиод в автомобиле. И он по ШИМ управляется. А мне надо отследить когда он выключится и свое устройство тоже вырубить. Подскажи пожалуйста. И про энергосбережение тоже очень хочется видос посмотреть уже.
@tulskijpryanic
@tulskijpryanic 5 жыл бұрын
Спасибо за видео. Искал материал про прерывания на ардуино и все заканчивается на внешних прерываниях INT0, etc. Но ведь практически каждый модуль имеет по нескольку своих прерываний. В основном это конечно таймеры (переполнение, совпадение и т.д.), но и UART тоже важная вещь (по приему байта, передача завершена). С этими прерываниями возможно как-то работать?
@ардуинонуб
@ардуинонуб 7 жыл бұрын
можно пожалуйста сделать скетч который будет принимать значения с приёмника RC а на выходе в переменную например val записывалось значение от 0 до предположим 1024?
@whatevsimbulletproof
@whatevsimbulletproof 5 жыл бұрын
Охуенный канал. Пили плиз ещё!
@ПавелКудряшов-к3ъ
@ПавелКудряшов-к3ъ 6 жыл бұрын
Alex можешь ли ты описать как подключается и написание прошивки для работы с буквами. (хочу внедрить lcd дисплей в проект замок с поролем)
@ПавелКудряшов-к3ъ
@ПавелКудряшов-к3ъ 6 жыл бұрын
Lsd дисплей маленький такой
@Yar6500
@Yar6500 7 жыл бұрын
Алекс, ролик шикарен как всегда, подскажи по дребезгу кнопки - как от него можно избавиться при обработке прерываний?
@ildarius116
@ildarius116 7 жыл бұрын
Из простых методов: Либо ставишь RC-фильтр после кнопки в сторону питания, либо программно, запрещаешь прерывания на определенное время, после срабатывания прерывания.
@GennPen
@GennPen 7 жыл бұрын
Использовать программную обработку(есть библиотеки или самому сделать), поставить RC-фильтр, самое надежное - использовать кнопку переключения(а не замыкания) совместно с парой резисторов и одним конденсатором но такие кнопки обычно больше по габаритам и поэтому не везде удобно использовать.
@aleks-mar
@aleks-mar 7 жыл бұрын
так ведь на этом же канале есть урок про кнопки и устранение дребезга
@Константин-н4г6б
@Константин-н4г6б 7 жыл бұрын
aleks mar Относительно прерывания это отдельная узконаправленная тема (много нюансов с задержками + как выше сказали проблема помехозащищённости!)
@АлексейНеделин-ч5з
@АлексейНеделин-ч5з 6 жыл бұрын
Так ведь там используется неработающая в прерывании millis?
@Nehochuha_koto_vibral_etot_nik
@Nehochuha_koto_vibral_etot_nik 6 жыл бұрын
Подскажите пожалуйсто, делаю умный до на ардуино, и на входе в комнату стоит 2 лазера и при их пересечении в разном порядке 1 или добавляется или отнимается, за щот того что они направлены на фоторезисторы, которые подключены к аналоовым пинам, так вот вопрос как сделать прерывания на эти пины (у меня ето А5 и А6)? Зарание спасибо.
@almasbatashev8703
@almasbatashev8703 6 жыл бұрын
Здравствуйте, Алекс. Хотел поблагодарить вас, за качественное и понятное видео. У меня к вам вопрос, можно сделать управление радиоуправляемой машинки на базе ардуино, с управлением со смартфона ? Если да, то какое приложение использовать для управления ?
Уроки Ардуино #15 - работа с массивами
4:00
Заметки Ардуинщика
Рет қаралды 157 М.
Уроки Arduino: энергосбережение и сон
19:03
Заметки Ардуинщика
Рет қаралды 121 М.
How Strong is Tin Foil? 💪
00:25
Brianna
Рет қаралды 68 МЛН
1, 2, 3, 4, 5, 6, 7, 8, 9 🙈⚽️
00:46
Celine Dept
Рет қаралды 85 МЛН
😜 #aminkavitaminka #aminokka #аминкавитаминка
00:14
Аминка Витаминка
Рет қаралды 3,1 МЛН
Уроки Ардуино. Прерывания по таймеру
9:04
Заметки Ардуинщика
Рет қаралды 109 М.
ATtiny26 - новый король бомж самоделок?
10:40
Заметки Ардуинщика
Рет қаралды 329 М.
🤖Я в шоке! ChatGPT пишет Arduino проекты
28:24
Тахометр своими руками на Arduino
8:49
AlexGyver
Рет қаралды 435 М.
ARDUINO ВЗРОСЛЫХ - KernelChip из России
7:30
РТУ МИРЭА
Рет қаралды 163 М.