gpt4 book ai didi

python - 使用 PCA9685 控制 LED

转载 作者:太空宇宙 更新时间:2023-11-03 16:41:11 26 4
gpt4 key购买 nike

我购买了 Adafruit PCA9685 并完成了库安装,但是,我不知道如何对其进行编程。我想基于我编写的以下代码:

import RPi.GPIO as GPIO
import time
import sys
from pubnub import Pubnub

GPIO.setmode(GPIO.BCM)

PIN_LIVING = 22
PIN_PORCH = 17
PIN_FIREPLACE = 27

GPIO.setup(PIN_LIVING,GPIO.OUT)
GPIO.setup(PIN_PORCH,GPIO.OUT)
GPIO.setup(PIN_FIREPLACE,GPIO.OUT)

FREQ = 100 # frequency in Hz
FIRE_FREQ = 30 # flickering effect

# Duty Cycle (0 <= dc <=100)

living = GPIO.PWM(PIN_LIVING, FREQ)
living.start(0)

porch = GPIO.PWM(PIN_PORCH, FREQ)
porch.start(0)

fire = GPIO.PWM(PIN_FIREPLACE, FIRE_FREQ)
fire.start(0)

# PubNub

pubnub = Pubnub(publish_key='demo', subscribe_key='demo')

channel = 'pi-house'

def _callback(m, channel):
print(m)

dc = m['brightness'] *10

if m['item'] == 'light-living':
living.ChangeDutyCycle(dc)

elif m['item'] == 'light-porch':
porch.ChangeDutyCycle(dc)

elif m['item'] == 'fireplace':
fire.ChangeDutyCycle(dc)

def _error(m):
print(m)

pubnub.subscribe(channels='pi-house', callback=_callback, error=_error)

try:
while 1:
pass
except KeyboardInterrupt:
GPIO.cleanup()
sys.exit(1)

我不知道这是否相似。我购买它是因为我希望能够通过 Raspberry pi 的 PWM 控制更多 LED。我调查了一下,发现了针对该芯片的各种奇怪的命令和术语。

谢谢!

最佳答案

首先,如果您查看数据表的第 29 页(图 15),它会显示对于直接 LED 连接,您需要反向连接 LED。即,将 LED 的地连接到 PCA9685 上的 PWM 线,将 LED 的正极连接到 V+

代码非常简单(下面是针对 Arduino 的),您可以使用函数 pwm.setPWM(uint8_t num, uint16_t on, uint16_t off) 打开和关闭 LED 以及不同的级别亮度。

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

void setup()
{
Serial.begin(9600);

pwm.begin();
pwm.setPWMFreq(1600); //This is the maximum PWM frequency

pwm.setPWM(1,0,4095); //this turns on the LED connected to channel one (I suspect the only line you're really looking for)
}

希望能回答您的问题!

关于python - 使用 PCA9685 控制 LED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36770133/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com