Arduino kontrollerad säkerhet lampor också skrämmande prop för halloween (4 / 4 steg)
Steg 4:
#define trig 12
#define echo 13
#define power_pin 11
#define buzzerReset A0
#define summern 10
int lysdioder [] = {2,3,4,5,6,7,8, A1};
booleska alarmTrig = false;
booleska ledFlash = false;
void setup()
{Serial.begin(9600);
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
pinMode(power_pin,OUTPUT);
pinMode (buzzerReset, ingång);
pinMode (Summer, produktionen);
digitalWrite(power_pin,HIGH); Som för det finns ingen extern strömkälla så vi behöver pin 1 så hög
för (int jag = 0; jag < 8; i ++)
pinMode (lysdioder [i], produktionen);
}
void loop()
{
dubbla avståndet = hc_sr04 (trig, echo); samtal hc_sr04() och få avståndet utgör det
Serial.Print(Distance); skriva ut avståndet Serial.println ("cms framåt");
int ange = karta (constrain(distance, 1,20), 1, 20, 0, 8);
IF(ledFlash == false)
{
för (int jag = 0; jag < = indikera; i ++) {
digitalWrite (LED [i], låg);
}
för (int jag = indikera; jag < = 8; i ++)
{
IF(i == 0)
alarmTrig = sant;
digitalWrite (LED [i], hög);
}
}
IF(alarmTrig == true)
{
activate_alarm();
}
IF(digitalRead(buzzerReset) == hög)
resetBuzzer(); }
void resetBuzzer()
{alarmTrig = false;
ledFlash = false;
digitalWrite (Summer, låg);
}
dubbel hc_sr04 (dubbel trigPin, dubbel echoPin)
{
dubbel tid, avstånd; Detta förfarande omnämns i databladet för HC-SR04 fäst
digitalWrite (trigPin, låg);
delayMicroseconds(2);
digitalWrite (trigPin, hög);
delayMicroseconds(10);
digitalWrite (trigPin, låg);
längd = pulseIn (echoPin, hög); Kolla in hänskjuta till veta om den här funktionen... Välj "pulseIn"
Tryck på Ctrl + Skift + F
avståndet = ((duration/1000000) * 33000) / 2; avståndet = hastighet * tid/2
återvända constrain(distance,0,200); vet inte vad tvinga är bara att välja det och Ctrl + Skift + F
}
void activate_alarm()
{ledFlash = true; analogWrite (Summer, 255);
för (int jag = 0; jag < 8; i ++)
digitalWrite (LED [i], hög);
Delay(100);
analogWrite (Summer, 150);
för (int jag = 0; jag < 8; i ++)
digitalWrite (LED [i], låg);
Delay(100);
}