Paso 4: El circuito de Arduino y el software
El requisito para el programa era simple:
1. Si se tiró un libro secreto (con un micro incorporado), abrir (o cerrar) la puerta.
2. Si se detecta un patrón de golpe secreto, abrir (o cerrar) la puerta.
Nunca había trabajado con o programar un Arduino antes, pero sabía cómo programar y encontró el Arduino para ser super fácil trabajar con. Vino con un montón de corto, fácil de entender ejemplos que hicieron exactamente lo que quería - operar relés y escuchar a los micrófonos. Experimentando en bits, primero con el sistema solo abrir y cerrar los relés correcto, luego ponerlo a escuchar golpes, pude construir progresivamente un programa personalizado que operó la puerta.
Activación del libro secreto
Fue fácil el Arduino para accionar la puerta. Alambré un microinterruptor de contacto momentáneo para el Arduino que está en la posición de normalmente cerrado cuando el peso del libro es en él. Cuando Consejo el libro nuevo, el peso sale el interruptor y abre el circuito. El Arduino detecta y comprueba una puerta estado variable para ver si la puerta está abierta o cerrada. Esto desencadena el código para hacer funcionar el relé correcto para abrir o cerrar la puerta.
El bucle principal del código comprueba dos cosas - ¿cuál es el estado del botón y es ese estado, el mismo que fue la última vez que se comprobó? Si es así, entonces el libro no ha sido activado, así que escucha de un golpe. Si se escucha un golpe, ramifica a una función para escuchar más golpes ver si coinciden con el código secreto.
Detección de golpes
El código secreto de golpe, siempre estoy en deuda a los laboratorios de Grathio para un instructivo de como construir un golpe secreto detección de bloqueo de un Arduino. Utilizando el código publicado, pude volver a utilizar el algoritmo de detección de golpes secretos sin tener que crear uno por mi cuenta. Chicos debo una cerveza! La parte más difícil de reutilizar el código fue a introducirlo en mi programa. No incluir un interruptor de programación para permitir cambiar el código de golpe por razones de simplicidad. Así, utilicé la parte de su código que escuchaban golpes, salida los valores de la serie monitor y luego codificado en el programa. No flexible, entiendo, pero yo quería algo simple y sencillo.
Seguridad
Quería agregar características de seguridad para que la puerta podría ser repentinamente detenida y revertida si es necesario. Si utiliza el libro para activar la puerta y no devuelve el libro a su posición de estiba dentro de 3 segundos, la puerta se detiene. También, si tira el libro otra vez después de 3 segundos, se detendrá la puerta. Si tira el libro una vez más, la puerta va a retroceder.
Pensé que alguien además de mí podría jugar con la puerta y accidentalmente atrapado en él. Pensé que lo más probable es que alguien haría si tiraron el libro y la puerta comenzada a abrir involuntariamente sería tirar el libro otra vez con la esperanza de detener la puerta. Eso es lo que ocurre.
Al requerir el libro deberá ser devuelto a su posición de estiba dentro de 3 segundos, la persona que tira el libro es necesaria desprenderte de él, lo que significa la mano libre del libro sí mismo. La librería lleva 18 segundos para abrir, así que hay tiempo suficiente para conseguir su mano fuera del camino. Soy consciente de que depender de software de seguridad es una mala idea, por lo que la apertura de la librería es más ancha que la librería sí mismo. Estoy bastante seguro de que una mano podría ser fácilmente sacada sólo empujando la librería hacia atrás (en el cuarto) aunque la librería cerrada completamente. Los resortes ejercería presión sobre la mano pero dudo lo suficiente para romper o trampa permanentemente. En el lado de la habitación, la apertura también es lo suficientemente amplia como para sacar una mano.
Pulsador de salida para el ocupante de la habitación
Desde la publicación de este instructable, he añadido un pulsador de salida para permitir que el ocupante de la habitación salir fácilmente. Sin el pulsador de salida, la única forma de cerrar o abrir la puerta desde el lado de la habitación es utilizando el golpe secreto. He encontrado el botón pulsador en eBay por unos $20. Es un botón de contacto momentáneo que ha ambos normalmente cerrado y normalmente abierto (NC/NO) fija en él. Conectados en serie con el pulsador de la librería. De esa manera activar cualquiera de los botones hace que la puerta operar.
Puesto que pulsando el botón hace que la puerta detener y empujar otra vez hace que la puerta de atrás, el botón es útil cuando entrando y saliendo de la habitación. No tienes que esperar a la librería abrir totalmente o cerrar antes de invertir con el botón. No se puede interrumpir la puerta abrir o cerrar la secuencia con el golpe, así el botón ahorra un poco de tiempo.
El botón se iluminará si usted proveer con 24 voltios pero no planeo en iluminación para arriba. Tengo que conectar una fuente de alimentación separada y pase el cable a la luz y no es pena. El botón es bastante visible y dice "Presione para salir". Es suficiente.
Conexión de la placa de relé y micrófono
Las conexiones reales de los componentes se detallan en los comentarios de software pero aquí están:
1. placa de relé: relé 1 se conecta al Pin 7 en Arduino. Relé 2 se conecta al Pin 8. Conectar placa de relé también a la tierra y 5v de Arduino.
2. micrófono: Conectarse a tierra, 5v y pin analógico A0 (cero) pin sobre Arduino.
3. libro microinterruptor: conexión común y normalmente cerrado al pin digital 2 y masa. No importa que se conecta al pin 2 o tierra.
4. los relés deberán conectarse al cable que va al conector DIN para el actuador linear. Después de averiguar cómo el controlador portátil que venía con el actuador trabajó, compré un cable duplicado con un estruendo se conecte para poder preservar el controlador manual y tiene como respaldo en caso de falla de la Arduino.
** Nota: los colores de los cables que muestran pueden no ser el mismo si se intenta duplicar esto!!!!!! Si el alambre el controlador incorrectamente, usted probablemente quemará su controlador de motor en el actuador linear de la caro!!!!!! INDEPENDIENTE debe confirmar que esto funciona para el actuador. NO seguir simplemente ciegamente esta imagen ***
5. mediante el cable DIN idéntico que compré, yo corte el cable con la clavija DIN y separados y los cables pelados.
6. soldar los cables de extensión a los pernos de cable de enchufe DIN se muestra en el diagrama en el paso 4 para extender a la placa de relé. He utilizado del encogimiento del calor de la tubería (disponible en Radio Shack) sobre cada uno suelda alambre para impedir que se cortocircuitan. Utiliza un pequeño tubo para cables individuales, lo había encogido y utilizó tubería más grande para ajustar todos los cables dentro y calor reducido para sujetarlos juntos. Etiquetado cada cable extendido con un trozo de cinta así que sabía que el perno del enchufe DIN fue a. Triple comprobé esto por continuidad probando con mi multímetro.
7. conectar cada cable al lado de salida de la placa de relé como se muestra en el diagrama arriba. También tuve que no utilice un cable de puente de normalmente abierto () relé de 1 para el relé 2 y la NC normalmente cerrado (NC) relé 2 relé 1 para duplicar el circuito que el controller de mano tenía en su interior. Estas conexiones son tornillo terminal, por lo que fue fácil conectarlos.
8. en el lado de la placa de relé entrada, corrí conectores de GND y 5V de Arduino GND y 5V de la placa de relé. Conecté la IN1 en la placa de relé para pin digital 7 en el Arduino y IN2 en la placa de relé para pin digital 8 en el Arduino.
Eso es todo el trabajo eléctrico que tenía que hacer. Estoy en el proceso de añadir un pulsador más dentro de la habitación para que el inquilino pueda abrir la librería pulsando un botón. Yo se cable en serie con el botón del libro secreto. Ya que ese circuito es normalmente cerrado (NC), usaré los terminales de NC en el botón Añadir. Cuando uno presiona, abrirá el circuito, el Arduino lo detectará y la librería se abra o cierre, según corresponda. (Esto es como el botón del libro secreto funciona ahora.
El código funciona muy bien y que he incluido aquí pero usan bajo su propio riesgo. Yo no soy un programador profesional y no tomar ninguna responsabilidad por cualquier uso que se puede aplicar a.
Un problema extraño con lo es la primera vez después de comenzar el programa en el Arduino al tirar el libro, no pasa nada. La segunda vez, funciona perfectamente y funciona a la perfección después de eso. Estoy seguro que hay lógica en el bucle que está causando pero es muy menor a gastarse. Sólo sucede la primera vez que se ejecuta el programa. No dude en fijar y publicar la solución si le molesta.