Pages: [1] 2 3   Go Down
Author Topic: Help accensione / spegnimento LCD  (Read 1428 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buongiorno a tutti,
sono un nuovo iscritto al forum.. Ed esordisco subito con una domanda!

Sto facendo un progettino (una mangiatoia a tempo per il mio gatto), e avrei bisogno di controllare da arduino l'accensione e lo spengimento di un display LCD, vorrei poterlo spegnere del tutto, anche se poi lo devo ri inizializzare.

L'LCD è collegato come da tutorial:

http://arduino.cc/en/uploads/Tutorial/LCD_bb.png

con in  più collegati anche LED+ e LED+.

Ho provato a controllare tutti negativi col mosfet che viene dallo starter kit:

Mosfet transistors [IRF520]

In pratica ho messo tutti i negativi sul drain, collegato il source a massa e controllo il gate con un pin,
ma l'LCD non si spegne!

Qualcuno mi sa dire come posso fare in alternativa, o se ho sbagliato qualcosa?

Grazie in anticipo!

Federico
Logged

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5611
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Due cose, primo e' meglio che interrompi il positivo, secondo per fare delle rpove stacca fisicamente i cavi interessati in modo da capire se stai sbagliando son il sw o con l'hw
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Intanto grazie mille per aver risposto! Mi daresti qualche indicazione su come interrompere i positivi? Mi pare che con il mosfet bisogna collegare il source a massa per pilotarlo ... grazie ancora!
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 236
Posts: 20281
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Devi fare 2 cose: devi togliere le tensioni su tutti i pin di entrata e poi interrompere l' alimentazione positiva compreso la tensione sul pin di contrasto. Questo perché (quasi) tutti gli integrati non sopportano tensioni superiori a quella applicata sui piedini di alimentazione.

Per togliere le tensioni sui pin di entrata usa un tristate bus driver come per per esempio il 74HC244. Per portarlo in stato di alta impedenza devi dare H sui 2 pin enable.

Per interrompere l' alimentazione usa un transistor PNP o P-MOSFET.

Ciao Uwe
Logged

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5611
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

devi cambiare mosfet, ed usare un canale P

uwe dici che se interrompe solo il positivo si rompe qualcosa ? cosa ? perche' ? non ho capito il tuo discorso
stacca direttamente il 5V dal pin arduino, prima che arriva al potenziometro e basta secondo me
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 236
Posts: 20281
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao Testato
Se leggi le specifiche del HD44780 (per Esempio: http://www.sparkfun.com/datasheets/LCD/HD44780.pdf) a pagina 47 trovi:
Absolute Maximum Ratings
...
Input voltage Vt: –0.3 to VCC +0.3 V
...
Se Vcc é 0V la tensione sui Pin input del HD44780 deve essere anche 0V.
Percui non puoi togliere solo la tensione di alimentazione.

Ciao Uwe
Logged

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5611
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non sono d'accordo, indi passo ai test.
ho tenuto per 1 ora il mio display senza alimentazione ma con i pin connessi, e non si e' rotto.

Ne deduco che quello che dice il datasheet e' vero, ma solo se il tutto e' alimentato. Se manca i positivo di alimentazione non succede nulla ai pin di ingresso.
Hai altri test in merito ?
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Marche
Offline Offline
Edison Member
*
Karma: 32
Posts: 2263
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E se spegni solo la retroilluminazione del display dato che è quella che consuma di più?
Ti basterebbe solo un transistor
Logged

Dueville (VI)
Offline Offline
Edison Member
*
Karma: 28
Posts: 1722
http://cesarecacitti.wordpress.com/
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

E se spegni solo la retroilluminazione del display dato che è quella che consuma di più?
Ti basterebbe solo un transistor
STavo pensando: se è la mangatoia x un gatto deve stare sempre accesa e se visualizza sempre la stessa cosa non si bruciano i cristalli sempre utilizzati (fenomeno tv plasma della stazione che mostra gli orari delle partenze e degli arrivi?).
Secondo me è meglio spegnere tutto smiley-grin
Logged

Arduino UNO r3, Arduino MEGA 1280, adafruit motor shield, bluetooth module, enc28j60 shield.
Ultimi acquisti: un sacco di componenti elettronici, ATTEN AT 8586

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21657
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quello che dice Uwe è vero, staccando Vcc ma continuando a mandare i segnali ai pin all'interno di un chip scorre comunque corrente. Potete benissimo verificarlo collegando 5V ad un pin qualunque di un Arduino ed uno dei pin GND al negativo dell'alimentazione esterna usata: poi staccate il cavetto USB. Vedrete che i LED della schedina si accendono come se fosse sotto tensione dalla porta USB.

E' però anche vero il discorso che spesso è inutile togliere completamente l'alimentazione all'intera logica del display. Staccata la retroilluminazione, si può usare il comando lcd.NoDisplay() per eliminare la visualizzazione. In questo modo il display consuma solo gli 1/2 mA della logica, accettabile se il progetto è qualcosa alimentato da rete. Per riattivare la visualizzazione basta usare lcd.Display()
Logged


BZ (I)
Offline Offline
Brattain Member
*****
Karma: 236
Posts: 20281
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non sono d'accordo, indi passo ai test.
ho tenuto per 1 ora il mio display senza alimentazione ma con i pin connessi, e non si e' rotto.

Ne deduco che quello che dice il datasheet e' vero, ma solo se il tutto e' alimentato. Se manca i positivo di alimentazione non succede nulla ai pin di ingresso.
Hai altri test in merito ?
Il Tuo test significa solo che il TUO display ha sopportato per un ora le condizioni con le quali lo hai pilotato.
Nient altro. Da questo non puoi dedurre, ne se la sua vita viene riditto da queste condizioni o no, ne cosa succede con altri modelli o esemplari dello stesso modello di display.

Ciao Uwe
 
« Last Edit: December 08, 2012, 03:02:36 pm by uwefed » Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 236
Posts: 20281
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

STavo pensando: se è la mangatoia x un gatto deve stare sempre accesa e se visualizza sempre la stessa cosa non si bruciano i cristalli sempre utilizzati (fenomeno tv plasma della stazione che mostra gli orari delle partenze e degli arrivi?).
Secondo me è meglio spegnere tutto smiley-grin
Ciao CECE99
Il pincipio di funzionamento di un display al plasma é diverso da un LCD.

In un display al plasma hai dei elettroni che vengono spinti su un colore fosforescente (molto simile come un tubo catodico, ma a differenza la produzione della nube di elettroni e l' accelerazione avviene singolarmente per ogni pixel) I fosfori della superfice che emana colore col tempo si degradano (come un colore sbiancato) in funzione della quantitá di elettrodi che sono arrivati (= luminositá alta per molto tempo) oltre che la produzione di calore é notevole e peggiora col tempo tutto il display. Il vantaggio é che ai un immagine di singili pixel che emana colore.

I singoli pixel del LCD fanno passare luce o meno. Nei display a colore la luce arriva da una retroilluminazione. Per questo non si puó bruciare un immagine come nei tubi catodici o i display al plasma. L' usura consiste nel degrado della retroilluminazione e nei guasti di pilotaggio dei singoli pixel (dove ci sono transistori).

Ciao Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie a tutti per gli interventi! Di lavoro sviluppo software per disposistivi embedded, ma non mi sono mai occupato di HW, e si capisce dalle mie domande  smiley-kiss , ho iniziato a giocare con arduino da pochissimo, ma mi sto già divertendo parecchio smiley
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Devi fare 2 cose: devi togliere le tensioni su tutti i pin di entrata e poi interrompere l' alimentazione positiva compreso la tensione sul pin di contrasto. Questo perché (quasi) tutti gli integrati non sopportano tensioni superiori a quella applicata sui piedini di alimentazione.

Per togliere le tensioni sui pin di entrata usa un tristate bus driver come per per esempio il 74HC244. Per portarlo in stato di alta impedenza devi dare H sui 2 pin enable.

Per interrompere l' alimentazione usa un transistor PNP o P-MOSFET.

Ciao Uwe

Credo di aver capito come interrompere l'alimentazione con un P-MOSFET, appena ho un po' di tempo disegno il circuito così vediamo se ho capito davvero smiley

Per togliere le tensioni sui pin del display potrebbe essere sufficiente impostare i corrispettivi pin su arduino come input così vanno in alta imopedenza?

Mi devo documentare su cos'è e come si usa un tree state bus driver!

« Last Edit: December 08, 2012, 06:00:35 pm by vitalife » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quello che dice Uwe è vero, staccando Vcc ma continuando a mandare i segnali ai pin all'interno di un chip scorre comunque corrente. Potete benissimo verificarlo collegando 5V ad un pin qualunque di un Arduino ed uno dei pin GND al negativo dell'alimentazione esterna usata: poi staccate il cavetto USB. Vedrete che i LED della schedina si accendono come se fosse sotto tensione dalla porta USB.

E' però anche vero il discorso che spesso è inutile togliere completamente l'alimentazione all'intera logica del display. Staccata la retroilluminazione, si può usare il comando lcd.NoDisplay() per eliminare la visualizzazione. In questo modo il display consuma solo gli 1/2 mA della logica, accettabile se il progetto è qualcosa alimentato da rete. Per riattivare la visualizzazione basta usare lcd.Display()

Il principio di funzionamento della mangiatoia che ho in mente è semplicissimo: programmi un timer, lo avvii e quando scade si apre la ciotola. Mi serve perché quando lavoro il mio micetto sta a casa da solo e vorrei che mangiasse alle ore giuste, se no si "autoregola" mangiando subito tutto ! una volta avviato il timer vorrei che l'LCD si spegnesse del tutto per minimizzare i consumi, non prevedo alimentazione da rete, ma a batterie ...
Logged

Pages: [1] 2 3   Go Up
Jump to: