Arduino library PCA9685

Un componente che mi ha spesso incuriosito è il PCA9685 per il quale ho ricercato un arduino library PCA9685

PCA9685 overview

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.

github arduino library PCA9685

Installazione dell’arduino library PCA9685

La strada più comoda per installare la libreria Adafruit per controllare il PCA9685 è usare il Gestore librerie:

arduino adafruit library PCA9685ricercando 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:

Install arduino library PCA9685

e selezionando il file .zip scaricato:

select arduino library PCA9685

per installare la libreria.

Al termine dell’installazione troverai tra gli esempi dell’IDE 

 

arduino library PCA9685 installed

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:

arduino compatibility library PCA9685

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 setPWMFreqsetPWM 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.

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/elettronica/arduino-library-pca9685.html

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.