* Schedel code - Charles Ford herfst 2013
*
* Kaarslicht
* -----------
*
* Gebruik willekeurige getallen te emuleren van een trillende kaars met een PWM geleid
*
* 2007 Tod E. Kurt < tod
* http://todbot.com/
*
*/
// ---------------------------------------------------------------------------
Voorbeeld NewPing bibliotheek schetsen dat doet een ping ongeveer 20 keer per seconde.
// ---------------------------------------------------------------------------
#include < NewPing.h >
#define TRIGGER_PIN 12 / / Arduino pin gebonden aan pin op de ultrasone sensor te activeren.
#define ECHO_PIN 11 / / Arduino pin gebonden aan echo pin op de ultrasone sensor.
#define MAX_DISTANCE 200 / / maximale afstand die wij wilt pingen voor (in centimeters). Maximale sensor afstand wordt begroot op 400-500cm.
NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); NewPing installatie van pennen en maximale afstand.
// ***************VARIABLES*********************************************
int ledPin = 13; Selecteer de pin voor de LED
int jawPin = 9; Selecteer de pin voor de transistor te openen van de kaak
int signalPin = 5; LED op minimale Arduino board
int k = 0; lus variabele
int val = 0; variabele die in het bezit van de huidige LED helderheid
int delayval = 0; variabele die in het bezit van de huidige vertragingstijd
int afstand = 0; variabele voor ultrasone afstand in cm
//****************SETUP************************************************
VOID Setup {}
randomSeed(0); initialiseren van de random number generator
pinMode (ledPin, OUTPUT); de ledPin verklaren als uitgang
pinMode (jawPin, OUTPUT); controle van de transistor als OUTPUT
pinMode (signalPin, OUTPUT); ingebouwde led op kale Arduino board
digitalWrite(ledPin,HIGH);
delay(2000);
digitalWrite(ledPin,LOW);
}
//***************LOOP***************************************************
void loop {}
delay(50); Wachten 50 MS tussen pings (ongeveer 20 pings/sec). 29ms moet de kortste wachttijd tussen pings.
unsigned int ons = sonar.ping(); Ping te sturen, ping tijd in microseconden (VS).
Converteren van ping tijd afstand te drukken resultaat (0 = buiten bepaalde afstand bereik, geen ping echo)
afstand = (ons / US_ROUNDTRIP_CM);
Als (afstand < 60 & & afstand > 0) jaw(); uitvoeren door de routine open kaak
}
//************END OF LOOP**********************************************
ongeldig jaw() {}
routine te openen van de kaak en de lampjes flikkeren
voor (k = 0; k < 100; k) {}
ACTIVEREN VAN DE ESTAFETTE
Als (k < 50) digitalWrite(jawPin,HIGH);
anders digitalWrite(jawPin,LOW);
KAARSLICHT EFFECT OP OGEN
Val = random(20,255); Kies een willekeurig getal tussen 100 en 255
analogWrite (ledPin, val); instellen van de helderheid van de LED
delayval = random(50,150); Kies een willekeurig getal tussen 30 en 100
delay(delayval); dat veel milliseconden vertraging
}
analogWrite (ledPin, 40); Laat de ogen laag aan het einde van de routine
}