Светодиод в ESP32

В данной статье рассмотрим как подключить светодиод к ESP32. Так же разберем как работать с встроенным светодиодом размещенным на отладочной плате ESP32. Программировать будем в среде программирования Espressif IDE.

Использование светодиодов в микроэлектронике стало распространенным явлением. Низкое потребление является большим преимуществом в батарейных устройствах. По своему строению светодиод, это диод, который излучает энергию с волной различной длинны. Отличается светодиод от обычного диода большим падением напряжения. В таблице ниже вы найдете длину волны для каждого цвета, а также падение напряжения в зависимости от цвета.

Таблица падения напряжения для светодиодом различного цвета

Подключение светодиода к ESP32

Светодиод в ESP32 подключается так же как и к другим микроконтроллерам. Первым делом необходимо рассчитать токоограничивающий резистор по закону Ома:

R = U\I

R = (Uпит – Uпадения)\Iпотребления

Для примера рассчитаем резистор для красного, желтого и зеленого светодиода при напряжении питания 5В.

Rкр = (5 – 1.8)\0.02 = 160Ом

Rжел = (5-2)\0.02 = 150 Ом

Rзел = (5-3)\0.02= 100 Ом

Ток потребления выбран 0.02 мА или 20 мкА. Я не знаю какое точно потребление у моих светодиодов, по этому взял среднее значение в 20 мкА.

ВНИМАНИЕ! Нужно понимать, что ток потребления может быть как выше так и ниже.

После расчета токоограничивающего резистора, необходимо понять куда же подключать плюс и минус к светодиоду. Но тут все просто. У светодиодов имеются два контакта, один визуально, немного короче другого. Тот который немного длиннее – анод, или плюс, который короче – катод, или минус.

схема подключения светодиода

Программируем светодиод в ESP32

В качестве примера рассмотрим следующую схему:

Светодиод в ESP32

К выводам ESP32 под номером 5, 6, 7 подключим через резистор 220 Oм светодиоды. Один красный, один зеленый и один желтый. Напишем управляющую программу. После подачи питания на плату ESP32 проинициализируем выбранные порты и настроим их на выход с подтяжкой к питанию. Затем в бесконечном цикле будем включать одновременно зеленый и красный светодиоды, потом их гасим и включаем желтый. И так по кругу в бесконечном цикле.

Как работать с GPIO в ESP32 описано в этой статье. По этому мы не будем подробно останавливаться на описании используемых функций.

Исходный код программы:

#include <stdio.h>
#include <stdbool.h>
#include <unistd.h>
#include  "driver/gpio.h"

#define GPIO_Red    GPIO_NUM_7
#define GPIO_Yellow GPIO_NUM_6
#define GPIO_Green  GPIO_NUM_5

uint32_t counter = 0;
void app_main(void)
{
	gpio_reset_pin(GPIO_Red);
	gpio_set_direction(GPIO_Red, GPIO_MODE_OUTPUT);
	gpio_set_pull_mode(GPIO_Red, GPIO_PULLUP_ENABLE);
	gpio_reset_pin(GPIO_Yellow);
	gpio_set_direction(GPIO_Yellow, GPIO_MODE_OUTPUT);
	gpio_set_pull_mode(GPIO_Yellow, GPIO_PULLUP_ENABLE);
	gpio_reset_pin(GPIO_Green);
	gpio_set_direction(GPIO_Green, GPIO_MODE_OUTPUT);
	gpio_set_pull_mode(GPIO_Green, GPIO_PULLUP_ENABLE);
	printf("Start GPIO mode output!\n");
	sleep(3);
    while (true)
    {
    	gpio_set_level(GPIO_Red, 1);
    	gpio_set_level(GPIO_Yellow, 0);
    	gpio_set_level(GPIO_Green, 1);
        sleep(3);
        gpio_set_level(GPIO_Red, 0);
    	gpio_set_level(GPIO_Yellow, 1);
    	gpio_set_level(GPIO_Green , 0);
    	sleep(3);
        printf("End!\n");
    }
}

Результат выполнения кода на картинках ниже:

Подключение светодиода без резистора

У ESP32 есть классная фишка. Можно программой управлять выходным током вывода. Для этого необходимо воспользоваться соответствующей функцией. Регулируется выходной ток в пределах от 5 mA до 40 mA. Подробнее смотрите данную статью, раздел “Настройка выходного тока порта“.

Встроенный светодиод ESP32

У меня на плате имеется 3 светодиода. Один отвечает за питание и горит красным цветом. Таким светодиодом нет возможности управлять. Еще два размещены на линии UART, на выводах TX и RX. Если эти выводы использовать в качестве GPIO, то тогда можно организовать управление этими светодиодами, но тогда сам UART работать не будет.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии