[Analogique] Mesure du niveau d'eau - Page 8
Répondre à la discussion
Page 8 sur 11 PremièrePremière 8 DernièreDernière
Affichage des résultats 211 à 240 sur 317

Mesure du niveau d'eau



  1. #211
    Yex2

    Re : Mesure du niveau d'eau


    ------

    Citation Envoyé par mag1 Voir le message
    Bonjour,

    Eh non, ce programme et ce schéma (#209) utilisent un LCD série que tu n'as pas.

    On va essayer de pas tout mélanger.
    Je parle du programme de test, (#205), qui doit fonctionner avec un adaptateur I2C sur un 08M2

    Je propose de tester les deux LCD avec ce programme.

    MM
    Comme écrit précédemment, j'ai testé les deux LCD avec le dit programme de test. Le 1602 fonctionne mais pas le 2004.

    De plus, j'ai vérifier le Vo du 2004 et j'obtiens une très faible valeur ± 0.015V. J'ai commandé un autre 2004 sur eBay.

    J'ai presque terminer la construction des 3 nouvelles sondes pour le projet du bateau. Aussitôt terminé, je prendrai des photos.

    Yves

    -----

  2. #212
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    J'ai presque terminer la construction des 3 nouvelles sondes pour le projet du bateau. Aussitôt terminé, je prendrai des photos.
    Yves
    Bonjour,
    Ok pour le 2004, mais ne le jette pas tout de suite.
    Pour les sondes, j'espère que tu as suivi mes conseils, quelques photos intermédiaires m'auraient rassuré.
    Pour le récepteur bateau, il faut un PCB. Que comptes tu faire?

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

  3. #213
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Bonjour,
    Ok pour le 2004, mais ne le jette pas tout de suite.
    Pour les sondes, j'espère que tu as suivi mes conseils, quelques photos intermédiaires m'auraient rassuré.
    Pour le récepteur bateau, il faut un PCB. Que comptes tu faire?

    MM
    Ok je garde le 2004.

    Voici quelques photos des sondes en construction :

    La base de la sonde sera dans un petit tuyau de PVC rempli d'Epoxy
    IMG_20190527_134912531[1].jpg

    La tête est constitué d'une rondelle de bois (contre plaqué) préalablement saturée d'Epoxy.
    IMG_20190527_134918375.jpg

    On voit ici le tout inséré dans l'adaptateur métrique qui remplacera les sondes actuelles. Le tout sera également collé avec de l'Epoxy.
    IMG_20190527_134938318.jpg

    Les tubes thermorétractables (heat shrink) servirons à isoler une tige par sonde. L'autre tige demeure nu pour servir de mise à la terre.
    IMG_20190527_134953597.jpg

    Le circuit électronique sera introduit dans l'adaptateur (tel que suggéré par toi). Il y aura un bouchon (pas sur la photo) dans lequel sera installé un support à prise 232 pour relier chaque sonde au circuit principale.
    IMG_20190527_135014000.jpg

    Je crois que ces sondes devraient être parfaitement hermétique et étanche.

  4. #214
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Je crois que ces sondes devraient être parfaitement hermétique et étanche.
    C'est pas exactement ce que j'ai recommandé....on verra.
    Le bout de la sonde doit être parfaitement étanche.
    On ne connaitra pas la capacité de ces sondes avant les essais. Prévoir de reprogrammer les 08M2 en fonction des résultats.
    Il aurait été prudent de ne faire qu'une sonde entièrement.

    Elles font quel diamètre les rondelles en bois? Et le bouchon?
    Pourquoi de bois et pas du plastique?
    Elles sont en quoi les tiges?

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

  5. #215
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    C'est pas exactement ce que j'ai recommandé....on verra.
    Le bout de la sonde doit être parfaitement étanche.
    On ne connaitra pas la capacité de ces sondes avant les essais. Prévoir de reprogrammer les 08M2 en fonction des résultats.
    Il aurait été prudent de ne faire qu'une sonde entièrement.

    Elles font quel diamètre les rondelles en bois? Et le bouchon?
    Pourquoi de bois et pas du plastique?
    Elles sont en quoi les tiges?

    MM
    Elles sont similaires aux sondes existante du bateau. Elles iront justement à la bonne place.

    Les tiges sont en acier inoxidable. L'embout sera très étanche. L'Epoxy est reconnu pour être 100% étanche. Les molécules d'eau ne traverse pas cette résine. Le capuchon sera en plastique PVC.

    Le bois, une fois enduit d'Epoxy est aussi étanche que le plastique. Je n'avais pas de plastique sous la main mais j'avais du bois...

    Je vais faire une sonde. J'ai un multimètre capable de mesurer la capacité. Je te donnerai mes valeurs minimales et maximales.

  6. #216
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Elles sont similaires aux sondes existante du bateau. Elles iront justement à la bonne place.

    Les tiges sont en acier inoxidable. L'embout sera très étanche. L'Epoxy est reconnu pour être 100% étanche. Les molécules d'eau ne traverse pas cette résine. Le capuchon sera en plastique PVC.

    Le bois, une fois enduit d'Epoxy est aussi étanche que le plastique. Je n'avais pas de plastique sous la main mais j'avais du bois...

    Je vais faire une sonde. J'ai un multimètre capable de mesurer la capacité. Je te donnerai mes valeurs minimales et maximales.
    Bonjour,

    Ok, et pour le circuit imprimé ?

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

  7. #217
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Bonjour,

    Ok, et pour le circuit imprimé ?

    MM
    Citation Envoyé par mag1 Voir le message
    Bonjour,

    Ok, et pour le circuit imprimé ?

    MM
    Pour le circuit, je suis capable de le faire assez petit pour l'insérer à l'intérieur du bouchon, très près de la sonde comme tu le suggérais.

    J'attends juste la confirmation de la hauteur du réservoir. J'ai demandé à ma voisine de mouillage d'aller mesurer à nouveau. Parce que cette sonde serait figé dans l'Epoxy alors je ne doit pas me tromper de mesure...

  8. #218
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Pour le circuit, je suis capable de le faire assez petit pour l'insérer à l'intérieur du bouchon, très près de la sonde comme tu le suggérais.
    J'attends juste la confirmation de la hauteur du réservoir. J'ai demandé à ma voisine de mouillage d'aller mesurer à nouveau. Parce que cette sonde serait figé dans l'Epoxy alors je ne doit pas me tromper de mesure...
    Je parlais du circuit récepteur.
    Il est plus sûr de prendre la même longueur que l'ancienne sonde (mais je ne connais pas ta voisine de mouillage...)

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

  9. #219
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Je parlais du circuit récepteur.
    Il est plus sûr de prendre la même longueur que l'ancienne sonde (mais je ne connais pas ta voisine de mouillage...)

    MM
    Allo Mag,

    Mes sondes sont presque terminées. Il me reste à coller le bouchon et insérer le petit circuit. Je fais ça demain.

    J'ai mesuré la capacitance d'une sonde. J'ai obtenu ceci : 275 pF (en touchant l'eau) et 550 pF lorsque toute la sonde était plongée.
    La croissance m'est apparu linéaire.

    Est-ce que ce sont de bonnes valeurs ?

    Merci,

    Yves

  10. #220
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Est-ce que ce sont de bonnes valeurs ?
    Yves
    Bonjour,

    On essaiera de faire avec...
    Les 550 pf me paraissent faibles pour la longueur de la sonde. La sonde à fil émaillé, plus courte, donnait des valeurs de plusieurs nF.
    Plus les capacité sont importantes, moins les capacités parasites sont gênantes.

    Je vais adapter la calibration à ces valeurs. Il faut faire une tête de sonde sur un bout de véroboard et faire un test en affichant sur le PC, si pas de LCD.

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

  11. #221
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Bonjour,

    On essaiera de faire avec...
    Les 550 pf me paraissent faibles pour la longueur de la sonde. La sonde à fil émaillé, plus courte, donnait des valeurs de plusieurs nF.
    Plus les capacité sont importantes, moins les capacités parasites sont gênantes.

    Je vais adapter la calibration à ces valeurs. Il faut faire une tête de sonde sur un bout de véroboard et faire un test en affichant sur le PC, si pas de LCD.

    MM
    J'ai fait le test dans ma piscine. Elle est au sel. Est-ce que ça peut influencer le résultat ?

    J'ai le LCD 1602 que je peux utiliser pour tester le tout. Tu avais fait un programme pour afficher les 3 réservoirs sur deux lignes. Je comptais l'utiliser pour ce test.

  12. #222
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    J'ai fait le test dans ma piscine. Elle est au sel. Est-ce que ça peut influencer le résultat ?

    J'ai le LCD 1602 que je peux utiliser pour tester le tout. Tu avais fait un programme pour afficher les 3 réservoirs sur deux lignes. Je comptais l'utiliser pour ce test.
    La capacité dépend essentiellement de l'épaisseur de l'isolant.
    Pour l'instant, on s'occupe de la calibration. Elle se fait uniquement sur la sonde n°1 et l'affichage n'utilise que les deux premières lignes.
    Regarde #93 pour la tête de sonde, pas compliqué.
    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  13. #223
    mag1

    Re : Mesure du niveau d'eau

    Suite:

    Proposition de modif du programme 08M2 pour les têtes de sonde:

    Code:
    ;EMETTEUR SERIE pour sonde capacitive  MM 020619
    ;Avec correction de température
    ;sondes Yex2
    #picaxe 08M2    ;directive pour cohérence commandes
    #no_data        ;pour gagner 3 s au chargement code
    ;******* Nominations ports et variables***********
      setfreq m4                ;rappel fréq de base	
      symbol baud= N2400_4     ;constante fréq rs232
    ;**** Nomination des ports
      symbol sonde		= C.4         ;canal commande touch idem C.4 sur M2
      symbol portS		= C.1    ;port liaison série     
    ;****** Boucle de mesure et liaison série ***********    
       Do  
      	touch16 [%11010001],sonde,w13    ;w13 (type word est composé  des deux bytes (b27;b26)
       	readinternaltemp IT_RAW_H,0,w12    ;transmission référence t° interne pour Vcc 5v              
       	serout portS,baud,(b27,b26,b25,b24)     ;deux octets de w13 et 2 octets w12 par serout
            pause 500        ;Faut pas aller trop vite  
      loop
    MM
    Dernière modification par mag1 ; 02/06/2019 à 22h27.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  14. #224
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Suite:

    Proposition de modif du programme 08M2 pour les têtes de sonde:

    Code:
    ;EMETTEUR SERIE pour sonde capacitive  MM 020619
    ;Avec correction de température
    ;sondes Yex2
    #picaxe 08M2    ;directive pour cohérence commandes
    #no_data        ;pour gagner 3 s au chargement code
    ;******* Nominations ports et variables***********
      setfreq m4                ;rappel fréq de base	
      symbol baud= N2400_4     ;constante fréq rs232
    ;**** Nomination des ports
      symbol sonde		= C.4         ;canal commande touch idem C.4 sur M2
      symbol portS		= C.1    ;port liaison série     
    ;****** Boucle de mesure et liaison série ***********    
       Do  
      	touch16 [%11010001],sonde,w13    ;w13 (type word est composé  des deux bytes (b27;b26)
       	readinternaltemp IT_RAW_H,0,w12    ;transmission référence t° interne pour Vcc 5v              
       	serout portS,baud,(b27,b26,b25,b24)     ;deux octets de w13 et 2 octets w12 par serout
            pause 500        ;Faut pas aller trop vite  
      loop
    MM
    Merci Mag,

    Je vais reprogrammer les 08M2 ce matin et faire un essais avec la première sonde.

    Pour le programme du récepteur, je pensais utiliser le LCD 1602 et le programme du message #112 au lieu du #126 puisque mon LCD 2004 ne fonctionne pas. (kit à reprogrammer le 14M2 lorsque je recevrez le nouveau LCD 2004.

    Qu'en penses-tu ?

    Merci,

    Yves

  15. #225
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Merci Mag,

    Je vais reprogrammer les 08M2 ce matin et faire un essais avec la première sonde.

    Pour le programme du récepteur, je pensais utiliser le LCD 1602 et le programme du message #112 au lieu du #126 puisque mon LCD 2004 ne fonctionne pas. (kit à reprogrammer le 14M2 lorsque je recevrez le nouveau LCD 2004.
    Qu'en penses-tu ?
    Merci,
    Yves
    Bonjour,

    Le test ne concerne que phase calibration du programme complet et n'utilise que les deux mêmes lignes d'un 2004 ou 1602. Donc, à priori, rien à reprogrammer.

    MM

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

  16. #226
    Yex2


  17. #227
    Yex2

    Re : Mesure du niveau d'eau

    Bonjour Mag,

    J'ai commencé mes tests aujourd’hui mais sans succès.

    Ma première question : Quelle est la sonde 1, 2 et 3 ?

    Est-ce : C0 = Sonde 0, C1 = Sonde 1 et C2 = Sonde 2 ?

    Pour quoi l'afficheur me donne jusqu'à 9 Sondes ?

    Voici ce qui se passe lorsque je mets sous tension en appuyant sur le bouton 3 secondes :

    IMG_20190603_170936238.jpg

    Une fois le bouton relâché cet écran apparait :
    IMG_20190603_170942631.jpg

    Et ensuite ça défile à tour de rôle sans suivre de séquence précise.
    IMG_20190603_170946499.jpg
    IMG_20190603_170953422.jpg

    Note qu'il ne se passe rien lorsque je touche l'eau avec la sonde. De plus, si je baisse ou remonte la sonde, je ne voit rien apparaitre à "Mesure 0%=" Dans ton vidéo, j'ai vu qu'il y avait une lecture qui apparaissait suivant le signe "=".

    À te lire,

    Merci,

    Yves

  18. #228
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Et le programme pour la prise en compte des ajustables sondes:

    Code:
    ;******* Fin programme principal *****************
    
    ;******* Les sous programmes: ***********************
    ;************** Mesure des sondes, liaison RS232 ***************
    ; Pour les essais avec une seue sonde, le port serin est bloqué à 8 (C.1) au lieu de scanner les 3 sondes
    ; Pour le scanne réel, il faut remplacer le "8" par "sonde" dans la commande serin ci dessous
    mesure:	
    	serin [10000,alarmsonde],sonde  ,baud,b27,b26,b25,b24  ;(b27;b26)mesur et (b13,b12);!! 
    	;mesur=w13 = (b27;b26)    ;reconstitution de la mesure brute
    	;compens = (b25,b24) ft tempé interne 
    	if mesur =0 then alarmsonde    ;erreur de mesure, dépassement 65535
    MM
    Mag en référence à ton code pour le récepteur (post #143)

    Je viens de remarquer que t'avais un instruction entre les lignes 118 et 125.


    serin [10000,alarmsonde],sonde ,baud,b27,b26,b25,b24 ;(b27;b26)mesur et (b13,b12);!!

    à remplacer pour ? :

    serin [10000,alarmsonde],8 ,baud,b27,b26,b25,b24 ;(b27;b26)mesur et (b13,b12);!!


    Est-ce que je dois remplacer le mot SONDE par 8 ? Quel port dois-je utiliser lorsque je fait un test à une seule sonde (C0, C1 ou C2) ?

    Hélas je suis un perdu...

    Merci de tes lumières,

    Yves
    Dernière modification par Yex2 ; 04/06/2019 à 00h23.

  19. #229
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Mag en référence à ton code pour le récepteur (post #143)

    Je viens de remarquer que t'avais un instruction entre les lignes 118 et 125.


    serin [10000,alarmsonde],sonde ,baud,b27,b26,b25,b24 ;(b27;b26)mesur et (b13,b12);!!

    à remplacer pour ? :

    serin [10000,alarmsonde],8 ,baud,b27,b26,b25,b24 ;(b27;b26)mesur et (b13,b12);!!


    Est-ce que je dois remplacer le mot SONDE par 8 ? Quel port dois-je utiliser lorsque je fait un test à une seule sonde (C0, C1 ou C2) ?

    Hélas je suis un perdu...

    Merci de tes lumières,

    Yves
    Bonjour,

    Pour positiver, on peut dire qu'il y a déjà des choses qui fonctionnent.
    Pour le reste, on peut rectifier une erreur. Les broches ont un nom: C.0,C.1,C.2 ou un numéro, respectivement 8,9,10. Donc, C.0 = 8 (et pas 9).
    C'est la sonde utilisée pour la calibration

    L'erreur voudrait dire que la tête de sonde est défaillante.
    J'ai fait une modif sans tester ce que donnait la réponse de la commande "touch"pour une capacité de 500pF. Je vais le faire. Au besoin, je remonterai la maquette .
    Peux tu faire une photo du détail de cette sonde(connexion avec les barres) et de la liaison entre 08M2 et 14M2.
    Il faut vérifier l'alimentation du 08M2
    Je vais simplifier le programme, supprimer les alarmes pour ne laisser que l'essentiel de la phase "calibration".

    A +
    MM
    Dernière modification par mag1 ; 04/06/2019 à 09h54.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  20. #230
    mag1

    Re : Mesure du niveau d'eau

    Voici un code modifié, sans alarme, bouclant uniquement sur le sub de calibration. Le but est uniquement de savoir ce qu'envoie la tête de sonde.

    Code:
    ;Ex: TEST sonde de niveau capacitive Yex2 MM 04/06/2018
    ;**** calibration de la sonde par action 3 sec sur le poussoir de validation  ***************
    ;**** La réponse de la comande TOUCH est considérée comme linéaire (elle l'est...)
    ;**** Le sous programme "calib:" mesure deux points arbitraires 0 et 100%  *********
    ;**** mesure de la référence interne de température dans l'émetteur 08M2
    ;**** Ces trois mesures sont mémorisées en EEPROM
    ;**** Calcul de la proportionnalité entre la mesure et les valeurs mémorisées ****
    ;**** Calcul d'une correction de température (par rapport à la t° lors de la calibration)
    ;**** Affichage du Niveau en % et en litres
    ;**** Affiche les étapes successives **************
    
    #picaxe 14M2	;directive picaxe utilisé (pour erreur de commandes)
    setfreq M16		;fréquence 16MHz			
    ;****** Nominations constantes ********
    symbol baud= N2400_16      ;vitesse liaison RS232
    symbol capacit= 316			;capacité réservoir en L
    symbol gallon=6951			;capacité en /100 de Gallon Imp
    ;****** noms variables word *********  
    symbol mesur		= w13    ;(b27,b26)
    symbol compens		= w12    ;(b25,b24)
    symbol bas			= w11    ;ref niveau bas
    symbol memcomp		= w10		;mémo réf compensation t°
    symbol delta		= w9    	;delta haut-bas
    symbol total		= w8		;total réservoirs en %
    symbol varw			= w7		;variable tempotaire
    symbol deb			= w6
    symbol cpt			= w5
    ;***** noms variables bytes ****************
     ; b1,b2,b3,b4 utilisés dans bintoascii
    symbol car		=b5
    symbol dat		=b6
    symbol sonde	=b7
    symbol posi		=b8
    symbol ajust	=b9
    ;******* noms variables bit sur b0 ***********
    symbol rsbit=bit0
    symbol calibr=bit1
    ;******* Nominations ports ***********
    symbol sonde0 	= C.0       ;entrée sonde0 n°broche=8
    symbol sonde1 	= C.1       ;entrés sonde1	n°broche=9
    symbol sonde2	= C.2	      ;entrée sonde2 n°droche=10
    symbol valid  	= pinC.3    ;valeur poussoir de validation
    symbol potaj2	= B.1
    symbol potaj3	= B.2
    
    ; Initialisation I2C . pour 14M2:sda sur B.4 ; scl sur B.3
    	hi2csetup i2cmaster,%01001110, i2cfast_16, i2cbyte
    ;** Entrée des données texte dans "table" ***********
    	table 0,(51,50,40,12,6,1)		;initialisation LCD 4 bits
    	table 20,("calibration 0%      ")
    	table 40,("mesure  0%=         ")
    	table 60,("  calibraton 100%   ")
    	table 80,("  mesure 100%=      ")
    	table 100,("    calibration     ")
    	table 120,("    effectu",1,"e       ")	;1 pour é
    	table 140,("   DEFAUT SONDE     ")
    	table 160,("   DEFAUT TIMEOUT   ")
    	table 180,(2,4,14,17,31,16,14,0)	;descripton lettre é	
    	table 200,("  SONDE nß          ")	;ß= alt+0223 =° sur clavier
    	table 220,("RESERVES D'EAU:    %")
    	table 240,("#1    %    L   ,  GI")
    	table 260,("#2    %    L   ,  GI")
    	table 280,("#3    %    L   ,  GI")
    	pullup %0100000000000    ;pullup sur C.3
    
    ;***** macro texte ***************
    	#macro text(posi,deb,varw)
    	car=posi:gosub EnvoiByteComm	;pos curseur en 128 
    	for cpt=deb to varw				
    		readtable cpt,car				;texte 
    		gosub EnvoiByteData		
    	next
    	#endmacro
    
    ; Initialisation LCD *********
    	for cpt=0 to 5
    		readtable cpt,car		
    		gosub EnvoiByteCommInit
    	next
    	pause 500	;temps init du LCD
    	; définition des caractères ajoutés en CGRAM
    	; def du é en CGRAM 1 **************************
    	car=1*8|$40 :gosub EnvoiByteComm
    	for cpt=180 to 187
    		readtable cpt,car		;description du é vers CGRAM n°1
    		gosub EnvoiByteData		
    	next
    
    ;******* Début Programme principal *****************  	
    	car=1:gosub EnvoiByteComm	;raz afficheur 
    ;***************************************
    	goto calib  ;pour test sondes Yex2
    ;**************************************************************
    	read 0,word bas, word delta,word memcomp        ; lecture param droire + t° pendant calib
    	;if bas =0 then calib   ; Vers calib si aucun paramètre enregistré
    
    ;***** boucle pricipale **************************************
    	
    debut:
    	goto calib		;pour test sonde Yex2
    	calibr=0		;on est pas en calibration	
       text(128,220,239)	;texte "RESERVES D'EAU:   %"
    	text(192,240,259)	;texte fixe
    	text(148,260,279)
    	text(212,280,299) 
    	Do  
    		time=0
    		do while valid=0				;si valid=1, on entre pas
    			if time> 3 then calib	;demande de calibration 
    		loop 		
    		total=0
    		for sonde=8 to 10    ;n° des broches : broches C.0=8,C.1=9,C.3=10			
    	   	gosub mesure    
    			gosub calcul
    			gosub affich	
    			total=total+mesur							
    		next
    		gosub afftotal	   
    	loop
    ;******* Fin programme principal *****************
    
    ;******* Les sous programmes: ***********************
    ;************** Mesure des sondes, liaison RS232 ***************
    ; Pour les essais avec une seue sonde, le port serin est bloqué à 8 (C.0) au lieu de scanner les 3 sondes
    ; Pour le scanne réel, il faut remplacer le "8" par "sonde" dans la commande serin ci dessous
    mesure:	
    	serin [10000,alarmsonde],sonde  ,baud,b27,b26,b25,b24  ;(b27;b26)mesur et (b13,b12);!! 
    	;mesur=w13 = (b27;b26)    ;reconstitution de la mesure brute
    	;compens = (b25,b24) ft tempé interne 
    	if mesur =0 then alarmsonde    ;erreur de mesure, dépassement 65535
    	if sonde=8 then
    		mesur=mesur/100
    	elseif sonde=9 then
    		readadc potaj2,ajust	;ajust=0 à 255
    		ajust=ajust/5			;255/10=25 curseur milieu=12
    		ajust=75+ajust			;ajust = 88 à 112
    		mesur=mesur/ajust
    	elseif sonde=10 then
    		readadc potaj3,ajust
    		ajust=ajust/5			;255/10=25 curseur milieu=12
    		ajust=75+ajust			;ajust = 88 à 112
    		mesur=mesur/ajust			
    	endif
    	if memcomp>compens then     
    	  compens=memcomp- compens    ;plus froid
    	  compens=compens /4    ;ici un rapport 4 entre les variations mesure et ref t° interne
    	  mesur=mesur + compens	  
    	else
    	  compens=compens - memcomp    ;plus chaud
    	  compens=compens /4
    	  mesur=mesur - compens ;on garde les chiffres significatifs	 
    	endif    
    	return
    
    '******** Affichage des valeurs lues ***********
    affich:		
     	if sonde=8 then
    		posi=192				
    	elseif sonde=9 then
    		posi=148		
    	elseif sonde=10 then
    		posi=212	
    	endif
    
    	car=posi+3:gosub EnvoiByteComm	;pos curseur aff % 
    	bintoascii mesur,b1,b1,b1,b2,b3     ;décomposition ascii
    	for cpt=0 to 2
    		lookup cpt,(b1,b2,b3),car  ;affichage valeur en %
    		gosub EnvoiByteData
    	next
    		
    	car=posi+8:gosub EnvoiByteComm	;pos curseur aff L
    	varw=capacit *mesur/100 
    	bintoascii varw,b1,b1,b1,b2,b3     
    	for cpt=0 to 2
    		lookup cpt,(b1,b2,b3),car	;affichage valeur en L
    		gosub EnvoiByteData
    	next
    	
    	car=posi+13:gosub EnvoiByteComm	;pos curseur
    	varw=60*mesur	;décomposition 6951*mesur/100 =60*mesur
    	varw=9*mesur+varw	;+9*mesur
    	varw=mesur/2+varw	;+ mesur/2 (51/100 oui, bon...)
    	bintoascii varw,b1,b1,b2,b3,b4  ;pas écraser les octets utiles  	 
    	for cpt=0 to 1
    		lookup cpt,(b1,b2),car	;affichage valeur en L
    		gosub EnvoiByteData
    	next	
    	car=posi+16:gosub EnvoiByteComm	;pos curseur 
    	for cpt=0 to 1
    		lookup cpt,(b3,b4),car	;affichage valeur en L
    		gosub EnvoiByteData
    	next	
    	pause 1000			;pour stabiliser l'affichage
      return
    
    ;afichage du total des 3 réservoirs en % (max=100%)
    afftotal:
    	total=total/3
    	bintoascii total,b1,b1,b1,b2,b3   
    	car=144 :gosub EnvoiByteComm	;position % global
     	for cpt=0 to 2
    		lookup cpt,(b1,b2,b3),car	;affichage valeur en %
    		gosub EnvoiByteData
    	next
    	return	
    
    ;******* Calibration, Calcul paramétres, Affichage, Mise en mémoires ***
    calib:
    	car=1:gosub EnvoiByteComm	;raz afficheur 	
    	calibr=1 	
    	text(128,20,39)				;texte "calobration 0%"
    	do:loop while valid=0		;attente relachement poussoir
    	text(192,40,59)				;texte "mesure 0=%"      
    	do  
    		;serin [20000,alarmsonde],8,baud,b27,b26,b25,b24 ;(b27,b26) mesur (b25,b24) compens        
    		;if mesur =0 then gosub alarmsonde    ;erreur de mesure, dépassement 65535	
    		serin 8,baud,b27,b26,b25,b24 ;(b27,b26) mesur (b25,b24) compens	
    		mesur=mesur/100    ;on garde les chiffres significatifs 		
    		bas=mesur                           ;mesure du point 0% 		
    		bintoascii mesur,b1,b1,b1,b2,b3     ;affichage
    		car=204: gosub EnvoiByteComm		;pos curseur en 205
    		for cpt=0 to 2
    			lookup cpt,(b1,b2,b3),car		;affichage valeur 0%
    			gosub EnvoiByteData
    		next
    		pause 500	
    	loop while valid=1  				;attente validation 
    	goto calib
    ;*****************FIN  boucle pour test sonde Yex2                          
    	car=1:gosub EnvoiByteComm		;raz affichage
    	text(128,60,79)					;texte calibration 100%
    	do:loop while valid=0     		;attente relachement poussoir
    	text(192,80,99)					;texte valeur mesure 100%=
    	do
    		serin 8,baud,b27,b26,b25,b24
    		if mesur =0 then gosub alarmsonde    ;erreur de mesure sonde, dépassement 65535
    		mesur=mesur/100        ;on garde les chiffres significatifs  		     
    		bintoascii mesur,b1,b1,b1,b2,b3			
    		car=207: gosub EnvoiByteComm		;pos curseur en 205
    		for cpt=0 to 2
    			lookup cpt,(b1,b2,b3),car		;affichage mesure   100%
    			gosub EnvoiByteData
    		next	
    	pause 500					
    	loop while valid=1
    	if bas>mesur then calib		;erreur de procédure. retour début      
    	do:loop while valid=0		;attente relachement poussoir
    	delta=mesur-bas 
    	write 0,word bas,word delta,word compens      ;Mise en mémoire EEPROM . 
    	text(128,100,119)			;texte calibration   
    	text(192,120,139)			;texte effectuée
    	pause 4000  				;Temps d'affichage
    	reset
     
    ;*********** Calcul pourcentage ***********************
    calcul:      
    	if mesur <=bas then 		; on est en dessous de 0
    		mesur=0					;butée à 0
    	else
    		mesur=mesur-bas 		;calage à l'origine	 
    	 	mesur=100*mesur/delta  ;proportionnalité ,unités en pourcents
    	endif                              
    	return
    
      ;***** Alarmes dépassement Time Out liaison sonde (temporaire) et défaut sonde **********    
    Alarmsonde:
    	car=1:gosub EnvoiByteComm	;raz afficheur
    	if mesur=0 then 	;erreur de mesure sonde (défaut isolant ?)
    	text(128,140,159)
    	else					;temps TIMEOUT dépassé (liaison coupée?)
    	text(128,160,179)
    	endif
    	text(192,200,219)	;texte sonde n°
    	sonde =sonde-7		;pour numéroter les sondes de 1 à 3
    	bintoascii sonde,b1,b2,b3
    	car=203:gosub EnvoiByteComm	;pos curseur en 128
    	car=b3: gosub EnvoiByteData 	;sonde en défaut 	
    	pause 6000        ;temps de lecture		
    	if calibr=1 then calib			;on était en calibration..on y retourne
    	goto debut  	;retour au début de la boucle principale 
     
    ; 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
    Le temps que je monte une maquette et tester le 08M2 avec les valeurs des sondes (200 - 600 pF)

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

  21. #231
    Yex2

    Re : Mesure du niveau d'eau

    Merci Mag,

    Afin de faciliter le trouble shooting et d'isoler les problèmes, je vais monté un 08M2 sur la même platine que le récepteur. Ensuite je comptais utiliser deux condensateurs (200 et 600 pF) sur la broche C4 pour simuler la sonde à 0% et 100%.

    Pour isoler d'avantage les problèmes, que disais-tu si je mettais les condensateurs directement su la broche C0 du 14M2 ? Est-ce que cette approche est bonne ?

    Tu ne m'as pas répondu concernant la commande serin. Dois-je remplacer le mot "sonde" par "8" pour la calibration d'une seule sonde ou j'utilise le programme tel quel ?

    Merci,

    Yves

  22. #232
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Merci Mag,

    Afin de faciliter le trouble shooting et d'isoler les problèmes, je vais monté un 08M2 sur la même platine que le récepteur. Ensuite je comptais utiliser deux condensateurs (200 et 600 pF) sur la broche C4 pour simuler la sonde à 0% et 100%.

    Pour isoler d'avantage les problèmes, que disais-tu si je mettais les condensateurs directement su la broche C0 du 14M2 ? Est-ce que cette approche est bonne ?

    Tu ne m'as pas répondu concernant la commande serin. Dois-je remplacer le mot "sonde" par "8" pour la calibration d'une seule sonde ou j'utilise le programme tel quel ?
    Merci,

    Yves
    Non, tu ne changes rien. Pour l'instant, on se limite à la calibration sur une seule sonde sur C.0. Remplacer sonde par 8, c'est pour simuler 3 sondes en n'en connectant qu'une, on en est pas là.

    Tu peux remplacer la tête de sonde par un 08M2 à côté du 14M2 avec une liaison courte et un condo sur C.4 du 08M2. C'est lui qui fait la conversion entre "touch16" et serial out. Un condo sur le 14M2 ne sert à rien.
    La réponse à ta question est le programme modifié en #230. c'est lui qu'il faut utiliser.

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

  23. #233
    Yex2

    Re : Mesure du niveau d'eau

    Allo Mag,

    Bien compris pour le code #230.

    Voici mes nouveaux test.

    J'avais des condo 350 pF et 1 nF (1000 pF) sous la main.

    Alors j'ai initialisé le calibrage. voici la photo :

    IMG_20190604_123034898.jpg
    Ensuite j'ai relâche le bouton et j'avais le condo de 350 pF sur C4. J'ai ue lecture de 43. Voici la photo :

    IMG_20190604_123042961.jpg


    Ensuite j'ai appuyé momentanément sur le bouton poussoir mais rien ne s'est enregistré je crois.
    J'ai quand même changé de condo pour le 1 nF. Voici la photo :
    IMG_20190604_123102035.jpg

    Comme tu vois, le programme reste toujours sur calibration 0%. On ne sort jamais de cette étape.

    Voici la platine. Comme tu peux voir, le 08M2 est très proche du 14M2
    IMG_20190604_123006869_HDR.jpg

  24. #234
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Allo Mag,

    Bien compris pour le code #230.

    Voici mes nouveaux test.

    J'avais des condo 350 pF et 1 nF (1000 pF) sous la main.

    Alors j'ai initialisé le calibrage. voici la photo :

    Pièce jointe 390026
    Ensuite j'ai relâche le bouton et j'avais le condo de 350 pF sur C4. J'ai ue lecture de 43. Voici la photo :

    Pièce jointe 390027


    Ensuite j'ai appuyé momentanément sur le bouton poussoir mais rien ne s'est enregistré je crois.
    J'ai quand même changé de condo pour le 1 nF. Voici la photo :
    Pièce jointe 390028
    Comme tu vois, le programme reste toujours sur calibration 0%. On ne sort jamais de cette étape.
    Voici la platine. Comme tu peux voir, le 08M2 est très proche du 14M2
    Pièce jointe 390029
    OK, donc ca fonctionne.
    La calibration consiste à enregistrer deux valeurs une pour 0% (sonde hors de l'eau) et 100% (sonde niveau max).

    Dans ce test, on boucle sur le 0%. on voit que la valeur change en fonction de la capacité de 43 à 125. (En fait, c'est 4300 et 12500 / 100)
    Il faut régler la sensibilité de la sonde (Ex : http://electromag1.wifeo.com/lecture...ive-picaxe.php)
    Dans ce tableau, je n'ai pas testé toutes les combinaisons.

    Dans les essais précédents, il y a un pb qui fait que la sonde renvoie la valeur 0, ce qui se produit en cas de défaut, d'où le message d'erreur;

    Il faut maintenant connecter ta sonde à la place des condos et du 08M2
    J'en reviens à la demande précédente: photo du circuit sur la sonde (connexions, alimentation, etc).

    Si tout est négatif, remplace les barres par une capa... pour voir

    MM
    Dernière modification par mag1 ; 04/06/2019 à 19h12.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  25. #235
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    OK, donc ca fonctionne.
    La calibration consiste à enregistrer deux valeurs une pour 0% (sonde hors de l'eau) et 100% (sonde niveau max).

    Dans ce test, on boucle sur le 0%. on voit que la valeur change en fonction de la capacité de 43 à 125. (En fait, c'est 4300 et 12500 / 100)
    Oui mais justement, je ne crois pas que le 100% s'ajuste ! Regardes la deuxième et troisième photo de mon message précédant #233.

    C'est toujours écrit "Calibration 0%" & "mesure 0%=043"
    et ensuite : Calibration 0%" & "mesure 0%=125" et non pas "Calibration 100% = 125"

    C'est toujours 0% et on ne voit jamais 100%. De plus ça ne sort jamais de la calibration...

    Sur ta page on voit bien calibration 100% après avoir ajuster le premier : Nom : cali100.jpg
Affichages : 103
Taille : 120,0 Ko


    Citation Envoyé par mag1 Voir le message
    Il faut régler la sensibilité de la sonde (Ex : http://electromag1.wifeo.com/lecture...ive-picaxe.php)
    Dans ce tableau, je n'ai pas testé toutes les combinaisons.

    Dans les essais précédents, il y a un pb qui fait que la sonde renvoie la valeur 0, ce qui se produit en cas de défaut, d'où le message d'erreur;

    Il faut maintenant connecter ta sonde à la place des condos et du 08M2
    J'en reviens à la demande précédente: photo du circuit sur la sonde (connexions, alimentation, etc).

    Si tout est négatif, remplace les barres par une capa... pour voir

    MM
    J'ai photographié ma sonde et publié à #226.

  26. #236
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Oui mais justement, je ne crois pas que le 100% s'ajuste ! Regardes la deuxième et troisième photo de mon message précédant #233.

    C'est toujours écrit "Calibration 0%" & "mesure 0%=043"
    et ensuite : Calibration 0%" & "mesure 0%=125" et non pas "Calibration 100% = 125"
    C'est normal, c'est fait exprès.

    Je répète: Le code modifié boucle sur la calibration 0%. Le code modifié sert justement à visualiser la valeur envoyée par la sonde, 0% ou 100%, on s'en fiche pour l'instant. On enregistre rien, on regarde, c'est tout.

    Il faut visualiser une valeur avec TA sonde , qui devrait évoluer en la plongeant dans l'eau.
    En #226, on voit pas comment c'est câblé, comment c'est relié, comment ...
    Quand on verra une valeur avec TA sonde, on ajustera et tout fonctionnera.

    Essai: Supprimer la liaison avec les barres et remplacer par le condo de 1nF

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

  27. #237
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    C'est normal, c'est fait exprès.

    Je répète: Le code modifié boucle sur la calibration 0%. Le code modifié sert justement à visualiser la valeur envoyée par la sonde, 0% ou 100%, on s'en fiche pour l'instant. On enregistre rien, on regarde, c'est tout.

    Il faut visualiser une valeur avec TA sonde , qui devrait évoluer en la plongeant dans l'eau.
    Comme je t'avais écrit pus tôt cette semaine, les sondes varient de ± 300 pF à ± 550 pF.


    Citation Envoyé par mag1 Voir le message
    En #226, on voit pas comment c'est câblé, comment c'est relié, comment ...
    Quand on verra une valeur avec TA sonde, on ajustera et tout fonctionnera.
    Je sais c'est compacte et près à installer. Je vais faire un essais sous peu.

    Citation Envoyé par mag1 Voir le message
    Essai: Supprimer la liaison avec les barres et remplacer par le condo de 1nF

    MM
    Tu veux dire sur la platine ? Lorsque j'ajoute un condo de 1 nF, ça me donne une lecture de 000. AU moment de le débrancher, ça augmente à ± 550 pendant une fraction de seconde.
    Dernière modification par Yex2 ; 05/06/2019 à 00h36.

  28. #238
    Yex2

    Re : Mesure du niveau d'eau

    Allo Mag,

    Bon je viens de faire plusieurs essais avec le nouveau code et le code d’origine et ça fonctionne bien.

    Maintenant reste à voir pourquoi ça ne fonctionne pas avec les sondes. Je pense qu'il y a un problème d'alimentation. Demain je vais les ouvrir et tout vérifier.

    Je te tiens au courant.

    Merci de ton aide.

    Yves

  29. #239
    Yex2

    Re : Mesure du niveau d'eau

    Allo Mag,

    Bon ça avance. Toutes mes sondes fonctionnent

    Les valeurs retourner ne sont pas pareil. J'imagine que c'est pour ça que tu as prévu les deux potar.

    Si je prends la plus faible sonde comme référence 100% et qu'ensuite je mets les sonde 2, et 3 sans recalibrer voici ce que ça donne :

    Sonde #1 : 0-100%
    Sonde #2 : 0-106%
    Sonde #3 : 30-130%

    Les trois sondes en construction
    IMG_20190606_170612242.jpg

    Le circuit émetteur
    IMG_20190606_170629313.jpg

    Close up
    IMG_20190606_170651490.jpg

    Produit final :
    IMG_20190606_181744785.jpg

    Prochaine étape : fabrication du circuit récepteur avec tous les ports pour recevoir les 3 sondes.

  30. #240
    Yex2

    Re : Mesure du niveau d'eau

    Allo Mag,

    Bon j'y suis presque ! Le Récepteur est sur un circuit. Il fonctionne !

    J'ai remplacé le "8" par "sonde" dans la commande "serin" afin de scanner toutes les sondes, ligne 107

    serin [10000,alarmsonde], sonde ,baud,b27,b26,b25,b24 ;(b27;b26)mesur et (b13,b12);!!

    J'ai branché les trois sondes et activé la calibration sur la sonde #1. Une fois la calibration terminée, j'ai obtenu automatiquement une lecture de 110% pour la sonde #2 et 131% pour la #3.

    J'ai tenté d'ajuster les potars mais sans succès...

    Voici les photos :

    Le circuit est prêt pour sa boite. Le bouton rouge c'est pour la calibration.
    IMG_20190606_232006429.jpg

    Les trois sonde dans un sceau. Éventuellement je vais refaire la calibration dans la piscine afin d'avoir vraiment 100% de hauteur d'eau.
    IMG_20190606_231317653.jpg

    Sonde #1 à 100%. Les autres sont plus haute tel que je me doutais (lire mes messages précédant).
    IMG_20190606_231941891_HDR.jpg

    Bon j'ai hâte de te lire...

    A+

    Yves

Page 8 sur 11 PremièrePremière 8 DernièreDernière

Discussions similaires

  1. Mesure niveau d'eau
    Par invitebfa4bae5 dans le forum Électronique
    Réponses: 90
    Dernier message: 22/03/2020, 07h16
  2. Mesure de Niveau
    Par invite7a7934da dans le forum Électronique
    Réponses: 2
    Dernier message: 30/12/2012, 14h50
  3. Mesure niveau d'eau
    Par invite1d577638 dans le forum Électronique
    Réponses: 18
    Dernier message: 17/12/2012, 17h53
  4. Mesure d'un niveau d'eau
    Par invite4764f378 dans le forum Électronique
    Réponses: 1
    Dernier message: 30/11/2012, 11h03
  5. Mesure de Niveau d'eau
    Par invite7b584edd dans le forum Électronique
    Réponses: 16
    Dernier message: 02/12/2009, 14h22
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...