GPIO

GPIO

Этот модуль содержит функции для доступа к PIO (Programmable Input Output) пинам ЦПУ. Доступ может осуществляться как на уровне порта (все пины ввода-вывода порта одновременно), так и на уровне отдельного пина (только один пин ввода-вывода порта). Доступ к порту осуществляется с использованием функций pio.port, а доступ к отдельному пину - с использованием функций pio.pin.

I/O порты кодируются в байт и зависят от платформы. По этой причине модуль PIO определяет числовую константу для каждого доступного I/O порта. Например, на платформе ESP32 пин GPIO15 определен константой pio.GPIO15. Пожалуйста, обратитесь к документации вашей платформы или платы, чтобы узнать, какие I/O пины доступны. Если вы обращаетесь к несуществующему I/O, возвращается значение nil.

Учитывайте, что I/O пин может перекрываться с другими функциями (такими как ADC, SPI, UART и т. д.).

pio.pin.setdir(direction, pin1 [, pin2, …, pinn])

Установить направление (вход/выход) для пинов.

После перезапуска whitecat не следует делать предположений о направлении пина. Прежде чем использовать пин, вы должны установить его направление с помощью этой функции.

Аргументы:

  • direction (направление): направление пина, может быть либо pio.INPUT (вход), либо pio.OUTPUT (выход).
  • pin1: первый пин.
  • pin2: второй пин (необязательно).
  • ….

Возвращает: ничего.

pio.pin.setpull(type, pin1 [, pin2, …, pinn])

Включить/выключить подтягивающие/понижающие резисторы на указанных пинах.

Аргументы:

  • type (тип): может быть либо pio.PULLUP для включения подтягивающих резисторов, pio.PULLDOWN для включения понижающих резисторов, или pio.NOPULL для отключения обоих подтягивающих и понижающих резисторов.
  • pin1: первый пин.
  • pin2: второй пин (необязательно).
  • ….

Возвращает: ничего.

pio.pin.sethigh(pin1 [, pin2, …, pinn])

Установить пины в положение 1 (высокий уровень).

Аргументы:

  • pin1: первый пин.
  • pin2: второй пин (необязательно).
  • ….

Возвращает: ничего.

pio.pin.setlow(pin1 [, pin2, …, pinn])

Установить пины в положение 0 (низкий уровень).

Аргументы:

  • pin1: первый пин.
  • pin2: второй пин (необязательно).
  • ….

Возвращает: ничего.

pio.pin.inv(pin1 [, pin2, …, pinn])

Инвертировать значения пинов с 0 на 1 и с 1 на 0.

Аргументы:

  • pin1: первый пин.
  • pin2: второй пин (необязательно).
  • ….

Возвращает: ничего.

pio.pin.setval(value, pin1 [, pin2, …, pinn])

Установить пины в положение value.

Аргументы:

  • value: 0 или 1
  • pin1: первый пин.
  • pin2: второй пин (необязательно).
  • ….

Возвращает: ничего.

val1, val2, …, valn = pio.pin.getval( pin1, pin2, …, pinn )

Получить значения пинов (0 или 1 по каждому).

Аргументы:

  • pin1: первый пин.
  • pin2: второй пин (необязательно).
  • ….

Возвращает:

  • val1: значение pin1 (0 или 1)
  • val2: значение pin2 (0 или 1)
  • ….

pio.pin.num(pin1 [, pin2, …, pinn])

Возвращает номер пина процессора.

Аргументы:

  • pin1: первый пин.
  • pin2: второй пин (необязательно).
  • ….

Возвращает: номер пина процессора.

pio.port.setdir(direction, port1 [, port2, …, portn])

Установить направление (вход/выход) для порта.

Аргументы:

  • direction: направление, может быть pio.INPUT или pio.OUTPUT
  • pin1: первый порт.
  • pin2: второй порт (необязательно).
  • ….

Возвращает: ничего.

pio.port.setpull(type, port1 [, port2, …, portn])

Включить/выключить подтягивающие/понижающие резисторы на указанных портах.

Аргументы:

  • type (тип): может быть либо pio.PULLUP для включения подтягивающих резисторов, pio.PULLDOWN для включения понижающих резисторов, или pio.NOPULL для отключения обоих подтягивающих и понижающих резисторов.
  • pin1: первый порт.
  • pin2: второй опрт (необязательно).
  • ….

Возвращает: ничего.

val1, val2, …, valn = pio.port.getval(port1 [, port2, …, portn])

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

Аргументы:

  • pin1: первый порт.
  • pin2: второй порт (необязательно).
  • ….

Возвращает:

  • val1: значение первого порта
  • val2: значение второго порта
  • ….

pio.port.sethigh(port1 [, port2, …, portn])

Установить пины порта в положение 1 (высокий уровень).

Аргументы:

  • pin1: первый порт.
  • pin2: второй порт (необязательно).
  • ….

Возвращает: ничего.

pio.port.setlow(port1 [, port2, …, portn])

Установить пины порта в положение 0 (низкий уровень).

Аргументы:

  • pin1: первый порт.
  • pin2: второй порт (необязательно).
  • ….

Возвращает: ничего.

Пример

led_pin = pio.GPIO4
pio.pin.setdir(pio.OUTPUT, led_pin)
pio.pin.sethigh(led_pin)