Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

LCD I2C
venom
Avatar de l’utilisateur
Passioné
Passioné
Messages : 360
Âge : 32
Enregistré en : avril 2016
Localisation : . <------ ici
Contact :

#21 Message par venom » dim. 11 mars 2018 00:09 lien vers la Data-Sheet : Cliquez ici

YOUHOUUUUUUUUU !!!!!!

C'est bien la bonne adresse. J'ai réussi a afficher un texte sur mon LCD.
Je vais nettoyé / commenté le code et vous le présenterez avec une petite photo 8-)

Trop content. Merci a tous. :bravo: Merci !






@++

LCD I2C
paulfjujo
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 981
Âge : 67
Enregistré en : juillet 2015
Localisation : 01120
Contact :

#22 Message par paulfjujo » dim. 11 mars 2018 11:01 lien vers la Data-Sheet : Cliquez ici

Device sur le bus I2C
Device trouvé at @ FFh ... soit 255
Fin de recherche device



:!!: ???? ce ne peut pas etre une adresse correcte .. car impaire
d'autant qu'on explore que des adresses paires ( adresse d'ecriture)

Code : Tout sélectionner

for (Adr=32;Adr<254;Adr=Adr+2


quelle est donc , cette adresse qui marche ?

LCD I2C
venom
Avatar de l’utilisateur
Passioné
Passioné
Messages : 360
Âge : 32
Enregistré en : avril 2016
Localisation : . <------ ici
Contact :

#23 Message par venom » dim. 11 mars 2018 11:30 lien vers la Data-Sheet : Cliquez ici

En mode bavard (voir plus haut) j'obtiens bien 7E.

Et en mode non bavard j'obtiens le résultat que tu montre ci-dessus.






@++

LCD I2C
paulfjujo
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 981
Âge : 67
Enregistré en : juillet 2015
Localisation : 01120
Contact :

#24 Message par paulfjujo » dim. 11 mars 2018 16:59 lien vers la Data-Sheet : Cliquez ici

oops Effectivement il y avait un bug !
ici :

Code : Tout sélectionner

else
  {
   // I2C_Adresses_Devices[Nb++]=dev_address;   <-- erreur ici , car Nb++ plus bas !
   I2C_Adresses_Devices[Nb]=dev_address;
    if(Mode_Bavard>0)
    {

      UART1_Write_CText(" ... soit ");
      ByteToStr (dev_address,CRam1);
      UART1_Write_Text(CRam1);
      UART1_Write_CText("  Found OK  ");
      CRLF1();
     }
    Nb++;
  }
 

bug = double incrementation de Nb !!
j'ai refait un test en mode bavard et non bavard, en rajoutant un module RTC DS1307 ( avec une 24C32!)
sur le bus I2C ...
et j'ai rajouté une init à 0 de la table de stockage des devices trouvés.

Mise à jour Projet mikroC Zipé
_16F887_Dip40_tests1.zip


Pin RA3 à 0 => mode Bavard désactivé

Device sur le bus I2C
Device trouvé at @ 4Eh ... soit 78
Device trouvé at @ A0h ... soit 160
Device trouvé at @ D0h ... soit 208
Fin de recherche device


Init I2C à 100KHz
Pin RA3 à 1 => mode Bavard ACTIF
I2C Device at @ 20 not found
I2C Device at @ 22 not found
I2C Device at @ 24 not found
I2C Device at @ 26 not found
I2C Device at @ 28 not found
I2C Device at @ 2A not found
I2C Device at @ 2C not found
I2C Device at @ 2E not found
I2C Device at @ 30 not found
I2C Device at @ 32 not found
I2C Device at @ 34 not found
I2C Device at @ 36 not found
I2C Device at @ 38 not found
I2C Device at @ 3A not found
I2C Device at @ 3C not found
I2C Device at @ 3E not found
I2C Device at @ 40 not found
I2C Device at @ 42 not found
I2C Device at @ 44 not found
I2C Device at @ 46 not found
I2C Device at @ 48 not found
I2C Device at @ 4A not found
I2C Device at @ 4C not found
I2C Device at @ 4E ... soit 78 Found OK

I2C Device at @ 50 not found
I2C Device at @ 52 not found
I2C Device at @ 54 not found
I2C Device at @ 56 not found
I2C Device at @ 58 not found
I2C Device at @ 5A not found
I2C Device at @ 5C not found
I2C Device at @ 5E not found
I2C Device at @ 60 not found
I2C Device at @ 62 not found
I2C Device at @ 64 not found
I2C Device at @ 66 not found
I2C Device at @ 68 not found
I2C Device at @ 6A not found
I2C Device at @ 6C not found
I2C Device at @ 6E not found
I2C Device at @ 70 not found
I2C Device at @ 72 not found
I2C Device at @ 74 not found
I2C Device at @ 76 not found
I2C Device at @ 78 not found
I2C Device at @ 7A not found
I2C Device at @ 7C not found
I2C Device at @ 7E not found
I2C Device at @ 80 not found
I2C Device at @ 82 not found
I2C Device at @ 84 not found
I2C Device at @ 86 not found
I2C Device at @ 88 not found
I2C Device at @ 8A not found
I2C Device at @ 8C not found
I2C Device at @ 8E not found
I2C Device at @ 90 not found
I2C Device at @ 92 not found
I2C Device at @ 94 not found
I2C Device at @ 96 not found
I2C Device at @ 98 not found
I2C Device at @ 9A not found
I2C Device at @ 9C not found
I2C Device at @ 9E not found
I2C Device at @ A0 ... soit 160 Found OK

I2C Device at @ A2 not found
I2C Device at @ A4 not found
I2C Device at @ A6 not found
I2C Device at @ A8 not found
I2C Device at @ AA not found
I2C Device at @ AC not found
I2C Device at @ AE not found
I2C Device at @ B0 not found
I2C Device at @ B2 not found
I2C Device at @ B4 not found
I2C Device at @ B6 not found
I2C Device at @ B8 not found
I2C Device at @ BA not found
I2C Device at @ BC not found
I2C Device at @ BE not found
I2C Device at @ C0 not found
I2C Device at @ C2 not found
I2C Device at @ C4 not found
I2C Device at @ C6 not found
I2C Device at @ C8 not found
I2C Device at @ CA not found
I2C Device at @ CC not found
I2C Device at @ CE not found
I2C Device at @ D0 ... soit 208 Found OK

I2C Device at @ D2 not found
I2C Device at @ D4 not found
I2C Device at @ D6 not found
I2C Device at @ D8 not found
I2C Device at @ DA not found
I2C Device at @ DC not found
I2C Device at @ DE not found
I2C Device at @ E0 not found
I2C Device at @ E2 not found
I2C Device at @ E4 not found
I2C Device at @ E6 not found
I2C Device at @ E8 not found
I2C Device at @ EA not found
I2C Device at @ EC not found
I2C Device at @ EE not found
I2C Device at @ F0 not found
I2C Device at @ F2 not found
I2C Device at @ F4 not found
I2C Device at @ F6 not found
I2C Device at @ F8 not found
I2C Device at @ FA not found
I2C Device at @ FC not found

Fin de recherche device


ATTENTION AU PIEGE
si , en sus d'une RTC DS1307, on veut utiliser une EEPROm externe , genre 24LC256 ou 24FC1026..
il est probable qu'elle puisse se trouver à la meme adresse que la petite EEPROm 24C32
presente sur le module RTC DS1307 .... :mur: et ça fout le boxon !
je me suis fait piégé .. du vécu .
il faut donc decaler l'adresse externe via les pins d'adresse A0,A1,A2.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

LCD I2C
venom
Avatar de l’utilisateur
Passioné
Passioné
Messages : 360
Âge : 32
Enregistré en : avril 2016
Localisation : . <------ ici
Contact :

#25 Message par venom » dim. 11 mars 2018 17:33 lien vers la Data-Sheet : Cliquez ici

8-) merci pour ces modifications. Je vais étudier tout ça. C'est pas un mal du coup grâce à moi tu a remis à jour ton code :langue:






@++

LCD I2C
venom
Avatar de l’utilisateur
Passioné
Passioné
Messages : 360
Âge : 32
Enregistré en : avril 2016
Localisation : . <------ ici
Contact :

#26 Message par venom » dim. 11 mars 2018 20:03 lien vers la Data-Sheet : Cliquez ici

paulfjujo a écrit :ATTENTION AU PIEGE
si , en sus d'une RTC DS1307, on veut utiliser une EEPROm externe , genre 24LC256 ou 24FC1026..
il est probable qu'elle puisse se trouver à la meme adresse que la petite EEPROm 24C32
presente sur le module RTC DS1307 .... :mur: et ça fout le boxon !
je me suis fait piégé .. du vécu .
il faut donc decaler l'adresse externe via les pins d'adresse A0,A1,A2.


En effet on pourrait en perdre des cheveux et chercher longtemps. Pourtant ces puces ne portent pas le même non. Mais elles peuvent avoir la même adresse ???






@++

LCD I2C
venom
Avatar de l’utilisateur
Passioné
Passioné
Messages : 360
Âge : 32
Enregistré en : avril 2016
Localisation : . <------ ici
Contact :

#27 Message par venom » lun. 12 mars 2018 06:20 lien vers la Data-Sheet : Cliquez ici

Une petite photo pour le fun, après toutes ces galères :sifflotte: :-D
lcd1.png

8-)






@++
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

LCD I2C
venom
Avatar de l’utilisateur
Passioné
Passioné
Messages : 360
Âge : 32
Enregistré en : avril 2016
Localisation : . <------ ici
Contact :

#28 Message par venom » mer. 11 avr. 2018 23:21 lien vers la Data-Sheet : Cliquez ici

Bonjour a tout le forum,

Je me suis décidé a replonger dans ce projet qui est d'afficher un texte sur un ecran lcd en i2c.
Comme vous pouvez le voir ci-dessus, j'ai réussi. Mais il y a un hic :oops: Forcement :mur:
Il s’avère qu'en faite l'affichage sur l’écran est totalement aléatoire. Quand j’alimente la breadbord, parfois l’écran affiche de suite le texte, mais souvent il n'y a rien je doit couper / mettre l'alim entre 3 et 10 voir 15 fois pour que le texte apparait. :eek:
Pensez-vous que c'est un problème hardware ou software ?

Ps : toute les infos (code, schéma, édit projet...) sont a retrouver au 1er post.
D'avance merci pour votre aide.






@++

LCD I2C
Temps-x
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 792
Enregistré en : juillet 2016
Localisation : Terre

#29 Message par Temps-x » jeu. 12 avr. 2018 01:14 lien vers la Data-Sheet : Cliquez ici

Bonjour venom, et tout le forum,

Le gros problème sur un breadboard, c'est les faux contact qui induise des erreurs au moment de la configuration de ton écran LCD.

Je pense que tout vient de là, j'ai dans le passé eu le même problème. :wink:

==> A+
Quand la souris nargue le chat, c'est que son trou n'est pas loin.

LCD I2C
paulfjujo
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 981
Âge : 67
Enregistré en : juillet 2015
Localisation : 01120
Contact :

#30 Message par paulfjujo » jeu. 12 avr. 2018 11:14 lien vers la Data-Sheet : Cliquez ici

bonjour,

la grosse majorité des aleas d'affichage LCD proviennent de delay trop courts.
rajoute un gros delai (1sec) juste apres l'init hardware ..

Code : Tout sélectionner

void main() {
    
ANSEL  0;                            // Configure AN pins as digital I/O
    
ANSELH 0;
    
TRISC 0x00;
    
PORTC 0x00;
    
OSCCON 0b11110010;                   // configuration osc interne 32mhz

    
Delay_ms(1000);     // laisser le temps au LCD de s'alimenter correctement
    
    
I2C1_Init(100000);

    
I2C_LCD_Init();
    
I2C_LCD_Cmd(_LCD_CURSOR_OFF);
    
I2C_LCD_Cmd(_LCD_CLEAR);
    
I2C_Lcd_Out(1,1,txt1);                 // Write text in first row
    
I2C_Lcd_Out(2,1,txt2);                 // Write text in second row

    
while(1) {

    } 



essaie ensuite de doubler ou quadrupler tous les delais utilisés pour le LCD , surtout dans l'init du LCD.
Quite, ensuite à en reduire certains..

Nota: sur certains LCD , il faut un delais supplementaire de l'ordre de 20 mS
pour positionner le curseur , avant d' y ecrire ensuite du texte .


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 12 invités