Las poluciones nocturnas: Mi Arduino Internet habilitado sueño generador (6 / 7 paso)

Paso 6: Interrumpimos este programa!

Una de las cosas más difíciles que tuve que aprender de este proyecto era todo acerca de interrupciones.  Una interrupción es un proceso que se puede ejecutar en paralelo en el fondo mientras que el esbozo se encarga de otras cosas.  No pude obtener el botón para activar la impresora y decidí que era porque con la Maxbotix sensor votación todo el tiempo y la música y las luces para encender allí era demasiado suceso.  Una pulsación es perfecto para una interrupción especialmente porque lo no ocurre a menudo.  He escuchado que lo describió de esta manera.  Su timbre de puerta de rota y estás esperando un envío importante de cabeceras de ángulo recto para su proyecto final que es debido la próxima semana.  Eres frenéticamente escribir el instructivo para hacer el estudio y que no desea detener cada minuto o dos para ver si el tipo de entrega ha dejado el paquete.  Así que usted contrata a un conejo de la tarea a su puerta y cuando el paquete llega.  Es como una interrupción!  El código sigue tapando lejos mientras que la interrupción opera en paralelo sin interrumpir el código hasta que tenga algo de información importante.

Parece complicados y se hace más así por el hecho de que hay un montón de información acerca de estos Arduino implementa interrupciones que sólo parecen funcionar en las patillas 1 y 2.  Me enteré de una interrupción de nivel más profundo llamada una interrupción de AVR que puede funcionar independientemente del número de pin.  Parece algo complicados porque todo están escrito en un código de bajo nivel que sólo se ve como gobbldygook pero he encontrado el código aquí en el Wave Adafruit protector ejemplos.

Se empieza por «incluidas» AVR en el comienzo del boceto

#include < avr/pgmspace.h > //so podemos programar utilizando código AVR

Luego se activa la interrupción como esta...

interrupción AVR initalize
TCCR2A = 0;
TCCR2B = 1 << CS22 | 1 << CS21 | 1 << CS20;

Permiten interrumpir el desbordamiento del TIMER2
TIMSK2 | = 1 << TOIE2;

(Ya sé, derecha?)

Luego se identifica una función activada por la interrupción

la interrupción que se ejecuta en paralelo con la función de lazo y calle la función check_button()

{Signal(TIMER2_OVF_vect)}
check_button();
}

Luego se programa la función

}

void check_button() {}

buttonState = digitalRead(buttonPin);

Si (buttonState == alto & & previousButtonState == LOW) {}
buttonPressed = 1; Utilice esta variable global a la función loop que se presiona el botón
previousButtonState = alto; establecer el estado de botón previou al estado actual del botón
}

if(buttonState == Low) {}
buttonPressed = 0; Dile a la funcion de loop que no se presiona el botón
previousButtonState = bajo; establecer la buttonState anterior al estado actual del botón
}

}

Ahora cuando la ve de interrupción que el botón ha sido pulsado lo enciende la música y las luces!

Artículos Relacionados

Internet habilitado sistema de seguridad DSC hogar

Internet habilitado sistema de seguridad DSC hogar

Modificar un sistema existente de DSC Home Security internet habilitado y auto controlados.Este instructable supone un trabajo frambuesa Pi.Nota: esta aplicación tiene los siguientes defectos:Si un ladrón corta el cable de ADSL de venir o servicio de
Internet habilitado nevera: Una primera incursión en Internet de las cosas

Internet habilitado nevera: Una primera incursión en Internet de las cosas

Hola a todos!Tuve un problema con el congelador en nuestra casa. De vez en cuando, el congelador no cierra por completo, cualquier rebote abierto o consigue apoyado ligeramente abierta. Este pequeño espacio era bastante de un espacio para que el aire
Arpa del Laser de rápida Arduino MIDI

Arpa del Laser de rápida Arduino MIDI

¡Hola!He creado unos Arduino (y más recientemente, Olimexino) enmarcado arpas láser de MIDI (ver uno aquí), y con frecuencia recibo correos electrónicos pidiendo más información sobre cómo construir uno. Estoy poniendo este instructable para dar una
Arboleda de Arduino WiFi habilitado efecto invernadero

Arboleda de Arduino WiFi habilitado efecto invernadero

Lo esencial:GroveSensor de temperatura/humedad de Grove - alta precisiónSensor de luz analógico GroveGrove - EncoderGrove - Sensor UVGrove - humedadGrove - RGB 16 x 2 pantallaGrove - 20CM de Cable x3Grove - 50CM de Cable x2Grove - protector del Senso
Añadir Bluetooth 4.0 para su proyecto de Arduino [Internet] - controlada por Smartphone

Añadir Bluetooth 4.0 para su proyecto de Arduino [Internet] - controlada por Smartphone

Somos Grupo de internet de entusiastas de las cosas que amo hacking juntos diferentes dispositivos. Compruebe hacia fuera nuestro actual proyecto en nuestro sitio web y echa un vistazo a esta guía en un formato diferente en nuestro blog.Paso 1: intro
Arduino Web habilitado RGB iluminación

Arduino Web habilitado RGB iluminación

me acaba de pasar a ver unas grandes tiras de iluminación LED cuando estaba recogiendo de algunas partes en Maplin que estaban a la venta (si mal recuerdo correcto eran alrededor de £12 por cada tira de 2m aprox.) sin embargo el controlador era todav
Internet habilitado luces escalera interactivo

Internet habilitado luces escalera interactivo

bien, esto se ha hecho antes, yo sé.  Ya hay incluso unos instructables sobre cómo hacer las luces de la escalera.  Míos son un poco diferentes.  Verás, estoy partiendo en un spree domótica y este es uno de los elementos en mi casa.  Esto permite un
Arduino Internet (sin Wifi protector)

Arduino Internet (sin Wifi protector)

en este instructable voy a mostrarle cómo conectar tu arduino a la internet, hay muchas maneras de hacer esto. Uno utiliza un escudo de Ethernet pero su conexión y no muy convinent utilizar, en el segundo hay wifi puede ser la mejor manera de conecta
Atenea el búho almohada luz nocturna-Lilypad Arduino

Atenea el búho almohada luz nocturna-Lilypad Arduino

IntroducciónDe tecnología para los jóvenes de clase bibliotecas, llegué a experimentar con un pedazo fresco de tecnología llamada un Lilypad Arduino. Este tipo de placa Arduino es específicamente para e-textiles. La placa principal de Arduino se pued
Lámpara de escritorio controlado de Arduino Internet

Lámpara de escritorio controlado de Arduino Internet

este es un pequeño proyecto que hice para mi lámpara de mesa de control por internet.Paso 1: Lo que necesitaráUn linux-servidor web con PHP, un arduino, un relé y algunos otros componentes.Paso 2: Añadir el código para el arduinoSubir el siguiente có
Campana de Arduino independiente habilitado para la web

Campana de Arduino independiente habilitado para la web

inspirado por este post, quería crear una campana de Arduino powered que era totalmente independiente.Con PHP un poco y (si quieres) algunas jQuery en cualquier página web, usted puede hacer este anillo de la campana cuando se realiza una acción espe
Rápido y fácil de luz nocturna de Arduino

Rápido y fácil de luz nocturna de Arduino

honestamente, cuántas personas han estado en este escenario (deje un sí o no en los comentarios): es 2:30 de la mañana y se despierta con una necesidad hacer algo independientemente que puede ser (baño, tarea olvidada, proyecto debido en 5 o 6 horas,
Controlado por Arduino Internet LEDs

Controlado por Arduino Internet LEDs

Hola,En este proyecto voy a piloto del canal una páginas Web. Puede abrir su navegador y el led de control.El código cuando cargado y conectado a internet crea un servidor Web en su LAN y simplemente usas la IP para acceder a ese servidor Web a travé
Internet habilitado frambuesa Pi alimentador del animal doméstico

Internet habilitado frambuesa Pi alimentador del animal doméstico

Se trata de un comedero de perro con un Raspberry Pi.Si quieres:una manera fácil de alimentar a su perro grandehacer un seguimiento de cuando te alimentasCuánto control y cuánto alimentay ser capaz de alimentar remotamente a través de correo electrón