Étape 14 : Arduino Sketch
L’esquisse est très simple. L’étape dans le bloc lorsque le détecteur de mouvement est élevé, déterminer la séquence des événements que l’oeil fera en réponse à la détection de mouvement. Elle pourrait utiliser certains TLC, comme c’est le premier programme C que j’ai écrit.
Croquis à clignoter prop yeux quand quelqu'un s’approche.
Comportement peut être modifié en fonction de combien de temps ils restent
Version test clignote LED
#include
void Open_Eyes() ;
void Close_Eyes() ;
void Blink_Eyes() ;
Servo myservo ; Créez l’objet servo pour contrôler un servo
int motionPin = 3 ; broche analogique utilisé pour relier le détecteur de mouvement
int motionVal ; variable pour lire la valeur de l’axe de l’analogique
Servo est fixé sur la broche 9
int ServoPin = 9 ;
Broche 13 intègre une LED connectée sur la plupart des cartes Arduino.
Donnez-lui un nom :
int mené = 13 ;
Drapeau de l’état antérieur
wasHIGH booléen = false ;
void setup() {}
Serial.Begin(9600) ;
initialiser le servo sur « ServoPin »
myservo.Attach(ServoPin) ; s’adapte sur le servo sur la broche défini l’objet de servo
initialiser la broche numérique en tant que sortie.
pinMode (led, sortie) ;
digitalWrite (led, faible) ; éteindre la LED en rendant la tension basse
Permettre le détecteur de mouvement pour se réchauffer.
Delay(20000) ;
Commencer avec les yeux fermés
Close_Eyes() ;
}
void loop() {}
motionVal=digitalRead(motionPin) ;
requête booléenne = (motionVal == 1) ;
Si {(motion)
Open_Eyes() ;
Delay(2000) ;
Blink_Eyes() ;
Blink_Eyes() ;
Delay(3000) ;
Blink_Eyes() ;
Delay(15000) ;
Blink_Eyes() ;
Delay(15000) ;
wasHIGH = true ;
digitalWrite(led,HIGH) ;
}
motionVal=digitalRead(motionPin) ;
Si (! motion) {}
Si {(wasHIGH)
Close_Eyes() ;
wasHIGH = false ;
}
digitalWrite(led,LOW) ;
}
Delay(200) ;
}
void Close_Eyes() {}
pour (int pos = 179; pos > = 1; pos-= 2) {/ / va de 180 degrés à 0 degrés
myservo.Write(POS) ; dire de servo pour aller à positionner dans la variable « pos »
Delay(3) ;
}
}
void Open_Eyes() {}
pour (int pos = 0; pos < 180; pos += 2) {/ / va de 0 degrés à 179 degrés
myservo.Write(POS) ; dire de servo pour aller à positionner dans la variable « pos »
Delay(3) ; attend 1 ms pour le servo atteindre la position
}
}
void Blink_Eyes() {}
Close_Eyes() ;
Open_Eyes() ;
Delay(10) ;
}