Мигаем светодиодом без таймера на ESP32 под Arduino

  Рет қаралды 1,278

Alex Morozov

Alex Morozov

3 ай бұрын

Код демонстрационного проекта из видео (PlatformIO): github.com/MoonFox2006/ESP32_...
Принцип мигания без таймера описан в ролике • Мигаем светодиодом на ...

Пікірлер: 38
@Ownedyou
@Ownedyou 3 ай бұрын
Страшная вещь ESP-IDF, пару проектов запилил - и получи мигрень! 😃
@tree-service
@tree-service 3 ай бұрын
Почему?
@barcooler
@barcooler 3 ай бұрын
Супер. Спасибо за пояснения!
@barcooler
@barcooler 3 ай бұрын
На самом деле ESP32-C2 очень удобные модули есть. Вполне доступны (меньше 200₽/платка). При чём формфактор вполне удобен.
@alexandrlapin3641
@alexandrlapin3641 3 ай бұрын
Мигрень это следствие. Причина в шее. Вам нужно к костоправам обратиться "Легкая спина" или "Центр Репина". Плохое кровообращение . Скорее всего связано с работой сидячей. Я ходил в "Центр Репина" до этого год смотрел что они делают пока не разобрался в физических аспектах техники. Рекомендую.
@DimiEG
@DimiEG 3 ай бұрын
В данном случае у автора похоже проблема другая. Хотя полезная информация - спасибо.
@DimiEG
@DimiEG 3 ай бұрын
Забавно про Ардуинщиков. 😂 Особенно после обзоров на KZbin, что код на ESP-IDF работает немного медленнее по сравнению с Вердуиной. Но вопрос не об этом. Обратил внимание, что с плюсами на ESP-IDF как то совсем кисло. Упирают на то, что сам фреймворк написан на C и большего и не надо. Получается, что на микроконтроллерах C++ как то не приветствуется и единственный вариант это Вердуино. Интересно почему так? P.S. Увлёкся AVR-C на Atmega8 - вспоминаю молодость. 😼
@alexmorozov73
@alexmorozov73 3 ай бұрын
Может быть просто еще индусы, выгнанные из M$, не подтянулись, а китайцы исторически консервативны? :) Ну а если серьезно, то многие считают, что ++ не для МК. Десятилетие назад и C считался для МК не вариантом, только ассемблер. А ведь когда-то и игры на NES писали на асме... С другой стороны, учитывая провоцирование интереса к Rust для МК (по указке вашингтонского обкома, который все языки предал анафеме за их потенциальную небезопасность), глядишь придется экспрессивам переписывать SDK на ООП...
@DimiEG
@DimiEG 3 ай бұрын
Про индусов смешно конечно. 😂 Насчёт Rust он уже живёт и устанавливается при установке ESP-IDF. Сам к Rust отношусь с недоверием и в ESP-IDF он больше выглядит как ненужная обёртка над C. Тогда зачем Rust? Синтаксис запутанный, компилятор раздутый.
@DimiEG
@DimiEG 3 ай бұрын
Да, ассемблер это тема. Только что то более менее сложное на нём не написать. Ну например работу по WiFi. Нет, конечно ещё есть MicroPython, но он позиционируется для ознакомительного программирования больше.
@DimiEG
@DimiEG 3 ай бұрын
Прошу прощения, что много написал, но плюсы вероятно действительно не особо нужны ведь объектно ориентированность только пожирает память, да и на таких «современных» языках как Go или Rust классы заменили на структуры.
@alexmorozov73
@alexmorozov73 3 ай бұрын
На ESP таблица виртуальных функций C++ хранится по умолчанию во флеше, так что дополнительный расход памяти по сравнению с C практически отсутствует, а некоторые удобства даже без ООП весьма приятные (перегрузка функций, умалчиваемые значения параметров, шаблоны и пр.) Вот на AVR VTBL в ОЗУ - вот там достаточно использовать какой-нибудь Serial, который наследник Stream, который наследник Print - и здравствуй кучка утраченной памяти...
@olexangrstetsiuk3092
@olexangrstetsiuk3092 3 ай бұрын
Ну наконец то я понял зачем снято четыре серии об ,,помигать светодиодом,, - умная индикация без задерки обработки основного кода . Осмелюсь заметить , что ардуинщики - это далеко не програмисты , скорее - радиолюбители которые решились по легкому освоить микроконтроллер (как я). По этому и желал бы обяснения ,,на пальцах,, .ИМХО таких большинство , хоршо что Вы хоть как то пытаетесь идти нам навстречу . иначе в коментах будет только ,,какойтодобрыйкоментлайкяпервый,, , не думаю , что Вас такое как то тешит . И еще хочу посетовать на ,,старую,, ЕСП32ю - это дребезг в прирываниях на всех пинах. (пробовал делать тахометр , ничего путного из за ,,дребезга,, не вышло) В другом проекте , тоже произвольно срабатывают кнопки (по прерываниях) , пришлось оставить только виртуальные (с приложения смартфона по блутуз).
@alexmorozov73
@alexmorozov73 3 ай бұрын
Для тахометра PCNT периферию не пробовали использовать, чтобы не на прерываниях от пинов?
@olexangrstetsiuk3092
@olexangrstetsiuk3092 3 ай бұрын
@@alexmorozov73 , да , забил в поисковике PCNT , дало ссылку на хабр . Испугался , потому что читая статью , понимаю ее содержимое через предложение . Дочитал до примера PCNT (Pulse Counter). Ещё более испугался увиденного кода (Вы наверное сейчас ,,ржунемогу,,) , но должны понимать - я всего лишь ардуинщик , мне вначале надо скопипасить чонить. готовое-рабочее , а после методом тыка , дополнять этот код своими ,,костылями,, и уже понять как это все работает ...
@olexangrstetsiuk3092
@olexangrstetsiuk3092 3 ай бұрын
@alexmorozov73 , даааа , нашел на хабре о PCNT . Испугался потому ,что понимаю смысл статьи , от предложения к предложению . Дочитал до примера PCNT (Pulse Counter), ещё более напугал меня увиденный код (Вы наверное сейчас ,,ржунемогу,,) , но должны понимать , я всего лишь - ардуинщик , и мне надобно скопипасить чонить. готовое-рабочее , чтобы после методом ТЫКА добавлять в код свои костыли , и уже так понять , как это все работает...
@percival1239
@percival1239 3 ай бұрын
​@@olexangrstetsiuk3092Мне кажется вы преувиличиваете сложность работы с PCNT, всю нужную информацию о его работе можно узнать например у нейросети, к тому же она может выдать пример работы кода с объяснением каждой строки, дальше по аналогии переделать код под себя с работой pcnt для работы с тахометром.
@alexmorozov73
@alexmorozov73 3 ай бұрын
Т.е. читать отличную доку на docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/pcnt.html и разбирать родные примеры уже не модно? Нужно "папу" позвать?
@tree-service
@tree-service 3 ай бұрын
А в чем суть то, как без таймера или его аналога можно мигать диодом в каждом отдельном потоке?
@alexmorozov73
@alexmorozov73 3 ай бұрын
Ну если лень в коде разбираться, то хотя бы можно было под ролик глянуть, там ссылка на ролик с объяснением технологии.
@nazark4060
@nazark4060 3 ай бұрын
Подскажите, а как настроить ширину канала 40мгц, и тип wifi b g n ax?
@alexmorozov73
@alexmorozov73 3 ай бұрын
Если что-то можно сделать (ax же только на C6), то об этом обязательно написано в документации на SDK. docs.espressif.com/projects/esp-idf/en/
@nazark4060
@nazark4060 3 ай бұрын
@@alexmorozov73 В даташите к c6 есть таблица параметров усиления ко всем видам ieee wifi 802.11, и если она есть ко всем видам, то наверное как то можно пользоватся той таблицей и менять параметры передачи. Тут вопрос в другом, что esp поддерживает все протоколы до ax, и для n канал на 40мгц, а использует по умолчанию b на 20мгц. То есть стандарт wifi 2. А как стандарт поменять? В API wifi есть функция set_protocol, и get_protocol. В сет протокол поставил 11N, а get_protocol выдаёт всё равно 11B. С шириной канала тоже самое. Может я функции неправильно применил, но get_protocol и get_bandwidht как то работают. А set неработает
@alexmorozov73
@alexmorozov73 3 ай бұрын
Вы хоть к роутеру подключились перед тем, как читать режим и ширину канала? Или просто установили и тут же прочитали обратно? ESP точно подключается по лучшему протоколу из заданных, который поддерживает роутер. Т.е. B только в случае реликтовых роутеров (или если на роутере есть хоть одно устройство B, то он весь переходит в режим B). И C6 поддерживает AX только на частоте 2.4 ГГц, никаких 5 ГГц там нет, это просто супер-N.
@nazark4060
@nazark4060 3 ай бұрын
@@alexmorozov73 Мне нужно установить режим и ширину канала для точки доступа, а не для приёма от роутера. Приём от роутера я понимаю что будет такой, на каком работает роутер. После установки параметров, там есть функция которая возвращает текущий протокол передачи и ширину канала. Ну да, после установки прочитал сразу же, а как надо? Подождать? То сколько там ггц меня неинтересует, да и вообще никого недолжно интересовать, скорость передачи зависит от ширины канала, а не от частоты. Хоть там и 100ггц будет, читать сигнал он будет всё-равно от 0 до ширины канала ггц
@alexmorozov73
@alexmorozov73 3 ай бұрын
Как я понимаю, на возвращаемые ошибки функций esp_wifi_set_protocol (которой нельзя скормить только один режим, а все поддерживаемые МК режимы и так по умолчанию установлены) и esp_wifi_set_bandwidth (которая судя по всему не поддерживает ширину 40 для AP) вы внимания не обращаете?
Куча мала
17:11
Alex Morozov
Рет қаралды 2,5 М.
RP2040 малинка без остинок
51:53
Alex Morozov
Рет қаралды 7 М.
Can You Draw A PERFECTLY Dotted Line?
00:55
Stokes Twins
Рет қаралды 47 МЛН
СНЕЖКИ ЛЕТОМ?? #shorts
00:30
Паша Осадчий
Рет қаралды 8 МЛН
PINK STEERING STEERING CAR
00:31
Levsob
Рет қаралды 24 МЛН
Is it Cake or Fake ? 🍰
00:53
A4
Рет қаралды 20 МЛН
Немного про PSRAM (SPIRAM) на МК ESP32
14:24
Alex Morozov
Рет қаралды 3,2 М.
SuperMini - это Супер или Мини?
20:14
Alex Morozov
Рет қаралды 2,9 М.
АЛИСА, ВКЛЮЧИ СВЕТ НА ESP32
8:56
Kirill Ivanychev
Рет қаралды 3,7 М.
ESP32-C6 самое короткое знакомство
11:53
Alex Morozov
Рет қаралды 5 М.
Большой урок по программированию на Processing
1:00:53
Заметки Ардуинщика
Рет қаралды 197 М.
ESPC2-12
8:27
Alex Morozov
Рет қаралды 9 М.
Хотела заскамить на Айфон!😱📱(@gertieinar)
0:21
Взрывная История
Рет қаралды 3,9 МЛН
Игровой Комп с Авито за 4500р
1:00
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 373 М.
🔥Идеальный чехол для iPhone! 📱 #apple #iphone
0:36
Не шарю!
Рет қаралды 1,3 МЛН
💅🏻Айфон vs Андроид🤮
0:20
Бутылочка
Рет қаралды 729 М.