Schritt 5: Programm der Arudino...
Sie können nun schließen Sie die Box an jedem beliebigen Punkt aber es möglicherweise einfacher, Probleme zu debuggen, wenn Sie zuerst die Arduino Programm. Die Skizze ist als CO2WaterFlowMonitor.ino beigefügt.
CO2WaterFlowMonitor.ino mit dem Arduino-Compiler zu öffnen, schließen Sie den USB-Anschluss am Computer und der Upload-Taste in die Arduino-Software. Das ist alles, was es ist-es sei denn, Sie wollen lernen, wie es funktioniert...
Grundlagen
Erstens, wir wollen Dinge so einfach wie möglich zu halten. Wir zeigen, was jeder Stift an der Spitze der Skizze mit einem Makro tut. Der EEPROM.h-Header wird für unsere EEPROM-Einstellung der Durchflussmenge verwendet. Dies bedeutet, dass die Kraft, ein- und Ausschalten gehen kann, aber die Einstellung bleibt.
Lesen Sie den Wasser-Flow-Sensor
Der Arduino Interrupt 0 dient uns dazu, zählt die Impulse aus den Wasser-Durchfluss-Sensor. Dazu müssen wir zuerst ein paar globale Variablen setup, und erstellen Sie eine sehr grundlegende Interrupt Service Routine (ISR), die G_uiFlowDetect Beulen, jedes Mal, wenn ein Impuls von den Wasser-Durchfluss-Sensor erkannt wird.
Setup
Alle Arduino-Sketch hat eine Setup. Bei uns werden wir...
-Jeder Pin auf den richtigen Modus einstellen...
-Setup serielle Ausgabe der Windows-Software gelesen, und unsere erste Botschaft übermitteln...
-Schalten Sie (COM NC1) jedes Relais und dann Stille des Summers (Linie 55)...
-Anhängen Sie unsere ISR (Flow zu erkennen), um 0 (PIN 2) zu unterbrechen, und deaktivieren Sie vorübergehend die Interrupts...
-Gelesen Sie die Alarmschwelle aus dem EEPROM, oder "brennen Sie" in wenn man nicht da war...
Als nächstes wird die Hauptschleife verwendet werden, zu erkennen und Ausgabe (in der USB-Schnittstelle) der Volumenstrom, festlegen und den Alarm zu löschen, fällt die Rate unter der Schwelle und eingabebereit um die Schwelle von der Windows-Software zu ändern. Um dies zu erreichen werden die folgenden Hilfsfunktionen eingeführt...
UpdateThreshold
Diese Funktion dient den neue Schwellenwert in der EEPROM Speicher speichern und senden Sie eine Meldung, die Änderung der Windows-Software.
Kommunikation mit der Windows-Software über WriteOutput und Erkennung von Laserleistung
Diese Funktion sendet die Status-Updates auf der Windows-Software. Das Format ist kurz und einfach. Wenn die Zeile mit einem Sternchen beginnt, bedeutet dies, dass jeder Alarm zum Schweigen gebracht werden wird, da die Laserleistung deaktiviert ist. Nach macht Lasererkennung PIN 8 lesen senden wir der aktuelle Durchflussmenge einen Schrägstrich, und dann die aktuellen Alarmschwelle. Diese Zahlen sind in Viertel-Sekunden.
Der Main Loop - Erfassung der Flussrate während des Wartens auf Input von der Windows-Software
Am oberen Rand der Hauptschleife ist die Flow Rate Variable gelöscht (während Interrupts deaktiviert sind). Interrupts sind dann aktiviert und ein 1/4 Sekunde warten vom USB-Port (per Windows-Software) für die serielle Eingabe eingegeben wird. Während dieser 250 Millisekunden "warten" werden alle Impulse aus dem Wasser Flow Rate Sensor Flow Rate Zähler erhöht, unter Berufung auf die ISR.
In Zeile 117 überprüfen wir, wenn die Windows-Software eine neue Schwelle (ein single-Byte-Wert mit die neue Schwelle) gesendet. Wenn ja, wird bRC (für ein Byte) auf 1 festgelegt werden. In diesem Fall wird UpdateThreshold() aufgerufen, und die Schleife wird neu gestartet. Das hält uns signalisiert einen Alarm wegen der unterbrochenen 250 ms warten.
Setzen und Löschen des Alarms
In die letzten Hälfte der Hauptschleife, die der Schwellenwert verglichen wird, um den Durchfluss und wenn es unter dem Zinssatz für fällt, dass 1/4 Sekunde, wird der Alarm ertönte und das Relais geschaltet...
In Zeile 131 testen wir, ob der Durchfluss ist kleiner als der Schwellenwert. Wenn es ist überprüfen wir, ob das Laser-System macht, ist durch die Prüfung ENABLE_ALARM_PIN (Linie 134). Wenn der Alarm aktiviert ist, der Summer ertönt (Linie 136), ansonsten (Linie 140) es wird zum Schweigen gebracht.
Linien 142 bis 145 verursachen jedes Relais zum COM NC1 (normalerweise geschlossen) herstellen. Das Deaktivieren des Lasers. Eine Linie 146 der Status wird gesendet, um die Windows-Software und dann auf Linie 147 die Schleife recycelt.
Wenn der Alarm nicht ausgelöst wird der Code fällt durch Linie 149 wo der Summer verstummt und jedes Relais schaltet zum COM herstellen keine (Schließer), so dass des Lasers. Die Schleife endet schließlich auf Linie 154 indem man den Status der Windows-Software.