LCD HD44780 4X20 to I2C

Salve a tutti ragazzi,
sono alle prese con l'ssemblaggio di un HD44780 (4x20) su i2c, vorrei sfruttare le librerie che ho trovato qui : http://www.xs4all.nl/~hmario/arduino/LiquidCrystal_I2C/LiquidCrystal_I2C.zip
Le istruzioni sono molto chiare e ben fatte ho solo qualche dubbio, non vorrei limitarmi a saldare i fili, ma ci vorrei capire qualcosa visto che è questo che mi interessa piuttosto che il dispositivo che andrò a creare.

I miei dubbi sono :
Il controller:
Ho ordinato il PCF8574A, ma il mio IC ha sigla PCF8574AN (nel datasheet sembra uguale all'A, magari cambiano solo gli address configurabili ..
me lo confermate ?)

Il transistor :
Dallo schema allegato alle istruzioni trovo un BC557 che come è descritto dovrebbe servire, correggetemi se sbaglio, a dare la giusta corrente al display che si aspetta correnti minori di 500mA e questo transistor emette circa 500 mA avendo in ingresso credo (50mA?)

Resistenze :
L'unica che va calcolata è quella verso L'LCD e dovrei trovarla nel datasheet (spero).

Chiedo scusa se ho scritto castronerie, ma sto cercando di capirci e credetemi mi sono documentato prima di scrivere qui, probabilmente se ne ho dette non ho capito una mazza e mi scuso, ma credo l'unico modo per capire (son mezzo programmatore, elettronica zero), sia quello di postare qui.

Ringrazio anticipatamente tutti quelli che vorranno darmi una mano.
Grazie
Gino

Ciao whole
Ti confermo in parte, la differenza tra il PCF8574(senza lettera) e il PCF8574A (con la lettera A e eventuali altrie lettere aggiuntive come AN) é la parte fissa del indirizzo ;
Il PCF8574 ha l'indirizzo 0100 xxx percui in decimale da 32 a 39 .
Il PCF8574A ha l'indirizzo 0111 xxx percui in decimale da 56 a 63.

Il transistor BC557 sopporta 100mA non 500mA; Serve per pilotare la retroilluminazione a LED. Al LCD non frega niente quella corrente. Funziona comunque anche senza illuminazione, solo non é ben visibile in certe circostanze di illuminazione.
Nei dati tecnici del LCD trovi l'informazione sulla tensione e corrente e della resistenza da mettere.

Manda la sigla del LCD che hai comprato.

Ciao Uwe

Cia uwe
HO IL DATASHEET : WH2004 4x20 blu caratteri europei.

Per l'esattezza : WH2004A pdf, WH2004A Description, WH2004A Datasheet, WH2004A view ::: ALLDATASHEET :::

@uwe A e AN stanno anche per il formato :smiley:

il PCF8574AN è :

  • package PDIP-N
  • 8 indirizzi configurabili da (dec [56to63] or [hex 38to3F])

per il resto funziona tutto ugale credo.

Ciao
@ Grazie Calamaro, non sono stato attento, ma la richiesta di Whole era riferito alla parte fissa del indirizzo.

Per l' illuminazione trovi sulle specifiche del display a destra in fondo:
La tensione dei Led é 4,2V tipici fino a 4,6V e la corrente tipica é 280mA al massimo 560mA. Se alimenti con tensioni piú alte devi mettere una resistenza; il transistor citato é troppo debole per pilotare la retroilluminazione.

Ciao Uwe

Uwe il tutto è partito da questo schema su cui mi sto basando e sto cercando di capire perchè soo stati usati sti compnenti.
Nb: Lo schema lo ha scrittoquello che ha fatto le lib crystal_i2c, le ho prese nei file allegati alla libreria.

allora se volessi farlo tramite sempre l'ic controller i2c che tranasistor dovrei usare ?

ciao Whole

La resistenza (5V-4,2V)/ 280mA = 2,8Ohm; metterei 3,3Ohm 1/2 Watt.

Come transistore meglio un BC327

Ciao Uwe

Io ho acidato diverse "breakout board" (chiamiamole) basate su quello schema con l'aggiunta di un doppio potenziometro digitale i2c. Cosi' con 2 fili di segnale sul sub e due per la corrente hai fatto tutto in maniera digitale. Ottima libreria!

ciao Federico
Non ho capito cosa hai pilotato con i 2 poteniometri digitali.
Ciao Uwe

Credo che i potenzionetri digitali siano riferiti al backlight...
ma ne dovrebbe servire uno solo...
ad ogni modo ho una confusione bestiale..provo a rifarmi lo schema coi mei dati, poi magari me lo controllate un po e vediamo.

Ditemi se sbaglio,
al collettore del transistor si applica una resistenza da 1k per limitare ulteriormente la tensione di uscita dell'integrato ( che pare essere di 580Mv) ?

In realta' esiste un integrato che si chiama DS1803, prodotto dalla maxim, che contiene due potenziometri digitali.

Colleghi un digital pot al backlight e uno al contrasto e utilizzi il ds1803 in accoppiata con il pcf per ottenere il controllo totale dell' lcd. Sono arrivato a questa soluzione avendo la necessita' di regolare il backlight in maniera autonoma rispetto alla luce dell'ambiente. Inoltre ti permette, volendo, di avere l'effetto visivo di fade in o fade out sullo schermo e un eventuale lampeggio.

Ho scritto due righe per questo integrato nel playground italiano.

F

@ federico
Grazie della risposta.
@ whole
Le cose non sono cosí semplici coi transistori.
Per primo i BJT come quello dello schema sono pilotati in corrente. La corrente della base (dove é messo la resistenza) regola la corrente tra emetitore e collettore. Il fattore che lega le due correnti é il guadagno ß o HFE.
Il hfe del transistore che ti avevo consigliato é a seconda del numero dopo la sigla tra 100 e 630.
Come mai detto io non ho mai studiato a scuola tanta elettronica ma solo un pó, che non é da stupirsi quando ho fatto l' indirzzo di elettrotecnica.
Ho delle difficoltá coi transistori e percui chiederei Federico di spiegare come ha fatto il circuito per regolare la luminositá dei LED di retroilluminazioni.
Ciao Uwe

Sostanzialmente credo che si applichi la resistenza al transisor sul collettore per non fare secco il transistor stesso. Da esperimenti che ho fatto lo schema che e' presente nella libreria e che ci hai mostrato e' corretto e funziona. In particolare funziona anche senza transistor per dirla proprio tutta...

PS:
Se per caso puo' tornare utile c'e' da qualche parte sul forum internazione una discussione che ho fatto per modificare la libreria liquidcrystal i2c per avere un pin di input sacrificando un altro pin (nel mio primo progetto avevo fissato il contrasto)

riepilogando :
dopo li consiglio di uwe ho comprato il trabsistor sggeritomi al posto di quello usato nello schema ma sto cercando di rifarmi a amano i calcoli necessari a giustificarne l'uso, inutile dire che mi sto scervellando ma ci capisco sempre meno.

BC327 allora ?
ci vuole la resistenza ?

Sarebbe davvero moltoi urile per me capire il perchè e soprattutto come si è arrivati a calcoare quel tipo di resistenza alla base per CAPIRE.

@uwe:
Te magari hai fatto studi diversi dall'elettronica pura..io ho fatto cose completamente diverse dal mondo dell'elettronica/elettrotecnica etc.
Mi occcupo di webdesign e grafica..e mi sto appassionando all'elettronica digitale ma ho molte, troppe,lacune che vorrei colmare.
Pensa, da quando ho conosciuto Arduino e Voi mi sono studiato legge di ohm,componenti, datasheets (capendoli a malapena a dirla tutta) e mi sto sbattendo per trovare un nesso logico negli schemi di esempio come quello sul quale stiamo discutendo.

Mi piacerebbe poter progettare un mio PCB (sto studiando eagle) e risolvere alcuni problemi pratici quotidiani con l'elettronica confidando nell'aiuto del web e di questa community ma vorrei crescere non limitarmi a copiare progetti.
Sono ben accetti suggerimenti tipo studiati questo e studiati quello anche.

Ciao
G.

il transistor di liquidcrystal_i2c serve solo per aumentare la luminosità del led di retoilliuminazione dello schermo. Nessuno ti vieta di attaccare il pin 15 dell'lcd (LED+) direttamente alle 5 volt magari con una resistenza piccola in mezzo (220 ohm andrebbe bene) senza complicarti la vita. E' ovvio che in questo modo non puoi accendere e spegnere.

Se vuoi accendere e spegnere ti consiglio di fare questo:
il pcf8574 non riesce a sputare molta corrente (motivo per cui c'è il transistor) ma è invece in grado di succhiarne tanta. Quindi collega il led+ a 5v invece il led- ad una uscita del pcf8574. Quando l'uscita del pcf sarà LOW questo succhierà corrente dal led che si accenderà. Nel caso in cui l'uscita sarà HIGH il led rimane spento.
L'illuminazione non sarà forte come quella fornita da un bv547 o simili ma abbastanza buona.
Inutile dirti che se vuoi usare questa soluzione devi per forza modificare la libreria per il motivo di cui sopra (0 è acceso, 1 è spento).

Se non ti piace ti aiutiamo per i calcoli delle resistenze

@uccio
grazie mi hai dato la conferma che il transistor serve da interruttore.
Io preferirei seguire quella strada dello schema per accendere e spegnere da libreria così com'è , quindi :

(pin12)PCF8574AN-->R1-->(base)BC327 -->R2--Led+

Avrei bisogno solo di una mano a :

  • calcolare i valori di R1 e R2

Ps: so che non c'entra ma oggi mentre cablavo il display con un saldatore a stazione lafayette molto piccino e maneggevole comprato ieri (18 euro) , questo bel pezzo di aggeggio mi si è sciolto un mano :(.

allora ti spiego:
i transistor NPN come il bc547, bc337, 2n222 e un altro migliaio possono essere usati come

  • interruttori
  • amplificatori (corrente e tensione)
  • inverter

A te non serve una configurazione da interruttore perchè anche il pcf non è in grado di dare tutta la corrente necessaria per accendere i led di retroilluminazione.
Quindi hai bisogno di una configurazione di amplificazione in corrente che riesca a pompare la poca corrente che il pcf riesce a dare.
Ci sono diverse configurazioni possibili, io generalmente uso la common emitter o la common collector. Lo chematico che postato usa la conf common collector.
Il transistor NPN ha tre piedi:

  • base che riceve il comando aperto/chiuso di poca corrente
  • collettore a 5v
  • emitter al carico (nel tuo caso led+)

Quando il tarnsistor è in saturazione (cioè quando la tensione applicata a BASE è alta) fa passare la corrente tra collettore ed emettitore. Questa corrente che poi andrà a finire nel carico equivale a la corrente di base per un fattore di amplificazione chiamato beta o afe che è tipicamente di 100 (anche meno in realtà).

Veniamo al calcolo delle resistenze con un esempio

se vuoi che il tuo carico riceva dal transistor una corrente Ic = 100 mA allora
la corrente che deve entrare in base deve essere pari a
Ib = Ic / Afe
se il tuo transistor ha un Afe pari a 100 (vedi datasheet) allora Ib = 1 mA

La resistenza da applicare alla base Rb (che nello schematico che hai postato è quella da 1k) serve per limitare la corrente Ib e si calcola così:

Rb = (5V - 0.7V) / Ib
lo 0.7V sono la tensione che cade tra collector ed emitter in fase di piena saturazione. Nel nostro esempio
Rb= 4.3 kOhm

La resistenza R1 invece è quella che serve per limitare la corrente al carico.

La differenza tra i vari BC è la massima corrente che riescono a tenere.

Il mio consiglio è quello di usare una Rb e una R1 da 1K con un bc547 o simili e non sbagli.

@uccio

  • forse ho letto male ma dal datasheet del bc327 leggo transistor PNP, non NPN...

  • Afe non c'è ma trovo hFe ed è di 160 nel modello con suffisso 25 (quello che ho io ).

  • dal datasheet del display sembra che i led richiedano 280 mA, ma le uscite dell'arduino portano 40mA, quindi dovrei "amplificare" i 40 mA al collettore fino a 280 mA ai led o sbaglio ?