Go Down

Topic: LCD Dispaly, jai du rater un épisode (Read 1 time) previous topic - next topic

KiliYaBB

Apr 30, 2009, 10:22 pm Last Edit: May 01, 2009, 10:38 am by KiliYaBB Reason: 1
Bonjour  a tous,

Voila mon problème (a moins que ce soit normal  :-/), mon afficheur lcd fonctionne bien, j'écris ce que je veau dessus MAIS il ne fonctionne que si lusb est branché !!! c'est normal ca ?

Cest a dire que si n'y a que lalim externe, l'afficheur n'affiche rien, et dès que je rajoute la prise usb, ca marche...

Cest quand même étrange ca non ?

Luj06

Cela peut signifier que ton alim ne peut pas lui fournir assez de courant. C'est étonnant car généralement c'est l'inverse. Qu'est ce que tu utilises comme alim externe ? Quelle est la consommation de ton LCD ?

Bidouille

Bonjour,

C'est pas le backlight qui "tire" un peu trop ( pas de résistance en série ) ???

KiliYaBB

#3
May 01, 2009, 10:44 am Last Edit: May 01, 2009, 11:56 am by KiliYaBB Reason: 1
Tout d'abord merci pour l'attention que vous portez à mon problème.

Ma configuration :
- Arduino Duemilanove
- Ethernet Shield officielle (pas de pb, fonctionne bien)
- lcd : http://www.sure-electronics.net/mcu,display/DE-LM005.pdf
- alimentation : http://lextronic.fr/produit.php?id=2912

Quelque soit la tension d'alim externe (7,9,12 volts) le problème est le même
Avec retroeclairage ou non, le problème est le même

Donc le programme est chargé sur larduino

Si je branche uniquement lalim externe, le programme ne se lance pas, ca semble bugger

Dès que je rajoute la prise USB (sans qu'aucun programme ne soit lancer sur le pc), ca "debug" le programme et le programme se réalise !!!

Du coup je me suis dit peut être que dans le programme ou dans les librairies il est fait appel au serial monitor mais après vérification, a priori il n'est pas fait appel au moniteur. Donc je ne comprends pas pourquoi il faut que lusb soit branché pour que le programme démarre.


Edit : J'ai enlevé lethernet shield, donc juste larduino et le lcd, avec lexemple lcd dispaly, le problème est le même, donc ca ne vient pas non plus de lethernet shield. >:( >:( >:( Aussi je me dis que le pb vient peut être du lcd


pour info voici mon prog :

#include <LiquidCrystal.h>

// LiquidCrystal display with:
// rs on pin 3
// rw on pin 4
// enable on pin 2
// d4, d5, d6, d7 on pins 6, 7, 8, 9
LiquidCrystal lcd(3, 4, 2, 6, 7, 8, 9);

void setup()
{
 // Print a message to the LCD.
 lcd.print("ESSAI");

}

void loop()
{
}

Bidouille

Vérifie que tu as bien 5V quand la carte est branchée sur l'alim externe seule ...

Luj06

Tu n'as pas répondu à ma question : qu'est ce que tu utilises comme alimentation externe ? Ce n'est pas juste la tension, mais le type (pile, secteur) et le courant disponible (tu as besoin de seulement 85 mA pour ton LCD, ce qui ne devrait pas être un problème pour la plupart des alims secteurs, mais on ne sait jamais)

Question bête : est-ce qu'un autre programme fonctionne sur ton alim externe, sans le LCD ?


KiliYaBB

Si je tai répondu dans mon post ci-dessus,  lalim est celle-ci ::- http://lextronic.fr/produit.php?id=2912

Luj06

Au temps pour moi, je suis allé trop vite :)
Donc ça ne vient pas de l'alim non plus..

Reste plus que le voltmètre pour vérifier la tension régulée sans le LCD et avec le LCD, et bien sûr le test avec un code simple.

Bidouille

"Donc ça ne vient pas de l'alim non plus.." ... a moins que les polaritées ne soient inversées ...

KiliYaBB

#9
May 01, 2009, 08:36 pm Last Edit: May 01, 2009, 09:15 pm by KiliYaBB Reason: 1
Je pense que ca vient du lcd.

J'ai mis dans le programme une led clignotante en fonction de la luminosité sur une photoresistance.

Quand je branche uniquement sur lalim externe, la led fonctionne correctement systéùmatiquement alors que laffichage sur le lcd marche une fois sur 10.

#include <LiquidCrystal.h>

// LiquidCrystal display with:
// rs on pin 3
// rw on pin 4
// enable on pin 2
// d4, d5, d6, d7 on pins 6, 7, 8, 9
LiquidCrystal lcd(3, 4, 2, 6, 7, 8, 9);
int led = 10;
int res = 0;
int valres = 0;

void setup()
{
 // Print a message to the LCD.

pinMode(led,OUTPUT);
pinMode(res,INPUT);
}

void loop()
{
  lcd.print("ESSAI");
  valres = analogRead(res);
  digitalWrite(led,HIGH);
  delay(valres/10);
  digitalWrite(led,LOW);
  delay(valres/10    );
 
}

Bidouille

Bonjour,
Tu dis : "... alors que laffichage sur le lcd marche une fois sur 10"
Ca ne viendrait pas de l'alim qui mettrait un peu trop de temps pour monter de 0 à 5V lors de la mise en route ? Est ce que ça marche quand tu fais un Reset ?
Pour info, les afficheurs LCD type HD44780 sont un peu tatillons lors de la mise sous tension. Si c'est le cas, intègre ( si ce n'est pas déjà fait ) une routine d'initialisation du LCD .

Bon courage pour la suite.

KiliYaBB

Bonjour Bidouille, comment je fais une routine dinitilisation ? aurais tu un bout de code a me montrer ?

Merci pour ton aide

Luj06

C'est une bonne idée, je viens de me rappeler que l'an dernier je devais faire un reset de ma carte principale (c'était pas une arduino) avant de pouvoir utiliser l'écran LCD sur I2C...

Tu peux essayer de ne pas initialiser la variable "lcd" directement avec sa déclaration mais de le faire dans la fonction "setup()" après un delay d'1 seconde.

Bidouille

Va voir là : http://pagesperso-orange.fr/doumai/Compteur%20LCD/Afficheur%20HD44780/HD44780%20Explications.htm pour ce qui est de la procédure ( et quelques explications pour y voir plus clair  ;) ).
Pour la programmation, tout dépend comment est connecté ton afficheur ? Tu fonctionnes en 4 bits ou en 8 Bits ?
Pour ce qui concerne la rédaction de la routine, étant débutant ( mais alors, vraiment débutant ), je ne peux pas te répondre.
L'organigramme du lien devrait te permettre de trouver la solution.

Bon courage.

KiliYaBB

Merci beaucoup pour ton lien Bidouille, ca va bien m'aider.

A présent j'ai un autre problème :

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1241419513/0

;D

Go Up