Pages: [1]   Go Down
Author Topic: Libreria New LiquidCrystal_V1.2.1 - CONTRAST_PIN, BACKLIGHT_PIN  (Read 412 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve,

stavo leggendo la documentazione della nuova libreria LiquidCrystal v. 1.2.1 https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home che vorrei utilizzare per pilotare un display 4x20 (utilizzando per i dati, solo 4 bit).
In base ai benchmark dovrebbe essere molto più veloce della libreria standard di Arduino.
Quello che non mi è chiaro, leggendo gli esempi, è l'utilizzo dei pin CONTRAST_PIN e BACKLIGHT_PIN.
Il codice di seguito riportato è estratto dall'esempio previsto per il collegamento a 4 bit.
Non mi è chiaro come e dove devono essere collegati i due PIN, in quanto fino ad ora ero abituato a regolare il contrasto con il solito potenziometro da 10K. (sulla documentazione trovo sempre lo schema standard)
Qualcuno magari l'ha già utilizzata e sa come fare?

Grazie a tutti
Enzo

Code:
#define   CONTRAST_PIN   9
#define   BACKLIGHT_PIN  7
#define   CONTRAST       110
LiquidCrystal lcd(12, 11, 5, 4, 3, 2, BACKLIGH_PIN, POSITIVE );
Logged

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

Se posti tutto l'esempio è più chiaro.

Code:
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define   CONTRAST_PIN   9
#define   BACKLIGHT_PIN  7
#define   CONTRAST       125

void setup()
{
  // Switch on the backlight and LCD contrast levels
  pinMode(CONTRAST_PIN, OUTPUT);
  pinMode(BACKLIGHT_PIN, OUTPUT);

  digitalWrite(BACKLIGHT_PIN, HIGH);
  analogWrite (CONTRAST_PIN, CONTRAST);
    
  lcd.begin(16,2);               // initialize the lcd

  lcd.home ();                   // go home
  lcd.print("Hello, ARDUINO ");  
  lcd.setCursor ( 0, 1 );        // go to the next line
  lcd.print (" WORLD!");      
}

void loop()
{

}

Invece di usare un trimmer viene inviato un segnale PVM che lo simula.

I pin 7 e 9 li colleghi ai relativi ingressi del pannello, con apposita resistenza. il 9 al contrasto e il 7 alla backlight.
« Last Edit: December 11, 2012, 11:26:50 am by PaoloP » Logged

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

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

Forse il pin della retroilluminazione va usato interponendo un transistor. Se è un LCD tradizionale, la retroilluminazione consuma molto più dei 40 mA erogabili da un pin.
Logged


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

....
I pin 7 e 9 li colleghi ai relativi ingressi del pannello, con apposita resistenza. il 9 al contrasto e il 7 alla backlight.

Grazie per la risposta.
Ne approfitto per chiedere altre precisazioni.

pin 9 - CONTRAST_PIN: su Arduino Uno questo pin è PVM e quindi cambiando il valore della costante CONTRAST dovrei ottenere l'effetto analogo a quello del potenziometro. Quando faccio i collegamenti, in pratica, elimino il potenziometro ed al suo posto devo mettere una resistenza: di che valore? 1K può andare bene?

pin 7 -BACKLIGHT_PIN: su Arduino Uno questo pin non è PVM, e quindi è sempre acceso o sempre spento. Considerando che non devo mai spegnere la luce di sfondo quale delle due strade mi conviene scegliere:
         1- assegno il BACKLIGHT_PIN ad un pin che poi non collegherò mai a nulla ed alimento il display con una tensione di 5V stabilizzata con un 7805;
         2- assegno il BACKLIGHT_PIN ad un pin che polarizzando un transistor manda la tensione di 5V stabilizzata con un 7805.
Il problema è che il display è davvero grande ed è di tipo tradizionale. Come ha fatto notare leo72, consuma sicuramente più di 40 mA.

Grazie ancora
Enzo
Logged

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

pin 9 - CONTRAST_PIN: su Arduino Uno questo pin è PVM e quindi cambiando il valore della costante CONTRAST dovrei ottenere l'effetto analogo a quello del potenziometro. Quando faccio i collegamenti, in pratica, elimino il potenziometro ed al suo posto devo mettere una resistenza: di che valore? 1K può andare bene?
Non è un po' alta come resistenza?
Secondo me potresti provare anche con qualcosa di più basso, tipo 100 ohm.

Quote
pin 7 -BACKLIGHT_PIN: su Arduino Uno questo pin non è PVM, e quindi è sempre acceso o sempre spento. Considerando che non devo mai spegnere la luce di sfondo quale delle due strade mi conviene scegliere:
         1- assegno il BACKLIGHT_PIN ad un pin che poi non collegherò mai a nulla ed alimento il display con una tensione di 5V stabilizzata con un 7805;
         2- assegno il BACKLIGHT_PIN ad un pin che polarizzando un transistor manda la tensione di 5V stabilizzata con un 7805.
Il problema è che il display è davvero grande ed è di tipo tradizionale. Come ha fatto notare leo72, consuma sicuramente più di 40 mA.

Grazie ancora
Enzo
Io opterei per la seconda, ossia metti un transistor. Magari non la userai mai, ma se ti servisse la retroilluminazione dovresti rifare il circuito. Meglio collegarla e non usarla. Se il display è di tipo classico, può consumare anche 200 mA per cui inserisci il transistor, non collegarlo assolutamente direttamente al pin dell'Arduino, bruceresti quell'uscita.
Logged


Pages: [1]   Go Up
Jump to: