Arduino Motion detection enkelt projekt (3 / 4 steg)
Steg 3: Kopiera koden
Bara kopiera koden till Arduino IDE, och upolad det till din Arduino, alla kommandon kommenteras, så du kan läsa det fodrar av linje att förstå hela
Kod:
int ledPin = 13. Välj den PIN-kod för LED
int inputPin = 2; Välj ingångsstift (för PIR-sensor)
int pirState = låg; Vi börjar, förutsatt att ingen rörelse upptäcks
int val = 0; variabel för att läsa pin status
variabler som behövs för att lagra värden
lång puls, tum, cm;
void setup() {
pinMode (ledPin, produktionen); deklarera LED som utdata
pinMode (inputPin, ingång); deklarera sensor som indata
Serial.BEGIN(9600);
}
void loop() {
Val = digitalRead(inputPin); Läs indatavärde
om (val == hög) {/ / kolla om ingången är hög
setColor(250,0,255,ledPin); Välj ett färgvärde
digitalWrite (ledPin, hög); slå LED
om (pirState == låg) {
Vi har bara aktiverat
Serial.println ("Motion upptäckt!");
Vi vill skriva ut på utgång ändra, inte
pirState = hög;
puls = pulseIn (inputPin, hög);
147uS per tum
inches = puls/147;
ändra tum till centimeter
cm = inches * 2.54;
Serial.Print(inches); skriva ut för värdet inches
Serial.Print ("in");
Serial.Print(cm);
Serial.Print("cm"); skriva ut centinetres värde
Serial.println();
Delay(500);
}
} annat {
digitalWrite (ledPin, låg); Inaktivera LED
om (pirState == hög) {
Vi har just fyllt av
Serial.println ("Motion slutade!");
Vi vill skriva ut på utgång ändra, inte
pirState = låg;
}
}
}
void setColor (int rött, int grön, blå, int int ledde) / / funktion för att ställa in önskad färg för LED-färg
{
#ifdef COMMON_ANODE
röd = 255 - röd. det röda kanalvärdet
grön = 255 - grön; det gröna kanalvärdet
blå = 255 - blå; det blå kanalvärdet
#endif
ägna varje kanal värde för att få en färg
analogWrite (led, röd);
analogWrite (led, grön);
analogWrite (led, blå);
}