Sommario:

Arduino e il CI driver LED PWM TLC5940: 7 passaggi
Arduino e il CI driver LED PWM TLC5940: 7 passaggi

Video: Arduino e il CI driver LED PWM TLC5940: 7 passaggi

Video: Arduino e il CI driver LED PWM TLC5940: 7 passaggi
Video: Проект Ардуино № 13 | 5 контактов, 32 светодиода, 2 светодиодных драйвера [TLC5940] 2024, Luglio
Anonim
Arduino e il CI driver LED PWM TLC5940
Arduino e il CI driver LED PWM TLC5940

In questo articolo esamineremo il CI driver LED a 16 canali TLC5940 di Texas Instruments. La nostra ragione per farlo è dimostrare un altro modo più semplice di pilotare molti LED e anche i servi. Per prima cosa, ecco alcuni esempi del TLC5940. Puoi ordinare TLC5940 da PMD Way con consegna gratuita in tutto il mondo.

Il TLC5940 è disponibile nella versione DIP e anche a montaggio superficiale. È davvero una parte conveniente, che ti consente di regolare la luminosità di sedici LED individuali tramite PWM (modulazione di larghezza di impulso) e puoi anche collegare a margherita più di un TLC5940 per controllarne ancora di più.

Durante questo tutorial spiegheremo come controllare uno o più circuiti integrati TLC5940 con LED e vedremo anche come controllare i servi. A questo punto, scarica una copia del TLC5940 (.pdf) a cui farai riferimento durante questo processo. Inoltre, scarica e installa la libreria Arduino TLC5940 di Alex Leone che puoi trovare qui. Se non sei sicuro di come installare una libreria, fai clic qui.

Passaggio 1: costruire un circuito dimostrativo TLC5940

Costruisci un circuito dimostrativo TLC5940
Costruisci un circuito dimostrativo TLC5940

Il seguente circuito è il minimo richiesto per controllare sedici LED dal tuo Arduino o compatibile. Puoi usarlo per sperimentare varie funzioni e avere un'idea di ciò che è possibile. Avrai bisogno:

  • Una scheda Arduino Uno o compatibile
  • 16 LED normali e di uso quotidiano che possono avere una corrente diretta fino a 20 mA
  • un resistore da 2 kΩ (prendi o prendi il 10%)
  • un condensatore ceramico da 0,1 uF e un condensatore elettrolitico da 4,7 uF

Prendi nota dell'orientamento del LED e ricorda che il TLC5940 è un driver LED ad anodo comune, quindi tutti gli anodi dei LED sono collegati insieme e quindi a 5V.

Passo 2:

Per questo particolare circuito, non avrai bisogno di un alimentatore esterno da 5 V, tuttavia potresti averne bisogno in futuro. Lo scopo del resistore è controllare la quantità di corrente che può fluire attraverso i LED. Il valore del resistore richiesto viene calcolato con la seguente formula:

R = 39.06 / Imax dove R (in Ohm) è il valore del resistore e Imax (in Amp) è la quantità massima di corrente che si desidera far passare attraverso i LED.

Ad esempio, se si dispone di LED con una corrente diretta di 20 mA, il calcolo del resistore sarebbe: R = 39,06 / 0,02 = 1803 Ohm. Una volta assemblato il circuito, apri l'IDE Arduino e carica lo sketch BasicUse.pde che si trova nella cartella di esempio per la libreria TLC5940.

Dovrebbe essere presentato un output simile a quello mostrato nel video.

Passaggio 3: controllo del TLC5940

Ora che il circuito funziona, come controlliamo il TLC5940? Innanzitutto, le funzioni obbligatorie: includi la libreria all'inizio dello schizzo con:

#include "Tlc5940.h"

e quindi inizializzare la libreria inserendo quanto segue in void setup():

Tlc.init(x);

x è un parametro opzionale – se vuoi impostare tutti i canali su una certa luminosità non appena inizia lo sketch, puoi inserire un valore compreso tra 0 e 4095 per x nella funzione Tlc.init().

Ora per accendere o spegnere un canale/LED. Ogni canale è numerato da 0 a 15 e la luminosità di ogni canale può essere regolata tra 0 e 4095. Questo è un processo in due parti… Primo: usa una o più delle seguenti funzioni per impostare i canali richiesti e la rispettiva luminosità (PWM livello):

Tlc.set (canale, luminosità);

Ad esempio, se si desidera che i primi tre canali siano accesi alla massima luminosità, utilizzare:

Tlc.set(0, 4095);Tlc.set(1, 4095); Tlc.set(2, 4095);

La seconda parte consiste nell'utilizzare quanto segue per aggiornare il TLC5940 con le istruzioni richieste dalla prima parte:

Tlc.update();

Se vuoi disattivare tutti i canali contemporaneamente, usa semplicemente:

Tlc.clear();

Passaggio 4:

Non è necessario chiamare un TLC.update() dopo la funzione clear. Quello che segue è un rapido schizzo di esempio che imposta i valori di luminosità/PWM di tutti i canali a diversi livelli:

#include "Tlc5940.h"void setup() { Tlc.init(0); // inizializza TLC5940 e disattiva tutti i canali }

ciclo vuoto()

{ for (int i = 0; i < 16; i++) { Tlc.set(i, 1023); } Tlc.update(); ritardo(1000); for (int i = 0; i < 16; i++) { Tlc.set(i, 2046); } Tlc.update(); ritardo(1000); for (int i = 0; i < 16; i++) { Tlc.set(i, 3069); } Tlc.update(); ritardo(1000); for (int i = 0; i < 16; i++) { Tlc.set(i, 4095); } Tlc.update(); ritardo(1000); }

La capacità di controllare la luminosità individuale per ciascun canale/LED può essere utile anche quando si controllano i LED RGB: è quindi possibile selezionare facilmente i colori richiesti tramite diversi livelli di luminosità per ciascun elemento. Una dimostrazione è mostrata nel video.

Passaggio 5: utilizzo di due o più TLC5940

È possibile collegare a margherita diversi TLC5940 per controllare più LED. Innanzitutto, collegare il successivo TLC5940 all'Arduino come mostrato nel circuito dimostrativo, tranne collegare il pin SOUT (17) del primo TLC5940 al pin SIN (26) del secondo TLC5940, mentre i dati viaggiano dall'Arduino, attraverso il primo TLC5940 al secondo e così via. Quindi ripeti il processo se ne hai un terzo, ecc. Non dimenticare il resisotr che imposta la corrente!

Quindi, apri il file tlc_config.h che si trova nella cartella della libreria TLC5940. Cambia il valore di NUM_TLCS con il numero di TLC5940 che hai collegato insieme, quindi salva il file ed elimina anche il file Tlc5940.o che si trova anch'esso nella stessa cartella. Infine riavvia l'IDE. È quindi possibile fare riferimento ai canali del secondo e ulteriori TLC5940 in sequenza dal primo. Cioè, il primo è 0~15, il secondo è 16~29 e così via.

Passaggio 6: controllo dei servi con il TLC5940

Poiché il TLC5940 genera un'uscita PWM (modulazione di larghezza di impulso), è ottimo anche per pilotare i servi. Proprio come i LED: puoi controllarne fino a sedici contemporaneamente. Ideale per creare robot simili a ragni, strani orologi o fare rumore.

Quando scegli il tuo servo, assicurati che non assorba più di 120 mA durante il funzionamento (la corrente massima per canale) e presta attenzione anche alla sezione "Gestione della corrente e del calore" alla fine di questo tutorial. E usa l'alimentazione esterna con i servi, non fare affidamento sulla linea 5V di Arduino.

Collegare un servo è semplice: la linea GND si collega a GND, il 5V (o il cavo della tensione di alimentazione) si collega al 5v (o altra alimentazione adatta) e il pin di controllo del servo si collega a una delle uscite del TLC5940. Infine, e questo è importante, collegare un resistore da 2,2 kΩ tra i pin di uscita TLC5940 utilizzati e 5 V. Il controllo di un servo non è molto diverso da un LED. Hai bisogno delle prime due linee all'inizio dello schizzo:

#include "Tlc5940.h"#include "tlc_servos.h"

quindi quanto segue in void setup():

tlc_initServos();

Successivamente, utilizzare la seguente funzione per selezionare quale servo (canale) azionare e l'angolo (angolo) richiesto:

tlc_setServo(canale, angolo);

Proprio come i LED, puoi raggrupparne alcuni insieme e quindi eseguire il comando con:

Tlc.update();

Quindi vediamo tutto questo in azione. Il seguente schizzo di esempio spazza quattro servi su 90 gradi:

#include "Tlc5940.h"#include "tlc_servos.h"

configurazione nulla()

{ tlc_initServos(); // Nota: questo ridurrà la frequenza PWM fino a 50Hz. }

ciclo vuoto()

{ for (int angolo = 0; angolo = 0; angolo--) { tlc_setServo(0, angolo); tlc_setServo(1, angolo); tlc_setServo(2, angolo); tlc_setServo(3, angolo); Tlc.update(); ritardo(5); } }

Il video mostra questo schizzo in azione con quattro servi.

Se i tuoi servi non ruotano all'angolo corretto, ad esempio chiedi 180 gradi e ruotano solo a 90 o giù di lì, è necessario un po' di lavoro in più.

Devi aprire il file tlc_servos.h che si trova nella cartella della libreria Arduino TLC5940 e sperimentare i valori per SERVO_MIN_WIDTH e SERVO_MAX_WIDTH. Ad esempio cambia SERVO_MIN_WIDTH da 200 a 203 e SERVO_MAX_WIDTH da 400 a 560.

Passaggio 7: gestione della corrente e del calore

Come accennato in precedenza, il TLC5940 può gestire un massimo di 120 mA per canale. Dopo alcuni esperimenti, potresti notare che il TLC5940 si riscalda, e va bene così.

Si noti che esiste un limite massimo alla quantità di potenza che può essere dissipata prima di distruggere la parte. Se stai usando normali LED da giardino o servi più piccoli, la potenza non sarà un problema. Tuttavia, se hai intenzione di utilizzare il TLC5940 al massimo, consulta le note fornite dagli autori della libreria.

Conclusione

Ancora una volta sei sulla buona strada per controllare una parte incredibilmente utile con il tuo Arduino. Ora con un po' di immaginazione puoi creare tutti i tipi di display visivi o divertirti con molti servi.

Questo post è offerto da pmdway.com, che offre prodotti TLC5940 insieme a tutto per i produttori e gli appassionati di elettronica, con consegna gratuita in tutto il mondo.

Consigliato: