Paso 4: Los niños despertar
Podemos hacerlo con circuitos relativamente simples utilizando el popular Arduino. Usted puede conseguir algunos buenos tutoriales en ladyada.org o arduino.cc. El código es una mezcla entre la detección básica de sensor de luz y el movimiento del servo simple. Se puede encontrar a continuación. Una nota sobre el código a continuación. Nos pusimos dos servos de tamaño diferentes, por alguna razón que el movimiento de estos es diferente así que una variedad modificada para el servo más pequeños debían utilizarse. Lo importante es que el servo se mueve de horizontal a vertical. Esto puede significar que usted necesita ya sea juego con los valores en el código o la posición actual del brazo servo.
Demo:
Código:
#include < Servo.h > cosas de servo cosas de luz void setup() cuenta = 0; void loop()
#include < stdio.h >
Servo myservo; crear objeto servo para controlar un servo
se puede crear un máximo de ocho objetos de servo
Servo smallservo;
int pos = 0; variable para almacenar la posición del servo
Activación de int = 0; variable para decir si el niño debe ser arriba o 0 no: abajo 1: hasta
int val = 0; variable para almacenar el valor que viene desde el sensor
int cuenta;
{
Serial.Begin(9600);
cosas de servo
myservo.Attach(9); se fija el servo en el pin 9 al objeto servo
smallservo.Attach(13);
pos = 110;
cosas de luz
pinMode (A2, entrada); declarar el LDR como INSUMO
}
{
cuenta ++;
sentarse en la cama
if(wakeUp == 1)
{
para (pos, pos < 179; pos += 1) / / va desde 0 grados a 180 grados
{/ / en pasos de 1 grado
myservo.Write(POS); Dile el servo a la posición en la variable 'pos'
smallservo.Write(pos-70);
Delay(15); espera 15ms para el servo a la posición
}
}
establecer
if(wakeUp == 0)
{
para (pos, pos > = 110; pos-= 1) / / va de 180 grados a 0 grados
{
myservo.Write(POS); Dile el servo a la posición en la variable 'pos'
smallservo.Write(pos-70);
Delay(15); espera 15ms para el servo a la posición
}
}
cosas de sensor de luz
Val = analogRead(A2);
Serial.Print ("valor de luz =");
Serial.println(Val);
Si //change (val > 800) basado en niveles de luz ambiente
{
Activación = 1;
}
otra cosa
{
Activación = 0;
}
Delay(1000);
}