роботы робототехника микроконтроллеры

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
Это оригинальная статья myROBOT.ru
Как сделать робота
ПОПУЛЯРНЫЕ СТАТЬИ
Драйвер двигателей L293D
Драйвер двигателей L293D
Для управления двигателями мини робота необходимо устройство, которое бы преобразовывало управляющие сигналы малой мощности в токи, достаточные для управления моторами. Такое устройство называют драйвером двигателей.
Как сделать простейшего робота
Как сделать простейшего робота
О том, как сделать робота в домашних условиях, используя лишь микросхему драйвера моторов и пару фотоэлементов. В зависимости от способа соединения моторов, микросхемы и фотоэлементов робот будет двигаться на свет или, наоборот, прятаться в темноту, следовать по линии или бежать за вашей рукой.
Как сделать простого робота на микроконтроллере (Часть 1). Управляем электромоторами
Как сделать простого робота на микроконтроллере (Часть 1). Управляем электромоторами
Как самому сделать робота, используя драйвер управления двигателями L293D и микроконтроллер ATmega8. Схема робота и примеры простейших программ для управления моторами.
НОВЫЕ СТАТЬИ
Можно ли сделать BEAM-робота на Raspberry Pi?
Можно ли сделать BEAM-робота на Raspberry Pi?
Ответ Марка Тилдена с уникальной фотографией одной из новых работ маэстро.
Изучаем Python: TOP-5 лучших сайтов для изучения Питона
Изучаем Python: TOP-5 лучших сайтов для изучения Питона
Самоучитель, интерактивный учебник, наглядные задачи и примеры программ.
Роботы на одной микросхеме своими руками
Роботы на одной микросхеме своими руками
Подборками статей myROBOT.ru. Практика создания роботов: схемы и советы по изготовлению. Чтобы сделать роботов, нет необходимости даже писать программы. Все роботы начнут работать сразу же, как только Вы подключите к ним питание.
ПОПУЛЯРНОЕ НА САЙТЕ
Iguana — удобная и функциональная IDE для MicroPython
Iguana — удобная и функциональная IDE для MicroPython
Iguana IDE позволяет программировать популярные микроконтроллерные платы как через USB, так и через Wi-Fi.
Учимся программировать.<BR>Среда программирования на ЛОГО
Учимся программировать.
Среда программирования на ЛОГО
GAME LOGO — бесплатная среда программирования для увлекательного путешествия в мир программирования и информатики. Программирование на русском языке, удобный и красивый интерфейс, продуманный синтаксис.




Copyright © myrobot.ru, 2005-2023


Яндекс.Метрика   Рейтинг@Mail.ru