Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <VarSpeedServo.h>;
- int stateNow = 0;
- int stateBefore = 0;
- int i = 0;
- int j = 0;
- const int buttonPin = 13; //switch pour ouvre/ferme
- const int servoPin = 9; //pin pour le servo
- const int openval = 175; //degré douverture
- const int closeval = 75 ; // degré de fermeture
- const int left_eye=7; //pin pour lumiere oeil gauche
- const int right_eye=6; // pin pour lumiere droite
- const int closespeed=60; // vitesse de mouvement en fermeture sur 255
- const int openspeed=255; //vitesse de mouvement en ouverture sur 255
- long randON = 0; // Initialize a variable for the ON time
- long randOff = 0; // Initialize a variable for the OFF time
- VarSpeedServo servo;
- void setup() {
- pinMode (buttonPin, INPUT);
- pinMode (left_eye, OUTPUT);
- pinMode (right_eye, OUTPUT);
- pinMode (servoPin, OUTPUT);
- servo.attach (servoPin,closeval,openval);
- servo.write(openval);
- randomSeed (analogRead (0)); // randomize
- }
- void loop() {
- stateNow = digitalRead(13);
- if (stateNow != stateBefore) {
- if (stateNow==HIGH and i==0) {
- servo.slowmove(closeval,closespeed);
- delay(1000);
- digitalWrite (left_eye, HIGH);
- randON = random (25, 200); // generate ON time between 0.1 and 1.2 seconds
- delay(randON);
- digitalWrite (left_eye, LOW);
- randOff = random (25, 200); // generate OFF time between 0.2 and 0.9 seconds
- delay(randOff);
- digitalWrite (right_eye, HIGH);
- randON = random (25, 200); // generate ON time between 0.1 and 1.2 seconds
- delay(randON);
- digitalWrite (right_eye, LOW);
- randOff = random (25, 200); // generate OFF time between 0.2 and 0.9 seconds
- delay(randOff);
- digitalWrite (left_eye, HIGH);
- randON = random (25, 200); // generate ON time between 0.1 and 1.2 seconds
- delay(randON);
- digitalWrite (left_eye, LOW);
- randOff = random (25, 200); // generate OFF time between 0.2 and 0.9 seconds
- delay(randOff);
- digitalWrite (right_eye, HIGH);
- randON = random (25, 200); // generate ON time between 0.1 and 1.2 seconds
- delay(randON);
- digitalWrite (right_eye, LOW);
- randOff = random (50, 200); // generate OFF time between 0.2 and 0.9 seconds
- delay(randOff);
- digitalWrite (right_eye, HIGH);
- digitalWrite (left_eye, HIGH);
- randON = random (75, 350); // generate ON time between 0.1 and 1.2 seconds
- delay(randON);
- digitalWrite (right_eye, LOW);
- digitalWrite (left_eye, LOW);
- randOff = random (50, 350); // generate OFF time between 0.2 and 0.9 seconds
- delay(randOff);
- digitalWrite (left_eye, HIGH);
- digitalWrite (right_eye, HIGH);
- randON = random (75, 350); // generate ON time between 0.1 and 1.2 seconds
- delay(randON);
- digitalWrite (right_eye, LOW);
- digitalWrite (left_eye, LOW);
- randOff = random (50, 900); // generate OFF time between 0.2 and 0.9 seconds
- delay(randOff);
- digitalWrite (left_eye, HIGH);
- digitalWrite (right_eye, HIGH);
- j=1;
- }
- else if (stateNow==LOW and j==1) {
- i=1;
- }
- else if (stateNow==HIGH and i==1) {
- digitalWrite (left_eye, LOW);
- digitalWrite (right_eye, LOW);
- servo.slowmove(openval,openspeed);
- j=0;
- }
- else if (stateNow==LOW and j==0) {
- i=0;
- }
- }
- stateBefore=stateNow;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement