Personliga utrymme försvarare (2 / 8 steg)
Steg 2: kod
#include < Adafruit_NeoPixel.h >
Parametern 1 = antal pixlar i remsa / / Parameter 2 = pin-kod (de flesta är giltigt) / / Parameter 3 = pixel typ flaggor, Lägg ihop efter behov: / / NEO_RGB pixlar är trådbundet för RGB bitstream / / NEO_GRB pixlar är trådbundet för GRB bitstream / / NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixlar) / / NEO_KHZ800 800 KHz bitstream (t.ex. hög densitet LED strip)
Adafruit_NeoPixel strip = Adafruit_NeoPixel (4, 6, NEO_GRB + NEO_KHZ400);
int sonarPin = 9; PIN ansluten till analog out på maxsonar sensorint inchesAway; inches från maxsonar sensorvoidsetup() {
Strip.BEGIN();
Strip.show(); Initiera alla pixlar för att "off"Serial.begin(9600);
}
Ogiltigloop() {
inchesAway = analogRead(sonarPin) /2; läser maxsonar sensorn och dividerar värdet av 2 / / ungefärliga avståndet i tumföljetong.print(inchesaway); skriver ut sensorn information från maxsonar till seriell övervaka seriell.println ("inches från sensor");
om (inchesAway < 19) {/ / om något är 24 inches bort då göra en 1khz soundlong startTime = millis(); / / spela in början av händelsen närhet.
samtidigt (inchesAway < 19)
{
om ((millis()-startTime) > = 3000) / / om vi har varit i denna slinga i 5 sekunder
{
bryta; avsluta loopen
}
inchesAway = analogRead(sonarPin) /2; fortsätta läsa sensorn
om ((millis()-startTime) > = 3000) / / vi klarat 5 andra provet
{
för (int j = 0; j < 30; j ++) {
för (int jag = 0; jag < 4; i ++)
{
strip.setPixelColor (i, strip. Färg (250, 0, 0));
}
Strip.show();
Delay(100);
för (int jag = 0; jag < 4; i ++)
{
strip.setPixelColor (i, strip. Färg (0, 0, 0));
}
Strip.show();
Delay(100); / / Flash lysdioderna
}
}
Aktivera LED: elseif (inchesAway > 18) {
strip.setPixelColor (1, strip. Färg (0, 0, 0));
}
} //end medan
} //end om
} //end ogiltig loop