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)
Сохраняем программу и наблюдаем на нагрузкой.
