Перед тем как мы начнем, давайте ответим на важный вопрос: почему именно FastLED? Библиотека FastLED — это не просто способ управлять светодиодами, это один из самых мощных и популярных инструментов для этого. Вот её ключевые преимущества:
Именно поэтому FastLED является стандартом де-факто для серьезных проектов со светодиодными лентами.
Цель урока: После завершения урока вы сможете самостоятельно: установить библиотеку FastLED, правильно подключить адресную светодиодную ленту к ESP32/ESP8266 и загрузить свою первую программу, которая зальет всю ленту сплошным синим цветом.
В этом уроке мы познакомимся с одним из самых популярных модулей для создания интерактивных проектов — модулем джойстика KY-023. Этот модуль, основанный на джойстике от игрового контроллера PS2, позволяет легко считывать перемещения по двум осям (X и Y) и регистрировать нажатие на сам стик.
Модуль KY-023 представляет собой два перпендикулярно расположенных потенциометра и тактовую кнопку. При смещении стика меняется сопротивление потенциометров, что позволяет нам определять его положение. Нажатие на стик сверху вниз замыкает контакты кнопки. Это простое и универсальное устройство для ввода данных в ваши проекты.
Области применения:
Широтно-импульсная модуляция (ШИМ), или Pulse Width Modulation (PWM),
является фундаментальной технологией в современной цифровой
электронике. Она позволяет эффективно управлять мощностью, подаваемой на
нагрузку, путем изменения длительности импульсов при постоянной частоте
сигнала. Микроконтроллер ESP32,
известный своей высокой производительностью и богатым набором
периферийных устройств, предлагает расширенные возможности для генерации
ШИМ-сигналов по сравнению с более простыми платформами, такими как Arduino Uno. Ключевое отличие ESP32 заключается в использовании канальной системы управления ШИМ, реализованной через специализированные периферийные модули. Вместо прямого управления ШИМ на конкретном выводе GPIO, как в analogWrite() на Arduino, в ESP32 необходимо сначала настроить канал ШИМ (с его частотой и разрешением), а затем привязать
один или несколько выводов GPIO к этому каналу. Управление скважностью
(яркостью, скоростью) осуществляется путем изменения параметров
настроенного канала. Данный подход обеспечивает большую гибкость и
производительность. В этом урокуе мы подробно рассмотрим особенности ШИМ
на ESP32, уделив основное внимание периферийному модулю LEDC, и
приведем практические примеры его использования.
МикроконтроллерESP32, благодаря встроенным возможностям Wi-Fi, является популярной платформой для проектов Интернета вещей (IoT). Во многих таких приложениях, особенно связанных с регистрацией данных (data logging) или планированием задач, требуется точная синхронизация времени. Получение актуальной даты и времени необходимо для присвоения временных меток событиям или измерениям. Одним из наиболее распространенных и эффективных методов синхронизации времени для устройств, подключенных к сети, является использование протокола сетевого времени (NTP - Network Time Protocol).
Данный урок демонстрирует процесс настройки ESP32 в качестве NTP-клиента для запроса точного времени с публичных NTP-серверов с использованием среды разработки Arduino IDE. Преимущество этого подхода заключается в отсутствии необходимости использования дополнительных аппаратных модулей, таких как часы реального времени (RTC), при условии наличия у ESP32 активного интернет-соединения.
Перед выполнением инструкций, изложенных в данном руководстве, убедитесь, что в вашей среде Arduino IDE установлено дополнение для поддержки плат ESP32. Инструкции по установке можно найти в официальной документации или соответствующих руководствах:
Микроконтроллер ESP32, благодаря своей производительности и встроенным модулям Wi-Fi и Bluetooth,
стал популярной платформой для разработки проектов Интернета вещей
(IoT) и встраиваемых систем. Одной из первых задач, с которой
сталкиваются начинающие разработчики, является управление светодиодом – классическая программа "Blink". Простейший способ – использовать функцию delay().
Однако она полностью блокирует выполнение программы на заданное время.
Для простых задач это приемлемо, но если нужно одновременно выполнять
другие операции (опрашивать датчики, проверять кнопки, обмениваться данными по сети), delay() становится непригодной.
Данный урок демонстрирует, как реализовать выполнение нескольких задач псевдопараллельно на ESP32, избегая delay().
В качестве примера рассмотрим мигание светодиодом с одновременной
проверкой состояния кнопки, используя неблокирующий подход на основе
функции millis().
Мы рассмотрим и сравним три подхода:
Данное руководство представляет собой техническое описание процесса организации обмена данными между двумя микроконтроллерами ESP32 с использованием протокола I2C (Inter-Integrated Circuit). I2C - это синхронный последовательный протокол, широко применяемый для связи между микроконтроллерами и периферийными устройствами. В данном уроке одна плата ESP32 будет настроена как ведущее устройство (Master), а другая - как ведомое (Slave). Программирование микроконтроллеров будет осуществляться в среде разработки Arduino IDE. Руководство предоставляет подробные инструкции по подключению, настройке и программированию, а также примеры кода для реализации I2C-взаимодействия.
Обзор протокола I2C.
I2C (Inter-Integrated Circuit) – это синхронный, последовательный, полудуплексный протокол связи, разработанный компанией Philips. Он предназначен для соединения микроконтроллеров и различных периферийных устройств, таких как датчики, дисплеи, EEPROM и другие.
В данном уроке рассматривается проблема дребезга контактов, возникающая при использовании механических кнопок и переключателей с микроконтроллером ESP32. Описаны причины возникновения дребезга, его влияние на работу микроконтроллера и представлены программные методы его устранения. Статья ориентирована на техническую аудиторию и содержит примеры кода на языке C/C++ для среды разработки Arduino IDE. Дребезг контактов это паразатный эффект, усложняющий разработку и отладку проекта.
Проблема дребезга контактов ESP32 Arduino IDE.
При нажатии или отпускании механической кнопки (или переключении тумблера) ее состояние не изменяется мгновенно с LOW на HIGH (или наоборот). Вместо этого, из-за физических свойств материалов и конструкции кнопки, происходит кратковременное многократное замыкание и размыкание контакта. Это явление называется "дребезгом контактов" (chattering). В результате микроконтроллер (например, ESP32) может воспринять одно физическое нажатие как несколько последовательных нажатий, что приводит к некорректной работе устройства.
В данном уроке рассматривается подключение и использование кнопок с микроконтроллером ESP32. Кнопки являются фундаментальными элементами ввода в электронных системах, позволяющими пользователю взаимодействовать с устройством. В уроке детально описаны типы кнопок, принципы их работы, схемы подключения к ESP32, а также программные аспекты, включая обработку нажатий.
Кнопки:
1.Кнопки для монтажа на печатную плату (PCB-mount). Такие кнопки обычно имеют четыре вывода, которые внутренне соединены попарно.
2. Кнопки для монтажа на панель (Panel-mount). Такие кнопки, как правило, имеют два вывода.
3. Модули кнопок.
В этом уроке вы узнаете, как загружать файлы в файловую систему LittleFS на ESP32, используя Arduino IDE 2 (версия 2.2.1 или выше). Мы установим плагин загрузчика, который добавит новое меню в Arduino IDE. Этот плагин также совместим с платами ESP8266 и Raspberry Pi Pico.
Содержимое:
Если вы все еще используете Arduino 1.9, вы можете следовать другому руководству: ESP32: Файловая система SPIFFS в ESP8266 и ESP32.
ESP32 - это мощное встраиваемое устройство с двухъядерным процессором, обладающее возможностями Wi-Fi и Bluetooth. Оно широко используется в различных проектах по автоматизации благодаря множеству портов ввода-вывода, среди которых также находятся аналоговые и цифровые. В данном уроке мы рассмотрим основной пример, демонстрирующий управление светодиодом, подключённым к ESP32. Этот простой урок - отличный способ протестировать возможности контроллера и изучить основы программирования на платформе Arduino IDE.
ESP32 - Светодиод | Руководство по ESP32.
Напряжение цифрового вывода пина ESP32 может быть запрограммировано так, чтобы изменять уровень сигнала VCC или GND. Подсоединив светодиод к цифровому выходу микроконтроллера, мы можем программно управлять состоянием светодиода.