'''
Плата ESP 32.
Контакти (піни/pins):
3V3 - плюсовий контакт (+)
GND (GND.1 та GND.2) - мінусовий контакт (-)
Піни що починають з цифри - піни котрі ми будемо використовувати в наших проектах
LED - Світлодіод. Має 2 контакти: С - катод, A - анод.
С (катод) під'єднуєм до мінуса (GND)
A (анод) під'єднуєм до ціфрового піна (починається з цифри)
Зазвичай світлодіод під'єднується через резистор (220 Ом), але в симуляції все працює і без резистора.
Pushbutton - кнопка. Має 2 пари контактів: (1.l, 2.l) та (1.r, 2.r)
Обирає будь-яку з цих пар (1.l, 2.l або 1.r, 2.r). Далі один контакт підключаємо до + (3V3),
а інший підключаєм через резистор (1-10 kOm) до - (GND).
Контакт що знаходиться по діагоналі від плюса (+) підключаємо до ціфрового піна
Якщо кнопка не натиснута - на піні, до якого вона підключена буде значення 0.
Якщо кнопка натиснута - на піні, до якого вона підключена буде значення 1.
'''
# Щоб мати можливість керувати пінами треба імпортувати класс Pin
from machine import Pin
# Для того щоб робити паузи імпортуємо sleep та sleep_ms
from utime import sleep, sleep_ms
# Щоб керувати елементами, що підключені до плати, треба створити вдповідні об'єкти
# назва_об'єкта = Pin(номер_піна_до_якого_підключили_елемент, режим_роботи_піна)
# Для світлодіодів режим роботи Pin.OUT
# Для кнопок режим роботи Pin.IN
led = Pin(23, Pin.OUT)
button = Pin(14, Pin.IN)
# Сворюєм безкінечний цікл
while True:
# Якщо для піна вказан режим роботи Pin.IN то методом value() можно дізнатись яке значення (0 або 1) на цьому піні
button_state = button.value()
# Перевіряємо чи з піна кнопки зчитано 1 (кнопка натиснута)
if button_state == 1:
# Вмикаємо світлодіод
led.on()
# Робимо паузу в 2 секунду
sleep(2)
# Вимикаємо світлодіод
led.off()
# Робимо паузу в 1 секунду
sleep(1)
# Якщо для піна вказан режим роботи Pin.OUT то методом value(X), де X це 0 або 1, можно передати значення цьому піну
led.value(1) #Вмикаємо світлодіод
sleep_ms(300) #Робимо паузу в 500 мілісекунд
led.value(0) #Вимикаємо світлодіод