CircuitPython

Для работы с силовым ключом QIIC используем библиотеку robotclass_pca9536 (ссылка в конце урока). Всё, что нам нужно сделать для её установки — это скопировать файл robotclass_pca9536.mpy в папку lib на накопителе CIRCUITPY.

Более подробно о работе с библиотеками CircuitPython мы писали в одном из ранних наших уроков: Библиотеки для CircuitPython

УСТАНОВКА ЗАВИСИМОСТЕЙ

Чтобы библиотека robotclass_pca9536 заработала, необходимо будет добавить еще две «зависимости»:

  • adafruit_bus_device
  • adafruit_register

Все эти библиотеки есть в сборнике от Adafruit. Точно также, копируем их на накопитель CIRCUITPY.

Программа

Для составления программы используем среду разработки Mu.

Пусть, самая первая наша программа будет включать и выключать нагрузку каждую секунду. Начнём с подключения всех необходимых библиотек. Помним, что в python это делается с помощью команды import.

Кроме robotclass_pca9536 нам будут нужны еще три библиотеки:

  • time — предоставляет функцию sleep для организации паузы;
  • board — хранит названия всех контактов платы контроллера и их синонимы;
  • busio — предоставляет интерфейс для работы с шиной I2C.
import time
import board
import busio
import robotclass_pca9536

Затем инициализируем шину I2C. Следом — силовой ключ, а точнее микросхему PCA9536 на нём.

i2c = board.I2C()
pca = robotclass_pca9536.PCA9536(i2c)

Как уже говорилось, PCA9536 — это расширитель цифровых выводов. В схеме силового ключа, к выводу расширителя с индексом 0 подключена оптопара, которая управляет затвором транзистора. Таким образом, в программе мы будем обращаться к нулевому каналу расширителя и менять его состояние с True на False, и наоборот. После каждой смены состояния, генерируем паузу с помощью функции sleep.

import time
import board
import busio
import robotclass_pca9536

i2c = board.I2C()

# включение датчика
pca = robotclass_pca9536.PCA9536(i2c)

while True:
    pca.channels[0].value = True
    time.sleep(1)
    pca.channels[0].value = False
    time.sleep(1)    

Сохраняем программу и наблюдаем на нагрузкой.


Изменено: