ESP32: ПОДКЛЮЧАЕМ СВЕТОДИОД
Что нам понадобится?
Помимо платы ESP32 DEVKIT V1 нам понадобится три светодиода, пара макетных плат, резистор на 220 Ом, соединительные проводники-перемычки и кабель micro USB для подключения платы к компьютеру.Светодиод
Полярность светодиода
Для каждого светодиода существуют допустимое значения рабочего напряжения. При подаче напряжений свыше этого значения наступает электрический пробой, в результате которого светодиод выходит из строя. Для многих распространенных светодиодов рабочее напряжение составляет около 2-х вольт, при токе потребления около 20 миллиампер. Для подключения светодиода к электрической цепи с напряжением, превышающем его рабочее напряжение, используют ограничительный резистор.
Схема подключения светодиода
Подключить светодиод можно к любому выводу GPIO микроконтроллера, который поддерживает режим Out, например, к выводу D27 (GPIO27). Выводы светодиода имеют полярность, мы подключим анод (+) к выводу D27 микроконтроллера, а катод – к выводу GND ("земле") микроконтроллера через ограничительный резистор 220 Ом.
Монтаж данной схемы на макетных патах приведен в самом начале статьи.
Программа для мигания светодиодом
Программа для мигания светодиодом может выглядеть следующим образом:# из модуля machine импортируем класс Pin
from machine import Pin
# из модуля time импортируем функцию задержки sleep
from time import sleep
# создаем объект Pin с именем led,
# указываем идентификатор контакта GPIO27
# и задаем для контакта режим выхода Pin.OUT
led = Pin(27, Pin.OUT)
# организуем бесконечный цикл
while True:
# включаем светодиод
led.on()
# ждем полсекунды
sleep(0.5)
# выключаем светодиод
led.off()
# ждем полсекунды
sleep(0.5)
Запустим Iguana IDE. Скопируем в нее текст программы. Подключим микроконтроллер к компьютеру с помощью USB-кабеля. Откроем соединение с помощью кнопки "Open" и нажмем кнопку "DOWNLOAD & RUN". Светодиод начнет весело мигать. Подробнее о загрузке и запуске программ можно прочитать в статье "ПЕРВЫЙ ПРОЕКТ НА МИКРОКОНТРОЛЛЕРЕ ESP32".
Схема подключения нескольких светодиодов
Подключим еще два светодиода, например, к выводам D26 (GPIO26) и D14 (GPIO14). К выводам микроконтроллера мы подключаем аноды (+) светодиодов, а все катоды – к выводу GND ("земле") микроконтроллера через ограничительный резистор 220 Ом так, как показано на схеме:
Разместить светодиоды и резистор на макетной плате можно, например, так:
Программа "бегущие огни"
Для того, чтобы управлять несколькими светодиодами, удобно объединить все объекты Pin в один список. Это позволит перебирать их как поэлементно, так и с помощью индексов.# из модуля machine импортируем класс Pin
from machine import Pin
# из модуля time импортируем функцию задержки sleep
from time import sleep
# создаем пустой список leds
leds = []
# добавляем в список объект Pin с идентификатором 26
# в режиме выхода со значением 0 (низкий уровень)
leds.append(Pin(26, Pin.OUT, value=0))
# добавляем в список объект Pin с идентификатором 27
# в режиме выхода со значением 0 (низкий уровень)
leds.append(Pin(27, Pin.OUT, value=0))
# добавляем в список объект Pin с идентификатором 14
# в режиме выхода со значением 0 (низкий уровень)
leds.append(Pin(14, Pin.OUT, value=0))
# организуем бесконечный цикл
while True:
# перебираем список leds поэлементно в цикле for
for p in leds:
# включаем элемент p
p.on()
# ждем полсекунды
sleep(0.5)
# выключаем элемент p
p.off()
То же самое можно сделать и по-другому, например, для создания списка объектов Pin использовать генератор, а элементы списка перебирать поиндексно:
# из модуля machine импортируем класс Pin
from machine import Pin
# из модуля time импортируем функцию задержки sleep
from time import sleep
# с помощью генератора создаем список с именем leds,
# состоящий из объектов Pin в режиме выхода,
# привязывая каждый к соответствующему выводу по списку
# и задавая начальное значение выводов value=0
leds = [Pin(x, Pin.OUT, value=0) for x in [26, 27, 14]]
# инициализируем переменную i для счетчика
i = -1
# организуем бесконечный цикл
while True:
# организуем счетчик с переменной i
# сбрасываем i в 0, если она достигла 2, иначе добавляем 1
i = 0 if i == 2 else i + 1
# включаем элемент с индексом i
leds[i].on()
# ждем полсекунды
sleep(0.5)
# выключаем элемент с индексом i
leds[i].off()
Для поиндексного перебора внутри бесконечного цикла можно использовать цикл for с функцией range(), например:
# организуем цикл со счетчиком
for i in range(3):
# включаем элемент с индексом i
leds[i].on()
# ждем полсекунды
sleep(0.5)
# выключаем элемент с индексом i
leds[i].off()
Чтобы огни "бежали" туда-сюда можно использовать цикл for с перебором по списку, например, так:
# организуем цикл с перебором по списку
for i in [0, 1, 2, 1]:
# включаем элемент с индексом i
leds[i].on()
# ждем полсекунды
sleep(0.5)
# выключаем элемент с индексом i
leds[i].off()
В последних двух случаях переменную i предварительно инициализировать нет необходимости и строчку
i = -1
можно удалить.
Удачный Вам экспериментов!
Это оригинальная статья myROBOT.ru
| ПОПУЛЯРНЫЕ СТАТЬИ |

Драйвер двигателей L293D
Для управления двигателями мини робота необходимо устройство, которое бы преобразовывало управляющие сигналы малой мощности в токи, достаточные для управления моторами. Такое устройство называют драйвером двигателей.

Как сделать простейшего робота
О том, как сделать робота в домашних условиях, используя лишь микросхему драйвера моторов и пару фотоэлементов. В зависимости от способа соединения моторов, микросхемы и фотоэлементов робот будет двигаться на свет или, наоборот, прятаться в темноту, следовать по линии или бежать за вашей рукой.

Как сделать простого робота на микроконтроллере (Часть 1). Управляем электромоторами
Как самому сделать робота, используя драйвер управления двигателями L293D и микроконтроллер ATmega8. Схема робота и примеры простейших программ для управления моторами.
| НОВЫЕ СТАТЬИ |

Можно ли сделать BEAM-робота на Raspberry Pi?
Ответ Марка Тилдена с уникальной фотографией одной из новых работ маэстро.

Изучаем Python: TOP-5 лучших сайтов для изучения Питона
Самоучитель, интерактивный учебник, наглядные задачи и примеры программ.

Роботы на одной микросхеме своими руками
Подборками статей myROBOT.ru. Практика создания роботов: схемы и советы по изготовлению. Чтобы сделать роботов, нет необходимости даже писать программы. Все роботы начнут работать сразу же, как только Вы подключите к ним питание.
| ПОПУЛЯРНОЕ НА САЙТЕ |

Iguana — удобная и функциональная IDE для MicroPython
Iguana IDE позволяет программировать популярные микроконтроллерные платы как через USB, так и через Wi-Fi.

Учимся программировать.
Среда программирования на ЛОГО
GAME LOGO — бесплатная среда программирования для увлекательного путешествия в мир программирования и информатики. Программирование на русском языке, удобный и красивый интерфейс, продуманный синтаксис.
