Beste CO,
Sommige weten al iets over de hardware die ik heb gemaakt voor het looplicht. Nu ik toch even aan het wachten ben op de materialen ben ik alvast begonnen met wat prullen op mijn breadboard en arduino
Project: Het is een traploop licht dat per trede om de zo veel seconde aan gaat afhankelijk van welke kant je komt.
Ik heb 2 sensoren 1 boven, 1 onder aan de trap. Ik heb 13 trap tredes Ik heb een 74HC595 schuifregister gebruikt omdat ik 1 io te weinig had. maar deze kunnen we even weglaten in het programma want mijn test opstelling heb ik gemaakt met 2 drukknoppen ( sensoren ) en 5 ledjes
Doel: Als de persoon van de begane grond naar de 1ste verdieping detecteerd sensor 1 de persoon en zal de leds om de 250ms van onder naar boven aan laten gaan ( ben er al achter gekomen, flade gaat niet omdat niet alle uitgangen PWM zijn ). Komt de persoon vervolgens langs sensor 2 dan moeten de leds OOK van onder naar boven uitgaan om de 1500ms, Stel sensor 1 is gedetecteerd maar sensor 2 is na 1 minuut nog niet gedetecteerd moet en de leds om de 100ms automatisch uitgaan.
Komt de persoon van de 1ste verdieping en gaat naar de begane grond zal de sensor 2 als eerste detecteren en zullen de leds van boven naar onder om de 250ms aangaan. vervolgens komt de persoon dus langs sensor 1 en zullen de leds van boven naar onder uitgaan om de 1500ms Stel sensor 2 is gedetecteerd maar sensor 1 is na 1 minuut nog niet gedetecteerd moet en de leds om de 100ms automatisch uitgaan.
Ik heb wat zitten proberen met het programma het werkt in het eerste zicht wel maar als ik niks doe dan gaat hij de leds automatisch uit doen.
Programma is niet heel professioneel geschreven
c code:
int button1Pin = 2;
int button2Pin = 3;
int led1Pin = 8;
int led2Pin = 7;
int led3Pin = 6;
int led4Pin = 5;
int led5Pin = 4;
void setup() {
pinMode(button1Pin, INPUT);
pinMode(button2Pin, INPUT);
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
pinMode(led4Pin, OUTPUT);
pinMode(led5Pin, OUTPUT);
}
void loop() { if(digitalRead(button2Pin) == HIGH)
{
digitalWrite(led1Pin, HIGH);
delay(250);
digitalWrite(led2Pin, HIGH);
delay(250);
digitalWrite(led3Pin, HIGH);
delay(250);
digitalWrite(led4Pin, HIGH);
delay(250);
digitalWrite(led5Pin, HIGH);
if (digitalRead(button1Pin) == HIGH)
digitalWrite(led1Pin, LOW);
delay(1500);
digitalWrite(led2Pin, LOW);
delay(1500);
digitalWrite(led3Pin, LOW);
delay(1500);
digitalWrite(led4Pin, LOW);
delay(1500);
digitalWrite(led5Pin, LOW);
}
if(digitalRead(button1Pin) == HIGH)
{
digitalWrite(led5Pin, HIGH);
delay(250);
digitalWrite(led4Pin, HIGH);
delay(250);
digitalWrite(led3Pin, HIGH);
delay(250);
digitalWrite(led2Pin, HIGH);
delay(250);
digitalWrite(led1Pin, HIGH);
if (digitalRead(button2Pin) == HIGH)
digitalWrite(led5Pin, LOW);
delay(1500);
digitalWrite(led4Pin, LOW);
delay(1500);
digitalWrite(led3Pin, LOW);
delay(1500);
digitalWrite(led2Pin, LOW);
delay(1500);
digitalWrite(led1Pin, LOW);
}
}
[Bericht gewijzigd door Sjoerd K op woensdag 27 maart 2013 01:24:39 (32%)