Interaktiva Arduino skalle (8 / 8 steg)
* Skalle kod - Charles Ford hösten 2013
*
* Levande ljus
* -----------
*
* Använd slumpmässiga siffror att efterlikna ett flimrande ljus med en PWM hade lett
*
* 2007 Tod E. Kurt < tod
* http://todbot.com/
*
*/
// ---------------------------------------------------------------------------
Exempel NewPing bibliotek skiss som gör en ping cirka 20 gånger per sekund.
// ---------------------------------------------------------------------------
#include < NewPing.h >
#define TRIGGER_PIN 12 / / Arduino PIN-kod knuten till utlösa pin på ultrasonic sensor.
#define ECHO_PIN 11 / / Arduino PIN-kod knuten till echo pin på ultrasonic sensor.
#define MAX_DISTANCE 200 / / maximalt avstånd vi vill skicka ping (i centimeter). Maximal sensorn avståndet är dimensionerade för 400-500cm.
NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); NewPing inställning av stift och maximalt avstånd.
// ***************VARIABLES*********************************************
int ledPin = 13. Välj den PIN-kod för LED
int jawPin = 9; Välj PIN-koden för transistorn öppna käken
int signalPin = 5; ledde på minimal Arduino ombord
int k = 0; loop variabel
int val = 0; variabel som innehar den aktuella LED ljusstyrkan
int delayval = 0; variabel som innehar den aktuella fördröjningstiden
int avstånd = 0; variabel för ultraljud avståndet i cm
//****************SETUP************************************************
void setup() {
randomSeed(0); initiera slumptalsgeneratorn
pinMode (ledPin, produktionen); förklara ledPin som en utgång
pinMode (jawPin, produktionen); transistor kontroll som utgång
pinMode (signalPin, produktionen); inbyggd led på kala Arduino ombord
digitalWrite(ledPin,HIGH);
Delay(2000);
digitalWrite(ledPin,LOW);
}
//***************LOOP***************************************************
void loop() {
Delay(50); Vänta 50 ms mellan pingmeddelandena (ca 20 ping/SEK). 29ms bör vara den kortaste fördröjningen mellan pingar.
unsigned int oss = sonar.ping(); Skicka ping, ping tid i mikrosekunder (oss) att få.
Konvertera ping tid avstånd och skriva ut resultatet (0 = utanför visst avstånd sortiment, ingen ping echo)
avståndet = (oss / US_ROUNDTRIP_CM);
om (avstånd < 60 & & avstånd > 0) jaw(); köra rutinen öppna käken
}
//************END OF LOOP**********************************************
void jaw() {
rutin för att öppna käken och flimra lampor
för (k = 0; k < 100; k) {
AKTIVERA RELÄET
om (k < 50) digitalWrite(jawPin,HIGH);
annat digitalWrite(jawPin,LOW);
LEVANDE LJUS EFFEKT PÅ ÖGONEN
Val = random(20,255); plocka ett slumptal mellan 100 och 255
analogWrite (ledPin, val); ställa in LED ljusstyrka
delayval = random(50,150); plocka ett slumptal mellan 30 och 100
Delay(delayval); fördröja att många millisekunder
}
analogWrite (ledPin, 40); lämna ögonen låg i slutet av rutin
}