Paso 5: Programe el Arudino...
Ahora puede cerrar la caja en cualquier momento pero puede ser más fácil de depurar problemas si usted primero programar el Arduino. El bosquejo se une como CO2WaterFlowMonitor.ino.
Abrir CO2WaterFlowMonitor.ino mediante el compilador de Arduino, conecte el puerto USB a la computadora y presione el botón de carga en el software de Arduino. Eso es todo allí está a él--a menos que quiera aprender cómo funciona...
Conceptos básicos
En primer lugar, queremos mantener las cosas tan simples como sea posible. Vamos a mostrar lo que hace cada pin en la parte superior del bosquejo con una macro. La cabecera de EEPROM.h se utiliza para nuestro entorno de EEPROM de la velocidad de flujo. Esto significa que el poder puede encenderse y apagarse pero el ajuste se mantiene.
Lectura del Sensor de flujo de agua
Vamos a utilizar interrupción de Arduino 0 para contar los pulsos del sensor de flujo de agua. Para ello, que primero configurar un par de variables globales y crear una muy básica interrumpir servicio rutinario (ISR) que topa g_uiFlowDetect cada vez que se detecta un pulso desde el sensor de flujo de agua.
Programa de instalación
Cada sketch de Arduino tiene una configuración. En el nuestro, vamos a...
-Sitúe cada pin en el modo adecuado...
-Instalación serie de salida que el Software de Windows se leer y enviar nuestro primer mensaje para...
-Apagar (COM a NC1) cada repetidor y luego silenciar el zumbador (línea 55)...
-Adjuntar nuestro ISR (detección de flujo) para interrumpir 0 (PIN 2) y temporalmente deshabilitar interrupciones...
-Leer el umbral de alarma de la EEPROM, o "quemarlo" en si uno no estaba allí...
A continuación se utilizará el bucle principal para detectar el caudal de salida (para el puerto serial USB), establecer y borrar la alarma cuando la velocidad cae por debajo del umbral y aceptar la entrada para cambiar el umbral desde el software de Windows. Para ello se introducen las siguientes funciones de ayudante...
UpdateThreshold
Esta función se utiliza para almacenar el nuevo valor de umbral en el almacenamiento EEPROM y para enviar un mensaje que indica el cambio en el Software de Windows.
Comunicación con el Software Windows vía WriteOutput y detección de láser de potencia
Esta función envía las actualizaciones de estado al Software de Windows. El formato es corto y sencillo. Si la línea comienza con un asterisco que significa que cualquier alarma será silenciado porque la potencia del láser se desactiva. Después de la detección de la energía del láser leyendo 8 PIN, enviamos el caudal actual de una barra y luego el actual umbral de alarma. Estos números están en el cuarto segundos.
El bucle principal - captura la tasa de flujo mientras se espera para la entrada desde el Software de Windows
En la parte superior del bucle principal se borra la variable de tasa de flujo (mientras que las interrupciones están deshabilitadas). Las interrupciones son habilitadas y un 1/4 segundo espera se introduce de entrada en serie del puerto USB (enviado por el Software de Windows). Durante eso 250 milisegundos "espera", todos los pulsos desde el sensor de velocidad de flujo de agua incrementan el contador de flujo invocando el ISR
En la línea 117 comprobamos si el Software de Windows envía un nuevo umbral (un valor de byte único con el nuevo umbral). Si lo hiciera, bRC se establecerá en 1 (de un byte). En ese caso se llama UpdateThreshold() y se reinicia el bucle. Esto nos impide señalar una alarma debido a la espera de la 250 Sra. interrumpido.
Ajuste y compensación de la alarma
En la mitad final del bucle principal que se compara el umbral a la velocidad de flujo y cuando cae por debajo de la tasa para que 1/4 de segundo, suena la alarma y el relé se conecta...
En línea 131 probamos para ver si el caudal es menor que el umbral. Si es comprobamos si el sistema de láser está encendido, prueba ENABLE_ALARM_PIN (línea 134). Si la alarma está activada, el zumbador suena (línea 136), de lo contrario (línea 140) es silenciado.
Líneas 142 a 145 causan cada relé conectar COM a NC1 (normalmente cerrado). Esto desactiva el láser. Una línea 146 el estado se envía al Software de Windows y luego en la línea 147 el bucle recicla.
Cuando la alarma no se activa el código cae a través de a línea 149 donde el timbre es silenciado y cada relé se activa para conectar COM a NO (normalmente abierto), lo que permite el laser. Finalmente en línea 154 el bucle termina enviando el estado del software de Windows.