Help, basic sensor schakeling

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 1
Geregistreerd: 02 Sep 2015, 10:45

Help, basic sensor schakeling

Berichtdoor CoffeeErik » 02 Sep 2015, 10:50

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

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Help, basic sensor schakeling

Berichtdoor nicoverduin » 02 Sep 2015, 11:50

Wij willen best helpen, maar dan moet je wel vertellen wat niet goed werkt. Mijn eerste indruk op jouw code is in ieder geval:
a) je leest de sensor maar doet er niets mee dus zal hij inderdaad niet reageren
b) je gebruikt delay() waardoor de processor op dat moment stilstaat gedurende die tijd (zie het programma blink without delay)
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 13 gasten