Stap 5: Program de Arudino...
U kunt nu sluiten de doos op elk gewenst moment maar wellicht gemakkelijker te debuggen van problemen als u eerst het programma van de Arduino. De schets is gekoppeld als CO2WaterFlowMonitor.ino.
Open CO2WaterFlowMonitor.ino met behulp van de Arduino compiler, aansluiten van de USB-poort op de computer en druk op de knop ' uploaden ' in de Arduino software. Dat is allen daar is aan het--tenzij u wilt leren hoe het werkt...
Basics
Ten eerste willen we de dingen zo eenvoudig mogelijk te houden. Zullen we laten zien wat elke pin doet aan de bovenkant van de schets met behulp van een macro. De EEPROM.h-header wordt gebruikt voor het vaststellen van onze EEPROM van het debiet. Dit betekent dat de macht kunt gaan aan en uit, maar de instelling blijft.
Het lezen van de flowsensor van de Water
We zullen van de Arduino interrupt 0 gebruiken om te tellen de pulsen van de flowsensor van water. Om dat te doen we eerst een paar globale variabelen instellen, en maak een basaal Interrupt Service Routine (ISR) die hobbels g_uiFlowDetect telkens een puls van de flowsensor van water wordt gedetecteerd.
Setup
Elke Arduino sketch heeft een setup. In ons zullen we...
-Zet elke pin op de juiste modus...
-Setup seriële uitgang waarmee u de Windows-Software lezen en onze eerste bericht verzenden in het...
-Uitschakelen (COM te NC1) elk relais en dan stilte de zoemer (lijn 55)...
-Verbind onze ISR (Flow Detect) als u wilt onderbreken 0 (PIN 2), en tijdelijk uitschakelen onderbreekt...
-Lees de alarmdrempel vanaf de EEPROM, of "burn it" in als een was er niet...
Vervolgens zal de hoofdlus detecteren en output (naar de USB seriële poort) de stroomsnelheid, instellen en schakel het alarm wanneer de rente kleiner is dan de drempelwaarde en laten invoeren als u wilt wijzigen de drempel van de Windows-software worden gebruikt. Om dit te bereiken worden de volgende hulpfuncties ingevoerd...
UpdateThreshold
Deze functie wordt gebruikt voor het opslaan van de nieuwwaarde van de drempel in de EEPROM-opslag en voor het verzenden van een bericht weergegeven met de wijziging van de Windows-Software.
Communiceren met de Windows-Software via WriteOutput en detectie Laser Power
Deze functie stuurt de status-updates naar de Windows-Software. De indeling is kort en simpel. Als de regel met een sterretje begint betekent dat een alarm zal worden het zwijgen opgelegd omdat de kracht van de laser is uitgeschakeld. Na de laser power detectie door het lezen van PIN 8, sturen we de huidige debiet een slash, waarna de huidige alarmdrempel. Deze nummers zijn in kwartaal-seconden.
De Main-Loop - vastleggen van de Flow-Rate terwijl het wacht op invoer van de Windows-Software
Aan de bovenkant van de hoofdlus wordt de flow rate variabele gewist (terwijl interrupts worden uitgeschakeld). Interrupts zijn dan ingeschakeld en een 1/4 seconde wachten wordt ingevoerd voor seriële input van de USB-poort (verzonden door de Windows-Software). Tijdens dat 250 milliseconden "wait", zal alle pulsen van de water flow rate sensor increment de stroom tarief teller door beroep te doen op de ISR.
Op regel 117 controleren we om te zien of de Windows-Software een nieuwe drempel (een waarde van één byte met de nieuwe drempel) verstuurd. Als het deed, zal bRC worden ingesteld op 1 (voor één byte). In dat geval UpdateThreshold() wordt aangeroepen en de lus opnieuw is gestart. Dit houdt ons van signalering van een alarm als gevolg van het onderbroken 250 ms wachten.
Instellen en schakelen de Alarm
In de laatste helft van de hoofdlus, die de drempel is in vergelijking met de stroomsnelheid en wanneer het is lager dan het tarief voor dat 1/4 seconde, het alarm wordt geklonken en het Relais is ingeschakeld...
Op lijn 131 testen we om te zien als het debiet kleiner dan de drempel is. Als er controleren we om te zien als het lasersysteem macht is, door het testen van de ENABLE_ALARM_PIN (lijn 134). Als het alarm is ingeschakeld, de zoemer (lijn 136), anders wordt geklonken (lijn 140) het zwijgen is opgelegd.
Lijnen 142 via 145 veroorzaken elk relais COM verbinden NC1 (normaal gesloten). Deze uitschakelen de laser. Één lijn 146 de status wordt verzonden naar de Windows-Software en klik vervolgens op regel 147 de lus recycleert.
Wanneer het alarm wordt niet geactiveerd de code valt door lijn 149 waar de zoemer het zwijgen is opgelegd en elk relais wordt ingeschakeld voor de verbinding COM geen (normaal Open), waardoor de laser. De lus eindigt uiteindelijk op lijn 154 door de status te sturen naar de Windows-Software.