Запускаем ШИМ на любом пине Ардуино!
ฝัง
- เผยแพร่เมื่อ 8 มิ.ย. 2024
- В этом уроке будем поднимать ШИМ сигнал на любых пинах Arduino - программный ШИМ
► Базовый урок по ШИМ - alexgyver.ru/lessons/pwm-signal/
► Повышаем частоту ШИМ - alexgyver.ru/lessons/pwm-over...
► Прерывания аппаратного таймера - alexgyver.ru/lessons/timer-isr/
► Поддержать автора: yoomoney.ru/to/410019154264963
► По всем вопросам: nich1con36@mail.ru
► Примеры: github.com/AlexGyver/tutorial...
★ Инструменты, приборы и материалы для пайки ★
- Удобные мультиметры: ali.ski/2nn13 ali.ski/fTDAW9
- Тестеры компонентов: ali.ski/ZFLC7Y ali.ski/Mb_7W
- Карманные осциллографы: ali.ski/JdkQw
- Паяльная станция HakkoT12: ali.ski/pEUz9I
- Паяльный фен 8858: ali.ski/3cSLjp ali.ski/OtB10-
- Коврик для пайки: ali.ski/gF7bWW
- Стриппер для проводов: ali.ski/RiVwcj ali.ski/Thu_i
- Оловоотсос: ali.ski/1MLjH ali.ski/1K-IS
- Куча дешевого припоя: ali.ski/ZGkkx ali.ski/S3h5V
- Шпильки для выпайки: ali.ski/WSv7wx
- Хороший флюс-гель: ali.ski/uFflw
▼ Огромный стартовый набор GyverKIT ▼
kit.alexgyver.ru/
▼ Уроки Arduino на сайте ▼
alexgyver.ru/lessons/
▼ Модули и датчики с Али ▼
alexgyver.ru/arduino_shop/
▼ Страница "Заметок Ардуинщика" ▼
alexgyver.ru/arduino_lessons/
00:00 - вступление
00:30 - на каких пинах работает?
00:47 - особенности программного ШИМ
01:43 - Гайвер со своим процессингом
02:05 - моделируем эффекты к светодиодной гирлянде
04:10 - принцип действия генерации ШИМ
05:35 - реализуем простейший ШИМ
07:25 - добавляем несколько каналов ШИМ
08:00 - решаем проблему нулевого заполнения
08:40 - меняем разрешение ШИМ
09:56 - оптимизируем скорость
10:45 - добавляем буфферизацию
11:31 - эпилог
Теги: #arduino #уроки #ардуино #alexgyver
●●●●●●●●●●●●●●●●●●●●
► Основной канал: / alexgyvershow
► Поддержать автора alexgyver.ru/support_alex/
► Официальный сайт: AlexGyver.ru/
► Почта: alex@alexgyver.ru - วิทยาศาสตร์และเทคโนโลยี
Какие крутые у нас ребята. Спасибо! Это уроки для вечности. Такая инфа не устареет И спустя десяток лет
Он устарел с появлением STM32, лет 10 назад, но всё равно интересно.
Пища для ума, смотришь и получаешь удовольствие от подробного и сжатого объяснения, спасибо👍👍👍
Спасибо, с удовольствие посмотрел, хоть и все это давно практикую.
Спасибо за ваши уроки, уже все посмотрел и выучил. Теперь изучаю более подробно у вас на сайте. Спасибо вам огромное!
Благодарю, для Дронов очень пригодилось
Какая приятная неожиданность!)
Где ты был буквально 45 минут назад? У меня возникла такая проблема и я ее героически решал
Ну ну. Я гдето ето слишал....
Спасибо автору видео, всё понятно и полезно...
Спасибо за инфу. Расказал бы еще про spwm с 3-мя фазами, цены не было бы!)
Хороший дуэт.
Удачи пацаны👍👍👍
Спасибо за видео и советы
Опа-ньки! Ну, вы ребята даёте!
4:00 /* Имплементируйте этот эффект */
Ох ты ж ёжик!!!
спиканул так спиканул
Спасибо парни, Вы делаете важное и главное полезное дело! Учиться - всегда пригодится)
Спасибо. Как раз ломал голову по поводу сдвига фазы сигнала.
Спасибо)
Кажется мы теряем Алекса. Но видео всё равно топчик.
алекс готовит несколько часовых уроков
Как же хорошо :з
Да, дуэтом интересней... :)
Метод Binary Angle Modulation позволяет делать множество программных ШИМ (ну, почти ШИМ), не сильно нагружая процессор прерываниями. Число прерываний за период тут равно числу бит, а не 2^бит.
Для увеличения быстродействия можно сделать ассемблерные вставки. Команды sbi и cbi
Делать работу компилятора за него? Мы не в 2005, компиляторы сейчас делают всё как надо и ускорить уже не получится
А ещё можно писать напрямую в регистры, чтобы получить максимальную частоту
этим и занимается FastIO в паре с компилятором
А где её взять FastIO.h ?! Так и не нашел под видео
@@ArduNotes А где её взять FastIO.h ?! Так и не нашел под видео
@@ArduNotes а в ответ тишина?! он вчера не вернулся из боя )))
Сервой можно будет таким способом управлять? Тоесть серва будет переваривать такой шим?
Класс
Здравствуйте, мне было бы интересно как сделать программный спиай
стандартные функции shiftOut и shiftIn
Е ли не хватает 1 ардуино, можно использовать 2 ардуино.... ::)
... или Мегу. :-)
Ага, если не хватает Nano - бери Мегу
@@buildmaker Если не хватает Меги - бери Малину)))
@@AlexanderBegoon Нет, сначала STM-ка, а потом Малина
@@buildmaker малина все же проще...
4:00 ну блин., я же ленивый, я не хочу.....
Интересно, а когда будет про gsm модули!?
да работают через одно место они
@@nich1con652Поясните на пальцах, что не устраивает. Ведь в каждом телефоне такой модуль и вроде работает отлично, в отличие от программок-навигаторов)))
@@marininpapa1836 в телефонах современные решения 3-4-5го поколения, встроенные в сложнейшие системы на кристалле, а в модулях старое говно времен полиомиелита, которое требовательно к питанию, работает далеко не со всеми симками, и нередко зависает и не отвечает на команды.
@@nich1con652 зависит от конкретного модуля, есть достаточно неплохие квателовские модемы и с ЛТЕ если надо)
Правда ввиде модулей ардуины я их не видел, только как "модули для поверхностного монтажа" с требованием заводить несколько питаний
Помогите плз) как теперь обращаться к множеству переменных? то есть, если раньше мы заводили массив с пинами, и перечисляя указывали им значения, то теперь у нас вместо пинов имена переменных. Если завести их в массив, то можно прочесть, а изменить не удается.
А можно было сделать проще
пример на C
pin_1=timer
почему то не видит IDE у меня Timer2 и ISR в данном из видео коде.. и библиотеку установило GyverTimer а не GyverTimers
Имплемент всем 🚩 и 3:16 в автомобиль 🚗
подскажите пожалуйста, правильно ли я понял? шим можно генерировать на любом пине, а конкретно на D2-D13 и A0-A5 включительно, те всего 18? TX1 и RX0 не заработали с вашим кодом)) не пойму где тогда еще 2 пина, из заявленных 20?) может что не так делаю
Rx и Tx необходимо переконфигурировать
Взаимно добра тебе и крепкого здоровья мир вашему дому привет
Вы умеете управлять TLC5940?
Отличный канал, а сайт -- огонь! Думаю, скоро подвинете многих "учителей" ардуино.
Вроде как уже давно подвинул
Здравствуйте, у меня есть просьба, сделайте проект usb геймпада на arduino nano, было бы интересно посмотреть и самому попробовать
это нельзя. бери micro с 32u4
Есть ли возможность выдавать на любые выводы ардуинки строго, например, 2.5V или 1V, не с помощью ШИМ сигнала, а именно постоянное напряжение. Если это не возможно, то есть ли какие-нибудь другие варианты с подачей определённого напряжения на пины ардуино (или стм32) (с помощью самой ардуинки или стм'ки)?
да. Цап R2R гугли
R2R не нужен, забей, голый ЦАП на любом стм или авр это умеет. Однако уровень будет ровным, но нагрузить его будет нельзя, разве что чем-то очень маломощным. или допиливать усилитель на биполярниках
Думаю можно. Выдать на цифровом пине 1. И парралельно нагрузке поставить жирный конденсатор, и к нему же аналоговый пин на вход который будет считывать напряжение на нагрузке. И сделать петлю гестерезиса +-0.1V. Сам такое не пробовал, но в теории придумал. Думаю раньше это по любому кто то делал. И я тоже хочу это попробовать.
@@grinvich2304 Добавить мосфет, дроссель и у вас получится типичный dc/dc =)
Ниче не понял, но очень интересно
👍👍👍
про анализатор уровней будет видео?
кого?
@@nich1con652 блин ссылки удаляются. Видео: "Уроки Arduino. Работа с цифровым потенциометром и написание библиотеки." 9:15
@@90_RUS логик анализатор, будет относительно скоро видео
А как насчёт внешних шим микросхем управляемых ардуиной
используй, это видео про алгоритмы
Стоит ещё добавить к переменным шим атрибут register, тогда они не будет загружаться/выгружаться из ОЗУ при каждом вызове функции.
кто то массивы ставит, и блен ты предлагаешь отдать под это дело 5-10 регистров ЦП?)
@@nich1con652 Зависит от количества каналов и требуемой частоты. 1 регистр на счётчик, и по одному на каждый вывод. 2-6 регистров особой роли не сыграют, а вот скорость на высоких частотах увеличится заметно. Если совсем все плохо, то хотя бы счётчик хранить.
@@user-dz7ep4oe4l ну до 5-6 думаю не страшно да, надо попробовать сравнить частоту
Сложно представить такие ситуации, когда аппаратные ШИМ закончились, но есть свободный таймер
Аппаратный шим и есть таймер, разве что пару строк за вас библиотека написала. Ну, если проект ваш- метеостанция, то да, сложно использовать все шим
например таймер остался один, а каналов надо больше, чем может таймер.
а где взять библиотеку FastIO.h?
Тоже так и не нашёл
уоп уоп процессинг
4:12 Ёлки-палки! А триггер выставить?
уже ткнули носом) Перенастраивал все под другое применение и забыл) Да вроде и более чем наглядно, пусть плывет)
За гайвера)
А что ,на ослике нет синхронизации?
она кривая у него
Покажите работу с прерываниями без библиотеки гайвертаймер пожалуйста
как выйдет урок по побитовым операциям, вполне может быть
Такой урок, даже если он будет супер подробным, будет полезен примерно 1% зрителей. Там всё очень сложно для восприятия + английский надо знать
@@MAD_ALEX Говори только за своих одноклеточных собратьев, окда?
А можно сразу писать нужное состояние в порт а не по 1 пину
можно, если у тебя на одном порту, то даже лучше будет
А есть внешние микросхемы ШИМ ? Ну типа как ЦАП , только ШИМ
канеш есть, на ~1000 гц для ледов всяких, по и2с управляются.
@@nich1con652 , о, самое то. А как называются ?
TLC5940, SX1509
@@ArduNotes , Спс ! )
А разве ШИМ и ЦАП это не одно и тоже?
Точнее насколько мне известно ШИМ это один из вариантов ЦАП
Но я не эксперт так что поправьте меня если я не прав
*Л. а. й. к. о. с.* за видос.
Привет всем как сделать 3 и эффект кто может помочь
Если кто нибудь шарит, скажите, что будет с микроконтроллером, если период вызова функции в прерывании окажется меньше времени выполнения функции? То есть функция вызывается чаще, чем ей требуется времени для выполнения? Она просто будет выполняться каждый раз наполовину? или наоборот, лишние вызовы будут пропускаться?
функция просто будет выполняться со своей возможной частотой. Когда прилетает новое прерывание - оно будет обработано только при выходе из текущего прерывания, там очередь прерываний образуется
при выходе из прерывания выполняется 1 инструкция, даже если есть очередь прерываний. Кароче главная программа будет выполняться ОООЧЕНЬ медленно, пока постоянно обрабатывает интеррупты, но будет
@@ArduNotes Спасибо и вам)
@@nich1con652 Примерно понял) Спасибо большое
@@nich1con652 Кстати ещё вопросик, если можно... Я слышал как то про некие атомарные операции в микроконтроллерах, когда во время исполнения этой операции в главной программе, её ОЧЕНЬ НЕЖЕЛАТЕЛЬНО прерывать, иначе произойдет потеря данных, неисполнение этой операции и тд. Вам известно что нибудь об этом? Если такая проблема имеет место быть, то как её избежать?
В закладку!
Слабо шим на пинах через сдвиговый регистр? Вообще, тема совсем не новая, аппаратно шим реализован именно так же.
канеш, только будет медленнее сильно
@@nich1con652 зависит от применения. светодиодом поуправлять вполне может хватить
Интересно, когда вы делаете видосы вдвоём.
Четыре видео за месяц?!
думаете предел?)
@@nich1con652 Надеюсь что нет
Уважаемый автор, очень полезная и главное понятная информация, сейчас действительно мне это нужно. Но вот хоть убей не могу разобраться с вашим сайтом, как скачать библиотеки. это же просто не реально, нет ссылки скачать, а тыка по названию папки она просто открывается, в общем задача на грани реальности. Почему такой хороший проект и не можете сделать нормальную возможность скачивания файлов.
Заранее спасибо.
это не наш сайт, это GitHub, на нём сотни тысяч программистов выкладывают свои работы. Как скачать - написано на главной странице репозитория github.com/AlexGyver/tutorials
@@ArduNotes Понятно, спасибо, почитал что там написано и понял, что владелиц сайта не парится по этому поводу, жаль конечно.
почему же? Просто github это не облачное хранилище, это профессиональный инструмент. Хотя символ загрузки файла у кнопки Code является неплохой подсказкой как скачать =)
Когда то очень давно делал это на 8051 на ассемблере.. вот там был хардкорд и частота была низкой.. но для 8ми светодиодов на одном порте хватало.
А где же ассемблерные вставки?)
В исходном коде библиотек
@@user-nw8gn2xh2v там старый добрый си
@@technotrolla1254 сравнения свежий компилятор делает не хуже, чем ты на асм соберешь. Проверяли уже, забей
@@nich1con652 да ладно? ты про вставки именно или чисто если писать?
@@technotrolla1254 как угодно, компилятор сейчас очень оптимально ассемблер создает. Очень много тестов делали по оптимизации, и если это не какие то хитрые операции с многобайтовыми структурами, код на С выполняется точно так же по скорости, такт в такт.
Минуту назад
кто уже хочет сделать шим на unsigned long? простите если неправильно написал
unsigned long это uint32_t. Частота МК 16МГц, количество отсчётов примерно примерно 4,3 млрд. В итоге один период таймера составит 268 секунд. Это ещё учитывая то, что у атмеги нет 32 битных таймеров, только 8 и 16.
@@user-dz7ep4oe4l сразы передумалось
Музыка с 9:57 стала мешать слушать
что с голосом, где автор?
Доп ведущий и уже давно
Программный ШИМ создаёт нагрузку не на процессор, а на микроконтроллер, в ардуино процессора нет
правда?)) А ничего что микроконтроллер это микропроцессор + ОЗУ + ПЗУ + периферия? И нагрузка создаётся именно на вычислительное ядро процессора
Хмм... Это тип сначала ничикон сделал видео и залил его, а потом гайвер взял и изменил видео добавив себя. Да?
нет, это гайвер снял кусок и скинул на общий яндекс диск
Не очень понимаю смысла погони за высокой частотой ШИМа. Во всех уроках данного ресурса бросают какашками в стандартый analogWrite (его характеристики), хотя его возможностей для большинства хоббийных задач за глаза. Типовые задачи ШИМ для хоббистов это управление двигателями, нагревателями и источниками света (лампочки/светодиоды) у них очень большая инерционность, частоты ШИМ в сотни герц для них вполне достаточно. Но при этом опускается достаточно важный момент - дополнительный нагрев силового транзистора с увеличением переходных процессов на нем. Ведь с увеличением частоты ШИМ увеличивается и количество переходных процессов на силовом ключе за единицу времени.
Лично я умышленно снижаю частоты ШИМ до минимальных при которых обеспечивается требуемое качество работы исполнительного устройства. То есть стремлюсь к снижению частот. В то время как в уроках, по моему мнению, просматривается идея что низкие частоты ШИМ это плохо, а высокие это хорошо. Что по моему мнению не совсем так. Высокачастотные ШИМ, мне кажется, это уже для каких-то специфичных задач и явно не для управления силовой нагрузкой.
У кого есть идеи почему авторы считают, что высокочастотный ШИМ это хорошо, а низкочастотный плохо и в каких задачах требуются высокие частоты ШИМ? Мне приходит на ум только что-то типа лабораторного источника сигнала, но я лучше бы купил готовый.
Спасибо за урок!
высокие частоты шим - чтобы движок работал бесшумно, чтобы светодиод не мерцал на камеру, чтобы не свистела нагрузка, и так далее. Высокие частоты - это мегагерцы, тут речь идёт о том, чтобы поднять хотя бы до десятка-двух килогерц
Давай аналоговый с цифрового
P
+1лайк
Вот у вас задачи. я тут на ардуине 4 выводами управляю и то не получается, мозг ломаю
Почему голос не такой, как на основном канале?
Заболел.
или выздоровел.
Потому что это не гувер, а конденсатор епонский.
Потому что тут теперь два ведущих nic1con и alexgyver.
@@retrometanol2510 Теперь в курсе ✌️
на любом пине, говоришь? ну тогда запусти шим на пинах gnd или vcc, шутник)
Можно и на них.. нагрузив все пины порта на одну весомую нагрузку и подав на них шим получим проседание напряжения на шине питания смодулированной ШИМом... Нужно добиться небольшого проседания, чтобы МК не перезагрузился и схемами смещения на ОУ выделить полезный ШИМ.. ну как то так..
еб..ть тебя подловили!!! Халил молодец!
"на любых, где доступен digitalWrite"
5секунд назад)))
чувак, ты для видео не мог настроить развертку осцика, чтоб картинка не скакала? тебя научить?
не переживай, в след. раз будет) Не обратил внимание почему то на триггер, даже учитывая, что плывет - все видно (что нужно)
так научи, видишь не шарит человек
Как управлять шим с помощью wifi
Купить на алике контроллер rgb с WiFi, и телефоном управлять. Вот вам 3 независимых канала.
Существуют еsp контроллеры, они с вайфаем, вроде могут даже создавать точку доступа. Только не рекомендую, неудобные, тоже можно программировать на ардуине, но доступа к регистрам нет
@@v61kz С легкостью на ESPшке сделал за вечер контроллер для шлагбаума через телеграм-бот на фреймворке дуины как раз, вообще не столкнувшись с проблемами. Так что не стоит советовать и сразу отговаривать отговаривать людей от него. Тут задача плевая стоит: шим через wifi - ее esp решит без проблем. Да и вообще, 99% задач, где нужен wifi, решит. А регистры - это уже про другое.
@@GoodVrGames отговариваю, чтобы человек сразу знал особенности есп: информации по ним мало.
Чтобы за один вечер сделать управление по вайфай, нужно немало уметь. Поэтому хоть есп и умеет работать с интернетом, придётся ещё самому многое изучать и искать, иногда приделывать костылями
Все хорошо, но где срач, где троллинг и все это? Осуждаю!
в коментах к видео про интерфейс на процессинг
"какой-то комментарий..."
алекс - топ, второй чувак - нет.