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).
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 |
---|---|---|---|
AD0 | SCL | ------ | |
AD1 + AD2 | SDA | ------ | |
+3.3V | VCC | ------ | |
GND | GND | ------ | |
------ | Canale 0 - PWM | Anodo | |
------ | Canale 0 - GND | Catodo |
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()