Giuseppe Parrello

 

Embedded LED


Introduzione

Con questo progetto andremo a gestire un LED, usando la scheda di sviluppo FTDI FT232H (di cui esiste una pagina dedicata su questo sito) e la scheda di sviluppo NXP PCA9685 (di cui esiste una pagina dedicata su questo sito).

 

Collegamento

Il LED deve essere collegato alla scheda di sviluppo NXP PCA9685. I connettori di collegamento sono elencati qui di seguito:

Immagine Scheda FT232H Scheda PCA9685 LED

FT232H - PCA9685 - LED

AD0 SCL ------
AD1 + AD2 SDA ------
+3.3V VCC ------
GND GND ------
------ Canale 0 - PWM Anodo
------ Canale 0 - GND Catodo

 

Codice Python

Per gestire il LED, è richiesta la presenza della libreria "PCA9685_FTDI".
Il seguente esempio di codice Python accende/spegne il LED e in seguito crea un flusso di colore:

import time
import pca9685_ftdi

# Create library object using our FTDI I2C port
pwm = pca9685_ftdi.PCA9685_FTDI()

STEP      = 2
FACTOR    = 4
SLEEP     = 0
CHANNEL   = 0

try:
    while True:
        print("\nLED on")
        pwm.setPWM(CHANNEL, 0, 256 * FACTOR)
        time.sleep(5)

        print("LED off")
        pwm.setPWM(CHANNEL, 0, 0)
        time.sleep(5)

        print("\nLED Flow")
        for fadeValue in range(0, 256, STEP):
            pwm.setPWM(CHANNEL, 0, fadeValue * FACTOR)
            time.sleep(SLEEP)

        print("LED Flow - Reverse")
        for fadeValue in range(255, -STEP, -STEP):
            pwm.setPWM(CHANNEL, 0, fadeValue * FACTOR)
            time.sleep(SLEEP)

        time.sleep(2)

except KeyboardInterrupt:
    # Capture keyboard ^C to exit the program
    print('\nYou terminated the program. The program ends!')
    #pwm.clearAllPins()
    pwm.set_all_pwm(0, 0)
    pwm.close()