Info lcd Ks0108

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

io però non ho tra le mani il display :~ e il mio dubbio è che la foto che hai postato tu tempo fa non c'entra nulla con la disposizione che ho io. Ciò che ho notato e di cui sono ragionevolmente certo che che il pin 2 del mio BC857 (emettitore) andava dritto sul pin V- (o come si chiama, insomma quello che deve erogare -4V); di conseguenza il collettore va sui -4V e la base è l'ultima restante connessione. Prova a controllare il tuo PCB com'è, per verificarne le connessioni, che sono standard....

Ciao a tutti :slight_smile:
Oggi pomeriggio sono riuscito a disegnare,stampare ed incidere il pcb.....ho saldato i componenti,collegato arduino e caricato lo scketch di esempio della libreria I2C e tutto funziona a meraviglia.
Non vedo le righe segnalate da superzaffo.
Per ora ho fatto solo una schedina per poter fare due test vista l'incognita delle righe che si verificavano e visto che avendo solo smd non potevo montare su breadbord per provare direttamente.
@Michele
sulla scheda ho messo un led collegato ad un pin libero del 23017 da utilizzare per fare due test di simulazione sulla retro illuminazione così da non dover usare pin del 328......abbiamo già l'I2C,2 pin liberi del port expander quindi ho pensato di usarne 1.
@sz
Per il transistor confermo quello detto da Michele se non ti è molto chiaro fatti sentire.

Ok.. mi fa molto piacere quello che dici.. Allora probabilmente il problema delle righe è dovuto all'alimentazione... a me su breadboard da quelle righe che hai visto sulla foto...
Si, non ho molto ben capito di quale foto si riferiva Michele ]:smiley:
Quindi tu hai montato il 7660 sul display o sul PCB ? Hai messo anche quindi il transistor per amplificare l' alimentazione negativa...
Mi giri il file eagle ?

Ok.. mi fa molto piacere quello che dici.. Allora probabilmente il problema delle righe è dovuto all'alimentazione... a me su breadboard da quelle righe che hai visto sulla foto...

Si,credo anche io possa dipendere dall'alimentazione

Quindi tu hai montato il 7660 sul display o sul PCB ? Hai messo anche quindi il transistor per amplificare l' alimentazione negativa...

Io ho messo tutto sul display compreso il transistor,sulla scheda ho messo solo trimmer ,23017 ed il famoso led oltre alle R e C che servivano.
Tu non riesci a saldare tutto ciò che serve per l'alimentazione negativa sul display?

Ti dirò che è la prima volta che mi cimento con gli smd... quindi ci provo... sperando che il mio vecchio stagnatore vada bene ]:smiley:
Se hai qualche consiglio a proposito.. ben venga :slight_smile:

@ sz: te stai a rincoglionì? :stuck_out_tongue_closed_eyes: questa foto che tu chiami del circuito originale non c'entra nulla con il PCB del display che ho io ed anche i valori sono differenti; puoi postare una foto del retro del display che stai usando per vedere se è identico al mio? Comunque sia dovrai imparare a saldare i componenti smd sul display, penso sia inutile replicare ora il circuito con i componenti DIP, e sarebbe davvero inutile realizzare un PCB esteso per mettere questi 4-5 componenti quando lì hai tutto bello pronto; comunque anche il PCB di tonid sarà in smd, quindi o ti eserciti o li dividi tra me e tonid (visto ne ne hai una montagna :sweat_smile:) e te li saldiamo noi..., o li mandi tutti a me se tonid non ce la fa, basta che mi lasci il tempo necessario; però per me è l'occasione buiona per attrezzarsi ed imparare!

EDIT: che intendi per vecchio stagnatore? mica gli vuoi sparare qualche 30-40W, che il vetro del display ti fa le bolle tipo Murano! :stuck_out_tongue_closed_eyes:

@ tonid: ottimo; eccellente l'idea di gestire il led per i test sul backlight, ma lì dovrai prevedere un NPN, non credo che il P.E. sia in grado di erogare tutta quella corrente, anche se non ho controllato il ds; e poi non ho capito come lo gestirai via I2C, bisogna mettere mano alla lib?? Quando finisci il PCB, se vuoi gli do' un'occhiata anch'io con Eagle.

@ tonid: ottimo; eccellente l'idea di gestire il led per i test sul backlight, ma lì dovrai prevedere un NPN, non credo che il P.E. sia in grado di erogare tutta quella corrente, anche se non ho controllato il ds; e poi non ho capito come lo gestirai via I2C, bisogna mettere mano alla lib??

Si,ci metterò un NPN mentre per la gestione ora vediamo anche con sz.....volevo provare senza modificare la lib e vedere se disturbava.

comunque anche il PCB di tonid sarà in smd, quindi o ti eserciti o li dividi tra me e tonid (visto ne ne hai una montagna ) e te li saldiamo noi..., o li mandi tutti a me se tonid non ce la fa, basta che mi lasci il tempo necessario; però per me è l'occasione buiona per attrezzarsi ed imparare!

Ci sono senza problemi e la penso come te :slight_smile:

ok, allora facci sapere come va, comunque sta venendo fuori un bel lavoro, merita un bel Tutorial con tanto di foto ed allegati, che poi il nostro sz potrà usare a scopi commerciali per vendere i suoi display, mica vorrà tappezzarsi la casa :stuck_out_tongue_closed_eyes: