IR control bloqueo (4 / 6 paso)

Paso 4: Paso 4: código de Arduino

Voy a ir sección por sección discutiendo las características principales del código. Bibliotecas de terceros pueden ser importadas desde GitHub. Las bibliotecas LiquidCrystal y IRremote pueden encontrarse en GitHub. Tuve que crear la biblioteca desde cero para el Sensor de proximidad HCSR04 (ojalá lo encontrarás adjunta arriba). En estas bibliotecas, puede encontrar las variables necesarias para enviar un comando o llamar a una función. Cada biblioteca tiene un C++ (software para la codificación) y .h (archivos de encabezado de extensión). Si a crear sus propias bibliotecas, necesita crear ambos.

A continuación que pasemos a la inicialización de las variables. Tenemos varias clases de las bibliotecas de Servo, IRremote, LiquidCrystal y HCSR04 y las variables que se declaran. También he definido varios de los botones del control remoto que utiliza. La clase LiquidCrystal crea una instancia de un objeto de LCD llamado "lcd". La dirección de la LCD es 0x27 con 16 columnas y 2 filas. El Sensor de proximidad de HCSR04 tiene dos disparadores. El pin de "gatillo" es responsable de enviar un pulso. Este pulso rebota (ecos) o es disipado en el espacio. El pin de "Eco" recibe un valor flotante asignado al pin 8. Este disparador se lleva en el pulso de disparo y convierte el valor en centímetros (por mi propia biblioteca diseñada). Las distancias que recibe el sensor de proximidad se definen como valores de flotación. Podría se han definido como valores enteros pero quería que las mediciones sean exactas y esto significa que los valores que se leen valores decimales (un ejemplo sería cm 6,52).

Pasar a la configuración, se inicializó el i2C bus en la pantalla de LCD que estoy usando. I2C esencialmente reduce el número de pines que tengo que usar en mi Arduino. Inicialice la retroiluminación de la pantalla. Si desea ver los resultados en un monitor serial debe utilizar un comando de Serial.begin(baudrate) para establecer cuántos símbolos para leer. Esto inicia la comunicación entre el Arduino y el monitor serie. Limpiar la pantalla LCD en el caso hay símbolos erróneos o letras en la pantalla. I ajustar el cursor en el centro de la primera fila y el usuario para el módulo. Espera un segundo y la pantalla se borra otra vez. El receptor IR está listo para tomar en los valores de lo IR remoto. Del mismo modo, el motor servo se mueve a la posición 0.

Finalmente, nos movemos en el bucle principal. Distance1 se declara como el disparador que es enviado y recibido. Este valor se lee desde el sensor de proximidad para el Arduino en centímetros. last_distance hace como su nombre lo indica. Almacena la última distancia que se lee. Se proporcionarán más detalles en cuanto a la función de estos comandos después. El si (irrecv.decode (y resultados)) comando se utiliza para asignar la dirección de cada pulsación de botón. Cada botón tiene su propio flujo de bits asociado a ella. Porque este proyecto es abrir una cerradura con un valor especificado, este comando debe ser el primer lazo en el bucle principal. last_distance > distance1 compara los valores que se almacenaron. Si la distancia anterior fue mayor que la distancia actual y luego la pantalla se borra ya que no hay nadie en la puerta. Del mismo modo, si distance1 < = 7 (cm) entonces se solicitará al usuario que ingrese la contraseña. Un solo valor trabajo (9). Todos los demás valores (0-8) serán instruir al usuario a intentarlo de nuevo. Sin embargo, para el valor de = 9, la puerta se abre y saluda al usuario. También, hay un anidados para el lazo en este si declaración. El anidado para lazo permite el motor del retroceso en y simular el desbloqueo de la puerta. La distancia < = 7 está aquí para comprobar si el usuario está en la puerta o si él o ella ha ido dentro o a la izquierda. Si el usuario está en la puerta, la puerta permanecerá abierta. La puerta permanecerá abierta durante unos 4 segundos permitir al usuario a pasar por la puerta y luego se procederá a cerrar. Retardo de los 4 segundos, se desconecta el motor servo. Hago esto para evitar que el exceso de potencia siendo entregado al motor cuando no está en uso. Además, tengo serial.println() comandos para mostrar los resultados en el monitor serie.

Como brevemente discutido anteriormente, pulsando cualquier otro botón que no accione el motor tenía que asegurarse de que cualquier otro botón no hizo nada (valores de 0-8). La pantalla LCD indicará al usuario a intentarlo de nuevo. Si olvidó su contraseña, usted puede presionar el EQ botón y la pantalla LCD le pedirá que la tarifa del curso. Es un mensaje de "Aviso" diciendo "recordatorio: en una escala de 0-9, que impresionante es esta clase?" Después de esto, borra la pantalla y usted puede ahora poner en el valor correcto de 9.

Es muy importante el siguiente comando: irrecv.resume(); Si no lo pones aquí, el receptor ya no comprobará para otra entrada. Este comando impide que el bucle de fijación para arriba después de una iteración o botón de prensa.

Si la distancia es mayor de 7 cm pero menos de 10 cm, esto simboliza al usuario acercarse a la puerta o módulo. Otra vez será instruidos para ingresar la contraseña.

Cerrando el bucle, tengo un if final declaración. Si la última distancia es mayor que la distancia actual, significa que el usuario no está en ninguna parte ser encontrado. Además, lo tengo comprobación para asegurarse de que el usuario no es cualquier lugar para ser visto por incluyendo & & distance1 > 12 (cm). Esto significa que alguien estuvo allí y salió. Otra vez se borra la pantalla. Hay un anidados para el lazo que dice: bueno vi que la puerta se abrió, el bloqueo fue movido a la posición de desbloqueo y ahora se moverá hacia atrás a la posición de bloqueo. El servomotor está conectado y la pantalla LCD indica la persona bueno bye. El motor retrocede 35 grados a la posición de bloqueo. Después el motor servo con su tarea, otra vez se desconecta para evitar forzar el motor y reducir al mínimo la energía utilizada para alimentar el motor servo. Esto es el fin del bucle y funcionará continuamente.

Artículos Relacionados

Arduino controla caja de bloqueo con solenoide y RFID

Arduino controla caja de bloqueo con solenoide y RFID

La caja de la cerradura RFID combina Arduino, RFID y un solenoide para hacer su propio personal seguro! La caja de la cerradura se abre sólo a las tarjetas de clave que haya programado en el sistema, cierre todos los demás fuera.Esta guía mostrará có
Casquillos de bloqueo para Control: Hardware teclado mecánico nivel mod

Casquillos de bloqueo para Control: Hardware teclado mecánico nivel mod

Una de las grandes cosas sobre teclados mecánicos y personalizados es la capacidad de ahorro de tiempo y ergonómicas macros y atajos de un sistema a otro. Pero si no tienes un teclado que admite capas o personalización de códigos de teclas, puede uti
Control remoto de lámpara de tela

Control remoto de lámpara de tela

Lo tackiest... ocupa una planta de flor de Pascua que "ganó" en la fiesta fiesta Yankee Swap en diciembre. Todavía tengo la planta, tiene gran hacer, pero relevó del cubo horrible estaba sentado en. Era tan feo, que no quería fotografiarla como
Control remoto de osito

Control remoto de osito

el mando de oso de peluche se sienta muy bien en tu sofá o cama y puede utilizarse para controlar su iPod o computadora. Es una linda modificación a un mando a distancia RF y es sorprendentemente suave. El proyecto es difícil de hacer y requiere muy
Eléctrico Panel de Control de cervecería en el Cheap

Eléctrico Panel de Control de cervecería en el Cheap

si es en la elaboración de la cerveza casera entonces usted probablemente ha oído hablar de "La cervecería eléctrico" creado y dirigido por un compañero llamado Kal. Si no consigue entonces allí y leer. Esta es la mejor configuración de homebrew
Centro de Control de cohetes múltiples

Centro de Control de cohetes múltiples

como un líder de Boy Scout de mucho tiempo he encontrado un recurso inestimable. Así que aquí está mi primer intento de ayudar a la comunidad con mi primer instrucable.Esta idea nace de una frustración del año pasado. Era un maestro Scout en un curso
Fijar un interruptor de Control de crucero - Olds Alero (y otros)

Fijar un interruptor de Control de crucero - Olds Alero (y otros)

conducir un 1999 Oldsmobile Alero. Este modelo en todos los años y otros tres coches de General Motors (machete de Oldsmobile, Chevrolet Malibú y Pontiac Grand Am) comparten muchas cosas. Mi Alero está equipado con Control de crucero. El interruptor
Arduino y Android basado en Bluetooth control de contraseña protegida inteligente cerradura de la puerta (excepto su casa)

Arduino y Android basado en Bluetooth control de contraseña protegida inteligente cerradura de la puerta (excepto su casa)

Todos estamos preocupados por la seguridad de nuestro hogar. Mundo cada vez más inteligente y más inteligente cada día y desea controlar y asegurado lo nuestro de manera más inteligente. En este tutorial que voy a explicar cómo hacer basados en un ar
Módulo de Control de fuegos artificiales

Módulo de Control de fuegos artificiales

Hace unos años me encontré con un módulo de control de fuegos artificiales construido por el usuario de Instructables: systemf92. Su módulo era un gran diseño (encontrado aquí) y sabía que un día tendría que construir algo similar porque combina dos
Control de un tren Lionel con una frambuesa Pi

Control de un tren Lionel con una frambuesa Pi

¿Qué sucede cuando usted toma un viejo modelo de Lionel tren sistema y agregar un control web? Este proyecto controla un set de tren Lionel modelo con el Raspberry Pi.En este proyecto, vamos paso a paso a través de las piezas, hardware y software par
Construir una palanca de Control remoto

Construir una palanca de Control remoto

este instructable le mostrará cómo construir un puerta de control remoto de bloqueo de cualquier número de solenoides de 110V, pasador de acero sólido, algunas las probabilidades y termina varios y un X10 control de la aplicación remota. He construid
Control remoto puerta

Control remoto puerta

El dilema:6:00 de la mañana del 1 de enero. Festejaron hasta 3:00. Ahora está durmiendo fuera cuando se despiertan por un insistente raspado proveniente de la puerta de atrás. Su perro necesita ir fuera a cuidar de su negocio, pero eres cálido y conf
Control de puerta de Edison de Intel

Control de puerta de Edison de Intel

Puerta de control con Edison de Intel.Etiqueta RFID + robot coche pequeño + puerta con un motor servo + Edison conectado a sistema de nube de + Edison para controlar la apertura y cierre puerta + Edison para el control de la cámara de Edison a un blo
Brazo de Robot de Control remoto

Brazo de Robot de Control remoto

este es el siglo secundaria ciencia Olimpiada brazo del Robot que compitieron en el torneo de la Olimpíada de Ciencias de Minnesota 2012 estado con 32 otros equipos. Construí y funcionó este brazo de robot de control remoto para el torneo, colocando