Ultrasónico garaje Parking Assistant con Arduino y un ATtiny85 (3 / 4 paso)

Paso 3: Añadir el código para el Arduino

Primero, descargar e instalar el IDE de Arduino más reciente (1.0.5) aquí hay un enlace a la página de descarga http://arduino.cc/en/Main/Software.
Nosotros ahora lo que instalar la biblioteca de NewPing, aquí hay un enlace en las instrucciones para descargar e instalar la biblioteca de NewPing http://playground.arduino.cc/Code/NewPing.

Si usted planea usar el ATtiny parte del archivo NewPing.cpp debe ser editado. Hay dos grandes sección del código dedicada a temporizadores, comentar todo esto hacia fuera. NewPing.h se puede dejar solo.

Es importante utilizar esta biblioteca y no para realizar la medición de la distancia manualmente. La razón es porque cuando el sensor ping no puede regresar a distancia, retrasará por un segundo en lugar de varias veces por segundo como debe. Este es un problema cuando se tira el coche y no hay ninguna respuesta de la unidad durante un período breve. En aquel momento un coche puede mover varios pies y hacer que el dispositivo inútil. Esta biblioteca fija que así mantiene respuesta.

El arreglo de la perno será sin embargo optó por conectar la placa de arduino, así que asegúrese de ajustar este código para trabajar con el circuito. Recuerde, si usted quiere usar pwm para obtener el brillo de color justo Asegúrese de utilizar pernos con un ~ símbolo para tu LED o consulte el diagrama del pinout ATtiny85 para pwm pins. No incluí el uso de la clavija azul, simplemente porque el ATtiny85 no tiene suficientes pernos sin reprogramación el pin de reset para I/O. No molesta hacerlo.

Usted puede agregar algunos nuevos colores o cambie para adaptarse a tu estado de ánimo. Si usted necesita una indicación más precisa, puede bajar el valor a 1 o 2 (tenga en cuenta que su +-, por lo tanto un 2 para la variable de rango dará una gama de 4 pulgadas) o subir más alto si tienes espacio de sobra. También puede editar las distancias en la que cada color del LED cambiará. He encontrado 120 y 50 pulgadas que apenas a la derecha.

Actualización: LED se ha movido a los pines 0 y 1. El método yellow() ha sido actualizado para incluir PWM. Usted puede tiene que encontrar valores que funcionan mejor con su LED.

Código

#include < NewPing.h > //include la biblioteca NewPing

Pines de I/O
int rLED = 0;
gLED int = 1;
int buttonPin = 2;
eco int = 3;
int disparo = 4;

valores de
int distancia = 0;
set de int = 0;
int alto = 0;
int menor = 0;
int rango = 3;                                   rango es de +-por lo que es el doble del valor en pulgadas
int cuenta = 0;
Boolean lastButton = bajo;          seguimiento de estado de botón
Boolean currentButton = bajo;
int anterior = 0;                              mantener un registro de distancias para identificar cuando el coche está aparcado
int actual = 0;

Sonar de NewPing (0, 1, 500);       constructor de NewPing sonar (echoPin, triggerPin, max_CM)

void setup()
{
pinMode (gLED, salida);
pinMode (rLED, salida);
pinMode (buttonPin, entrada);
}
void loop()
{
distancia = sonar.ping_in();                  detectar distancia en pulgadas
if(Distance == 0) distancia = 500;          Si no se lee distancia, situado a distancia máxima
actual = distancia;                                para comprobar cuánto coche ha estado aparcado para entrar en el ahorro de energía

Delay(100);                                             ¿Programa lento-ahorrar batería?

currentButton = debounce(lastButton);            Lee estado de botón y realiza debounce, corrige el comportamiento de botón inesperado

Si (lastButton == baja & & currentButton == HIGH) //when el botón empujado, establecer distancia deseada para el estacionamiento
{
Set = distancia;                                nueva variable para la distancia medida
flashGreen();                                  parpadeo de LED verde 3 veces
flashGreen();
flashGreen();
}

lastButton = currentButton;            restablecer estado de botón

superior = set + gama;                        + /-pulgadas rango de tolerancia
menor = conjunto - gama;

Si (distancia < = superior & & distancia > = inferior) //within establecer el área, deje de!
{
distancia oscila de algunos resultando en detección de movimiento falso
Si (actual == anterior || actual == anterior + 1 || actual == previo - 1)
{
cuenta ++;                           aumentar la cuenta si no se ha movido el coche
}

otra cosa
{
cuenta = 0;                          cuenta se resienten si hay un cambio significativo en la distancia
}

Si haces cambio de distancia para 250 ciclos (30 seg) Apague el LED -> modo de ahorro
Si (cuenta > = 250)
{
OFF();
cuenta = 250;                        no incrementar para siempre
}
otra cosa
{
red();                                   dentro de gama, detener. LED rojo de
}

}
if(Distance > Upper)
{
cuenta = 0;                            Si el coche se mueve bastante lento, nunca puede restablecer el recuento en sobre el código, reiniciar otra vez, en caso

Si (distancia > = set + 120) //sensor se convierte innacurate a distancias mucho más allá de 120 pulgadas
{//no coche en garaje apagar LED
OFF();
}
Si (distancia < set + 120 & & distancia > set + 50) //car se detecta
{//if distancia es de menos pulgadas sets + 120 y mayores de set + 50 pulgadas
Green();
}
Si (distancia < = set + 50 & & distancia > superior) //wihtin 50 pulgadas de distancia fija, despacio
{
Yellow();
}
}
if(Distance < Lower) //car está demasiado cerca, debe copia de seguridad
{
cuenta = 0;                                                                         misma situación pues si coche se mueve muy lentamente
flashRed();
}

anterior = distancia;                                                        actualizar distancias
}                                                                                            //end of loop

Debounce método para corregir de picos de voltaje que causan un comportamiento inesperado
debounce(boolean last) Boolean
{
booleano actual = digitalRead(buttonPin);
Si (último! = corriente)
{
Delay(5);
actual = digitalRead(buttonPin);
}
vuelta actual;
}

métodos de color;
void green()
{
digitalWrite (rLED, HIGH);                 por circuito de pull-up resistor, se invierte el código
digitalWrite (gLED, LOW);
}
void red()
{
digitalWrite (gLED, HIGH);
digitalWrite (rLED, LOW);
}
void yellow()
{
digitalWrite (rLED, 0);
digitalWrite (gLED, 100);
}
void flashRed()
{
digitalWrite (gLED, HIGH);                     Flash LED rojo
digitalWrite (rLED, LOW);
Delay(100);
digitalWrite (rLED, HIGH);
Delay(100);
}
void flashGreen()
{
digitalWrite (rLED, HIGH);
digitalWrite (gLED, LOW);                  parpadeo de LED verde al presiona el botón
Delay(50);
digitalWrite(gLED,HIGH);
Delay(50);
}
off() vacío
{
digitalWrite (gLED, HIGH);                  Apagar el LED
digitalWrite (rLED, HIGH);
}

Final del código de

Copie y pegue el código en el IDE de Arduino y subir de golpe.

Nuevamente, asegúrese de editar los números de pin para acomodar tu circuito y cambiar lo que desea.

Artículos Relacionados

Gesto ultrasónico basado en TV con control remoto

Gesto ultrasónico basado en TV con control remoto

este es un proyecto bastante simple que está diseñado para introducir los componentes clave para un nuevo usuario de Arduino. He creado esto en unas horas trasteando con existentes de las bibliotecas de Arduino y un kit de inicio de SainSmart. Aplica
Correo electrónico control de reloj con Arduino Yun y cómo devolver mensajes no leídos como un entero.

Correo electrónico control de reloj con Arduino Yun y cómo devolver mensajes no leídos como un entero.

En este video usamos un Arduino Yun (o leonardo con un escudo de Wi-Fi) para comprobar su cuenta de correo electrónico (o la etiqueta solicitada) y devolver el número de correos electrónicos no leídos como un entero para ser utilizado en otro proyect
Utiliza un sensor ultrasónico robot carro funcionando con batería de la motocicleta con pantalla LCD

Utiliza un sensor ultrasónico robot carro funcionando con batería de la motocicleta con pantalla LCD

Este coche robot trabaja con sensor ultrasonido HC-SR04 y alimentado con batería de la motocicleta 12V usado.Paso 1: Cuerpo de coche robot Hacer el cuerpo del robot utilizando madera contrachapada y una pieza plana de madera. Cortar la madera contrac
Fabricación de Radar usando Arduino, sensor ultrasónico y MATLAB

Fabricación de Radar usando Arduino, sensor ultrasónico y MATLAB

En este proyecto vamos a hacer un simple radar para detectar obstáculos.Rango depende del rango del sensor ultrasónico utiliza (en este proyecto: 3 metros).Paso 1: componentesComponentes:1 - Arduino Uno2 - Sensor de distancia ultrasonidos (enlace: ht
Medidor de distancia ultrasónico con pantalla LCD en el Arduino UNO

Medidor de distancia ultrasónico con pantalla LCD en el Arduino UNO

En este tutorial vamos a ver un uso distinto del módulo de ultrasonidos HC-SR04. Este módulo es de uso frecuente en coches de juguetes y robots para localizar obstáculos pero puede ser utilizado para medir distancias así.Distancias medidas por la HC-
Arduino - Sensor ultrasónico con LED y zumbador

Arduino - Sensor ultrasónico con LED y zumbador

Hola chicos este es mi primer tutorial, apenas he empezado a aprender electrónica hace unos meses (previamente he supe cómo programar en C y Python). Cuando he terminado este proyecto (me llevó unas 5 horas o algo) he decidido compartir para ayudar a
La medición de distancia con sensor ultrasónico y Arduino

La medición de distancia con sensor ultrasónico y Arduino

Hola cada unoConseguí mi primer Aduino recientemente, aquí estoy ver gonne que mi primer proyecto que utiliza la medición de distancia sensor ultrasónico y Arduino, puede utilizar este proyecto muchas aplicaciones comoNivel 1-líquidoDetección de obje
Arduino Nano: Mide distancia con Ranger ultrasónico y registro para tarjeta MicroSD con Visuino

Arduino Nano: Mide distancia con Ranger ultrasónico y registro para tarjeta MicroSD con Visuino

Las tarjetas MicroSD son soporte de almacenamiento barato y fácil, y son muy convenientes para el almacenamiento de datos del sensor de Arduino . Hay también un número de baratos disponibles Módulos de tarjeta MicroSD para Arduino.En este Instructabl
Arduino ultrasónico Distanciómetro, con pantalla lcd de I²C!

Arduino ultrasónico Distanciómetro, con pantalla lcd de I²C!

Hola,en este proyecto que quiero mostrar y explicar un sensor de gama con ultrasonidos y una pantalla de lcd de 20 x 04. Escribí el código para este proyecto yo y añadidos muchos comentarios, para que todo el mundo puede entenderlo y utilizarlo para
Capturar la imagen mediante sensor ultrasónico con arduino

Capturar la imagen mediante sensor ultrasónico con arduino

Llevo muy pocos meses en el espacio de la IOT y tratar de integrar cosas con placa Arduino, recientemente me encontré con sensor ultrasónico, es interesante. Así que pensé en crear un pequeño proyecto. El objetivo del proyecto es capturar el obstácul
Medición de la velocidad del sonido con Arduino microcontrolador y un sensor ultrasónico

Medición de la velocidad del sonido con Arduino microcontrolador y un sensor ultrasónico

Mi hija de 6 años, Samatha, muestra cómo medir la velocidad del sonido en el aire con el microcontrolador de Arduino Uno y sensor ultrasónico.Creo que esto es un buen proyecto para que los niños quedan expuestos a la ciencia, ingeniería y matemáticas
Sensor ultrasónico con Arduino.

Sensor ultrasónico con Arduino.

DE MANERA SIMPLE!Paso 1: La Intro...¡ Hola! Este es mi primer Instructable. Aquí, voy a mostrarte cómo probar el Sensor de ultrasonidos de una forma muy sencilla.Así que, ¿cómo funciona un Sensor de ultrasonidos?Es simple, como en la imagen, el Senso
Distanciómetro ultrasónico con Arduino

Distanciómetro ultrasónico con Arduino

Telémetro ultrasónico es un método sencillo de calcular distancia de un obstáculo a la distancia sin contacto físico. Emplea un sensor de distancia por ultrasonidos que utiliza pulsos de sonido para medir la distancia. Emiten un pulso ultrasónico y t
Guía de estacionamiento ultrasónico incorporado Hackduino (Arduino)

Guía de estacionamiento ultrasónico incorporado Hackduino (Arduino)

Esta es una guía de parking de hackduino que cabe en una vieja caja de trabajo, por lo que se puede construir en a la pared en su garaje. Originalmente iba a usar el Arduino con el sensor de distancia por ultrasonidos para el control de un semáforo r