Étape 4: Les enfants se réveiller
Nous pouvons le faire avec des circuits relativement simples en utilisant l’Arduino populaire. Vous pouvez obtenir quelques bons tutoriaux au ladyada.org ou arduino.cc. Le code est un mélange entre la détection de base capteur de lumière et le mouvement de servo simple. Il se trouvent ci-dessous. Une note sur le code ci-dessous. Nous avons obtenu deux servos de tailles différentes, pour une raison quelconque, que le mouvement de ceux-ci est différent, donc une gamme modifiée pour le servo plus petit devait servir. L’important, c’est que le servo se déplace d’horizontal à vertical. Cela peut signifier que vous devez soit jouer avec les valeurs dans le code ou la position réelle du palonnier.
Démo :
Code :
#include < Servo.h > trucs de servo étoffe légère void setup() Count = 0 ; void loop()
#include < stdio.h >
Servo myservo ; Créez l’objet servo pour contrôler un servo
vous pouvez créer un maximum de huit objets de servo
Servo smallservo ;
int pos = 0 ; variable pour stocker la position du servo
Réactivation de l’int = 0 ; variable de dire si le gamin devrait être haut ou pas 0: 1 vers le bas : vers le haut
int val = 0 ; variable pour stocker la valeur provenant de la sonde
int count ;
{
Serial.Begin(9600) ;
trucs de servo
myservo.Attach(9) ; attache le servo sur la broche 9 à l’objet de servo
smallservo.Attach(13) ;
POS = 110 ;
étoffe légère
pinMode (entrée, A2) ; déclarer le LDR comme intrant
}
{
Count ++ ;
s’asseoir dans son lit
if(wakeUp == 1)
{
pour (pos, pos < 179; pos += 1) / / va de 0 degrés à 180 degrés
{/ / par incréments de 1 degré
myservo.Write(POS) ; dire de servo pour aller à positionner dans la variable « pos »
smallservo.Write(pos-70) ;
Delay(15) ; attend 15 ms pour le servo atteindre la position
}
}
fixer
if(wakeUp == 0)
{
pour (pos, pos > = 110; pos-= 1) / / va de 180 degrés à 0 degrés
{
myservo.Write(POS) ; dire de servo pour aller à positionner dans la variable « pos »
smallservo.Write(pos-70) ;
Delay(15) ; attend 15 ms pour le servo atteindre la position
}
}
trucs de capteur de lumière
Val = analogRead(A2) ;
Serial.Print ("allumer la valeur =") ;
Serial.println(Val) ;
Si //change (val > 800) basé sur les niveaux de lumière ambiantes
{
wakeUp = 1 ;
}
d’autre
{
wakeUp = 0 ;
}
Delay(1000) ;
}