Paso 5: Sistema de Control
·
Diagrama de bloques
Sobre el diagrama de bloques, este proyecto fue concebido originalmente como un actuador de válvula de bola interruptor controlado por flotador usado para drenar y deje llenar poco a poco llenando depósito similar a muchos proyectos en mi laboratorio. El Arduino recibe las señales de entrada de tres interruptores de flotador, evalúa su combinación determina el Estado requerido de la válvula y gira el servo y muestra el estado de la válvula en la pantalla LCD. El circuito entero es accionado por un externo 6.0VDC batería de NiMH.
· Cableado
Por favor, revise el diagrama de Fritzing y las fotos de los cables. Para resumir el cableado, un 6.0VDC batería NiMH (representada por la batería del AA en el diagrama) alimenta el Arduino, servo y la pantalla LCD por medio de uno de los carriles de la energía en el tablero de pan. El Arduino Vin y pernos de tierra están conectados a la energía y carriles de tierra respectivamente (mezclando éstos destruirán el Arduino). Arduino está conectado también al: 3 flotador interruptores (representados por los interruptores de inclinación en el diagrama) en pins de digital (entrada) 2, 3 y 4; el cable de señal del servo en el pin PWM 9; y a los pines SDA y SCL de la pantalla LCD de su un SDA y SCL pines.
He perforado ocho pequeños agujeros en la tapa de mi recinto y caliente había pegado algunos jumper hembra-hembra hay en que el usuario puede cambiar los interruptores de flotador sin desmontar nada. Yo había soldadura consejos de hombre puente a mi interruptores de flotador para conectar y desconectar en la caja de un broche de presión. En esta iteración, que quería mantener la batería externa para fines de recarga y seguridad. Simplemente se celebra con Velcro a uno de los soportes. Alimenta el sistema similar a los interruptores de flotador, enchufar y puente externo pegado en la tapa de la caja.
· Código
Para resumir el código de Arduino, consiste en una secuencia de comandos principal y llama solamente tres funciones simples. El script principal: importa bibliotecas wire.h, LiquidCrystal_I2C.h y servo.h y crea una instancia de sus objetos; define los pines 2, 3 y 4 como pines digitales de entrada ese sentido el estado de los interruptores de flotador; Pin 9 se define como un pin de salida PWM usado por el objeto servo; define variables para mantener los Estados de los interruptores de flotador, servo objeto min. y max frecuencias PWM (0 y 1023) corresponden a las posiciones abiertas y cerradas, una variable de asignación que debe servir como la única variable que necesita cambiar para obtener el grado correcto de vuelta para su servo y algunas cadenas de caracteres para el LCD para la visualización; inicia el bucle principal que llama a las tres funciones levelSense, servoPosition y displayThis y luego retrasa de 100ms. levelSense sólo atribuye el estado de los interruptores de flotador por digital leer a sus variables entero respectivo. servoPosition analógico escribe la asignada «abierto» frecuencia con el objeto servo pin 9 cuando todos los interruptores de flotador tres se levantan y establece la variable de tipo char de LCD a una cadena de «abierto». Cuando los interruptores de flotador son todos caen, 9 Pin analógico escribe la frecuencia asignada de "cerrado" en el servo y la variable de la pantalla de LCD se cambia a "Clausurado". Si el pin central (3) es siempre sincronizado con alta (4) y baja (2) pernos de la válvula se "cerrará" y la variable de LCD se cambia a "Error". Finalmente, diplayThis es una función de dos línea que utiliza la pantalla LCD mostrar objeto para mostrar la variable char actual en la fila inferior de la pantalla LCD.