Paso 3: Paso 3: programación del chip ATtiny85
Utilicé mi Arduino Uno como el ISP para programar el chip pequeño que no voy a entrar a través de los pasos para hacer esto, pero aquí es el sitio que solía hacerlo.
http://42bots.com/tutorials/How-to-Program-attiny85-with-Arduino-uno-Part-1/
http://42bots.com/tutorials/How-to-Program-attiny85-with-Arduino-uno-Part-2/
Código Resumen
El código está diseñado para que una persona puede tanto establecer y comprobar las luces sin salir en el accidente. El usuario Conecte el sensor, le dará 5 segundos antes de que comience la prueba de distancia. Esto da el tiempo de usuario para salir de la sala después de ajustarlo. Un esfuerzo similar fue puesto en comprobar el sensor, naturalmente se es programado es que cuando lee el valor por debajo de 70cm a ir rojo. Esto significa que cada vez se abre la puerta el LED rojo se convierte. Sin embargo la forma en que está programado el usuario tiene unos 5 segundos antes de que cambia de verde a rojo.
Dentro del código hay una parte para filtrar valores de 0, esto viene de un problema con el sensor. Cada ahora y después te tiro un 0 al azar, por lo que el código filtra cualquier valor que es igual a 0 para evitar una entrada falsa.
[Editar (25/02/14)]
El sensor ultrasónico funciona enviando una señal de pulso por el lado envío, que recoge la señal de pulso en el otro lado que es esencialmente un micrófono y calcular el tiempo toma para recibir en microsegundos (que es 1/1.000.000 de segundo). Tomará este tiempo que fue recogido y divida por la velocidad del sonido medida en microsegundos. Devuelve la distancia en centímetros. El sensor ultrasónico funciona mejor cuando señaló perpendicular al objeto que está midiendo. Que funciona cuando está en un ángulo, pero la máxima lectura proviene de la lectura perpendicular.
Este programa está constantemente enviando señales de ping y comprobación por interrupciones en la distancia. De esta manera tiene una posibilidad absoluta de coger a alguien entrar a la sala (a menos que por supuesto corren más rápido que la velocidad del sonido).
El código de
#include < TinyNewPing.h >
// ---------------------------------------------------------------------------
Código que fue escrito para el Arduino basado alarma silenciosa
23/02/14
Publicada en instructables
Ejemplo NewPing
// ---------------------------------------------------------------------------
#define TRIGGER_PIN 2 / / pin Arduino atado para activar el pin en el sensor de ultrasonidos.
#define ECHO_PIN 3 / / atado de Arduino pin a pin en el sensor ultrasónico del eco.
#define MAX_DISTANCE 200 / / distancia máxima queremos ping para (en centímetros). Distancia máxima del sensor está valorada en 400-500cm.
int buffer, distancia;
int verde = 0, rojo = 1;
Sonar de NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); NewPing instalación de pernos y distancia máxima.
void setup() {}
pinMode (verde, salida); Define los pines como salidas para los LEDs
pinMode (rojo, salida);
digitalWrite (verde, alto); Esta sección es hacer que el flash ligero durante unos 5 segundos
Delay(500); También te ofrece una oportunidad para salir de la habitación sin salir el sensor.
digitalWrite(green,LOW);
Delay(500);
digitalWrite (verde, alto);
Delay(500);
digitalWrite(green,LOW);
Delay(500);
digitalWrite (verde, alto);
Delay(500);
digitalWrite(green,LOW);
Delay(500);
digitalWrite (verde, alto);
Delay(500);
digitalWrite(green,LOW);
Delay(500);
digitalWrite (verde, alto);
Delay(500);
digitalWrite(green,LOW);
Delay(500);
digitalWrite(green,HIGH); Mantiene el verde led encendido hasta que interrumpe
buffer = 200;
}
void loop() {}
Delay(250); Espera 250ms entre pings. 29ms debería ser el retraso más corto entre pings.
unsigned int nos = sonar.ping(); Enviar ping, ping tiempo en microsegundos (uS).
buffer = uS / US_ROUNDTRIP_CM;
if(buffer!=0) {//Sensor da lecturas falsas trataba de deshacerse de valores 0
distancia = buffer;
}
otra cosa
{}
if(Distance<70) //Measuring distancia, para mostrar que alguien ha estado en la habitación
{
Delay(5000); Espera 5 segundos para darle una oportunidad para comprobar las luces.
digitalWrite(green,LOW);
hacer
{
digitalWrite (rojo, alto); Muestra que alguien ha abierto la puerta o entró en la habitación
Delay(1000);
digitalWrite(red,LOW);
Delay(1000);
} while(1);
}
}