frm010 et lcd 4 lignes

#1
Bonjour

Est-'il réaliste de faire fonctionner un afficheur lcd 2004 (4 lignes donc), avec un FRM010?.

Cette question car en I2C, je n'y arrive pas.

Merci de vos réponses
 
#3
Bonjour et merci pour ta réponse

Je consulte très souvent son site, qui me sert de "bible".
J'ai fais le même montage et appliqué le même programme, mais l'afficheur ne veut rien savoir...
Je pense que c'est peut-être un problème d'adresse?
J'ai aussi essayé avec 2 afficheurs et expandeurs différents, mais toujours rien, même pas un affichage bizarre..

J'ai aussi bien vérifié d’être connecté sur les bornes I2C du 08M

Du coup je pense me tourner vers un frm010, plus facile pour moi
 
#4
...les bornes I2C du 08M
A moins de gérer, par programme, les entrées/sorties (bit banging), le 08M n'a pas de port I2C, contrairement au 08M2. Manquait le 2?
Le compilateur devrait signaler des erreurs (hi2csetup, ...) si configuré pour 08M.

Voir éventuellement côté alimentation : la tension est-elle suffisante? 5V?
 
Last edited:
#5
Désolé, c'est bien un M2.

Au départ j'étais sur pile, avec 4 volts et quelques.
Je suis passé sur alim de labo, avec un beau 5V, mais idem.
La longueur de mes fils fI2C est de 30cm environ, est-ce trop?, mais au pire je devrais avoir un affichage bizaroide.
 
#6
Avez-vous installé des résistances de pull-up (4k7) sur SCL et SDA? C'est indispensable!

Votre schéma et votre code pourrait aider. La longueur est tout a fait acceptable ; mes câbles (Grove) sont souvent de 50 cm.
 
#7
Voici le schéma, (pris chez Mag1), le potar n'est pas cablé. j'avais fait avec et c'est pareil.
J'ai bien mis les resistances de 4.7K entre scl et le +, et sda et le +
Voici le code


Code:
Le code d'essai:

;Utilisation expandeur PCF8574 sur LCD MM 19082017
;Teste minimum LCD1602
;    SCL sur C.1
;    SDA sur C.2
#picaxe 08M2
dirsC =%000111
symbol rsbit=bit0
symbol cpt=b1
symbol car=b2
symbol dat=b3
symbol vari= w13
    setfreq M32             
; Initialisation I2C 4 bits , etc ********
    hi2csetup i2cmaster,%01001110, i2cslow_32, i2cbyte       
; Initialisation LCD *********
    for cpt=0 to 5
        lookup cpt,($33,$32,$28,$c,$6,$01),car
        gosub EnvoiByteCommInit
    next
    pause 100    ;temps init du LCD               
;  Affichage texte ***********************           
    car= 128    'curseur début ligne1
    gosub EnvoiByteComm   
    for cpt=0 to 6
    lookup cpt,("Bonjour"),car
    GOSUB EnvoiByteData   
    next   
    car= 192    'curseur  ligne2
    gosub EnvoiByteComm   
    for cpt=0 to 7
    lookup cpt,("Enfin !!"),car
    GOSUB EnvoiByteData   
    next   
    do loop            ;boucle d'arret programme
                
; Sub envoi vers LCD via I2C *************
EnvoiByteCommInit:
    pause 15
EnvoiByteComm:
    rsbit=0
EnvoiByteData:
;1ère moitié
    dat=car & $F0 | %1000 | rsbit ;%1000 pour l'?clairage
    hi2cout (dat)
    pause 2       
    dat=dat | %1100
    hi2cout (dat)    ;pulse sur E cad P2
    pause 2            ;pause 2 pour 32 MHz
    dat=dat | %1000    ;fin pulse
    hi2cout (dat)
    pause 2   
;2ème moitié
    dat=car & $0F * 16 | %1000 | rsbit
    hi2cout (dat)
    pause 2
    dat=dat | %1100
    hi2cout (dat)
    pause 2
    dat=dat | %1000 & %1011
    hi2cout (dat)   
    rsbit=1
    return
Test I2C.JPG
 

MGU

Senior Member
#8
Voici le schéma, (pris chez Mag1), le potar n'est pas cablé. j'avais fait avec et c'est pareil.
J'ai bien mis les resistances de 4.7K entre scl et le +, et sda et le +
Voici le code


Code:
Le code d'essai:

;Utilisation expandeur PCF8574 sur LCD MM 19082017
;Teste minimum LCD1602
;    SCL sur C.1
;    SDA sur C.2
#picaxe 08M2
dirsC =%000111
symbol rsbit=bit0
symbol cpt=b1
symbol car=b2
symbol dat=b3
symbol vari= w13
    setfreq M32          
; Initialisation I2C 4 bits , etc ********
    hi2csetup i2cmaster,%01001110, i2cslow_32, i2cbyte    
; Initialisation LCD *********
    for cpt=0 to 5
        lookup cpt,($33,$32,$28,$c,$6,$01),car
        gosub EnvoiByteCommInit
    next
    pause 100    ;temps init du LCD            
;  Affichage texte ***********************        
    car= 128    'curseur début ligne1
    gosub EnvoiByteComm
    for cpt=0 to 6
    lookup cpt,("Bonjour"),car
    GOSUB EnvoiByteData
    next
    car= 192    'curseur  ligne2
    gosub EnvoiByteComm
    for cpt=0 to 7
    lookup cpt,("Enfin !!"),car
    GOSUB EnvoiByteData
    next
    do loop            ;boucle d'arret programme
             
; Sub envoi vers LCD via I2C *************
EnvoiByteCommInit:
    pause 15
EnvoiByteComm:
    rsbit=0
EnvoiByteData:
;1ère moitié
    dat=car & $F0 | %1000 | rsbit ;%1000 pour l'?clairage
    hi2cout (dat)
    pause 2    
    dat=dat | %1100
    hi2cout (dat)    ;pulse sur E cad P2
    pause 2            ;pause 2 pour 32 MHz
    dat=dat | %1000    ;fin pulse
    hi2cout (dat)
    pause 2
;2ème moitié
    dat=car & $0F * 16 | %1000 | rsbit
    hi2cout (dat)
    pause 2
    dat=dat | %1100
    hi2cout (dat)
    pause 2
    dat=dat | %1000 & %1011
    hi2cout (dat)
    rsbit=1
    return
View attachment 22516
Bonjour,

C'est quoi le module ? eBay à 1 euro ? photo svp
Il affiche quoi ? rien de rien ? des carrés?
Attention au réglage de la polarisation (le petit potar) , si il n'est pas réglé, on ne voit rien.

MM ( MGU alias mag1)
 
#9
Bonjour

Miracle !!!
Dans le doute, j'ai changé de platine picaxe, de picaxe, toujours un 8M2 et d'afficheur (le 2004 que j'avais déjà essayé).
Et la le message "Bonjour, enfin".
Il me reste a voir qui est le fautif, et essayer de comprendre le programme pour l'adapter a mes besoins.
Je pense pour le module I2C, qui provient si je me souvient bien de chez Ali.
 
#10
En fait j'ai acheté 2 afficheurs 1602 et le module I2C séparément, (en chine bien sur).
L'autre 1602 fonctionne déjà avec un frm010.
Comme il me faut un 2004 pour une autre appli, j'en ai acheté un, déjà équipé du module I2C.
et je voulais faire des essais sur le 1602 restant que j'ai équipé d'un module I2C.

Merci de me confirmer que le prog de MGU, qui fonctionne sur le 2004, va aussi pour le 1602.

ci-joint une photo du module.(défaillant?)

Merci de votre patience, je vous tient au courant
I2C02.jpg
 

MGU

Senior Member
#11
En fait j'ai acheté 2 afficheurs 1602 et le module I2C séparément, (en chine bien sur).
L'autre 1602 fonctionne déjà avec un frm010.
Comme il me faut un 2004 pour une autre appli, j'en ai acheté un, déjà équipé du module I2C.
et je voulais faire des essais sur le 1602 restant que j'ai équipé d'un module I2C.

Merci de me confirmer que le prog de MGU, qui fonctionne sur le 2004, va aussi pour le 1602.
Oui, tout fonctionne en adaptant les valeurs de début de ligne du curseur (148,192, etc, voir tableau)

Pour le défaut, l'adaptateur semble soudé directement, sans connecteur. L'éclairage fonctionne t il? Il est alimenté via un transistor, à vérifier.

MM
 
#12
En effet j'ai soudé l'adaptateur directement, je vais mettre un connecteur pour au moins essayer le lcd avec un frm010.

les valeurs sont 128 et 192, donc c'est bon pour un 1602, je pense?
L'éclairage fonctionne et est alimenté via un transistor.
 
#15
Bon
ça fonctionne, en fait j'ai garder la routine envoibytedata du 1er prog et inséré l'envoi de la valeur de la variable.
Merci pour ce programme qui va bien m'aider
 
Top