Stap 14: Arduino Sketch
De sketch is heel eenvoudig. De stap in het blok als de bewegingsmelder hoog is, bepalen de opeenvolging van gebeurtenissen die het oog in reactie doen zal op de opsporing van de motie. Het kon gebruiken sommige TLC, want het is de eerste C-programma dat ik heb geschreven.
Schets prop ogen knipperen wanneer iemand nadert.
Gedrag kan worden aangepast afhankelijk van hoe lang ze blijven
Testversie knippert LED
#include
nietig Open_Eyes();
nietig Close_Eyes();
nietig Blink_Eyes();
Servo myservo; maken van servo-object om te bepalen van een servo
int motionPin = 3; analoge pin gebruikt voor het aansluiten van de bewegingsmelder
int motionVal; variabele te lezen van de waarde van de analoge pin
Servo is aangesloten op pin 9
int ServoPin = 9;
Pin 13 heeft een LED aangesloten op de meeste Arduino boards Arduino boards.
Geef het een naam:
int geleid = 13;
Vlag voor vorige staat
Boole wasHIGH = false;
VOID Setup {}
Serial.begin(9600);
initialiseren van de servo op 'ServoPin'
myservo.attach(ServoPin); de servo op gedefinieerde pin hecht aan de servo-object
Initialiseer de digitale pin als uitgang.
pinMode led (, uitvoer);
digitalWrite (led, laag); de LED uitschakelen door de spanning laag
Laat de bewegingsmelder om op te warmen.
delay(20000);
Beginnen met ogen dicht
Close_Eyes();
}
void loop {}
motionVal=digitalRead(motionPin);
Booleaanse beweging = (motionVal == 1);
Als (beweging) {}
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);
Als (! beweging) {}
Als (wasHIGH) {}
Close_Eyes();
wasHIGH = false;
}
digitalWrite(led,LOW);
}
delay(200);
}
VOID Close_Eyes() {}
voor (int pos = 179; pos > = 1; pos-= 2) {/ / gaat van 180 graden tot 0 graden
myservo.write(POS); servo naar positie in de variabele 'pos' vertellen
delay(3);
}
}
VOID Open_Eyes() {}
voor (int pos = 0; pos < 180; pos += 2) {/ / gaat van 0 graden tot 179 graden
myservo.write(POS); servo naar positie in de variabele 'pos' vertellen
delay(3); wacht 1ms voor de servo te bereiken de positie
}
}
VOID Blink_Eyes() {}
Close_Eyes();
Open_Eyes();
delay(10);
}