DOMANDA Alimentazione Backlight per tastiera Handwired con Adafruit Feather 32u4 BLE

desantisbr

Nuovo Utente
3
1
Ciao a tutti,
ho da poco costruito la mia prima tastiera handwired utilizzando un Adafruit Feather 32u4 BLE.
Inizialmente, pensando di utilizzarla prevalentemente in Bluetooth non avevo minimamente considerato la possibilità di inserire una retroilluminazione ma avevo comunque già provveduto ad acquistare 100 LED da 3mm Bianchi (min Vf=3V).
Ora vorrei capire come effettuare il cablaggio e il dimensionamento delle eventuali resistenze.
Capisco sia necessaria una resistenza per ogni LED che dimensiono in questo modo:
(Vin-Vf)/If=(3.3-3.0)/0.015=20ohm
Mi sorge però il dubbio che i LED da 3mm possano viaggiare anche senza resistenza... è corretto?
Ho già fatto qualche prova ad alimentare un led a 3.3 che è ben luminoso ma non so se possa reggerlo a lungo.

Per il cablaggio mi starei orientando per seguire questo schema sotto trovato in questa guida (pensata per utilizzare un Teensy che va a 5V... sigh)
1621583846680.png
Avete suggerimenti?
GRAZIE A TUTTI!
 

alan0ford

Utente Attivo
1,213
524
Ti scrivo alcune considerazioni sparse...

In teoria per ogni LED ci andrebbe una sua resistenza e mosfet o transitor di pilotaggio, questo perché esiste un limite di corrente di uscita da ciascun PIN e complessivamente dalla USB, ma con calma darò un'occhiata al link che hai postato.

Per le tastiere backlight che mi sono costruito ho usato un driver PWM (se hai fatto una Planck dovresti aver usato 16 PIN - 4 righe+12 colonne - e il Feather ne ha 17, te ne avanza giusto uno) che si chiama LD06AJSA e che costa pochi EUR. Ne avevo scritto qua:

I LED sono tutti i paralello e si spengono e accendono velocemente in modo da non percepire lo sfarfallamento, mantenendo la corrente complessiva bassa:


Tutte queste cose però le ho fatte con tastiere cablate a 5 V.

Il Feather ha una batteria al litio da 3,7 V, nelle due tastiere che ho fatto sono riuscito a pilotare un singolo LED RGB WS2812 che mi indica con un colore il layer in cui sono e il capslock (che però in BT non funziona per i limiti del Feather). Ultima foto:

Dovresti capire con qualche prova se 3,7 volt sono sufficienti per LD06AJSA
 
  • Mi piace
Reazioni: desantisbr

desantisbr

Nuovo Utente
3
1
Grazie mille per la tua risposta
Ti scrivo alcune considerazioni sparse...

In teoria per ogni LED ci andrebbe una sua resistenza e mosfet o transitor di pilotaggio, questo perché esiste un limite di corrente di uscita da ciascun PIN e complessivamente dalla USB, ma con calma darò un'occhiata al link che hai postato.

Per le tastiere backlight che mi sono costruito ho usato un driver PWM (se hai fatto una Planck dovresti aver usato 16 PIN - 4 righe+12 colonne - e il Feather ne ha 17, te ne avanza giusto uno) che si chiama LD06AJSA e che costa pochi EUR. Ne avevo scritto qua:

I LED sono tutti i paralello e si spengono e accendono velocemente in modo da non percepire lo sfarfallamento, mantenendo la corrente complessiva bassa:


Tutte queste cose però le ho fatte con tastiere cablate a 5 V.

Il Feather ha una batteria al litio da 3,7 V, nelle due tastiere che ho fatto sono riuscito a pilotare un singolo LED RGB WS2812 che mi indica con un colore il layer in cui sono e il capslock (che però in BT non funziona per i limiti del Feather). Ultima foto:

Dovresti capire con qualche prova se 3,7 volt sono sufficienti per LD06AJSA
Grazie mille per la tua risposta!
Capisco dalle specifiche che il LD06AJSA necessita di almeno 1.8V quindi dovrebbe andare bene anche per il Feather che ha un output di massimo 3.3V (indipendentemente dall'alimentazione USB a 5V o a batteria 3.7V).
Non avendo una resistenza preimpostata conto di usare un multimetro e misurare quando raggiunge l'output di 3V richiesto dai LED.

Ho trovato 10 LD06AJSA su aliexpress e li ho ordinati subito. Grazie per la dritta! Usare il driver (di cui non conoscevo l'esistenza) mi salverà un centinaio di saldature sulla mia planck...

Un dubbio però mi rimane. Sono obbligato ad utilizzare un pin PWM sul feather per alimentare il driver? (attualmente ho solo il 13 libero che non lo è)
 
  • Mi piace
Reazioni: alan0ford

alan0ford

Utente Attivo
1,213
524
Le saldature sono tante lo stesso, ed è fondamentale usare un filo molto sottile, con isolamento "fondibile" in modo da spelarlo appoggiando lo stagnatore, senza tagliarlo mai, altrimenti non ti passa più...


Il pinout dovrebbe essere questo:

Come uscite PWM mi pare si possano usare solo B5, B6 o B7 (9, 10, 11 del Feather mi pare), se le hai già impegnate dovrai spostare una riga o una colonna.

Con quel che costa il Feather, prima farei qualche prova con due-tre LED in una basetta esterna, magari guarderei lo schema se è il caso di partire direttamente dalla batteria (non so se hai messo un interruttore sulla batteria, nel caso il GND del Feather e il meno della batteria dovrebbero essere assieme, puoi interrompere solo il positivo), non ricordo se l'uscita PWM del Feather è riferita al positivo o alla massa.

=== EDIT ===
B5, B6 e B7 sono dati da QMK per l'Atmega 32u4, non ricordavo:
 
Ultima modifica:
  • Mi piace
Reazioni: desantisbr

desantisbr

Nuovo Utente
3
1
Ciao!
Un piccolo aggiornamento: sto provando in questi giorni il LED Driver LD06AJSA.

Sono riuscito a collegarlo ad una sorgente esterna a 5V (ho selvaggiamente ricavato la 5V e il GND da un cavo USB che ho connesso ad un power bank). Ho collegato il multimetro in serie per rilevare il consumo di corrente min e max variando la regolazione dell resistenza nonché il Voltaggio sull’alimentazione dei LED in parallelo. Ho poi mandato un segnale in PWM a 255 (massima luminosità) con un Arduino UNO R3. Ho notato le seguenti cose:
  1. L’amperaggio (per 24 LED da 3mm montati in parallelo) va da 50 mA a 370 mA a seconda della regolazione (min/max) della resistenza;
  2. Il voltaggio sui LED è costante a 5V. Questo mi preoccupa visto che i LED da 3mm supportano un voltaggio massimo di 3.5V e che raggiungono una temperatura molto elevata; Non dovrebbe esserci una riduzione del voltaggio?
  3. Nel caso l’Arduino abbia una alimentazione separata, si nota un evidente flickering dei LED; questo non succede se l’alimentazione è condivisa tra il LD06AJSA e Arduino. Quale può essere la ragione?
Capisco quindi che l’alimentazione fornita al circuito (Vin sul LD06AJSA) viene trasferito direttamente ai LED senza alcuna riduzione di Voltaggio da parte della resistenza (deve essere così?).
Scusate per la valanga di domande e grazie mille!
 

alan0ford

Utente Attivo
1,213
524
Do per scontato che tu abbia rispettato lo schema da specifica.

Per resistenza intendi il trimmer di regolazione?

Io non l'ho più spostato (solo la prima volta per fare prove), l'ho lasciato sempre di default. Certo l'assorbimento varia in funzione di quanto l'onda quadra rimane sull'uno rispetto allo zero, in QMK metto solo tre livelli in config.h e per 65 LED ottengo meno di 100 mA (come vedi nel video del post sopra).

Codice:
/* number of backlight levels */
#define BACKLIGHT_PIN B7
#ifdef BACKLIGHT_PIN
#define BACKLIGHT_LEVELS 3
#endif

Un po' di flickering c'è (non si può aver tutto dalla vita), ma non capisco (se mi fai un disegnino) cosa intendi, l'alimentazione è una sola con la massa in comune.

===== EDIT

Se ti serve, il datasheet del mosfet: http://www.consonance-elec.com/pdf/datasheet/DSE-CN5711.pdf
 
Ultima modifica:

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!