Afficheur LCD ne s'allume pas.
Répondre à la discussion
Affichage des résultats 1 à 18 sur 18

Afficheur LCD ne s'allume pas.



  1. #1
    *Baby*

    Arrow Afficheur LCD ne s'allume pas.


    ------

    Salut,

    Je viens tout juste de passer à la réalisation de mes petits projets.

    Et j'aimerais connecter un afficheur LCD à un PIC16F84A.

    Le programme fonctionne parfaitement par simulation.

    J'ai donc tout branché et le LCD ne s'allume pas du tout.

    Alors j'ai essayé de juste branché l'alimentation du LCD et de faire varier le potentiomètre de contraste mais rien n'apparait à l'écran.

    Voici la datasheet du LCD : http://www.farnell.com/datasheets/40247.pdf


    Voici le montage :

    -----
    Images attachées Images attachées  

  2. #2
    *Baby*

    Re : Afficheur LCD ne s'allume pas.

    Faut il absolument que toutes les pattes soient mises à la masse pour tester le LCD ?


    Je précise que le tout est alimenté sous 5V avec un régulateur qui délivre jusqu'à 150mA et que j'ai contrôlé les tensions d'alimentation sur les pins du LCD.
    Dernière modification par *Baby* ; 18/06/2010 à 16h30.

  3. #3
    Qristoff
    Animateur Électronique

    Re : Afficheur LCD ne s'allume pas.

    Tu n'a branché que ça ?
    tu penses qu'il va se configurer tout seul ?
    Tout existe, il suffit de le trouver...!

  4. #4
    *Baby*

    Re : Afficheur LCD ne s'allume pas.

    Ben d'abord, je l'ai branché sur mon PIC avec un programme fonctionnel en simulation.

    Comme ça ne marchait pas, je me suis dit que je le déconnecte du PIC et que je branche uniquement l'alimentation. pour jouer sur les contraste et voir apparaitre les blocs de caractères.

  5. A voir en vidéo sur Futura
  6. #5
    Qristoff
    Animateur Électronique

    Re : Afficheur LCD ne s'allume pas.

    Ce n'est que de la simulation ! rien ne prouve que ton soft marche....
    Le simulateur ne tient pas compte, je pense, des tempo d'initialisation !
    Tout existe, il suffit de le trouver...!

  7. #6
    *Baby*

    Re : Afficheur LCD ne s'allume pas.

    Oui a c'est vrai mais j'ai laissé le temps à l'afficheur de s'initialiser.

    Mais admettons que je l'ai mal configuré, une fois mis hors tension et uniquement relié à l'alimentation, je devrais quand même voir que l'écran fonctionne lorsqu'il est sous tension non ?

  8. #7
    Qristoff
    Animateur Électronique

    Re : Afficheur LCD ne s'allume pas.

    Non, il peut rester muet comme une carpe !
    Tout existe, il suffit de le trouver...!

  9. #8
    *Baby*

    Re : Afficheur LCD ne s'allume pas.

    Ok, alors voila mon code :

    Il y a juste un truc que je suis pas sûr, c'est la taille de matrice de caractère que j'ai mise en 5x8 mais je sais pas comment voir si c'est juste.

    Par contre, je viens d'y penser. Comme dit j'ai laissé 4pin en l'air car je l'utilise en mode 4 bits, donc ça peut créer un problème pour l'initialisation


    Code:
    /*--------------------Gestion d'un LCD alphanumérique en mode 4bits---------------
    Date : 12/06/2010
    
    - Mode 4 bits
    - Ecritue uniquement
    */
    
    
    
    
    //------------------------------- Préprocesseur ------------------------------ 
    
    
    
    
    //---- Includes ----
    
    #include <htc.h>
    #include "delay.h"
    
    
    //---- Defines ----
    
    #define LCD_DATA PORTA // Port A utilisé pour envoyé les données (caractères + instructions)
    #define LCD_RS RB0 // Pin registre select
    #define LCD_EN RB1 // Pin validation
    #define	LCD_STROBE()	((LCD_EN = 1),(LCD_EN=0)) // Routine de validation
    
    
    //---- Protoypes fonctions ----
    
    void LCD_INIT(); // Fonction d'initialisation du LCD en mode 4 bits, LCD 2x16, matrice caractère 5x8
    
    void clear(); // Efface l'écran
    
    void lcd_write(unsigned char data); // Fonction qui prend en paramettre les données sur 8bits et les écrits en mode 4bits dans le LCD
    
    void write_char_at(char caractere, char at); // Ecrit le caractère "caractere" à l'emplacement "at"
    void write_char(char caractere); // Ecrit le caractère "caractere" à l'emplacement actuel du curseur
    
    void write_at(const char* texte, char at); // Ecrit la chaine "texte" à l'emplacement "at"
    void write(const char* texte); // Ecrit la chaine "teste" à l'emplacement actuel du curseur
    
    
    
    
     
    //------------------------------- Fonction principale ------------------------------ 
    
    
    
    void main(void) 
    { 
    // Initialisation des pattes du microcontroleur 
    
    PORTA=0;
    PORTB=0;
    TRISA = 0b00000000; 
    TRISB = 0b00000000; 
    
    
    
    
    
    LCD_INIT();
    
    
    write_at("Salut", 0x01); // Salut
    
    
    
    while(1)
    {
    DelayS(1);
    
    LCD_RS = 0;
    
    lcd_write(0b00001000); // Display On/Off control (Afficheur On/Off, curseur et clignotement) : Afficheur on + curseur on + clignotement
    
    
    DelayS(1);
    
    lcd_write(0b00001100); // Display On/Off control (Afficheur On/Off, curseur et clignotement) : Afficheur on + curseur on + clignotement
    
    }
    
    
    
    }
    
    
    
    
    //------------------------------- Fonctions ------------------------------ 
    
    
    // Fonction qui prend en paramettre les données sur 8bits et les écrits en mode 4bits dans le LCD
    void lcd_write(unsigned char data) 
    {
    	LCD_DATA = ( ( data >> 4 ) & 0x0F ); // On sélectionne les 4 bits de poid fort
    	LCD_STROBE();
    	DelayUs(50);
    	LCD_DATA = ( data & 0x0F ); // Puis on sélectionne les 4 bits de poid faible
    	LCD_STROBE();
    	DelayUs(50);	
    }
    
    
    
    // Fonction d'initialisation du LCD en mode 4 bits, LCD 2x16, matrice caractère 5x8
    void LCD_INIT() 
    {
    
    DelayMs(50); // Temps d'attente pendant le démarrage du LCD
    
    LCD_RS = 0;
    
    LCD_DATA = 0b00000010; // Set Function (Initialisation) : Mode 4bits + Afficheur 1 lignes (à ce stade on ne peut que utiliser les 4bits de données de poid fort)
    LCD_STROBE();
    DelayUs(50);
    
    
    lcd_write(0b00101000); // On réinitialise, mais cette fois en sélectionnant : mode 4 bits + Afficheur 2 lignes + matrice 5x8
    
    lcd_write(0b00000110); // Entry mode set (Mode de décalage) : Décalage curseur vers la droite après écriture et pas de décalage affichage
    
    lcd_write(0b00001100); // Display On/Off control (Afficheur On/Off, curseur et clignotement) : Afficheur on + curseur invisible + fixe
    
    }
    
    
    
    // Ecrit le caractère "caractere" à l'emplacement "at"
    void write_char_at(char caractere, char at) 
    {
    LCD_RS = 0;
    lcd_write(0b10000000 | at); // Set DDRAM address : Emplacement "at"
    
    
    LCD_RS = 1;
    lcd_write(caractere);	// Affichage du caractère "caractere"
    }
    
    
    
    // Ecrit le caractère "caractere" à l'emplacement actuel du curseur
    void write_char(char caractere) 
    {
    LCD_RS = 1;
    lcd_write(caractere);	// Affichage du caractère "caractere"
    }
    
    
    // Efface l'écran
    void clear()
    {
    LCD_RS = 0;
    lcd_write(1);	// Efface
    DelayMs(1);
    DelayMs(1);
    }
    
    
    
    // Ecrit la chaine "texte" à l'emplacement "at"
    void write_at(const char* texte, char at) 
    {
    
    char i =0;
    
    LCD_RS = 0;
    lcd_write(0b10000000 | at); // Set DDRAM address : Emplacement "at"
    
    
    
    LCD_RS = 1;
    
    do
    {
    lcd_write(texte[i]);	// Affichage le caractère i de la chaine texte
    i++;
    }while(texte[i]!='\0');
    
    }
    
    
    
    
    // Ecrit la chaine "teste" à l'emplacement actuel du curseur
    void write(const char* texte) 
    {
    
    char i =0;
    
    
    LCD_RS = 1;
    
    do
    {
    lcd_write(texte[i]);	// Affichage le caractère i de la chaine texte
    i++;
    }while(texte[i]!='\0');
    
    }
    Dernière modification par *Baby* ; 18/06/2010 à 17h33.

  10. #9
    Qristoff
    Animateur Électronique

    Re : Afficheur LCD ne s'allume pas.

    Désolé mais je ne pratique pas le C....
    Voici un exemple de procédure d'initialisation en 4 bits. Es-tu sûr d'utiliser les bits DB4 à DB7 ? Les bits 0 à 3 doivent être reliés à la masse.
    Tout existe, il suffit de le trouver...!

  11. #10
    Qristoff
    Animateur Électronique

    Re : Afficheur LCD ne s'allume pas.

    J'ai oublié le fichier...oups
    Images attachées Images attachées
    Tout existe, il suffit de le trouver...!

  12. #11
    *Baby*

    Re : Afficheur LCD ne s'allume pas.

    Bon ça avance à grand pas, je crois avoir trouvé le bug, c'est le trimmer de contact, des que je le touche avec le tourne vis, ça bug.

    Mon programme fait clignoter "Salut".

    Ça marche mais l'écran est très faible. Des que je touche le trimmer avec le tourne vis, ça devient tout foncé nickel, mais ça clignote plus donc le programme déconne.

    En fait mon trimmer est un 22K.

    Quelqu'un peut me confirmer qu'il est bien connecté (voir mon premier post) et regarder la doc dont j'ai donné le lien car il y a un truc bizarre sur le contraste, il dise qu'il faut une tension négative.

    Don si quelqu'un peut confirmer.


    Ce qui m'inquiète un peu, c'est que mon tourne vis est complètement en fer donc conducteur et c'est des que je touche avec celui ci que ça bug. Très bizarre, qu'es ce que ça a à voir avec le contraste ?
    Dernière modification par *Baby* ; 18/06/2010 à 19h19.

  13. #12
    *Baby*

    Re : Afficheur LCD ne s'allume pas.

    Voila la page qui parle du contraste, il y a que ça.

    Pour récapituler :

    Des que je met la pin 3 à la masse ça marche mais avec un contraste très faible

    Des que la tension sur la pin 3 est positive, j'ai rien.


    Donc j'en conclue qu'il faut une tension négative sur la pin 3.

    C'est un peu de l'abus lol. Je dois changer mon régulateur avec un +/- 5V.



    Nom : contrast.jpg
Affichages : 1087
Taille : 18,5 Ko

  14. #13
    *Baby*

    Re : Afficheur LCD ne s'allume pas.

    Finalement je doute qu'il faille une tension négative, quelqu'un peut m'éclairer ?

  15. #14
    *Baby*

    Re : Afficheur LCD ne s'allume pas.

    Bon ben finalement je confirme qu'il faut bien une tension négative.
    C'est très endettant car un simple régulateur ne suffit plus. N'ayant pas envie de concevoir toute une alimentation symétrique maintenant, j'ai simplement pris une pile de 1,5V.

    Voila le résultat :

    Images attachées Images attachées  

  16. #15
    Qristoff
    Animateur Électronique

    Re : Afficheur LCD ne s'allume pas.

    Salut,
    curieux ce Lcd !
    Quelle est ta source d"alimentation ?
    tu peux insérer une (ou deux) diode(s) dans le retour de masse pour avoir une pseudo tension négative par rapport à la masse du Lcd.
    Images attachées Images attachées  
    Tout existe, il suffit de le trouver...!

  17. #16
    *Baby*

    Re : Afficheur LCD ne s'allume pas.

    Génial le système avec les diodes, j'ai que essayé en simulation mais ça fonctionne à merveille.

    Je suis même aller un peu plus loin en disant que si on rajoute une dizaine de diodes, on peu alors créer du +/-5V. Le seul problème est que la simulation bug si les 2 résistances de charges ne sont pas environ équivalentes.

    Sais tu pourquoi ?
    Ou, es ce que ce montage te parait utilisable sans problème.


    -----------------------------------------------------------------


    Pour l'instant mon alimentation, c'est un transfo + un pont de diodes + un condo + LM7805 et une pile pour faire une tension négative.

    Mais j'ai l'intention de d'utiliser le deuxième secondaire de mon transfo et de le mettre en série avec le premier pour avoir une masse au milieu et pouvoir créer un vrai -5/+5V.

    Par hasard, tu connais pas des régulateurs de tension que l'on peut réglé via un potentiomètre par exemple ?

    ----------------------------------------------------------------

    Enfin, oui je me suis un peux fais avoir avec ce LCD. Je n'avais pas regardé la doc avant et c'est vrai que en général la tension de contraste est positive.
    Images attachées Images attachées  

  18. #17
    Qristoff
    Animateur Électronique

    Re : Afficheur LCD ne s'allume pas.

    Bonjour,
    La solution a diode est faite pour réaliser une petite tension et pour une faible consommation (comme pour le lcd), ce n'est plus viable pour créer une alim négative avec un courant élevé.
    Dans ton montage, il suffit de regarder où passe le courant de polarisation des diodes (R1) pour comprendre que si tu tires un courant équivalent dans R2, la tension du pont de diodes s'écroule ! il faut que le courant dans R2 soit trés petit devant celui de R1.

    La solution a transfo à point milieu est beaucoup plus robuste mais si tu veux faire une tension négative uniquement pour le lcd, ça fait un peu riche !

    La tension typique Vop de ton lcd est de 5,8V (sous le Vdd), tu peux essayer de monter la tension Vdd à 5,8V (max 7V) en remplacant le 7805 par un régulateur ajustable (LM317 ou LT1086 par exemple) et relier le Vo du lcd à 0V (Vss). Tu devrais avoir suffisament pour créer le contraste nécessaire. Ensuite pour les autres ci, tu peux redescendre la tension Vdd en insérant une diode série, ce qui retranchera environs 0,7V.




    D'aprés la datasheet, le Vop est donné pour 5,8V typ à 25°C
    Tout existe, il suffit de le trouver...!

  19. #18
    invite572b1dde

    Re : Afficheur LCD ne s'allume pas.

    Salut

    je viens de terminer un projet comportant un afficheur lcd.
    attention a ta pinne MCLR\ connecte lea avec une resistance et un condo
    (relation RC permettant que le pic et donc l'affichage démarre en douceur).
    Dimensionne le deux composant avec le Cycle que tu veux.
    C'est l'un des probleme que j'ai eu.
    Puis bizar se -5V comme alim.
    Pour ma part j'ai mi le contraste au max en reliant VEE ou Vo pour moi a la masse.
    Fait attention au brochage si té en 4 bits.
    Et aussi aux compatibilité de té lib en C.
    J'utilise MickroC et il y a plain de fonctions préenregistré de l'onglet "help"
    mais pas toutes compatibles.

    A+

Discussions similaires

  1. [Brun] Moniteur LCD Iisonic : ne s'allume pas
    Par invitee4a15de6 dans le forum Dépannage
    Réponses: 6
    Dernier message: 27/12/2008, 16h01
  2. [Brun] PB LCD LG RZ 26LZ50 (ne s'allume pas)
    Par hichdog dans le forum Dépannage
    Réponses: 21
    Dernier message: 30/04/2008, 23h00
  3. afficheur LCD
    Par invite74119562 dans le forum Électronique
    Réponses: 0
    Dernier message: 29/04/2008, 13h01
  4. afficheur lcd en afficheur 7 segment
    Par invite3cc40cdb dans le forum Électronique
    Réponses: 3
    Dernier message: 04/02/2008, 09h43
  5. afficheur lcd
    Par invite1a260649 dans le forum Électronique
    Réponses: 0
    Dernier message: 26/01/2005, 16h53
Découvrez nos comparatifs produits sur l'informatique et les technologies.