python - 通过设置PCA9685的占空比调光时的脉冲
问题描述
我有一个交流电流调光器 (MPDMv4.1),它采用 PWM 信号来调暗卤素灯泡。PWM 信号来自 PCA9685 伺服 HAT。
这与以下代码完美配合:
from board import SCL, SDA
import busio
from adafruit_pca9685 import PCA9685
ic2_bus = busio.I2C(SCL, SDA)
pca = PCA9685(i2c_bus)
pca.frequency = 1000
while True:
value = input(„Enter a value from 0 to 100“)
duty_cycle = int(round((100 - int(val))/100 * 57000))
pca.channels[15].duty_cycle = duty_cycle
如果我将 PCA9685 对象初始化放在无限循环中,就会出现我的问题,如下所示:
from board import SCL, SDA
import busio
from adafruit_pca9685 import PCA9685
ic2_bus = busio.I2C(SCL, SDA)
while True:
pca = PCA9685(i2c_bus)
pca.frequency = 1000
value = input(„Enter a value from 0 to 100“)
duty_cycle = int(round((100 - int(val))/100 * 57000))
pca.channels[15].duty_cycle = duty_cycle
在这个例子中,将初始化放在循环中当然没有意义。但我的程序循环通过不同的温度传感器,并根据导出的温度调暗灯光。调光是在一个单独的过程中完成的,因为应该有实际值逐渐变化到目标值以使变化更平滑。我迫不及待地等待主进程结束,所以我启动了一个子进程来处理这个问题。但是每次启动这个过程,都必须重新生成PCA9685对象,我得到这个亮光脉冲,这对我的应用程序来说是不可接受的。当我实际上并没有通过生成对象来更改占空比时,也会发生此脉冲。它仅在光线远离最大功率时可见。
我试图腌制 PCA9685 对象并将其作为参数提供给调光过程,但_io.FileIO
无法腌制对象。
我还尝试了几个不同的库,它总是一样的。因此我的问题是:有人知道这是怎么造成的吗?建立连接时这是不可避免的吗?它可能被规避吗?
最好的,非常感谢,Gero
解决方案
推荐阅读
- verify - 使用 NCrunch 时,Verify.NUnit 报告的差异如何被批准?
- bash - Bash 解析 ls 使用 printf 和 nul 分隔符的经验教训
- django - AssertionError:应为“日期”,但得到了“日期时间”。拒绝强制,因为这可能意味着丢失时区信息
- python - 根据 Python pandas 中的系列动态填充缺失的年份和星期值
- python - 为什么在多个 if 语句中使用 elif 和 else?
- git - 临时使用没有服务器的 git
- c# - 通过 Azure DevOps Services Rest Api 完成的拉取请求列表
- android - 将图像保存在外部存储中适用于模拟器,但不适用于具有相同源代码的物理手机
- spring-cloud - spring-cloud-gateway webflux ProxyExchange 返回 404
- mvvm - ReactiveUI 和 DynamicData SourceCache 更新问题