Offline
Newbie
Karma: 0
Posts: 40
|
 |
« on: March 10, 2012, 03:58:22 pm » |
salve a tutti ho un display multicolor, ho collegato il tutto secondo questo sito! http://www.ladyada.net/learn/lcd/charlcd.htmlil tutto funziona con quel codice, ma non riesco a farlo illuminare di un solo colore! quindi vi chiedo comandi per spegnere e accendere il display di un solo colore? vi ringrazio!
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Sr. Member
Karma: 0
Posts: 453
Arduino rocks
|
 |
« Reply #1 on: March 10, 2012, 04:03:39 pm » |
Non ho visto tutto il codice comunque prova cosi: void loop() { setBacklight(0, 0, 255); delay(5); }
PS: praticamente la funzione setBacklight imposta il colore della luce posteriore secondo il colore ottenuto dai tre valori che passi e che rappresentano il rosso,verde,blu
|
|
|
|
« Last Edit: March 10, 2012, 04:06:27 pm by ypkdani »
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 18
Posts: 4051
Arduino rocks
|
 |
« Reply #2 on: March 10, 2012, 04:05:11 pm » |
metti anche il link al tuo display
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 40
|
 |
« Reply #3 on: March 10, 2012, 04:17:52 pm » |
http://www.robot-italy.com/product_info.php?cPath=59_194&products_id=2156ecco il display! con questo sketch il display resta acceso solo di blu! ma ovviamente ci sono righe di codice che non servono, mi aiutate a togliere i pezzi che non servono? appena tolgo un solo pezzo mi segnala un errore!
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 40
|
 |
« Reply #4 on: March 10, 2012, 04:18:22 pm » |
#include <LiquidCrystal.h> #include <Wire.h> #define REDLITE 3 #define GREENLITE 5 #define BLUELITE 6 // initialize the library with the numbers of the interface pins LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // you can change the overall brightness by range 0 -> 255 int brightness = 255; void setup() { // set up the LCD's number of rows and columns: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("RGB 16x2 Display "); lcd.setCursor(0,1); lcd.print(" Multicolor LCD "); brightness = 100; } void loop() { setBacklight(0, 0, 255); delay(5); } void setBacklight(uint8_t r, uint8_t g, uint8_t b) {
b = map(b, 0, 255, 0, brightness);
b = map(b, 0, 255, 255, 0);
Serial.print(" B = "); Serial.println(b, DEC);
analogWrite(BLUELITE, b);
}
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 18
Posts: 4051
Arduino rocks
|
 |
« Reply #5 on: March 10, 2012, 04:31:28 pm » |
ma perche' vuoi eliminare codice ? ora che sai come far accendere un solo colore potrai in futuro sceglierne un altro. non e' che eliminado il codice degli altri led guadagni chissa' cosa
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 40
|
 |
« Reply #6 on: March 10, 2012, 04:36:01 pm » |
si ma ci sono righe di codice che non so a che servono! e all'esame di maturita' dovrei saperlo spiegare! un ultima domanda per cancellare la scritta e farne visualizzare un'altra?
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Sr. Member
Karma: 0
Posts: 453
Arduino rocks
|
 |
« Reply #7 on: March 10, 2012, 04:45:47 pm » |
Praticamente vai a settare il colore impostando i colori rosso, verde, blu tramite un segnale PWM per ognuno di questi, in base alla freq di questi hai un colore in uscita
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Faraday Member
Karma: 14
Posts: 2531
|
 |
« Reply #8 on: March 10, 2012, 04:48:08 pm » |
per cancellare la scritta e farne visualizzare un'altra?
lcd.clear();
|
|
|
|
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 40
|
 |
« Reply #9 on: March 10, 2012, 04:53:38 pm » |
ho gia' provato se metto quel comando seguito o preceduto o anche senza il delay mi compare direttamente la seconda scritta e mi ignora la prima scritta!
|
|
|
|
|
Logged
|
|
|
|
|
|
|
Genova
Offline
Faraday Member
Karma: 14
Posts: 2531
|
 |
« Reply #11 on: March 10, 2012, 05:09:49 pm » |
a parte che non dici che display hai immagino un 2x16, comunque devi sepre specificare dove si trova il cursore
ciclo for i 1-16 { lcd.setCursor(0,i); lcd.print(" "); }
|
|
|
|
« Last Edit: March 10, 2012, 05:13:54 pm by pablos »
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 40
|
 |
« Reply #12 on: March 11, 2012, 05:26:29 am » |
ho messo il link dove ho comprato il mio display, e da li puoi vedere di che display si tratta, dovevi solo rileggere meglio  comunque ancora non sono riuscito a cancellare il display e scrivere una seconda frase.. uff
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 76
Posts: 7539
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #13 on: March 11, 2012, 05:44:50 am » |
Clears the LCD screen and positions the cursor in the upper-left corner. quindi per cancellare tutte e due le righe devi spostare il cursore prima su una poi sull'altra.
Ma assolutamente no, lcd.clear() cancella tutto il display indipendentemente da dove si trova il cursore e lo riposiziona nella prima colonna della prima riga. Infatti la libreria liquidcrystal codifica la clear() in questo modo: void vLcd::clear() { command(LCD_CLEARDISPLAY); // clear display, set cursor position to zero delayMicroseconds(2000); // this command takes a long time! }
Ove LCD_CLEARDISPLAY è "#define LCD_CLEARDISPLAY 0x01", ovvero il comando da inviare ad un LCD per l'erase totale come verificabile su un qualunque data sheet di display alfanumerici con controller Hitachi HD44780 compatibile.
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 76
Posts: 7539
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #14 on: March 11, 2012, 05:47:51 am » |
il tutto funziona con quel codice, ma non riesco a farlo illuminare di un solo colore! quindi vi chiedo comandi per spegnere e accendere il display di un solo colore? vi ringrazio!
Il tuo display ha tre serie di led per la retroilluminazione, una rossa, una verde, una blu, infatti ha 18 pin invece dei classici 16. Per cambiare colore devi alimentare tutte e tre le serie di led o tramite resistenze di limitazione esterne, colore fisso, oppure tramite tre segnali pwm, e indispensabile mos come driver, da Arduino, in questo modo puoi variarne il colore a piacere.
|
|
|
|
|
Logged
|
|
|
|
|
|