Étape 5: Programme de la Arudino...
Vous pouvez maintenant fermer la boîte en un point quelconque, mais il peut être plus facile à déboguer des problèmes si vous programmez tout d’abord l’Arduino. L’esquisse est jointe à titre CO2WaterFlowMonitor.ino.
Ouvrez CO2WaterFlowMonitor.ino à l’aide du compilateur Arduino, relier le port USB à l’ordinateur et appuyez sur le bouton transférer dans le logiciel Arduino. C’est tout là est à lui--sauf si vous voulez apprendre comment il fonctionne...
Notions de base
Tout d’abord, nous voulons garder les choses aussi simples que possible. Nous allons montrer que chaque broche signifie en haut de l’esquisse à l’aide d’une macro. L’en-tête de EEPROM.h est utilisé pour notre mise en EEPROM de ce débit. Cela signifie que le pouvoir peut aller sur et en dehors, mais la mise en demeure.
Lecture du capteur de débit d’eau
Nous allons utiliser l’interruption de l’Arduino 0 pour compter les impulsions provenant du capteur de débit d’eau. Pour ce faire nous tout d’abord configurer un couple de variables globales et créer un très basique Interrupt Service Routine (ISR) qui bosses g_uiFlowDetect chaque fois qu’une impulsion du capteur de débit d’eau est détectée.
Programme d’installation
Chaque sketch Arduino a une configuration. Dans le nôtre, nous allons...
-Mettre chaque broche sur le mode approprié...
-Configuration série sortie dont le logiciel Windows lira et envoyer notre premier message à elle...
-Désactiver (COM à NC1) chaque relais et puis le silence l’avertisseur sonore (ligne 55)...
-Joindre notre ISR (détecteur de débit) pour interrompre 0 (axe 2) et désactivez temporairement les interruptions...
-Lire le seuil d’alarme de l’EEPROM, ou le « graver » en si on n’était pas là...
La boucle principale servira ensuite pour détecter et le débit de sortie (au port série USB), définir et effacer l’alarme lorsque le taux tombe au-dessous du seuil et acceptent l’entrée pour modifier le seuil à partir du logiciel Windows. Pour ce faire, les fonctions d’assistance suivantes sont introduites...
UpdateThreshold
Cette fonction est utilisée pour stocker la nouvelle valeur de seuil dans le stockage de l’EEPROM et d’envoyer un message indiquant le changement vers le logiciel de Windows.
Communiquer avec le logiciel de Windows via WriteOutput et détection de puissance Laser
Cette fonction envoie les mises à jour de statut pour le logiciel Windows. Le format est court et simple. Si la ligne commence par un astérisque, cela signifie que toute alarme sera coupé car la puissance du laser est désactivée. Après la détection de puissance de laser en lisant la broche 8, nous envoyons le débit actuel, une barre oblique, puis le seuil d’alarme actuel. Ces chiffres sont en quart-secondes.
La boucle principale - capture le débit en attendant pour l’entrée du logiciel Windows
En haut de la boucle principale, la taux variable de flux est effacée (alors que les interruptions sont désactivées). Interruptions sont alors activés et une seconde de 1/4 attente est entré pour l’entrée périodique par le port USB (envoyé par le logiciel Windows). Pendant que 250 millisecondes « wait », toutes les impulsions du capteur de taux de débit de l’eau seront incrémente le compteur de vitesse de flux en invoquant la sûreté.
À la ligne 117, nous vérifions pour voir si le logiciel Windows a envoyé un nouveau seuil (une valeur d’octet unique avec le nouveau seuil). Si elle l’a fait, bRC aura la valeur 1 (pour un seul octet). Dans ce cas UpdateThreshold() est appelée et la boucle est redémarrée. Cela nous empêche de signalisation d’alarme en raison de l’attente de 250 Mme interrompu.
Réglage et en désactivant l’alarme
Dans la demi finale de la boucle principale, que le seuil est comparé à la vitesse d’écoulement, et quand elle tombe au-dessous du taux pour que 1/4 de seconde, l’alarme et le relais est activé...
Sur la ligne 131 nous tester pour voir si le débit est inférieur au seuil. Dans ce cas nous vérifions pour voir si le système de laser est une puissance, en testant des ENABLE_ALARM_PIN (ligne 134). Si l’alarme est activée, le signal sonore retentit (ligne 136), dans le cas contraire (ligne 140) il est réduit au silence.
Lignes de 142 à 145 causent chaque relais connecter COM à NC1 (normalement fermé). Cela désactive le laser. Une seule ligne 146 le statut est envoyé au logiciel Windows et puis sur la ligne 147, la boucle est recyclé.
Lorsque l’alarme se déclenche pas le code passe à la ligne 149 où l’avertisseur sonore est réduit au silence et chaque relais est commuté pour établir une connexion COM à NO (normalement ouvert), ce qui permet du laser. Sur la ligne 154 la boucle se termine en envoyant le statut du logiciel Windows.