Un componente che mi ha spesso incuriosito è il PCA9685 per il quale ho ricercato un arduino library PCA9685
In particolare il PCA9685 è un 16 canali PWM a 12 bit ciascuno su bus I2C nato per controllare i LED in modalità PWM come riportato dal produttore.
Già solo dalla prima presentazione del PCA9685 puoi raccogliere alcune importanti informazioni:
- I2C- bus
- 16 canali
- 12 bit ( 4096 valori )
- 24Hz – 1526 Hz programmabile
- duty cycle 0% – 100%
- Tutti gli output devono essere alla medesima frequenza.
Per utilizzarlo nei tuoi progetti con Arduino avrai bisogno di una libreria in grado di controllare questa tipologia di componente.
Ho cercato l’Arduino library PCA9685 direttamente dall’IDE trovando solo la ZPCA9685 derivata dalla libreria Adafruit che presenta alcuni esempi e dettagli documentati.
Installazione dell’arduino library PCA9685
La strada più comoda per installare la libreria Adafruit per controllare il PCA9685 è usare il Gestore librerie:
ricercando la “Adafruit PWM” o “Adafruit PWM Servo Driver” e cliccare su Installa.
In alternativa puoi procedere all’installazione della libreria scaricandola da gitHub ed installarla come file .zip direttamente nell’IDE arduino:
e selezionando il file .zip scaricato:
per installare la libreria.
Al termine dell’installazione troverai tra gli esempi dell’IDE
che potrai testare da subito se possiedi un PCA9685 dell’Adafruit e che analizzeremo nel corso dei prossimi articoli.
La documentazione dell’arduino library PCA9685
Su gitHub trovi la documentazione della libreria in cui è indicata la compatibilità della stessa con le famiglie di micro controllori:
da cui puoi rapidamente dedurre quali siano le board con cui tale libreria è utilizzabile.
Inoltre sul sito dell’autrice della libreria trovi una pagina di reference dedicata alla libreria in cui è dato principale risalto ai due metodi setPWMFreq e setPWM con il primo imposti la frequenza di putput del componente, che come hai letto sopra, è unica per tutti i pin PWM; mentre con il secondo invii a ciascuno dei 16 pin connessi al PCA9685 un diverso valore di PWM.
Ricorda che il PCA9685 lavora a 12bit pe cui i valori di putput PWM sono da 0 a 4096 in una frequenza che puoi far variare da 40Hz a 1000 Hz.
Il comando setPWM accetta 3 parametri:
- channel: il valore (0..15) corrispondente al pin su cui desideri inviare il PWM.
- on: il valore (0..4095) corrispondente a quando il segnale dovrebbe passare da basso ad alto;
- off: il valore (0..4095) corrispondente a quando il segnale dovrebbe passare da alto a basso;
Un esempio, in questo caso, è molto utile e la documentazione ti dice che:
pwm.setPWM(15, 1024, 3072)
tale comando invierà all’ultimo pin ( 15 ) un valore che aumenterà al 25% dell’impulso e rimarrà tale fino al 75%, momento in cui, tornerà basso per il restante 25%.
Se osservi i numeri vedrai 1024 = 25% di 4096 e che 3072 è il 75% di 4096.
Nei prossimi articoli proverai ad utilizzare l’arduino library PCA9685 e comprendere il suo funzionamento pratico nei progetti Arduino.