Hallo,
ik ben al een aantal dagen bezig om mij bekend te maken met Arduino. Ik ben nu op het punt waar google weinig hulp meer biedt, misschien kunnen jullie helpen.
Ik wil met een infrarood motion sensor twee computerfans aansturen door middel van een relay.
De beide fans zijn afzonderlijk aan te sturen. Er is dus 1 input van de sensor en 2 outputs van de fans.
Er zijn twee mogelijkheden.
Een mogelijkheid waarin geen beweging is gezien. Deze code ziet er als volgt uit en werkt zoals verwacht;
int Fan1 = 5;
int Fan2 = 6;
int sensor =7;
void setup() {
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, INPUT);
}
void loop() {
breathing();
motion();
}
void on(){
digitalWrite(6, HIGH);
}
void breathing(){
digitalWrite(5, HIGH);
delay(4000);
digitalWrite(5, LOW);
delay(4000);
}
Nu het deel waar ik niet uit kom. De tweede mogelijkheid waarin beweging is gezien.
Wanneer er beweging is gezien moeten beide fans HIGH gaan voor 3 seconden.
Daarna moeten beide fans LOW gaan voor 4 seconden
en daarna moeten beide weer HIGH gaan voor 3 seconden en terug gaan naar de modus waarin geen beweging is gezien.
Dan moet de sensor op "pauze" gaan voor 60 seconden, waarna alles weer opnieuw begint.
Daar hoort deze incomplete, half werkende code bij.
void motion(){
digitalRead (7);
digitalWrite(5, HIGH);
delay(6000);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
delay(4000);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
}
De volledige code, voor de duidelijkheid;
int Fan1 = 5;
int Fan2 = 6;
int sensor =7;
void setup() {
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, INPUT);
}
void loop() {
breathing();
motion();
}
void on(){
digitalWrite(6, HIGH);
}
void breathing(){
digitalWrite(5, HIGH);
delay(4000);
digitalWrite(5, LOW);
delay(4000);
}
void motion(){
digitalRead (7);
digitalWrite(5, HIGH);
delay(6000);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
delay(4000);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
}
Wie kan mij verder helpen?
Groet, E