Movimiento activa Servo (3 / 4 paso)

Paso 3: código

Este código debe ser cargado a tu Arduino. Si lo desea, puede abrir el Serial del monitor en el IDE de Arduino para poder ver lo que está haciendo el Arduino.

Para escribir este código, básicamente combiné código encontrado para un sensor PIR (http://playground.arduino.cc/Code/PIRsense) y un código para un servo (http://arduino.cc/en/Tutorial/Sweep) y luego hizo cambios allí donde pensé que podría mejorar el código.

Código:

/ * Este código barre un servo de 0 grados a 180 cuando el sensor PIR detecta el movimiento.
Especial agradecimiento para el autor del código de sensor PIR, cuyo código ayudado muchísimo
en la elaboración de este código y el Instructable.
autor del código de sensor PIR: Kristian Gohlke / gmail krigoo (_) (_) com / http://krx.at
**/

#include < Servo.h >

Servo myservo;  crea un objeto servo
se puede crear un máximo de ocho objetos de servo

int pos = 0;        variable para almacenar la posición del servo

cantidad de tiempo da el sensor a calibrar (10 a 60 segundos según la hoja de datos)

int calibrationTime = 30;

el momento cuando el sensor produce un impulso de baja
tiempo unsigned int lowIn;

la cantidad de milisegundos que el sensor tiene que ser bajo
antes de asumir todo el movimiento se ha detenido
pausa larga unsigned int = 5000;

Boolean lockLow = true;
takeLowTime Boolean;

pirPin INT = 12;            pin digital conectado a la salida del PIR
pirPos int = 13;           se conecta al pin de 5V de PIR

void setup() {}
myservo.Attach(4);    se fija el servo al pin 4
Serial.Begin(9600);    comienza comunicación serial
pinMode (pirPin, entrada);
pinMode (pirPos, salida);
digitalWrite (pirPos, HIGH);

darle tiempo al sensor a calibrar
Serial.println ("calibración sensor");
para (int i = 0; i < calibrationTime; i ++) {}
Serial.Print(calibrationTime-i);
Serial.Print("-");
Delay(1000);
}
Serial.println();
Serial.println("Done");

al hacer este Instructable, tuve algunos problemas con salida de PIR
va alta inmediatamente después de la calibración
Esto espera hasta que la salida del PIR es baja antes de terminar la instalación
mientras que (digitalRead(pirPin) == HIGH) {}
Delay(500);
Serial.Print(".");
}
Serial.Print ("SENSOR activo");
}

void loop() {}

if(digitalRead(pirPin) == HIGH) {//if PIR de salida es alta, servo de vuelta

/ * convierte servo de 0 a 180 grados y la espalda
lo hace al aumentar la variable "pos" por 1 cada 5 milisegundos hasta 180
y ajuste de posición del servo en grados de "pos" cada 5 milisegundos
luego lo hace en sentido contrario para volver
para aprender más sobre esto, google "lazos"
para cambiar la cantidad de grados el servo gira, cambiar el número 180 en el número de grados que desea girar a la
**/
para (pos = 0; pos < 180; pos += 1) //goes de 0 a 180 grados
{//in pasos de un grado
myservo.Write(POS);                   dice el servo a la posición en la variable "pos"
Delay(5);                                   espera a que el servo a la posición
}
para (pos = 180; pos > = 1; pos-= 1) //goes de 180 a 0 grados
{
myservo.Write(POS);                  para hacer que el servo ir más rápido, reducir el tiempo de demoras para
Delay(5);                                  para hacer que vaya más lento, aumentar el número.
}

{if(lockLow)}
se asegura de que esperamos una transición a la baja antes de la salida más
lockLow = false;
Serial.println("---");
Serial.Print ("movimiento detectado en");
Serial.Print(Millis()/1000);
Serial.println ("sec");
Delay(50);
}
takeLowTime = true;
}

if(digitalRead(pirPin) == LOW) {}

{if(takeLowTime)}
lowIn = millis();             ahorrar el tiempo de la transición de alto a bajo
takeLowTime = false;    Asegúrese de que esto sólo se hace en el inicio de una fase
}

Si el sensor está bajo más de la pausa dada,
podemos suponer que el movimiento se ha detenido
Si (! lockLow & & millis() - lowIn > pausa) {}
hace que este bloque de código es sólo se ejecuta después de
se ha detectado una nueva secuencia de movimiento
lockLow = true;
Serial.Print ("movimiento terminada en"); salida
Serial.Print((Millis() - pausa) / 1000);
Serial.println ("sec");
Delay(50);
}
}
}

Artículos Relacionados

Movimiento activa reproductor de música al azar

Movimiento activa reproductor de música al azar

este proyecto llegó a ser por todas las razones correctas, sonrisas, risas y compartir felicidad con los demás. Me siento bendecida con una familia increíble y el grupo de personas que cada día generosamente compartirán, hacen e inspiran a otros en e
IoT movimiento controlado Servos

IoT movimiento controlado Servos

Seguro y confiable en tiempo real streaming de datos es esencial para la IoT. He visto un montón de manifestaciones que impliquen aplicaciones o hardware de tipo "botón aquí, llevado allí", pero un amigo y yo quería hacer algo más interactivo...
Movimiento-activa el reproductor de música

Movimiento-activa el reproductor de música

Encender música tan pronto como entras en una habitación! Este tutorial cubre un sensor de entrada minimalistas que activa la música de su elección. El diseño puede ser fácilmente adaptado para adaptarse a una variedad de necesidades (por ejemplo, si
Movimiento activa la iluminación exterior

Movimiento activa la iluminación exterior

iluminación es uno de los aspectos más importantes de su hogar o negocio. Sino encender las luces y apagar todo el tiempo es un fastidio, sin dejar de mencionar la energía desperdiciado cuando, inevitablemente, se olvide de apagar por la noche. Por e
Movimiento activa las luces de Navidad

Movimiento activa las luces de Navidad

En este Instructable le mostrará cómo hacer que su Navidad se enciende cuando hay alguien en la sala utilizando un Arduino, el módulo de relé y un sensor de movimiento PIR.Hice esto porque quería que las luces de mi árbol de Navidad miniatura para en
Cómo hacer un timbre movimiento activa

Cómo hacer un timbre movimiento activa

sentido personas acercarse a su unidad con dos piezas de tecnología barata.Reqired herramientas mínimas:Exacto cuchillo (cuchillo de Stanley)Soldadura de hierroTaladroPaso 1: piezas: Sensor de movimiento PIRTimbre de Radio baratoRecinto para el timbr
Stealth Iron Man con electrónica y Servos

Stealth Iron Man con electrónica y Servos

Esto resume todo lo que hice para crear mi primer traje de Iron Man con un casco de mecanizado.  Siempre me ha encantado el look y el concepto de armadura de sigilo de Tony Stark.  Este fue el primer traje serio que hecho y fue un montón de aprendiza
Trabajo ligero Kinetic con módulos láser servo-controlado

Trabajo ligero Kinetic con módulos láser servo-controlado

Describe cómo construí el Ventilador de láser, una obra de arte cinética interactiva mediante servos y láseres. Esta fue mi primera pieza terminada mi residencia muelle 9 y estoy muy contento con cómo resultó! Los elementos activos del Ventilador lás
4 servo drive CellBot que puede ser controlado remotamente.

4 servo drive CellBot que puede ser controlado remotamente.

empecé con una idea de lo que quería intentar desde el principio pero uno tras otro finalmente llegué a donde estoy ahora. Este robot puede ser controlado desde cualquier lugar del mundo y conducido alrededor de la casa remotamente. Puedo ver a travé
Sensor de movimiento PIR 3V conducir un módulo de relé (defectuoso) 3v

Sensor de movimiento PIR 3V conducir un módulo de relé (defectuoso) 3v

Por favor voten por este instructable. Ver la votación en la parte superior derecha. Sería genial ganar una camiseta! Eso es todo que estoy en busca de salir de esto.El propósito de este instructable es mostrar cómo usar un Sensor PIR (detección de m
Mantenga indeseados visitantes con un movimiento activación por aspersión

Mantenga indeseados visitantes con un movimiento activación por aspersión

¿Los animales locales cree que su jardín es su aseo personal? ¿Asesinos de ninja mantenga intentando colarse en tu casa? Mantenga estos visitantes no deseados con un sistema de rociadores de movimiento activado. Tan pronto como caminan en su césped,
Construcción de un movimiento y seguimiento torreta de Portal

Construcción de un movimiento y seguimiento torreta de Portal

Es lindo, es educado y es realmente mortal. Es una torreta de Portal. Se mueve, tiene luz, tiene sonido y algo que no tenía mi anterior proyecto Portal: seguimiento de la cámara.La torreta está controlada con un Arduino y un ordenador. Arduino contro
Sistema de Sensor de movimiento infrarrojo DIY para frambuesa Pi

Sistema de Sensor de movimiento infrarrojo DIY para frambuesa Pi

Durante el mes de julio de 2015, completó un internado de secundaria en Colorado State University, y uno de los proyectos que he trabajado fue el de un sensor de proximidad infrarrojo para Raspberry Pi.Este corto alcance sensor infrarrojo puede ser a
Lector RFID con Servo

Lector RFID con Servo

En esta instrucción sólo voy a decirle sobre la fabricación de un circuito simple con 2 LED, un servo, un lector RFID y un arduino uno.Se necesita:-2 LED (2 diferentes collors)-un motor de servo-un lector de RFID y la clave-un arduino uno-unos cables