Répondre à la discussion
Affichage des résultats 1 à 20 sur 20

PIC 16F et écran LCD: rien ne s'affiche



  1. #1
    pasouk

    PIC 16F et écran LCD: rien ne s'affiche


    ------

    Bonjour,
    Je voudrais réaliser un exercice visant à afficher la température et la quantité de gaz dans l'air sur un écran LCD avec un PIC16F88 (sondes DHT11 et MQ135).

    Pour commencer, j'ai réalisé un câblage et un programme de base afin de me familiariser avec mon LCD et mon 16F.
    J'ai envoyé mon programme sur mon PIC et je l'ai placé mais rien ne s'affiche ...( à part le rétro-éclairage)
    Après de nombreux essais, je ne parviens toujours pas à trouver le problème... Pouvez-vous m'aider?
    Voici des photos de mon projet ainsi que mon code.
    Code:
    //Affichage de température sur écran LCD via sonde DHT11
    //et gaz via MQ135
    
    //Parmaètres et direction des broches pour le LCD
    sbit LCD_RS at RB2_bit;
    sbit LCD_EN at RB3_bit;
    sbit LCD_D4 at RB4_bit;
    sbit LCD_D5 at RB5_bit;
    sbit LCD_D6 at RB6_bit;
    sbit LCD_D7 at RB7_bit;
    sbit LCD_RS_Direction at TRISB2_bit;
    sbit LCD_EN_Direction at TRISB3_bit;
    sbit LCD_D4_Direction at TRISB4_bit;
    sbit LCD_D5_Direction at TRISB5_bit;
    sbit LCD_D6_Direction at TRISB6_bit;
    sbit LCD_D7_Direction at TRISB7_bit;
    
    void LCD_Out(char row, char column, char *text);
    void LCD_Init(); //initialisation du LCD
    
    void main() {
    OSCCON =  0X70; // Réglage ossilateur interne à 8MHz
    ANSEL = 0X00000000; //Configuration de toutes les entrées en Numériques
    
    Lcd_Cmd(_LCD_CURSOR_OFF); //curseur en mode invisible
    TRISA = 0x00;
    TRISB = 0x00;
       while(1)
        {
        LCD_Out (1,1,"Salut")   ;
    
        }
    }
    images:
    163637937_464364194717709_7860297655039270175_n.jpg
    162135364_1581253205599144_6956643157085823160_n.jpg

    -----

  2. Publicité
  3. #2
    paulfjujo

    Re : PIC 16F et écran LCD: rien ne s'affiche

    bonjour,


    tu as declaré 2 fonctions LCD
    mais aucune reference à une bibliotheque , donc
    apparament c'est du MikroC
    tu as du cocher la librairie LCD
    mais tu n'as pas à declarer les fonctions .. elles sont déja incluses dans la librairie

    par contre , dans le main, il faut inclure absolument
    la ligne LCD_Init();


    de plus, rajoute un bout de programme pour faire clignoter une led
    avant de tester ton LCD
    pour etre sur que le programme se lance

  4. #3
    pasouk

    Re : PIC 16F et écran LCD: rien ne s'affiche

    D'abord, Merci beacoup Paulfjujo pour votre réponse.

    Effectivement, c'est du Mikroc, j'avais bien coché la bibliothèque LCD.
    Comme vous m'avez dit,j'ai supprimé la définition de la fonction LCD_Out et j'ai déplacé la LCD_Init dans le void main.

    C'est une bonne idée de tester avec une LED pour voir si le programme est bien dans le PIC. Je n'ai pas de LED à l'instant t mais j'ai testé au multimètre et je ne vois pas de variation de tension... C'est bizarre, pourtant mon programmateur semble fonctionner et Microbrn n'affiche pas de message d'erreur, de plus, quand je lis le pic avec le le programmateur via microbrn, j'obtiens bien un code hexadécimal non vierge (voir capture insérée).

    Voici donc mon code avec les modifications apportées:
    Code:
    //Affichage de température sur écran LCD via sonde DHT11
    //et gaz via MQ135
    
    //Parmaètres et direction des broches pour le LCD
    sbit LCD_RS at RB2_bit;
    sbit LCD_EN at RB3_bit;
    sbit LCD_D4 at RB4_bit;
    sbit LCD_D5 at RB5_bit;
    sbit LCD_D6 at RB6_bit;
    sbit LCD_D7 at RB7_bit;
    sbit LCD_RS_Direction at TRISB2_bit;
    sbit LCD_EN_Direction at TRISB3_bit;
    sbit LCD_D4_Direction at TRISB4_bit;
    sbit LCD_D5_Direction at TRISB5_bit;
    sbit LCD_D6_Direction at TRISB6_bit;
    sbit LCD_D7_Direction at TRISB7_bit;
    
    
    
    
    void main() {
    OSCCON =  0X70; // Réglage ossilateur interne à 8MHz
    ANSEL = 0X00000000; //Configuration de toutes les entrées en Numériques
    LCD_Init(); //initialisation du LCD
    Lcd_Cmd(_LCD_CURSOR_OFF); //curseur en mode invisible
    TRISA = 0x00;
    TRISB = 0x00;
       while(1)
        {
        LCD_Out (1,1,"Salut")   ;
    
        }
        while(1){
          porta.f0 = 1;
        Delay_ms(3000);
        porta.f0 = 0;
        Delay_ms(3000);
        
        }
    }
    Nom : Capture.PNG
Affichages : 110
Taille : 141,4 Ko
    Dernière modification par gienas ; 24/03/2021 à 06h56. Motif: Ajouté les balises code obligatoires pour les programmes

  5. #4
    paulfjujo

    Re : PIC 16F et écran LCD: rien ne s'affiche

    bonjour,

    ton test LED ne peut pas marcher, car tu es coincé dans la 1ere boucle while ...

    check config bit CONFIG1
    bit 4, 1-0 FOSC<2:0>: Oscillator Selection bits
    100 = INTRC oscillator; port I/O function on both RA6/OSC2/CLKO pin and RA7/OSC1/CLKI pin

    configure les ports AVANT LCD init()

    Code:
    int i;
    
    void main()
    {
        OSCCON = 0b01110000;         //Fréquence pour oscillateur interne. oscillateur 8 MHz
    	ANSEL = 0X00000000; 
        TRISA = 0b00000000;   // port A2 en entrée. Entrée = 1, sortie = 0
        TRISB = 0b00000000;   // tous les port B en sortie. Entrée = 1, sortie = 0
        CMCON=0;              // inhibe les comparateurs
    	for (i=0;i<10;i++)
    	{
          porta.f0 = 1;
          Delay_ms(1000);
           porta.f0 = 0;
           Delay_ms(1000);
        
        }
    	Lcd_Init();                        // Initialize LCD
        Lcd_Cmd(_LCD_CLEAR);
    	while(1)
        {
        LCD_Out (1,1,"Salut")   ;
        Delay_ms(1000);
        }
    }

  6. A voir en vidéo sur Futura
  7. #5
    umfred

    Re : PIC 16F et écran LCD: rien ne s'affiche

    a priori pas besoin de toucher aux TRISx, les affectations au début font le boulot; si j'en crois l'exemple donné ici:
    https://electrosome.com/lcd-pic-interfacing/

  8. #6
    paulfjujo

    Re : PIC 16F et écran LCD: rien ne s'affiche

    bonjour,

    Citation Envoyé par umfred Voir le message
    a priori pas besoin de toucher aux TRISx, les affectations au début font le boulot; si j'en crois l'exemple donné ici:
    https://electrosome.com/lcd-pic-interfacing/
    Effectivement, mais de faire une config de port APRES LCD_Init()
    pourrait detruire/modifier celle ci ..
    (bien que dans le cas present on n'utilise que des sorties)

    d'uine maniere generale, on ne doit pas configurer les PORTS, apres l'init d'une libraire utilisant des entres/sorties MCU
    ...A moins de savoir vraiment ce que l'on fait.

  9. Publicité
  10. #7
    pasouk

    Re : PIC 16F et écran LCD: rien ne s'affiche

    Effectivement, avec votre code, il semble que le programme soit bien inséré dans le 16F (test au multimètre ), mais toujours rien sur l'écran.(à part le rétro-éclairage)
    Je vais investir dans un fer pour souder mon adaptateur mâle de mon LCD pour être sur que toutes les pins fassent bien contact et réessayer l'écran.

    Je me pose également une autre question : pour régler le rétro-éclairage et le contraste, j'ai mis des potentiomètres 10K (comme indiqué sur la feuille indiquant les branchements), ce n'est pas une erreur ? (je ne pense pas car j'aai essayé en branchant en direct.

    Merci pour votre aide.

  11. #8
    umfred

    Re : PIC 16F et écran LCD: rien ne s'affiche

    tu envoies la commande _LCD_CLEAR dans ton code ? éventuellement, envoie la commande _LCD_TURN_ON.
    Vérifies que les branchements sont faites sur les bonnes pins du LCD (dans mon lien, l'écran a 14 broches; sur le tien, il y en a 16 + 4 sur le côté.)

  12. #9
    carcan

    Re : PIC 16F et écran LCD: rien ne s'affiche

    La pin R/W du LCD est-elle bien au niveau bas ?

    A+
    Laurent

  13. #10
    pasouk

    Re : PIC 16F et écran LCD: rien ne s'affiche

    Bonjour,

    Le programme est bien chargé (tests led), j ai soudé les pins de l'écran et testé un autre lcd mais rien ne fonctionne...
    J'ai réalisé un schéma de mon cablâge, pour que vous y jetiez un oeil.

    Umfred, j'ai essayé avec le code de votre lien, (en ajoutant la cmd LCD Turn on) sans résultat.

    Oui carcan, RW est bien au niveau bas.

    Nom : 164003255_503597610635929_4510324698287037310_n.jpg
Affichages : 64
Taille : 52,1 Ko

  14. #11
    flyingrock

    Re : PIC 16F et écran LCD: rien ne s'affiche

    Bonjour,

    Je mettrais la broche 4 du PIC via une resistance de 10k au VCC.

  15. #12
    pasouk

    Re : PIC 16F et écran LCD: rien ne s'affiche

    J'ai ajouté la résistance mais ça ne fonctionne pas.

    Par contre, j'ai remarqué que quand je mesure la tension des bornes d4,d5,d6 et d7 du LCD, il n'y a que sur d6 que je mesure une tension, elles sont pourtant toutes les 4 reliées au LCD.

  16. Publicité
  17. #13
    paulfjujo

    Re : PIC 16F et écran LCD: rien ne s'affiche

    bonjour,


    pas glop ,le schema !

    le potar reglage contraste risque de fumer !
    il faut mettre le curseur du potar sur l'entree reglage contrast

    idem pour le reto eclairage, ne pas utiliser de potar, mais une R serie avec la (les) led(s) de retro eclairage située entre A et K

    Nom : Image1.jpg
Affichages : 53
Taille : 54,5 Ko

  18. #14
    flyingrock

    Re : PIC 16F et écran LCD: rien ne s'affiche

    As tu essayé ou pas mettre la broche 4 au + vcc en passant par une resistance de 10k ?

  19. #15
    pasouk

    Re : PIC 16F et écran LCD: rien ne s'affiche

    Merci à tous pour votre aide, j'arrive enfin à afficher du texte..
    Je vous suis très reconnaissant d'avoir pris du temps pour m'aider sans même me connaitre, ça m'a été très utile pour continuer mon travail !


    " Plus qu'à " gérer le dht 11 et le MQ135.

    PS: Oui, désolé pour mon schéma, il faut absolument que télécharge la démo de Proteus.


    Nom : 164455310_4372459229449829_5569787952941556606_n.jpg
Affichages : 44
Taille : 66,9 Ko

  20. #16
    flyingrock

    Re : PIC 16F et écran LCD: rien ne s'affiche

    alors c’était quoi qui n'allait pas ?

  21. #17
    pasouk

    Re : PIC 16F et écran LCD: rien ne s'affiche

    J'ai effectué les changements que que Paulfjujo m'a suggéré et ça a fonctionné.
    A mon avis, il y a de fortes chances que ce soit le contraste qui ait posé problème.

    Et oui, j'ai également mis la broche 4 au VCC hier soir, mais vu que le contraste posait problème, ça ne n'a rien changé au niveau visuel.
    Mais le l'ai laissée et ça fonctionne

  22. #18
    flyingrock

    Re : PIC 16F et écran LCD: rien ne s'affiche

    Enlève le + de la broche 4 et regarde si ça continue a fonctionner.

  23. Publicité
  24. #19
    pasouk

    Re : PIC 16F et écran LCD: rien ne s'affiche

    Je viens de tester et effectivement, si je l'enlève il affiche des rectangles blanc sur les 32 cases.

  25. #20
    flyingrock

    Re : PIC 16F et écran LCD: rien ne s'affiche

    Je ne suis pas étonné

Discussions similaires

  1. [Programmation] écran LCD qui n'affiche rien
    Par Xijang dans le forum Électronique
    Réponses: 7
    Dernier message: 05/10/2019, 20h45
  2. Réponses: 15
    Dernier message: 21/06/2017, 19h59
  3. Ecran LCD qui n'affiche rien
    Par MarilenaF66 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 03/05/2016, 11h27
  4. Pc portable se met en route mais rien ne s'affiche
    Par BilbonMensch dans le forum Matériel - Hardware
    Réponses: 11
    Dernier message: 24/12/2013, 19h01
  5. mon ecran CRT s'allume mais ne m'affiche rien
    Par king31dz dans le forum Électronique
    Réponses: 2
    Dernier message: 08/07/2010, 16h52
Découvrez nos comparatifs produits sur l'informatique et les technologies.