Pages: 1 ... 9 10 [11] 12   Go Down
Author Topic: Info lcd Ks0108  (Read 8775 times)
0 Members and 1 Guest are viewing this topic.
Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora...partendo dal presupposto che a programmi non sono bravo,mi sembra di aver trovato una possibile strada...
Partendo dallo scketch di esempio della libreria
Code:
#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

aggiungo nel setup()
Code:

  Wire.requestFrom(0x20,1);
  byte a=Wire.read();     //memorizzo il byte in a
  Wire.beginTransmission (0x20);  // indirizzo del port expander
  Wire.write (0x12);   // scrivo nel registro 0x12 degli I/O port "A"
  Wire.write (a|0x01);   // faccio un or di ciò che riceve con l'accensione della retro che corrisponde al bit0 del port "A"
  Wire.endTransmission ();

Così si accende la retroilluminazione ma non credo sia una soluzione......Qualche idea?
« Last Edit: January 23, 2013, 05:53:07 pm by tonid » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 503
Posts: 12307
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Diciamo che si avrebbe bisogno di un comando per poter gestire a piacimento un valore pwm, in modo da poter gestire non solo l'accensione e lo spegnimento ma anche l'intensita luminosa; purtroppo io non sono in grado, aspettiamo un programmatore smiley-sweat
Logged

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

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Diciamo che si avrebbe bisogno di un comando per poter gestire a piacimento un valore pwm, in modo da poter gestire non solo l'accensione e lo spegnimento ma anche l'intensita luminosa; purtroppo io non sono in grado, aspettiamo un programmatore
E siamo in due  smiley-cry
Logged

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pensando al pwm,non possiamo gestirlo direttamente in I2C con il port expander.
Però si potrebbe,sfruttando tutti e due i pin rimasti liberi al 23017, usare un ATtiny x5 che controlla lo stato dei pin del 23017 ed in funzione di quelli fargli generare 4 valori diversi di pwm.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 503
Posts: 12307
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ma no, così ci incasiniamo inutilmente, allora va benissimo il solo riuscire ad accendere o spegnere il display.
Logged

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

Offline Offline
God Member
*****
Karma: 2
Posts: 543
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Tonid: In effetti quella è anche un po' come lavora la libreria... infatti sto lavorando su di essa per poter inserire due comandi _on e _off.
Oggi vedo di iniziare a fare qualche prova su un led, dopo che ho saldato i componenti smd sul display.

Non penso che l' expander possa gestire nei pin il pwm (sarebbe bello).
Oppure si prende un altro pin dall' arduino per gestire in pwm i led della retroilluminazione... (ho detto un cavolata ? )  smiley-eek
Logged

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Oppure si prende un altro pin dall' arduino per gestire in pwm i led della retroilluminazione...
No.non è una cavolata ma una possibile soluzione.....
Io pensavo ad un ATtinyx5(25,45,85) pechè si può usare per generare un pwm con la funzione analogWrite() facendogli semplicemente controllare i due pin rimasti liberi sul MCP23017 che sono i bit0 e bit1 del port A....Aggiungi si un chip da 1 euro ma mantieni solo il bus I2C senza usare altri pin del 328.
Però si può vedere dopo questa cosa, inizierei aggiungendo il controllo della retro via sw e poi in un secondo momento,visto che ho dei ATiny85 ,proverò a vedere se torna utile un pwm sulla retro.........
Si potrebbe anche creare un pwm in base al valore letto da un sensore di luminosità e fare in modo che la retro si comporti di conseguenza.
Comunque sono idee che si possono vedere dopo smiley

Appena hai novità fammi un colpo smiley-wink
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6974
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non penso che l' expander possa gestire nei pin il pwm (sarebbe bello).

Ho letto il datasheet dell'expander e non c'è la gestione del PWM.  smiley-sweat
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 503
Posts: 12307
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

suggerisco di non incasinarci vita e PCB con questa cosa della retroilluminazione. Al più possiamo integrare due diverse possibilità, ma senza altro hardware:
1 - tramite I2C gestiamo ON/OFF, pilotando un NPN con luminosità stabilita in modo fisso dalla R di limitazione sul collettore.
2 - oltre a 5V-GND e i due pin I2C, prevediamo un pin (switchabile col solito jumper, in modo da decidere con cosa pilotare l'NPN) che vada direttamente ad Arduino, e quindi ad un pin pwm qualsiasi, pilotandolo poi via software.

Se cominciamo a mettere LDR e addirittura un micro scadiamo pesantemente nel tamarro, poi fate come volete, ma io mi dissocio da questa cosa..... nel tutorial la aggiungerò come "Appendice T(amarra)" descrivendola in modo molto colorito, quindi vedete di non provocarmi smiley-twist
Logged

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

Offline Offline
God Member
*****
Karma: 2
Posts: 543
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ah AH ah... Michele... mi piace l' appendice "Tamarra"  smiley-grin
Allora.. io ho saldato i componenti al pcb, tutto bene a parte che il contrasto è basso rispetto a come pilotavo dall'esterno.
Io ho un trimmer da 500ohm...
Inoltre mi rimangono ancora quelle righe... ma io, a differenza di tonid, sono su breadboard.
Logged

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Io ho un trimmer da 500ohm..
Mettigli un valore più alto,almeno 5K,meglio 10K......con 500ohm lasci scorrere troppa corrente e abbassi di conseguenza il livello di tensione negativa generata dal 7660.

@Michele
Sono solo idee,realizzabili ,ma idee  smiley
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 503
Posts: 12307
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Chiarisco la questione trimmer: come detto il circuito eroga circa 4V, praticamente siamo al limite della gestione del contrasto, infatti bisognerebbe studiare il ds del 76600 per vedere se si riesce ad alzare il livello di tensione, sicuramente ho notato che i due condensatori polarizzati più sono alti di valore e meglio fanno; succede che il trimmer da 10k lavora praticamente al limite, mentre quello da 1k si comporta meglio e l'assorbimento non è comunque significativo per l'IC. MA 500 ohm sono davvero pochi.

Riguardo le idee niente da dire, le idee sono idee, ma ci sono idee ed idee, ed ognuno ha le proprie idee smiley-mr-green
Logged

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

Offline Offline
God Member
*****
Karma: 2
Posts: 543
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora, cambiato il trimmer con uno da 1k e i condensatori con valori 4.7mF.
 Edit: Scusate.. non da 4.7 ma da 47.. errore di battitura.
 
Effetivamente va molto meglio.. ma continuo avere quelle righe strane che tonid non ha...
Appena ci passa il file eagle, provo anche io con il pcb.
« Last Edit: January 24, 2013, 11:09:05 am by superzaffo » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 503
Posts: 12307
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ma hai usato due condensatori da 47µF?? mi sembrano un tantino esagerati, considerando che sui display il massimo valore visto finora è 10µF, comunque se non ti danno noie....
Quanto misuri sul pin V- del display ora?
Non sono per niente convinto che queste strisce dipendano dalla breadboard, semmai da un errore, a quest'ora dopo tanto tempo e tane prove, a forza di muovere tutto qualcosa sarebbe cambiato ogni tanto.
Logged

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

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho guardato attentamente il mio display e c'è un piccolo errore sul numero 5,ho controllato nei font ma li è giusto....
Ho provato poi a stampare quà e là delle stringhe di testo e l'errore non si presenta.
@sz
prova anche tu a fare una cosa del genere e vedi se le righe ti spariscono.
Logged

Pages: 1 ... 9 10 [11] 12   Go Up
Jump to: