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

Mesure du niveau d'eau



  1. #271
    Antoane
    Responsable technique

    Re : Mesure du niveau d'eau


    ------

    Bonjour,

    L'inductance linéique d'un coax dont l’âme a un diamètre R1 et le blindage un diamètre interne R2, vaut :

    La capacité linéique vaut quant à elle :

    où ε0 et εr sont les permittivité diélectriques du vide (ε0 ~ 10-9/(36pi)) et de l'isolant du coax (a priori : εr~2 à 4).
    µ0 et est la perméabilité magnétique du vide (environ 4*10-7*pi) .
    γ est un paramètre caractérisant la géométrie du cable, c'est lui qui permet d'ajuster l'impédance caractéristique, définie comme :


    Utiliser un coax plutôt qu'un fil émaillé permet d'avoir une meilleure stabilité, les propriétés de la sonde étant majoritairement dues au à l'isolant du coax lui-même. A l'opposé, la forte capacité linéique apportée par le fil émaillé simplifie le traitement.
    Je ne sais pas ce qu'il en est de la compatibilité sur le plus ou moins long terme, en particulier si cette eau est destinée à la consommation.

    -----
    Dernière modification par Antoane ; 15/06/2019 à 13h19.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  2. #272
    Yex2

    Re : Mesure du niveau d'eau

    Bonjour Antoane

    J'ai fait des tests ce week-end. J'avais du câble coaxiale RG59 - 50 ohm et du fils émaillé Aluminium 22 AWG (± 0.6 mm^2).

    Sur 4' (± 1.2 m) j'ai obtenu les résultats suivants :

    RG 59 >> hors de l'eau = < 20 pF, touchant à l'eau 34 pF, 1.2m = 300 pF

    Alu émaillé 22 AWG >> hors de l'eau = < 20 pF, touchant à l'eau 128 pF, 1.2m = 7.5 nF

    Le fil émaillé me donne une plage bien plus grande. De plus, sans les outils adéquats, j'ai trouvé difficile de dégainer le coaxial sans abimer le polypropylène. Mon choix, pour ma prochaine sonde, se penche donc vers le fil émaillé.

    L'eau de mes réservoirs, autant du bateau que pour le chalet est utilisée pour tout incluant la consommation. Dans ce dernier cas, j'utilise un filtre céramique/charbon @ 0.5 micron avant de boire.

    Sur mon bateau, je rempli mes réservoirs uniquement de source dont l'eau est traitée. Le filtre sert surtout à enlever tout goût et micro organismes qui pourraient se dévellopper dans un environnement tropical.

    À mon chalet je pompe l'au du lac pour le moment. (éventuellement je vais récupérer l'eau de pluie). Le filtre sert à enlever les organisme vivant, le goût et tout ce qui pourrait être en suspension dans l'eau du lac.

    @MAG1 : j'ai commencé la construction de ma nouvelle sonde. Je suis particulièrement heureux des résultats préliminaires. Pour ce projet, un seul réservoir pour le moment. J'aimerais savoir s'il serait possible d'adapter un de tes projets à mes contraintes.

    Tu as publié ce projet : http://electromag1.wifeo.com/lecture...ive-picaxe.php

    Pourrait-on l'adapter de la façon suivante : Usage d'un LCD 1602 iC2 (que j'ai déjà) ? Est-ce que la LED d'alarme peut-être clignotante au lieu de stable ? Ça attire plus l'attention...

    Devrions-nous partir un nouveau sujet ? Nous sommes rendu à 272 messages quand même...

  3. #273
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Alu émaillé 22 AWG >> hors de l'eau = < 20 pF, touchant à l'eau 128 pF, 1.2m = 7.5 nF
    Le fil émaillé me donne une plage bien plus grande. De plus, sans les outils adéquats, j'ai trouvé difficile de dégainer le coaxial sans abimer le polypropylène. Mon choix, pour ma prochaine sonde, se penche donc vers le fil émaillé.
    Devrions-nous partir un nouveau sujet ? Nous sommes rendu à 272 messages quand même...
    Bonjour,

    Il faudrait au moins séparer le projet bateau et le chalet.
    Pour le reste....passons.

    Avec le fil émaillé, il faudra adapter la sensibilité de la commande touch16 (tu connais). Il ne faut pas pendant l'étalonnage dépasser la valeur retournée de 655 sinon, erreur.

    Oui, on peut

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

  4. #274
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Bonjour,

    Il faudrait au moins séparer le projet bateau et le chalet.
    Pour le reste....passons.

    Avec le fil émaillé, il faudra adapter la sensibilité de la commande touch16 (tu connais). Il ne faut pas pendant l'étalonnage dépasser la valeur retournée de 655 sinon, erreur.

    Oui, on peut

    MM
    Le projet bateau est terminé.

    Ok pour "655", je vais ajuster la commande touch16 en conséquence. Je dois fabriquer de nouveau circuit cette semaine. Je te tiens au courant.

    Merci,

    Yves

  5. #275
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Le projet bateau est terminé.
    Yves
    Ah, ben c'est bien, avec le programme final ? Les trois sondes et le LCD2004 ?

    Si on peut voir ça en photo, merci

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

  6. #276
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Ah, ben c'est bien, avec le programme final ? Les trois sondes et le LCD2004 ?

    Si on peut voir ça en photo, merci

    MM
    Salut MAG,

    Je suis toujours en attente de mon nouveau 2004. C'est long parce que depuis que les Américains se chamaillent avec la Chine, j'ai l'impression que les denrées perdent du temps dans les ports...

    Sinon l'essentiel (les sondes) fonctionnent. Ça devrait être "Plug & Play" de reprogrammer le 14M2 pour recevoir le 2004. Je prendrai des photos lorsque j'aurai reçu le nouveau LCD.

    Pour le 1602 que j'ai, il était destiné au projet du réservoir du chalet. La sonde du chalet est terminée. Je vais faire de nouveau test cet après-midi et commencer la construction des circuits. Je te tiens au courant. Les photos suivront sous peu.

    A+

    Yves

  7. #277
    Yex2

    Re : Mesure du niveau d'eau

    Salut MAG,

    La nouvelle sonde (celle pour le chalet) est prête ainsi que l'émetteur.

    J'ai utilisé la valeur par défaut %00001010 pour la commande touch16. Elle retourne les valeurs suivants : 009 @ 0% et 580 @ 100%. Les autres valeurs pour la commande touch16 étaient tous hors champs.

    Maintenant il ne me manque que le nouveau programme du 14M2 pour une seule sonde avec alarme de niveau bas. Le réservoir est rectangulaire. Il a 380L (100 Gallons Américains) un affichage du genre serait parfait :

    Réserve : 000%
    Minimum : 010%

    Pas besoin de spécifier les gallons puisque le % se converti directement en gallon.

    J'aimais bien ton programme que tu as publié ici : http://electromag1.wifeo.com/lecture...ive-picaxe.php

    Est-il possible de l'adapté pour un LCD 1602 iC2 ? Peut-on faire clignoter la LED "rouge" quelques pulsation/seconde plutôt que continu ?

    Voici les photos de ma nouvelle sonde (avec explication)

    On voit ici la sonde et l'émetteur 08M2. Présentement, le réservoir du chalet est équipé d'un passe coque dans lequel un coude est visé dans le réservoir et un tuyau transparent est raccordé de l'autre côté. Dans le tuyau se trouve une petite flotte qui monte et descend. Mais voilà, le tuyau est devenu opaque avec le temps et on ne voit plus la flotte.

    La nouvelle sonde prendra la place de ce système archaïque de mesure.
    IMG_20190621_144808975.jpg

    Ici on voit une vue proche de la base de la sonde. Le fil émaillé passe en bas du coude, remonte au dessus du tuyau et redescend.
    IMG_20190621_144818303.jpg

    Le haut de la sonde. Le fil émaillé est collé dans l'epoxy
    IMG_20190621_144830168.jpg

    Une fois la sonde installé sur le réservoir, j'ajouterai le petit tuyau de plastique que je vais coller (toujours avec de l'Epoxy) afin d'empêcher la pluie de toucher le fil émaillé ce qui fausserait surement les mesures.
    IMG_20190621_144919720.jpg

    Finalement l'émetteur. Ce dernier sera installé sous le réservoir à l’abri des intempéries. Le fil téléphonique dans la photo était seulement pour faire les tests. Le vrai aura environ 10 mètres et rejoindra le récepteur qui sera à l'intérieur du chalet.
    IMG_20190621_144949609.jpg

    Bon voilà pour aujourd’hui,

    Merci,

    YVes

  8. #278
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    J'ai utilisé la valeur par défaut %00001010 pour la commande touch16. Elle retourne les valeurs suivants : 009 @ 0% et 580 @ 100%. Les autres valeurs pour la commande touch16 étaient tous hors champs.
    Maintenant il ne me manque que le nouveau programme du 14M2 pour une seule sonde avec alarme de niveau bas. Le réservoir est rectangulaire. Il a 380L (100 Gallons Américains) un affichage du genre serait parfait :
    Réserve : 000%
    Minimum : 010%
    YVes
    Bizarre que cette valeur par défaut convienne. Avec une configuration sur un octet, il y a plus de 200 combinaisons possibles.

    Et avec tous les essais faits pour le bateau... chiche que tu présentes un programme adapté.

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

  9. #279
    mag1

    Re : Mesure du niveau d'eau

    Bonjour,

    Il existe en PVC des tas de manchons, réducteurs (ex 30x80), bouchons filetés, étanches etc...
    Je ne connais pas la version définitive, ni les contraintes mais je n'aime pas beaucoup ce fil émaillé sortant du tube, le raccordement au 08M2 doit être le plus court possible, même si avec plusieurs nF, c'est moins critique.
    Remarque: plus le fil émaillé est gros, plus les capacités mesurées sont importantes, c'est un paramètre d'ajustement.
    L'époxy, c'est bien, mais pas démontable.
    Normalement, la masse (référence) court sur le côté du tube, à l'intérieur.

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

  10. #280
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Bonjour,

    Il existe en PVC des tas de manchons, réducteurs (ex 30x80), bouchons filetés, étanches etc...
    Je ne connais pas la version définitive, ni les contraintes mais je n'aime pas beaucoup ce fil émaillé sortant du tube, le raccordement au 08M2 doit être le plus court possible, même si avec plusieurs nF, c'est moins critique.
    Allo MAG, le fil émaillé est temporairement long. En réalité il ne sera que de 6 ou 7 pouces, soit légèrement plus que la longueur du coude qui se rend au réservoir. J'aimais mieux le sortir plus long. C'est plus facile de couper que de souder, surtout à 8 mètres du sol, là ou se trouve le réservoir...

    Citation Envoyé par mag1 Voir le message
    Remarque: plus le fil émaillé est gros, plus les capacités mesurées sont importantes, c'est un paramètre d'ajustement.
    L'époxy, c'est bien, mais pas démontable.
    Normalement, la masse (référence) court sur le côté du tube, à l'intérieur.

    MM
    Concernant la masse, tu penses que j'aurais dû plutôt le faire suivre le long du fil émaillé ? Est-ce que les valeurs aurait changées ? En ce moment j'obtiens de ± 50 pF à 8 nF et ça me parait stable.

    Concernant l'Epoxy, oui je sais. C'est pour ça que j'attends que tout sois à mon goût avant de finaliser. L'avantage de l'Epoxy c'est qui si c'est bien fait, ça survit longtemps. Le climat en forêt est un climat d'extrême avec des -40C l'hiver et + 35C l'été. De la pluie à se noyer debout autant que de la neige à s'étouffer. Parfois les journée sont très sec, d'autre fois pus humide que les tropique. Tous mes petits projets d'électroniques, qui n'étaient pas protégé, on pas fait deux ans. Maintenant je scelle tout dans l'Epoxy pour un maximum de protection.

    Merci,

    Yves

  11. #281
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message

    Et avec tous les essais faits pour le bateau... chiche que tu présentes un programme adapté.

    MM
    Bien désolé...

    J'ai commencé à lire la doc pour programmer les PICAXE. Mais je me rends compte que j'ai du chemin à faire pour arriver à la ligne d'arrivée. La dernière fois que j'ai programmé en BASIC ça fait pas loin de 30 ans. Disons que j'ai quelques blanc...

  12. #282
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Bien désolé...
    J'ai commencé à lire la doc pour programmer les PICAXE. Mais je me rends compte que j'ai du chemin à faire pour arriver à la ligne d'arrivée. La dernière fois que j'ai programmé en BASIC ça fait pas loin de 30 ans. Disons que j'ai quelques blanc...
    Mouais.....

    J'ai modifié le programme, et pour faire clignoter la led, je propose ça:
    https://www.gotronic.fr/art-led-5-mm-l56bhd-2104.htm
    3,5 à 12 V....Je pense que la R de limitation est incorporée.
    Sinon, une modif de plus, on remplace la pause de la boucle principale par le clignotement led (3 x 300ms)

    Code:
    ;Ex: sonde de niveau capacitive MM 22/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)
    ;**** Mesure du minimum sur potentiomètre
    ;**** Affichage du Niveau et minimum en % 
    ;**** 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
    ;****** noms variables word *********  
    symbol mesur		= w13    ;(b27,b26)
    symbol compens		= w12    ;(b25,b24)
    symbol haut			= w11    ;réf niveau haut
    symbol bas			= w10    ;ref niveau bas
    symbol memcomp		= w9    	;mémo réf compensation t°
    symbol delta		= w8    	;delta haut-bas
    ;***** noms variables bytes ****************
     ; b1,b2,b3 utilisés dans bintoascii
    symbol cpt		=b4
    symbol car		=b5
    symbol dat		=b6
    symbol sonde	=b7
    symbol posi		=b8
    symbol deb		=b9
    symbol fin		=b10
    symbol minim	=b11
    ;******* noms variables bit ***********
    symbol rsbit=bit0
    symbol calibr=bit1
    ;******* Nominations ports ***********
    symbol sonde0 	= C.0       ;entrée sonde0 n°broche=6
    symbol potar = C.4				;pot réglage mini
    symbol valid  	= pinC.3    ;valeur poussoir de validation
    symbol led		= B.0
    
    ; 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 $10,("calibration 0%  ")
    	table $20,("mesure 0%=      ")
    	table $30,("calibraton 100% ")
    	table $40,("mesure 100%=    ")
    	table $50,("  calibration   ")
    	table $60,("   effectu",1,"e    ")	;1 pour é
    	table $70,("DEFAUT SONDE    ")
    	table $80,("DEFAUT TIMEOUT  ")
    	table $90,(2,4,14,17,31,16,14,0)	;descripton lettre é	
    	table $A0,("NIVEAU     MINI ")	;ß= alt+0223 =° sur clavier
    	pullup %0100000000000    ;pullup sur C.3
    
    ;***** macro texte ***************
    	#macro text(posi,deb,fin)
    	car=posi:gosub EnvoiByteComm	;pos curseur en 128 
    	for cpt=deb to fin				
    		readtable cpt,car				;texte calibration 0%
    		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=$90 to $97
    		readtable cpt,car		;description du é vers CGRAM n°1
    		gosub EnvoiByteData		
    	next
    
    ;******* Début Programme principal *****************    
    	pause 500      ' initiation LCD	
    	car=1:gosub EnvoiByteComm	;raz afficheur 
    	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:
    		car=1:gosub EnvoiByteComm		;raz affichage
    		text(128,$A0,$AF)					;affichage titre
    	calibr=0		;on est pas en calibration	   
    	Do  
    		time=0
    		do while valid=0				;si valid=1, on entre pas
    			if time> 3 then calib	;demande de calibration 
    		loop 				
    	   	gosub mesure    
    		gosub calcul
    		gosub affich
    		gosub mini	
                	pause 1000			;pour stabiliser l'affichage   
    	loop
    ;******* Fin programme principal *****************
    
    ;******* Les sous programmes: ***********************
    ;********* led clignottante rouge niveau min *************
    mini:
    	readadc potar,minim
    	minim= 100 *minim/255
    	if mesur < minim then
    		high led
    	else
    		low led
    	endif
    	return
    ;************** Mesure des sondes, liaison RS232 ***************
    ; Pour les essais ave 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],8,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 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/100 + compens	  
    	else
    	  compens=compens - memcomp    ;plus chaud
    	  compens=compens /4
    	  mesur=mesur/100 - compens ;on garde les chiffres significatifs	 
    	endif        
    	return
    '******** Affichage des valeurs lues ***********
    affich:	
     	car=193:gosub EnvoiByteComm	;pos curseur en ft sonde ligne1
    	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="%":gosub EnvoiByteData
    	car=203:gosub EnvoiByteComm
    	bintoascii minim,b1,b2,b3     ;décomposition ascii
    	for cpt=0 to 2
    		lookup cpt,(b1,b2,b3),car  ;affichage valeur en %
    		gosub EnvoiByteData
    	next	
    	car="%":gosub EnvoiByteData
    	
      return 
    ;******* Calibration, Calcul paramétres, Affichage, Mise en mémoires ***
    calib:	
    	calibr=1 
    	car=1:gosub EnvoiByteComm		;raz affichage
    	text(128,$10,$1F)
    	do:loop while valid=0     ;attente relachement poussoir
    	text(192,$20,$2F)      
    	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
    		mesur=mesur/100        ;on garde les chiffres significatifs
    		bas=mesur                           ;mesure du point 0% 		
    		bintoascii mesur,b1,b1,b1,b2,b3     ;affichage
    		car=205: 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                           
    	car=1:gosub EnvoiByteComm		;raz affichage
    	text(128,$30,$3F)					;texte calibration 100%
    	do:loop while valid=0     		;attente relachement poussoir
    	text(192,$40,$4F)					;texte valeur mesure 100%=
    	do
    		serin [20000,alarmsonde],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          
    		haut=mesur             ;mesure du point 100%       
    		bintoascii mesur,b1,b1,b1,b2,b3			
    		car=205: 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>haut then calib 				;erreur de procédure. retour début      
    	do:loop while valid=0				;attente relachement poussoir
    	delta=haut-bas 
    	write 0,word bas,word delta,word compens      ;Mise en mémoire EEPROM 
    	text(128,$50,$5F)			;texte calibration
    	text(192,$60,$6F)			;texte effectuée
    	pause 6000  ;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:
    	if mesur=0 then 	;erreur de mesure sonde (défaut isolant ?)
    	text(128,$70,$7F)
    	else					;temps TIMEOUT dépassé (liaison coupée?)
    	text(128,$80,$8F)
    	endif
    	text(192,$A0,$AF)	;texte sonde n°
    	sonde =sonde-7		;pour numéroter les sondes de 1 à 3
    	bintoascii sonde,b1,b2,b3
    	car=201:gosub EnvoiByteComm	;pos curseur en 128
    	car=b3: gosub EnvoiByteData 	;sonde en défaut 	
    	pause 6000        ;temps de lecture	
    	car=1:gosub EnvoiByteComm		;raz affichage
    	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
    MM
    Dernière modification par mag1 ; 22/06/2019 à 15h22.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  13. #283
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    La nouvelle sonde (celle pour le chalet) est prête ainsi que l'émetteur.
    J'ai utilisé la valeur par défaut %00001010 pour la commande touch16. Elle retourne les valeurs suivants : 009 @ 0% et 580 @ 100%. Les autres valeurs pour la commande touch16 étaient tous hors champs.
    Je ne sais pas comment tu fais, mais après essais, une capa de 6800pF retourne 0 (hors limite) avec [%00001010]
    Avec [%11111011], j'ai 405

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

  14. #284
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Je ne sais pas comment tu fais, mais après essais, une capa de 6800pF retourne 0 (hors limite) avec [%00001010]
    Avec [%11111011], j'ai 405

    MM
    Oui j'avais effectivement 0 "hors limite".

    La lecture de 8 nF est donnée avec une multimètre "cheapette" de Chine. Peut-être que ce n'est pas très précis...

    Toujours est-il que seul la commande %00001010 me retournait une plage complète. Cependant, après avoir vérifié le code, je me suis rendu compte que le symbole "%" était manquant lors de mes essais. Est-ce pour ça que ça fonctionnait pas bien ?

    Je vais vérifier et te revenir...

  15. #285
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Mouais.....

    J'ai modifié le programme, et pour faire clignoter la led, je propose ça:
    https://www.gotronic.fr/art-led-5-mm-l56bhd-2104.htm
    3,5 à 12 V....Je pense que la R de limitation est incorporée.
    Sinon, une modif de plus, on remplace la pause de la boucle principale par le clignotement led (3 x 300ms)


    MM

    Merci MAG, je vais essayer ça aujourd'hui. Je vois que tu utilises un 14M2.

    Je constate que la LED est sur B.0, le potar sur C.4 et la sonde sur C.0. sda sur B.4 et scl sur B.3.

    C.3 c'est toujours pour déclancher la calibration ?


    Bon je commence à comprendre comment programmer. J'ai écrit ceci pour faire clignoter une LED ordinaire en modifiant légèrment ton code. Dis-moi si ça de l'allure ou suis-je das les pétattes comme on dit ici

    Code:
    ;********* led clignottante rouge niveau min *************
    mini:
    	readadc potar,minim
    	minim= 100 *minim/255
    	if mesur < minim then alarm
    	else
    		low led
    	endif
    	return
    ;********* faire clignoter 2 fois/seconde ***********	
    alarm:   
          high led    
          pause 500
          low led       
          pause 500
          goto alarm
          return

  16. #286
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Merci MAG, je vais essayer ça aujourd'hui. Je vois que tu utilises un 14M2.
    Je constate que la LED est sur B.0, le potar sur C.4 et la sonde sur C.0. sda sur B.4 et scl sur B.3.
    C.3 c'est toujours pour déclancher la calibration ?
    Bon je commence à comprendre comment programmer. J'ai écrit ceci pour faire clignoter une LED ordinaire en modifiant légèrment ton code. Dis-moi si ça de l'allure ou suis-je das les pétattes comme on dit ici

    Code:
    ;********* led clignottante rouge niveau min *************
    mini:
    	readadc potar,minim
    	minim= 100 *minim/255
    	if mesur < minim then alarm
    	else
    		low led
    	endif
    	return
    ;********* faire clignoter 2 fois/seconde ***********	
    alarm:   
          high led    
          pause 500
          low led       
          pause 500
          goto alarm
          return
    Y a encore un peu de travail...

    Un sous programme est appelé par un gosub et revient par le return, après le gosub.

    then alarm est équivalent à then goto alarm . Dans ce cas, alarm n'est pas un sous programme, c'est un déroutement sans retour.
    De toute façon, avec un gosub, ça ne fonctionne pas non plus. A quoi servirait le return, on ne l'atteint jamais.

    Voici ce que je propose: Le fonctionnement de l'ensemble reste à tester.

    Code:
    debut:
    		car=1:gosub EnvoiByteComm		;raz affichage
    		text(128,$A0,$AF)					;affichage titre
    	calibr=0		;on est pas en calibration	   
    	Do  
    		time=0
    		do while valid=0				;si valid=1, on entre pas
    			if time> 3 then calib	;demande de calibration 
    		loop 				
    	   	gosub mesure    
    			gosub calcul
    			gosub affich
    			gosub mini			   
    	loop
    ;******* Fin programme principal *****************
    
    ;******* Les sous programmes: ***********************
    ;********* led clignottante rouge niveau min *************
    mini:
    	readadc potar,minim
    	minim= 100 *minim/255
    	if mesur < minim then
    		for cpt=1 to 4
    			high led
    			pause 1000 ;250ms à 16MHz
    			low led
    			pause 1000
    		next
    	else
    		low led
    		pause 4000	;1s à 16MHz
    	endif
    	return
    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  17. #287
    Yex2

    Re : Mesure du niveau d'eau

    Allo MAG,

    Bon le problème avec la routine précédente est lorsqu'il entre dans la sub "alarm" le programme n'en ressort plus. Même lorsque je rajoutais de l'eau, le programme ne lisait plus la "mesur".

    Alors j'ai plutôt modifié ton code de la façon suivant :

    Code:
    mini:
    	readadc potar,minim
    	minim= 100 *minim/255
    	if mesur < minim then 	
            high led    
            pause 250		;********* faire clignoter 4 fois/seconde ***********	
            low led       
            pause 250      
    	high led    
            pause 250
            low led       
    	else
    		low led
    	endif
    	return
    Bon c'est pas parfait mais ça me convient pour le moment.

    Merci beaucoup pour le reste du code. Je vais étudier ça à fond afin d'être capable d'en faire moi-même. Je risque d'avoir quelques questions...

    Yves

  18. #288
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Y a encore un peu de travail...

    Un sous programme est appelé par un gosub et revient par le return, après le gosub.

    then alarm est équivalent à then goto alarm . Dans ce cas, alarm n'est pas un sous programme, c'est un déroutement sans retour.
    De toute façon, avec un gosub, ça ne fonctionne pas non plus. A quoi servirait le return, on ne l'atteint jamais.

    Voici ce que je propose: Le fonctionnement de l'ensemble reste à tester.

    Code:
    debut:
    		car=1:gosub EnvoiByteComm		;raz affichage
    		text(128,$A0,$AF)					;affichage titre
    	calibr=0		;on est pas en calibration	   
    	Do  
    		time=0
    		do while valid=0				;si valid=1, on entre pas
    			if time> 3 then calib	;demande de calibration 
    		loop 				
    	   	gosub mesure    
    			gosub calcul
    			gosub affich
    			gosub mini			   
    	loop
    ;******* Fin programme principal *****************
    
    ;******* Les sous programmes: ***********************
    ;********* led clignottante rouge niveau min *************
    mini:
    	readadc potar,minim
    	minim= 100 *minim/255
    	if mesur < minim then
    		for cpt=1 to 4
    			high led
    			pause 1000 ;250ms à 16MHz
    			low led
    			pause 1000
    		next
    	else
    		low led
    		pause 4000	;1s à 16MHz
    	endif
    	return
    MM
    Allo MAG,

    Effectivement ma routine "alarm" était un cul de sac. J'ai écrit quelques chose qui fonctionne, quoique un peu boiteux. Demain j'essaye ta proposition.

    Bonne soirée et merci beaucoup,

    Yves

  19. #289
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Allo MAG,
    Effectivement ma routine "alarm" était un cul de sac. J'ai écrit quelques chose qui fonctionne, quoique un peu boiteux. Demain j'essaye ta proposition.
    Bonne soirée et merci beaucoup,
    Yves
    Bonjour,
    Ça devrait donner le même résultat

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

  20. #290
    mag1

    Re : Mesure du niveau d'eau

    Bonjour,

    Je reviens sur la sonde.
    J'ai lu "Alu émaillé" ? Pourquoi ce choix? L'aluminium ne se soude pas à l'étain, et les risques de corrosion galvanique ne sont pas négligeables.

    Il y a un avantage à placer le circuit 08M2 dans la tête de sonde. Avec tout ce que l'on trouve en PVC, c'est facile.

    37447.jpg
    38019.jpg
    sonde chalet.JPG

    Mais bon ....

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

  21. #291
    mag1

    Re : Mesure du niveau d'eau

    Suite:

    J'ai oublié la sortie de câble, en dessous, à côté du tube, avec un câble blindé deux fils

    https://www.gotronic.fr/art-presse-etoupe-pg7b-6376.htm

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

  22. #292
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Bonjour,

    Je reviens sur la sonde.
    J'ai lu "Alu émaillé" ? Pourquoi ce choix? L'aluminium ne se soude pas à l'étain, et les risques de corrosion galvanique ne sont pas négligeables.
    Bien j'avais pas remarqué que c'était de l'ALU. Lorsque je suis arriver à la maison avec le paquet, c'est là que je m'en suis rendu compte.
    Je sais c'est pas l'idéal mais rappelle toi que je suis un mordu de l'Epoxy. Ça devrait pas causer de soucis...

    Citation Envoyé par mag1 Voir le message
    Il y a un avantage à placer le circuit 08M2 dans la tête de sonde. Avec tout ce que l'on trouve en PVC, c'est facile.
    Oui je suis tout à fait d'accord. Cependant, pour le projet du réservoir du chalet, il faut comprendre deux choses :

    1- le réservoir est juché dans un "château d'eau". C'est essentiellement une tour de 8-9 mètres de haut. Il est difficile et un peu périlleux de vouloir aller au dessus du réservoir pour y faire un trou et installer une sonde. De plus l'émetteur serait directement exposé aux intempéries...

    2- comme j'avais expliqué plus haut, j'avais déjà un trou de fait à la base du réservoir dans lequel est visé un coude. Sur le coude il y a un tube transparent (du moins jadis) avec une flotte qui monte et décent. L'idée est de remplacer ce tube déjà existant par la nouvelle sonde. Donc pas de nouveau trou et surtout beaucoup plus facile d'accès avec une échelle.

    Je vais au chalet sous peu et je ferai des photos. Tu comprendras pourquoi ça ne me dit pas trop de faire le singe la-haut...

    La sonde est faite. J'ai ajouté un fil gnd à l'intérieur du tube. Je constate que la sonde est plus précise et plus linéaire de cette façon. Demain je vais la terminer.

    J'ai commencé mon ré-apprentissage du code BASIC. J'ai fait une modif pour allumer 3 DEL au lieu d'une seule.

    50% et + >> DEL verte (sur B.2)
    entre 20 et 50% >> DEL jaune (sur B.1)
    entre 10 et 20% >> DEL rouge (toujours sur B.0)
    moins de 10% >> DEL rouge clignotante.

    Je vais essayer le code modifié aussitôt que ma sonde est prête. Il faut que l'Epoxy durcisse un peu...

    Merci MAG

    Yves

  23. #293
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Bien j'avais pas remarqué que c'était de l'ALU. Lorsque je suis arriver à la maison avec le paquet, c'est là que je m'en suis rendu compte.
    Je sais c'est pas l'idéal mais rappelle toi que je suis un mordu de l'Epoxy. Ça devrait pas causer de soucis...



    Oui je suis tout à fait d'accord. Cependant, pour le projet du réservoir du chalet, il faut comprendre deux choses :

    1- le réservoir est juché dans un "château d'eau". C'est essentiellement une tour de 8-9 mètres de haut. Il est difficile et un peu périlleux de vouloir aller au dessus du réservoir pour y faire un trou et installer une sonde. De plus l'émetteur serait directement exposé aux intempéries...

    2- comme j'avais expliqué plus haut, j'avais déjà un trou de fait à la base du réservoir dans lequel est visé un coude. Sur le coude il y a un tube transparent (du moins jadis) avec une flotte qui monte et décent. L'idée est de remplacer ce tube déjà existant par la nouvelle sonde. Donc pas de nouveau trou et surtout beaucoup plus facile d'accès avec une échelle.

    Je vais au chalet sous peu et je ferai des photos. Tu comprendras pourquoi ça ne me dit pas trop de faire le singe la-haut...

    La sonde est faite. J'ai ajouté un fil gnd à l'intérieur du tube. Je constate que la sonde est plus précise et plus linéaire de cette façon. Demain je vais la terminer.

    J'ai commencé mon ré-apprentissage du code BASIC. J'ai fait une modif pour allumer 3 DEL au lieu d'une seule.

    50% et + >> DEL verte (sur B.2)
    entre 20 et 50% >> DEL jaune (sur B.1)
    entre 10 et 20% >> DEL rouge (toujours sur B.0)
    moins de 10% >> DEL rouge clignotante.

    Je vais essayer le code modifié aussitôt que ma sonde est prête. Il faut que l'Epoxy durcisse un peu...

    Merci MAG

    Yves
    Hello,
    J'ai lu trop vite, je n'avais pas compris cette histoire de tube extérieur. J'espère qu'il n'y aura pas de problème. Le haut du réservoir est bien 120cm au dessus du bas, là où il y a le trou. J'ai pas encore tout compris.
    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  24. #294
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Hello,
    J'ai lu trop vite, je n'avais pas compris cette histoire de tube extérieur. J'espère qu'il n'y aura pas de problème. Le haut du réservoir est bien 120cm au dessus du bas, là où il y a le trou. J'ai pas encore tout compris.
    MM
    Oui le réservoir a 120 cm de haut. Le trou est à ± 5 cm de la base afin accommoder le passe coque que j'ai utilisé. Ça nous donne une hauteur d'eau de 115 cm environ.

    J'ai pas mal envisagé les problèmes, qui seront essentiellement le climat. C'est pour ça que je compte installer l'émetteur dans un boitier étanche sous le réservoir à ± 15 cm de la sonde.

    Présentement j'ai fait des tests avec 40 cm de fil émaillé qui sort de la sonde et ça fonctionne assez bien depuis que j'ai ajouté un fil nu (raccordé au gnd) à l'intérieur du tube. Lorsqu'il sera réduit à ± 15 cm, ça devrait être mieux.

    Aujourd'hui je finalise la sonde. Je vais la rendre assez imperméable à la base de façon à ce que le fil émaillé ne soit jamais exposé.

    J'ai fait plusieurs essais erreur concernant le code touche16 et à date la meilleur combinaison est celle-ci : [%000 11 000] (sans les espaces). Tous les autres codes que tu suggérais sortait de la zone et renvoyais une erreur. Ma sonde a un grande plage d'opération, de l'ordre de 50 pF à 8 nF.

    Une fois la sonde terminée, je compte ré-essayer différent code pour trouver la meilleur plage possible.

  25. #295
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    J'ai fait plusieurs essais erreur concernant le code touche16 et à date la meilleur combinaison est celle-ci : [%000 11 000] (sans les espaces). Tous les autres codes que tu suggérais sortait de la zone et renvoyais une erreur. Ma sonde a un grande plage d'opération, de l'ordre de 50 pF à 8 nF.
    Une fois la sonde terminée, je compte ré-essayer différent code pour trouver la meilleur plage possible.
    Hello,

    Avec (%00011000], c'est possible, les 11 au centre diminuent fortement la sensibilité. Avec le [%00001010] en #284, j'avais un gros doute.
    La seule combinaison suggérée est [%11111011] en #283, qui devrait fonctionner, mais peut être pas mieux.
    Il semble que vu la capacité à mesurer, les 11 au centre soient obligatoires.

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

  26. #296
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Hello,

    Avec (%00011000], c'est possible, les 11 au centre diminuent fortement la sensibilité. Avec le [%00001010] en #284, j'avais un gros doute.
    La seule combinaison suggérée est [%11111011] en #283, qui devrait fonctionner, mais peut être pas mieux.
    Il semble que vu la capacité à mesurer, les 11 au centre soient obligatoires.

    MM
    Salut MAG,

    Voici les deux combinaisons qui ont fonctionner à date:

    touch16 [%01011000],sonde,w13 plage retournée : de 5 à 450
    touch16 [%11111011],sonde,w13 plage retournée : de 9 à 550

    Laquelle suggères-tu de prendre ?

    *****************

    J'ai ajusté ton programme afin de faire allumer 3 DEL (Verte, Jaune, Rouge et Rouge clignotante). Voici les modifications de code que j'ai testé avec succès :

    Code:
     ; b1,b2,b3 utilisés dans bintoascii
    symbol cpt		=b4
    symbol car		=b5
    symbol dat		=b6
    symbol sonde	=b7
    symbol posi		=b8
    symbol deb		=b9
    symbol fin		=b10
    symbol minim	=b11
    symbol verteON	=b12
    symbol jauneON	=b13
    
    ;******* Nominations ports ***********
    symbol sonde0 	= C.0       	;entrée sonde0 n?broche=6
    symbol potar  	= C.4			;pot règlage mini
    symbol valid  	= pinC.3    	;valeur poussoir de validation
    symbol ledROUGE	= B.0
    symbol ledJAUNE	= B.1
    symbol ledVERTE	= B.2
    
    
    ;********* Indicateur LED et alarme minimum *************
    mini:
    	readadc potar,minim
    	minim= 100 *minim/255
    	verteON= 5 *minim			; Valeure minimale (50%) pour allumet LED verte
    	jauneON= 2 *minim			; Valeure minimale (entre 20 et 50%)pour allumet LED jaune
    
    	if mesur < minim then	; LED rouge clignote parce que -10% ds réservoir
    		for cpt=1 to 4
    			high ledROUGE
    			pause 1000 ;250ms à 16MHz
    			low ledROUGE
    			pause 1000
    		next
    		pause 4000	;1s à 16MHz
    
    	else if mesur < jauneON then	; LED rouge s'allume si entre 10% et 20% dans réservoir
    		low ledVERTE
    		low ledJAUNE
    		high ledROUGE
    			
    	else if mesur < verteON then 	; LED jaune s'allume si entre 20% et 50% dans réservoir
    		low ledVERTE
    		high ledJAUNE
    		low ledROUGE	
    
    	else if mesur => verteON then	; LED verte s'allume si plus de 50% dans réservoir
    		high ledVERTE
    		low ledJAUNE
    		low ledROUGE
    	
    	endif
    	return

  27. #297
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Salut MAG,
    Voici les deux combinaisons qui ont fonctionner à date:
    touch16 [%01011000],sonde,w13 plage retournée : de 5 à 450
    touch16 [%11111011],sonde,w13 plage retournée : de 9 à 550
    Laquelle suggères-tu de prendre ?

    *****************

    J'ai ajusté ton programme afin de faire allumer 3 DEL (Verte, Jaune, Rouge et Rouge clignotante). Voici les modifications de code que j'ai testé avec succès :

    Code:
     ; b1,b2,b3 utilisés dans bintoascii
    symbol cpt		=b4
    symbol car		=b5
    symbol dat		=b6
    symbol sonde	=b7
    symbol posi		=b8
    symbol deb		=b9
    symbol fin		=b10
    symbol minim	=b11
    symbol verteON	=b12
    symbol jauneON	=b13
    
    ;******* Nominations ports ***********
    symbol sonde0 	= C.0       	;entrée sonde0 n?broche=6
    symbol potar  	= C.4			;pot règlage mini
    symbol valid  	= pinC.3    	;valeur poussoir de validation
    symbol ledROUGE	= B.0
    symbol ledJAUNE	= B.1
    symbol ledVERTE	= B.2
    
    
    ;********* Indicateur LED et alarme minimum *************
    mini:
    	readadc potar,minim
    	minim= 100 *minim/255
    	verteON= 5 *minim			; Valeure minimale (50%) pour allumet LED verte
    	jauneON= 2 *minim			; Valeure minimale (entre 20 et 50%)pour allumet LED jaune
    
    	if mesur < minim then	; LED rouge clignote parce que -10% ds réservoir
    		for cpt=1 to 4
    			high ledROUGE
    			pause 1000 ;250ms à 16MHz
    			low ledROUGE
    			pause 1000
    		next
    		pause 4000	;1s à 16MHz
    
    	else if mesur < jauneON then	; LED rouge s'allume si entre 10% et 20% dans réservoir
    		low ledVERTE
    		low ledJAUNE
    		high ledROUGE
    			
    	else if mesur < verteON then 	; LED jaune s'allume si entre 20% et 50% dans réservoir
    		low ledVERTE
    		high ledJAUNE
    		low ledROUGE	
    
    	else if mesur => verteON then	; LED verte s'allume si plus de 50% dans réservoir
    		high ledVERTE
    		low ledJAUNE
    		low ledROUGE
    	
    	endif
    	return

    Bonjour,

    Ces deux octets de configuration donnent des mesures utilisables, je ne sais pas laquelle est préférable. Il y en a peut être une plus stable que l'autre, à vérifier. Et si l'affichage n'était pas suffisamment stable, il faudrait faire une moyenne sur plusieurs mesures

    Dans la boucle principale, il y avait une pause de 1s pour stabiliser l'affichage
    Elle est maintenant incluse dans le clignotement des leds du sous prog mini. Il faut donc veiller à équilibrer les temporisations dans chaque option elseif .

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

  28. #298
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Bonjour,

    Ces deux octets de configuration donnent des mesures utilisables, je ne sais pas laquelle est préférable. Il y en a peut être une plus stable que l'autre, à vérifier. Et si l'affichage n'était pas suffisamment stable, il faudrait faire une moyenne sur plusieurs mesures

    Dans la boucle principale, il y avait une pause de 1s pour stabiliser l'affichage
    Elle est maintenant incluse dans le clignotement des leds du sous prog mini. Il faut donc veiller à équilibrer les temporisations dans chaque option elseif .

    MM
    Suggères-tu d'ajouter la commande "pause 1000" dans chaque elseif ?

  29. #299
    mag1

    Re : Mesure du niveau d'eau

    Citation Envoyé par Yex2 Voir le message
    Suggères-tu d'ajouter la commande "pause 1000" dans chaque elseif ?
    Pas exactement, il fut équilibrer dans chaque cas

    Voir aussi l'alternative "select case"

    A TESTER!

    Code:
    ; b1,b2,b3 utilisés dans bintoascii
    symbol cpt		=b4
    symbol car		=b5
    symbol dat		=b6
    symbol sonde	=b7
    symbol posi		=b8
    symbol deb		=b9
    symbol fin		=b10
    symbol minim	=b11
    symbol verteON	=b12
    symbol jauneON	=b13
    
    ;******* Nominations ports ***********
    symbol sonde0 	= C.0       	;entrée sonde0 n?broche=6
    symbol potar  	= C.4			;pot règlage mini
    symbol valid  	= pinC.3    	;valeur poussoir de validation
    symbol ledROUGE	= B.0
    symbol ledJAUNE	= B.1
    symbol ledVERTE	= B.2
    
    
    ;********* Indicateur LED et alarme minimum *************
    mini:
    	readadc potar,minim
    	minim= 100 *minim/255
    	verteON= 5 *minim	max 255		; Valeur minimale x 5 valeur mini
    	jauneON= 2 *minim	max 255		; Valeur minimale x 2 valeur mini
    
    	if mesur < minim then	; LED rouge clignote parce que -10% ds réservoir
    		for cpt=1 to 4
    			high ledROUGE
    			pause 1000 ;250ms à 16MHz
    			low ledROUGE
    			pause 1000
    		next
    		
    
    	else if mesur < jauneON then	; LED rouge s'allume si entre 10% et 20% dans réservoir
    		low ledVERTE
    		low ledJAUNE
    		high ledROUGE
                    pause 4000	;1s à 16MHz
    			
    	else if mesur < verteON then 	; LED jaune s'allume si entre 20% et 50% dans réservoir
    		low ledVERTE
    		high ledJAUNE
    		low ledROUGE	
                    pause 4000	;1s à 16MHz
    	else if mesur => verteON then	; LED verte s'allume si plus de 50% dans réservoir
    		high ledVERTE
    		low ledJAUNE
    		low ledROUGE
                    pause 4000	;1s à 16MHz
            
    	endif
    	return
    MM
    Dernière modification par mag1 ; 26/06/2019 à 14h30.
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  30. #300
    Yex2

    Re : Mesure du niveau d'eau

    Citation Envoyé par mag1 Voir le message
    Pas exactement, il fut équilibrer dans chaque cas

    Voir aussi l'alternative "select case"

    A TESTER!

    Code:
    ; b1,b2,b3 utilisés dans bintoascii
    symbol cpt		=b4
    symbol car		=b5
    symbol dat		=b6
    symbol sonde	=b7
    symbol posi		=b8
    symbol deb		=b9
    symbol fin		=b10
    symbol minim	=b11
    symbol verteON	=b12
    symbol jauneON	=b13
    
    ;******* Nominations ports ***********
    symbol sonde0 	= C.0       	;entrée sonde0 n?broche=6
    symbol potar  	= C.4			;pot règlage mini
    symbol valid  	= pinC.3    	;valeur poussoir de validation
    symbol ledROUGE	= B.0
    symbol ledJAUNE	= B.1
    symbol ledVERTE	= B.2
    
    
    ;********* Indicateur LED et alarme minimum *************
    mini:
    	readadc potar,minim
    	minim= 100 *minim/255
    	verteON= 5 *minim	max 255		; Valeur minimale x 5 valeur mini
    	jauneON= 2 *minim	max 255		; Valeur minimale x 2 valeur mini
    
    	if mesur < minim then	; LED rouge clignote parce que -10% ds réservoir
    		for cpt=1 to 4
    			high ledROUGE
    			pause 1000 ;250ms à 16MHz
    			low ledROUGE
    			pause 1000
    		next
    		
    
    	else if mesur < jauneON then	; LED rouge s'allume si entre 10% et 20% dans réservoir
    		low ledVERTE
    		low ledJAUNE
    		high ledROUGE
                    pause 4000	;1s à 16MHz
    			
    	else if mesur < verteON then 	; LED jaune s'allume si entre 20% et 50% dans réservoir
    		low ledVERTE
    		high ledJAUNE
    		low ledROUGE	
                    pause 4000	;1s à 16MHz
    	else if mesur => verteON then	; LED verte s'allume si plus de 50% dans réservoir
    		high ledVERTE
    		low ledJAUNE
    		low ledROUGE
                    pause 4000	;1s à 16MHz
            
    	endif
    	return
    MM

    Ok merci encore une fois Mag. Je vais tester ça demain. En ce moment c'est l'heure de l'apéro...

    D'autre part je viens de recevoir mon LCD 2004. Il fonctionne Demain je vais également sortir mes trucs et recalibrer les sondes pour le 2004. Je ferai les photos promises...

    Merci pour tout Mag. C'est génial ! Je suis infiniment reconnaissant

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

Discussions similaires

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