Afficheur lcd 2*16 + arduino mega
Répondre à la discussion
Affichage des résultats 1 à 18 sur 18

Afficheur lcd 2*16 + arduino mega



  1. #1
    comptet

    Afficheur lcd 2*16 + arduino mega


    ------

    Bonjour tout le monde,

    J'ai un petit problème avec mon afficheur lcd 2*16 en 16 broches.
    J'ai fais un tour sur le forum mais je n'ai pas trouvé de solution.
    J'utilise cet afficheur avec une carte arduino mega. En plus de cet afficheur j'ai un petit clavier matriciel maison.

    Voici mon problème :
    J'ai branché l'afficheur comme l'indique la datasheet, j'ai envoyé les diverses commandes d'initialisation de l'afficheur.
    L'afficheur a bien marché pendant 20, 30 min (j'avais mes 2 lignes d'activées, mon curseur qui clignotait) puis d'un coup sans savoir pourquoi il est maintenant bloqué sur une seule ligne activée, sans curseur ni rien.
    A noté que lorsque l'afficheur n'a plus voulu répondre, j'étais en train d'essayer les différentes possibilités qu'il y a avec curseur fixe, curseur clignotant, curseur en 5*8, etc...
    Je voulais voir la différence de chaque config.

    Le programme principale n'est pas planté car je peux utiliser mon clavier, celui ci me renvoie bien le caractère associé à chaque touche de mon clavier par le biais de l'UART.
    Mais concernant l'afficheur, je n'arrive plus à le contrôler. J'ai essayé les diverses config trouvées sur internet mais aucunes ne changent mon problème.

    Est ce que quelqu'un a une petite idée sur mon problème d'afficheur bloqué ?

    Merci d'avance

    -----

  2. #2
    jiherve

    Re : Afficheur lcd 2*16 + arduino mega

    Bonsoir,
    bon comme d'habitude le forum n’étant pas composé de voyants extralucides: la référence de l'afficheur, un lien web serait le bienvenu.
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    comptet

    Re : Afficheur lcd 2*16 + arduino mega

    Bonsoir,

    A oui pardon, j'avais oublié.
    Le modèle de l'afficheur est le suivant : fdcc1602G-nswbbw-51lk
    J'ai récupéré la datasheet grâce à ce lien : https://www.eltech.spb.ru/files/item...LYYBW-51LR.pdf

    L'init de mon afficheur est la suivante : (à noter que je n'utilise pas le logiciel arduino, mais atmel studio 6, bien entendu j'ai fais toutes les manip pour pouvoir utiliser une carte arduino avec atmel, la compilation et l'envoie sur la carte arduino mega fonctionne parfaitement)

    Code:
    #include "Arduino.h"
    #include "lib_afficheur.h"
    #include <util/delay.h>
    
    #define RS PG0  // Pin 0 PORTG
    #define RW PG1	// Pin 1 PORTG
    #define EN PG2  // Pin 2 PORTG
    #define data PORTL
    
    
    void init_afficheur(void)
    {
    	DDRG = (1<<DDG0) | (1<<DDG1) | (1<<DDG2);  // Pin 0,1, 2 du PORTG en sorties
    	DDRL = 0xff;								// PORTL en sortie
    	PORTG = (0<<RS) | (0<<RW) | (0<<EN);		// Ecran en mode commande et ecriture
    	ecrire_instruction(0x30);   //forcage mode 8 bits
    	ecrire_instruction(0x30);	//forcage mode 8 bits
    	ecrire_instruction(0x30);	//forcage mode 8 bits
    	ecrire_instruction(0x38);	// mode 8 bits, 2 ligne, caractere 5*8
    	ecrire_instruction(0x08);	// ecran eteint
    	ecrire_instruction(0x01);	// efface ecran
    	ecrire_instruction(0x06);	//curseur vers la droite
    	ecrire_instruction(0x0F);	//ecran allumé, curseur allumé et clignotant
    }
    
    void ecrire_instruction(unsigned char param)
    {
    	_delay_ms(50);
    	PORTG = (0<<RS)|(0<<RW);			// ecran en mode commande et ecriture 
    	data = param;						// passage des instructions
    	PORTG = (1<<EN);					
    	_delay_us(1);
    	PORTG = (0<<EN);					// front descendant sur E pour indiquer à l'écran des instructions
    }

    Je n'ai pas mis la gestion de l'afficheur dans le main.cpp, j'ai créé des fichiers .H et .cpp afin de pouvoir réutiliser ou modifier mes librairies sans toucher le programme principale alors que tout le reste fonctionne.
    Dernière modification par Antoane ; 24/03/2015 à 19h16. Motif: Ajout balises [/code]

  4. #4
    jiherve

    Re : Afficheur lcd 2*16 + arduino mega

    Re
    attends tu les 15ms après mise sous tension et les différents autres délais.
    Schema?
    JR
    l'électronique c'est pas du vaudou!

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

    Re : Afficheur lcd 2*16 + arduino mega

    Re,

    Oui j'ai bien un délai de 15 ms au lancement de mon programme, et pour chaque instruction envoyée, je l'ai mise dans la fonction "ecriture_instruction(void )", c'est un delai de 50 ms, j'ai mis plus en attendant de peaufiner les timings.

    Pour le schéma, je joins un fichier image que je viens de faire, je ne sais pas s'il va bien se voir, du coup voici le branchement :
    Led+ et Vcc sur le 5 volt de l'arduino
    Led- et Gnd sur le Gnd de l'arduino
    V0 sur le point milieu du pont diviseur
    RS sur la broche 41 de l'arduino
    RW sur la broche 40 de l'arduino
    E sur la broche 39 de l'arduino
    DB0 sur la broche 49 de l'arduino
    DB1 " " 48
    "
    "
    "
    "
    "
    DB7 sur la broche 42 de l'arduino



    Ce que je ne comprend pas c'est qu'il a bien fonctionné pendant 20, 30 min environ, puis plus rien d'un coup. Alors que je regardais juste les différences au niveau visuel avec les différentes config du curseur et autre.


    Nom : schema_arduino_afficheur.jpg
Affichages : 493
Taille : 110,8 Ko

  7. #6
    jiherve

    Re : Afficheur lcd 2*16 + arduino mega

    Re
    il n'y a pas trop de découplage d'alim !!
    les signaux sont ils propres => oscillo.
    JR
    l'électronique c'est pas du vaudou!

  8. #7
    comptet

    Re : Afficheur lcd 2*16 + arduino mega

    Re

    Pour le découplage des alims, c'est vrai je n'ai pas mis de condensateurs, je suppose que l'alimentation 5V générée par l'arduino est régulée de manière correcte.
    Concernant les signaux, malheureusement je n'ai pas d'oscillo sous la main, j'ai juste un multi mètre, et à niveau haut ou bas, tout est correct au multi.

    jiherve vous n'avez aucun avis sur le code d'initialisation que j'ai écris pour l'afficheur, si par hasard j'ai mal écris une instruction, ou un truc dans le genre ?

    Merci en tout cas pour vos réponses

  9. #8
    jiherve

    Re : Afficheur lcd 2*16 + arduino mega

    Re
    je ne vois rien de faux dans le code.
    decoupler ce n'est pas identique à reguler, le découplage c'est pour la HF, il faudrait au moins mettre une 100nf.
    JR
    l'électronique c'est pas du vaudou!

  10. #9
    mag1

    Re : Afficheur lcd 2*16 + arduino mega

    Bonjour,

    Il faudrait un potar pour le réglage de la polarisation avec le pont, on aura pas les 0,6 V (env) pour avoir une polarisation correcte. Et si c'est pas régler, on ne voit plus rien.

    MM
    Dernière modification par mag1 ; 24/03/2015 à 22h01.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  11. #10
    comptet

    Re : Afficheur lcd 2*16 + arduino mega

    Bonjour

    jiherve je vais voir si je peux en récupérer quelque condensateurs.

    mag1
    Je viens de changer et de mettre un potar à la place de mon pont diviseur, ça me change pas le problème, je peux maintenant ajuster la luminosité du rétroéclairage mais l'afficheur reste toujours bloqué sur une seule ligne.

    J'ai essayé enlevant les dernières étapes d'initialisation, je me suis arrête à l'étape "écran éteint", l'afficheur ne réagit pas, il reste allumé avec une seule ligne activée. :/

  12. #11
    mag1

    Re : Afficheur lcd 2*16 + arduino mega

    Citation Envoyé par comptet Voir le message
    Bonjour

    jiherve je vais voir si je peux en récupérer quelque condensateurs.

    mag1
    Je viens de changer et de mettre un potar à la place de mon pont diviseur, ça me change pas le problème, je peux maintenant ajuster la luminosité du rétroéclairage mais l'afficheur reste toujours bloqué sur une seule ligne.

    J'ai essayé enlevant les dernières étapes d'initialisation, je me suis arrête à l'étape "écran éteint", l'afficheur ne réagit pas, il reste allumé avec une seule ligne activée. :/
    Bonjour,

    Le problème est sans doute ailleurs, mais Vo règle le contraste, pas le rétroéclairage.
    Il y a un réglage qui donne des chiffres nets sur un fond uniforme, sans trace.

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  13. #12
    jiherve

    Re : Afficheur lcd 2*16 + arduino mega

    Bonjour,
    Sais tu récupérer le code assembleur de ce qui est généré?
    JR
    l'électronique c'est pas du vaudou!

  14. #13
    comptet

    Re : Afficheur lcd 2*16 + arduino mega

    Re

    mag1
    Je pense que j'ai trouvé un réglage pas trop mal au niveau netteté, je le peaufinerai quand l'afficheur fonctionnera normalement.

    jiherve
    Eu non je ne sais pas récupérer le code assembleur, mais ça m'apporterait quoi de plus ?

    Cordialement

  15. #14
    jiherve

    Re : Afficheur lcd 2*16 + arduino mega

    Re
    ben de vérifier que ce que tu codes en C est bien compris.
    par exemple PORTG = (1<<EN) doit donner :sbi PORTG,EN => sbi PORT?,2
    Mais avec le debug tu dois pouvoir suivre l’exécution du programme.
    JR
    l'électronique c'est pas du vaudou!

  16. #15
    comptet

    Re : Afficheur lcd 2*16 + arduino mega

    Re

    Ok, je vais voir avec le debug en premier pour savoir si les instructions sont bien exécutées.

    Cordialement

  17. #16
    comptet

    Re : Afficheur lcd 2*16 + arduino mega

    Re

    Je viens de trouver mon erreur.
    Quand je compilais, je ne compilais que le fichier librairie ou j'ai mon init d'afficheur. Et la ce soir je ne sais pas ce qu'il m'a pris, j'ai également compilé mon programme principal, et miracle mon afficheur s'est remis à fonctionner normalement. Je peux le recommander avec curseur clignotant ou non, etc ...

    Je ne sais pas pourquoi Avr studio ne compile pas tous les fichiers en même temps, car quand je reste sur le bouton compiler, un petit pop-up arrive pour dire compiler la solution, et un autre bouton à côté ne sert qu'à compiler le fichier sur lequel on travail.

    En tout cas merci pour votre aide les amis, même si au final c'était une erreur bête de ma part.

    Cordialement

  18. #17
    jiherve

    Re : Afficheur lcd 2*16 + arduino mega

    Re
    je n'ai pas la version 6 mais avec la 4 il y a "Built"!!
    JR
    l'électronique c'est pas du vaudou!

  19. #18
    comptet

    Re : Afficheur lcd 2*16 + arduino mega

    Re

    Sur la version 6, j'ai "Build le fichier en cours", ou "Build la solution".
    Je viens d'essayer avec les deux boutons, et indifféremment il faut que je "build" chaque fichier pour que cela fonctionne.
    Pour que ça marche d'un seul coup, il faut que j'aille dans l'arborescence de mon projet, que je sélectionne le fichier contenant tout le projet, puis clic droit, "Rebuild".
    Peut être une différence avec la version 4, je ne sais pas du tout.

    Cordialement

Discussions similaires

  1. Carte Arduino UNO R3 ou Arduino Mega 2560 R3 ?
    Par theoze dans le forum Électronique
    Réponses: 10
    Dernier message: 11/03/2015, 15h36
  2. Multitache arduino MEGA
    Par croco01 dans le forum Électronique
    Réponses: 7
    Dernier message: 30/06/2014, 10h40
  3. Probleme Arduino MEGA 1280
    Par croco01 dans le forum Électronique
    Réponses: 5
    Dernier message: 21/07/2013, 23h28
  4. tester une carte Arduino MEGA
    Par croco01 dans le forum Électronique
    Réponses: 9
    Dernier message: 27/06/2013, 07h15
  5. Arduino mega
    Par zener57 dans le forum Électronique
    Réponses: 0
    Dernier message: 14/09/2009, 17h55
Découvrez nos comparatifs produits sur l'informatique et les technologies.