Info lcd Ks0108

Sorry Michele, hai ragione sui condensatori ho fatto degli errori di battitura... :astonished:
Magari se riesci posta una foto di quello che hai saldato.

superzaffo:
Sorry Michele, hai ragione sui condensatori ho fatto degli errori di battitura... :astonished:
Magari se riesci posta una foto di quello che hai saldato.

ok, appena possibile, comunque sono del tipo della foto di tecno, polarizzati al tantalio, bisogna fare attenzione alla polarità, seguendo il simbolo "+" messo su ognuno di essi.

Dalle nostre parti, statisticamente, quindi con un certo ma comunque minimo margine d'errore, quando qualcuno non si fa vivo per un periodo superiore alle 48 ore, assume lo status di latitante, non faccio nomi, c'è bisogno?

Sorry.. ma ero ko con la febbre....
Ho visto il tutto, mi sto procurando i componenti passivi e così inizio provare anche io... ma ti volevo chiedere.. il transistor secondo te a cosa serve ?
Perchè su quello adafruit non c'è, al suo posto hanno fatto un ponte con una resistenza 0.

superzaffo:
Sorry.. ma ero ko con la febbre....
Ho visto il tutto, mi sto procurando i componenti passivi e così inizio provare anche io... ma ti volevo chiedere.. il transistor secondo te a cosa serve ?
Perchè su quello adafruit non c'è, al suo posto hanno fatto un ponte con una resistenza 0.

ma guarda che mi riferivo a tonid, non a te!!! :sweat_smile:, ti faccio notare che non interviene più sul Topic dal 10 gennaio, eppure in giro c'è :wink:
Il transistor è un amplificatore di corrente, il contrasto ha il suo assorbimento, il circuito del "nostro" display eroga una tensione al limite della regolazione, e sotto carico tale tensione scende, se elimini il transistor non ce la fa. Evidentemente Adafruit è riuscita a tirare fuori oltre 4V e quindi anche la diminuzione di tensione per il carico garantisce quanto serve per la corretta regolazione. Bisognerebbe studiare bene, con qualche esperimento sulla versione DIP del 7660 (non certo sul display), per riuscire ad ottenere una tensione maggiore ed allora lo puoi anche bypassare. Con i valori che ho usato io sono arrivato ad una condizione ottimale, ma il transistor secondo me serve.

Ok.. allora la cosa mi torna un po'...
Perchè, se ricordi, le prove che ho fatto con l' i2c erano che con il display adafruit i problemi di visualizzazione non mi dava gli errori a video che invece questo display mi da. Tonid diceva di pulire i contatti, ma secondo me è dovuta a una bassa tensione o corrente.
Io ho ancora il circuito di test con i DIP se mi puoi dire una sigla di un transistor equivalente, penso che si possa fare la prova anche con il 7660 esterno
Cosa dici ?
Per tonid, effettivamente è un po' che su questo topic non scrive... probabilmente ha qualche altro problema.. penso che si farà sentire a breve.

Le linee che ho visto nelle foto NON possono dipendere dalla tensione del contrasto e nemmeno da quella della retroilluminazione; invece se NON hai messo una R da 5,6-6,2ohm (leggi il mio riepilogo) tra l'alimentazione e l'anodo della backlight, l'assorbimento del display sarebbe notevole provocando una caduta di tensione generale che potrebbe anche giustificare il problema. Prova a misurare l'alimentazione del display mentre vedi quelle linee ma prova anche qualche altro esempio, che non sia un problema software.

Puoi usare un qualsiasi transistor plastico TO92 PNP, tipo BC557 o BC327 o BC328 o similari. Quando lo trovi mi dai la sigla e ti spiego come collegarlo

@MIchele
Ci sono,ci sono..........ho da un paio di mesi dei problemi di salute in famiglia che mi portano, purtroppo, molto lontano con la testa ma ci sono.
Ho montato anche io il tutto nella modalità parallela e caricato lo scketch big demo e tutto funziona perfettamente.

Per tale ragione, se Tonid ritiene di voler ancora realizzare il PCB per l'MC23017 a questo punto io sarei d'accordo perché potrebbe aggiungere il classico circuito di un 7805 + 4C, con un bel jumper (anche del tipo a saldare) per commutare o i 5V di Arduino o i 5V del regolatore. IL PCB si può realizzare tranquillamente con componenti DIP, prevedendo che essi siano orientati verso il basso ed il PCB SOTTO il Display e completamente nascosto da esso, non come ho visto nelle foto dove l'MCP23017 lo hanno fatto sporgere davanti al connettore; in termini meccanici quei 2-3cm possono diventare molto importanti.

Per la realizzazione del pcb sono sempre a disposizione ,l'unica cosa è che io ho solo a disposizione i componenti in smd,ero convinto di aver ordinato anche in dip ma probabilmente stavo acchiappando le farfalle, e quindi la scheda mi viene comodo farla in smd ma se voi avete solo le versioni in dip vi mando io i chip in smd insieme al pcb ed il problema è risolto.
Non è un problema inserire anche un 7805,anzi, potrebbe sicuramente tornare utile......
Per ora,fino a che non faccio il pcb,non posso provare con l'I2C ma credo che riuscirò a farlo entro la settimana che viene.
@sz
Passata la febbre?

Una cosa che ho dovuto modificare,me ne stavo dimenticando,riguarda i collegamenti al display ed in particolare i pin facenti capo ai chip select ho dovuto invertire i fili ...il pin A0 di arduino l'ho mandato al pin 15 del display ed A1 l'ho mandato al pin16 mentre nello schema "B" faceva al contrario.....non ho approfonditola cosa,magari si può modificare via sw...
Ovviamente non invertendo i fili il display funzionava ma i quadranti del display non risultavano corretti.
Per il contrasto invece,ho fatto anche io due misure,con il display acceso arrivo a misurare circa -4v al pin 18 (Vee) ed ottengo un buon contrasto con il trimmer(10K) impostato su -3,5volt ( pin 3 dell'lcd)....come condensatori ho messo 15uF al tantalio,non ho valori più piccoli.
L'assorbimento da parte del display,con una R di 12 ohm per la retro illuminazione, mi risulta di circa 100mA.
Con R da 6 ohm arriva invece a circa 140mA.....devo dire che con la R da 12 ohm si ha comunque un'ottima retro.

@tonid: si si passata.. ma ora sono ancora rincoglionito.. Più passano gli anni e più queste influenze si sentono.. ti dirò che non ne ho mai sofferto.. e da quando ho smesso di fumare mi prendo sempre un casino ai bronchi ogni anno.. vabbè..
Si hai ragione con i collegamenti, adesso non ricordo esattamente se ho seguito lo schema di nick o quello B a cui fai riferimento tu.. comunque avevo notato anche io lo stesso tuo problema.
Per il pcb.. vedi te, magari sarà l' occasione di fare un po' di esperienza per me con gli SMD.

Per il pcb.. vedi te, magari sarà l' occasione di fare un po' di esperienza per me con gli SMD.

Vabbè,vediamo....quando avrò tutto pronto,se non te la senti,te li monto io senza problemi :slight_smile:

Eh dai che siamo giovanissimi :grin:
Comunque buona ripresa :wink:

@ tonid, scusa, non potevo sapere, sappi che ti capisco fin troppo....

In ordine sparso: cos'è questa storia di A0 e A1 invertiti? Io avendo lanciato solo il demo non mi sono accorto di nulla, ho badato solo al fatto che funzionasse, però ora ho ricontrollato ed io i collegamenti li ho fatti giusti, però io ho seguito il manuale in dotazione alla libreria, molto ben fatto :wink: Praticamente questa libreria ha un numero di comandi pari a quelli di Arduino, e quando imparo ad usarla?? :fearful:
Riguardo la retro il data-sheet parla di circa 120mA come valore standard, quindi ho calcolato la R per avere quelle specifiche, ovvio che se si aumenta la R si diminuscono i consumi e la luminosità, si tratta di trovare una combinazione adeguata alle proprie esigenze, l'importante è metterla!
Invece per il contrasto, i conti tornano ancora, il fatto che tu abbia usato C da 15µF ti ha dato ancora qualcosa in più.
Per quanto mi riguarda, avevo già detto che io ho ordinato contestualmente 7660 e MC23017 sia in DIP che in SMD, ormai faccio così per ogni IC che compro, se esiste nei due formati; quindi a me non serve altro che i due file di Eagle.

Ora parliamo di battaglia: io sono propenso a fare i test I2C in PDIP, visto che dovremmo avere lo schema di riferimento di Nick, poi magari si tira fuori lo schema elettrico, almeno sappiamo che è corretto, infine si fa il PCB. Stavo pensando all'idea di fare una "stecca" larga quanto il connettore e profonda quando basta per contenere i componenti che servono, così dal lato superiore (quello senza componenti e rivolto verso il retro del display) si mette solo un bel connettore da 20 poli per innestare la scheda al display e dal lato inferiore si mettono i componenti e sulla fiancata opposta un altro piccolo connettore con i collegamenti per Arduino; se stessimo facendo un progetto sullo schedino ci metterei direttamente un 328P in stand-alone con bootloader e mi porterei i pin seriali fuori per la programmazione, ma così come siamo non avrebbe alcun significato, quindi tanto vale realizzare un GLCD in I2C pronto all'uso....

Bene.. io sono già con la con la configurazione i2c, appena ci siete anche voi fatemi sapere.
@Michele: Adesso vedo che transistor ho in casa e poi ti faccio sapere... Il fatto è che non mi spiego perchè con quello adafruit il problema linee non me lo da invece con questo si.. Non è un problema software, ho controllato la libreria più volte. Comunque appena arriverete anche voi con la conf i2c vedremo assieme...
@Tonid: Se vuoi passare solo i file eagle, anche per me vanno bene... E auguri per i problemi che hai in casa...

ma hai provato ad usare più sketch? fa la stessa cosa con tutti? se invece di uno sketch mandi un clear per svuotare lo schermo e poi fermi tutto, le linee si ricreano?

Per lo schema I2C ormai ci vorrà giovedì prossimo circa, ma intanto vorrei sapere qual'è lo sketch che posso usare come prova, quell'immenso listato di Nick? :fearful: hai da allegare qui direttamente uno sketch?

Prova questo.. comunque è la demo della libreria i2c_graphical_lcd_display.
Si ho provato a cambiare lo sketch... ma penso che il problema sia hardware.

/ Demo of KS0108B graphics LCD screen connected to MCP23017 16-port I/O expander

// Author: Nick Gammon
// Date: 14 February 2011


#include <Wire.h>
#include <SPI.h>
#include <I2C_graphical_LCD_display.h>

I2C_graphical_LCD_display lcd;

// example bitmap
byte picture [] PROGMEM = {
 0x1C, 0x22, 0x49, 0xA1, 0xA1, 0x49, 0x22, 0x1C,  // face  
 0x10, 0x08, 0x04, 0x62, 0x62, 0x04, 0x08, 0x10,  // star destroyer
 0x4C, 0x52, 0x4C, 0x40, 0x5F, 0x44, 0x4A, 0x51,  // OK logo
};


void setup () 
{
  lcd.begin ();  

  // draw all available letters
  for (int i = ' '; i <= 0x7f; i++)
    lcd.letter (i);

  // black box  
  lcd.clear (6, 40, 30, 63, 0xFF);

  // draw text in inverse
  lcd.gotoxy (40, 40);
  lcd.string ("Nick Gammon.", true);

  // bit blit in a picture
  lcd.gotoxy (40, 56);
  lcd.blit (picture, sizeof picture);
  
  // draw a framed rectangle
  lcd.frameRect (40, 49, 60, 53, 1, 1);

  // draw a white diagonal line
  lcd.line (6, 40, 30, 63, 0);
    
}  // end of setup

void loop () 
{}  // nothing to see here, move along

ok grazie

Riguardo l'idea "PCB", pensavo proprio a qualcosa del genere solo che potremmo integrare anche l'alimentazione commutabile con un jumper e quant'altro si diceva...

Esatto,cercherò però di farla funzionante :grin:
Scherzi a parte farei diverso il pin out,ovvero lo metterei sempre con strip maschio ma messo in modo da poterlo inserire nella breadboard il che rende più semplice i collegamenti per fare delle prove e gli metterei le due R di pull-up sulle linee SDA,SCL.
Quindi ricapitolando:
-7805 per alimentazione esterna,quì sinceramente non metterei jumper ma due/tre diodi e risolviamo la cosa;
-trimmer per il contrasto;
-Mcp23017;
-R di pull-up;
Poi non ricordo (devo guardare)se la libreria gestisce anche la retroilluminazione perchè si potrebbe anche aggiungere un transistor pnp/npn per controllarla.
Nel pomeriggio avrò un po di tempo ed inizierei con il disegno,se ho dimenticato qualcosa ditemelo.

tonid:
Esatto,cercherò però di farla funzionante :grin:
Scherzi a parte farei diverso il pin out,ovvero lo metterei sempre con strip maschio ma messo in modo da poterlo inserire nella breadboard il che rende più semplice i collegamenti per fare delle prove e gli metterei le due R di pull-up sulle linee SDA,SCL.

certamente, quello era solo un esempio, l'importante è prevedere lo strip femmina in modo da rendere staccabile il modulo I2C dal display.

Quindi ricapitolando:
-7805 per alimentazione esterna,quì sinceramente non metterei jumper ma due/tre diodi e risolviamo la cosa;

non puoi, a mio avviso, sul 7805 puoi alzare la tensione per poi compensare la perdita del diodo, ma sui 5V provenienti da Arduino come fai? un jumper fa sì che tu possa devidere se alimentare il display tramite i 5V che porti da Arduino o quelli del 7805 interno, puoi mettere anche un micro-deviatore; io preferirei il jumper a saldare, così nel caso di uno stand-alone, potresti mettere in corto tutti e tre i pad e alimentare anche il micro con l'alimentazione del display :wink:

-trimmer per il contrasto;
-Mcp23017;
-R di pull-up;

ok su tutto

Poi non ricordo (devo guardare)se la libreria gestisce anche la retroilluminazione perchè si potrebbe anche aggiungere un transistor pnp/npn per controllarla.

l'importante è prevedere la limitazione di corrente con una 6,2ohm (corrente standard prevista); il transistor lo metterei e mi porterei la base (tramite R opportuna) su un pin per il controllo PWM, a prescindere dalla libreria, si può gestire no? anche in questo caso prevederei un jumper a saldare che unisca i pad del C e dell'E del TR in modo da mandare direttamente i 5V alla R escludendo di fatto il TR e la R di base che a questo punto si potrebbero non montare, potendo così scegliere facilmente tra le due modalità.

Nel pomeriggio avrò un po di tempo ed inizierei con il disegno,se ho dimenticato qualcosa ditemelo.

mi pare ci sia tutto, buon lavoro XD

@Michele: Ho per le mani dei BC557, se puoi mandami una bozza di schema che lo provo.
grazie