Go Down

Topic: Info lcd Ks0108 (Read 11672 times) previous topic - next topic

superzaffo

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.

Code: [Select]

/ 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



Michele Menniti

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Michele Menniti

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...
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

tonid

Esatto,cercherò però di farla funzionante  :smiley-mr-green:
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.
   

Michele Menniti


Esatto,cercherò però di farla funzionante  :smiley-mr-green:
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.
Quote

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 ;)
Quote

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

ok su tutto
Quote

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à.
Quote

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
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

superzaffo

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

Michele Menniti

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....
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

tonid

Ciao a tutti  :)
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.

superzaffo

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  ]:D
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 ?

tonid

Quote
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
Quote
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?

superzaffo

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

Michele Menniti

@ sz: te stai a rincoglionì? :smiley-yell: 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 :smiley-sweat:) 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! :smiley-yell:

@ 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.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

tonid

#147
Jan 23, 2013, 11:01 pm Last Edit: Jan 23, 2013, 11:05 pm by tonid Reason: 1
Quote
@ 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.
Quote
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  :)

Michele Menniti

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 :smiley-yell:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

superzaffo

@Michele: no aspetta.. quella foto è della base originale in cui la basetta del display che tu hai, andava infilata nei pin... quella era solo la porzione del pezzo in cui c'era il 7660. Il mio è identico al tuo.. non ci sono dubbi.. sono tutti uguali.. ma per qualche arcano mistero l' alimentazione negativa e il trimmer era sulla scheda madre del dispositivo.
Certamente è un ottima occasione per imparare a saldare gli smd... su questo non ci sono dubbi...  :D
Voglio dire che ho uno stagnatore forse con la punta troppo grande... domani ti saprò dire...

Grazie per l' idea commerciale  ]:D e non solo per quella ....
Sono d'accordo sul fare un bel tutorial.. anche perchè questi display sono molto belli e ci puoi fare di tutto...
Ahh.. ho notato che via SPI è molto più veloce... anche con la cache... chissà.. magari poi proverò fare un pcb anche per SPI...

Go Up