Перейти к содержанию

LED

Фабричная функция pibody.LED() возвращает объект Pin, настроенный как цифровой выход. Используйте его для управления светодиодом, реле или любой нагрузкой типа вкл/выкл, подключённой к слоту PiBody.


Базовое использование


LED(slot) -> Pin

Чтобы создать объект LED, вызовите LED(slot).

Аргументы:

  • slot (string | int | tuple) — метка слота ("A", "B", "C", "D", "E", "F", "G", "H"), порт пина (0, 2 и т.д.), кортеж (0, Pin.OUT)

Возвращает: Возвращает цифровой выход Pin для slot.

from pibody import LED

led = LED("A")

.on()

Включает подключённый светодиод.

led.on()  # включить

.off()

Выключает подключённый светодиод.

led.off()  # выключить

.value(value | None) -> None | float

Получить или установить значение пина.

Аргументы:

  • value (float) — необязательный параметр, включает или выключает в зависимости от состояния: 0 или 1

Возвращает текущее состояние (0 или 1) при вызове без аргумента, иначе устанавливает значение и возвращает None.

# Включает, то же что led.on()
led.value(1)
print(led.value())  # 1

# Выключает, то же что led.off()
led.value(0)
print(led.value())  # 0

.toggle()

Изменяет состояние светодиода на противоположное.

led.on()            # включить

led.toggle()        # выключить

print(led.value())  # 0

Другие функции

.high()

Устанавливает высокий уровень выхода с помощью этого эквивалентного метода:

# То же что led.on()
led.high()

.low()

Устанавливает низкий уровень выхода с помощью этого эквивалентного метода:

# То же что led.off()
led.low()

ШИМ

Вы можете использовать pibody.PWM для управления модулем LED и регулировки его яркости — не только вкл/выкл.

Светодиод быстро включается и выключается быстрее, чем может заметить глаз. Мозг усредняет это в воспринимаемый уровень яркости.

Параметры

  • freq — сколько раз в секунду мигает светодиод

    • Ниже 50 Гц — видимое мерцание (полезно для привлечения внимания)
    • 100–200 Гц — в основном стабильно, может мерцать в периферийном зрении
    • 500–5000 Гц — выглядит полностью стабильным для человеческого глаза. Начните с 1000 Гц
    • Более высокие значения допустимы, но не будут выглядеть иначе; они используют больше ресурсов CPU
  • duty — какая часть каждого мигания светодиод включён (0.0 до 1.0)

    • 0 = полностью выключен
    • 0.25 = тускло
    • 0.5 = половина яркости
    • 0.75 = ярко
    • 1.0 = полностью включён (то же что led.on())

Базовый пример

from pibody import PWM

led = PWM("A")

led.freq(1000)   # 1 кГц — стабильно для глаза
led.duty(0.5)    # половина яркости

Плавный эффект затухания

from pibody import PWM
from time import sleep

led = PWM("A")
led.freq(1000)

while True:
    for i in range(0, 101, 1):       # увеличение
        led.duty(i / 100)
        sleep(0.01)
    for i in range(100, -1, -1):     # уменьшение
        led.duty(i / 100)
        sleep(0.01)