Résolu Programmation Sous Flowcode d'un PIC 18F4455

Solutions (1)
Tags :
  • impulsion
  • Programmation
  • ppe
  • flowcode
|
Bonjour,

Je suis en Terminale Ssi et dans le cadre de mes PPE, je souhaite réaliser un programme sous flowcode V5 permettant de calculer le débit consommé d'une chaudière à fioul domestique. Je dois calculer la consommation instantannée en L/h, la consommation à l'année, le coût instantannée en €/L ainsi que le coût à l'année.
Pour réaliser cela, je dispose d'un PIC 18F4455 branché à un ECIO 40, avec des boutons poussoirs, un afficheur LCD et un capteur de débit.
J'ai déjà bien appréhendé le logiciel depuis le début du PPE.
Mon programme débute par le démarrage de deux interruptions qui appellent deux macros (temps et débit) :
-Temps compte les interruptions de temps en fonction des fronts montants de l'horloge interne du microcontroleur.
-Débit compte les impulsions envoyé par le capteur de débit.

Vu que la fréquence de l'horloge interne est de F=183.105Hz, au bout de 184 interruptions de "temps" le débit est calculé (184/183.105= 1.004... Secondes). Mon problème est que 184 interruptions donne bien plus que 1 seconde..... donc comment reussir à déterminer exactement une seconde grâce à l'horloge interne ?

De plus, mon calcul de la consommation instantannée est : ConsomL/h= compteur * (3600/1280)
avec compteur : -le nombre d'interruption du débit en 1 seconde;
-3600 : afin de passer les minutes en heures;
-1280 : Ce sont le nombre d'impulsion envoyé pour 1 Litre (vu sur la notice du capteur);
Lorsque je simule le débit sous flowcode grâce à un interrupteur basculer relié à l'interruption débit, sa marche mais dans la réalité sur l'ECIO 40, il y a une sorte de "saut". Les valeurs varient entre 0 et 2,76 mais pas entre... Sachant que la consommation est de l'ordre de 0,3 à 0,7 impossible de calculer.....
Auriez-vous une solution ?

Voici des captures d'écran de mon programme :
http://imagesup.org/images12/1397118...alisation.jpeg
http://imagesup.org/images12/1397118738-main1.jpeg
http://imagesup.org/images12/1397118782-main2.jpeg
http://imagesup.org/images12/1397118860-temps.jpeg
http://imagesup.org/images12/1397118910-debit.jpeg

Merci d'avance pour votre aide !
Contenus similaires
Meilleure solution
partage
|
Quel type de débitmètre utilises-tu?

Pour ton problème :
Tu as 1280 impulsions par litre, soit 1/1280 litre entre 2 impulsions.

Si tu fais le cumul des impulsions sur N interruptions, tu vas avoir un volume écoulé : dV = compteur * (1/1280) litres = compteur / 1280 litres
Ta période entre 2 interruptions est de 1/183.105 seconde, donc la durée N interruptions est de dt = N/183.105 secondes = (N/183.105) / 3600 heures
Ton débit est donc : Q = dV / dt = 183.105 * 3600 * compteur / (1280 * N)

Toi, tu fais le calcul de débit pour N = 184 (en litre par 1.004s), donc en multipliant ton calcul par 183.105 / 184 (ou divisant par 1.004), tu ramènes ton débit à la seconde exacte.

Dans la réalité, tu ne reçois peut-être pas un débit stable : les impulsions ne sont peut-être pas régulières selon l'écoulement dans le débitmètre (d'où ma première question).
Par contre, le débit moyen, lui sera correct (à peu près :)  ). Pour palier à ce problème, soit tu calcules une moyenne du débit à la minute (somme des 60 débits / 60), soit tu augmentes suffisamment le nombre d'interruptions N pour obtenir un débit à peu près stable (par exemple 10986 pour faire environ 1 minute). Le mieux étant de tester en augmentant petit à petit la valeur de N (et d'ajouter une marge lorsque c'est bon).
  • Dreamcaster a sélectionné cette solution comme la meilleure réponse
  • CRicky a édité ce message
  • CRicky a édité ce message
  • CRicky a édité ce message
  • Commenter cette solution |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS