Adjustable lamp (3 / 3 steg)
Steg 3: Koden
#define
trigPin 12
#define echoPin 13
#define ledde 8
#define led2 7
#define led3 6
#define led4 5 / / definiera alla lampor
int state = 1;
booleska onOff = false;
void setup() {
Serial.BEGIN (9600);
pinMode (trigPin, produktionen);
pinMode (echoPin, ingång);
pinMode ledde (, OUTPUT);
pinMode (led2, produktionen);
pinMode (led3, produktionen);
pinMode (led4, produktionen);
pinMode(9,INPUT_PULLUP); definiera lysdioder som utgångar
}
int tröskel = 1000;
void loop() {
om (digitalRead(9) == hög) {//if den är påslagen
onOff = sant; ge den variabla onOff värdet true
Serial.println("High"); Kontrollera om det fungerar i SerialPrint
}
annat if (digitalRead(9) == låg) {/ / om växeln är avstängd
onOff = false; ge den variabla onOff värdet false
Serial.println("Low"); Kontrollera om det fungerar i SerialPrint
}
om (onOff == true) {/ / om onOff är sant, lysdioderna kommer att ske genom motionsensor
lång varaktighet, avstånd;
digitalWrite (trigPin, låg);
delayMicroseconds(2);
digitalWrite (trigPin, hög);
delayMicroseconds(10);
digitalWrite (trigPin, låg);
längd = pulseIn (echoPin, hög);
avståndet = (längd/2) / 29,1;
Serial.println(Distance); om avståndet är närmare än 10 cm, att alla lampor skina
om (avstånd < 10) {
digitalWrite(led,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
}
annars om (distanserar < 15) {/ / om avståndet är närmare än 15 cm, alla lampor att skina
digitalWrite(led,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,LOW);
}
annars om (distanserar < 20) {/ / om avståndet är närmare än 20 cm, alla lampor att skina
digitalWrite(led,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
}
annars om (distanserar < 30) {/ / om avståndet är närmare än 30 cm, alla lampor att skina
digitalWrite(led,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
}
}
annars om (onOff == false) {/ / om onOff är false Lysdioderna är vände låg
digitalWrite(led,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
}
}