Krijg een void niet gestart
15 berichten
• Pagina 1 van 2 • 1, 2
Krijg een void niet gestart
Hallo,
Heb nu voor het grootste gedeelte deze sketch geprogrammeerd behalve de input van 2 Ultrasonor melders maar ik krijg de void "trapoplicht" en "trapaflicht" niet getriggert door de melders.
De melders geven netjes de afstand aan en ook als het object buiten bereik is.
Maar ik zie de fout niet in mijn sketch waardoor de void's niet worden gestart.
Voor de gevorderde gebruikers ziet het er waarschijnlijk knullig uit maar ik snap het zo.
Wie kan mij vertellen wat ik fout heb.
Zodra de fout eruit is kan ik mij richten op het vereenvoudigen van de sketch.
Heb nu voor het grootste gedeelte deze sketch geprogrammeerd behalve de input van 2 Ultrasonor melders maar ik krijg de void "trapoplicht" en "trapaflicht" niet getriggert door de melders.
De melders geven netjes de afstand aan en ook als het object buiten bereik is.
Maar ik zie de fout niet in mijn sketch waardoor de void's niet worden gestart.
Voor de gevorderde gebruikers ziet het er waarschijnlijk knullig uit maar ik snap het zo.
Wie kan mij vertellen wat ik fout heb.
Zodra de fout eruit is kan ik mij richten op het vereenvoudigen van de sketch.
- Code: Alles selecteren
#define trigPin A0 //Trap op ultrasonor sensor
#define echoPin A1 //Trap op ultrasonor sensor
#define btrigPin A2 //Trap af ultrasonor sensor
#define bechoPin A3 //Trap af ultrasonor sensor
int led1 = 13; //LED aan uitgang
int led2 = 2; //LED aan uitgang
int led3 = 3; //LED aan uitgang
int led4 = 4; //LED aan uitgang
int led5 = 5; //LED aan uitgang
int led6 = 6; //LED aan uitgang
int led7 = 7; //LED aan uitgang
int led8 = 8; //LED aan uitgang
int led9 = 9; //LED aan uitgang
int led10 = 10; //LED aan uitgang
int led11 = 11; //LED aan uitgang
int led12 = 12; //LED aan uitgang
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(btrigPin, OUTPUT);
pinMode(bechoPin, INPUT);
pinMode(led1, OUTPUT); // set pin als uitgang
pinMode(led2, OUTPUT); // set pin als uitgang
pinMode(led3, OUTPUT); // set pin als uitgang
pinMode(led4, OUTPUT); // set pin als uitgang
pinMode(led5, OUTPUT); // set pin als uitgang
pinMode(led6, OUTPUT); // set pin als uitgang
pinMode(led7, OUTPUT); // set pin als uitgang
pinMode(led8, OUTPUT); // set pin als uitgang
pinMode(led9, OUTPUT); // set pin als uitgang
pinMode(led10, OUTPUT); // set pin als uitgang
pinMode(led11, OUTPUT); // set pin als uitgang
pinMode(led12, OUTPUT); // set pin als uitgang
}
void loop() {
//Trap op sensor
int duration, distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
//Trap af sensor
int bduration, bdistance;
digitalWrite(btrigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(btrigPin, LOW);
bduration = pulseIn(bechoPin, HIGH);
bdistance = (bduration/2) / 29.1;
//Trap op sensor
if (distance >= 10 && distance <= 100)
trapoplicht;
else {
Serial.println("Buiten bereik sensor beneden");
//Trap af sensor
if (bdistance >= 10 && bdistance <= 100)
trapaflicht;
else {
Serial.println("Buiten bereik sensor boven");
}
delay(500);
}}
void trapoplicht(){
//Licht gaat aan
Serial.println("Trap op licht aan");
digitalWrite(led1, HIGH);
delay(300);
digitalWrite(led2, HIGH);
delay(300);
digitalWrite(led3, HIGH);
delay(300);
digitalWrite(led4, HIGH);
delay(300);
digitalWrite(led5, HIGH);
delay(300);
digitalWrite(led6, HIGH);
delay(300);
digitalWrite(led7, HIGH);
delay(300);
digitalWrite(led8, HIGH);
delay(300);
digitalWrite(led9, HIGH);
delay(300);
digitalWrite(led10, HIGH);
delay(300);
digitalWrite(led11, HIGH);
delay(300);
digitalWrite(led12, HIGH);
delay(5000);
digitalWrite(led1, LOW);
delay(1200);
digitalWrite(led2, LOW);
delay(1100);
digitalWrite(led3, LOW);
delay(1000);
digitalWrite(led4, LOW);
delay(900);
digitalWrite(led5, LOW);
delay(800);
digitalWrite(led6, LOW);
delay(700);
digitalWrite(led7, LOW);
delay(600);
digitalWrite(led8, LOW);
delay(500);
digitalWrite(led9, LOW);
delay(400);
digitalWrite(led10, LOW);
delay(300);
digitalWrite(led11, LOW);
delay(250);
digitalWrite(led12, LOW);
}
void trapaflicht(){
Serial.println("Trap af licht aan");
digitalWrite(led12, HIGH);
delay(300);
digitalWrite(led11, HIGH);
delay(300);
digitalWrite(led10, HIGH);
delay(300);
digitalWrite(led9, HIGH);
delay(300);
digitalWrite(led8, HIGH);
delay(300);
digitalWrite(led7, HIGH);
delay(300);
digitalWrite(led6, HIGH);
delay(300);
digitalWrite(led5, HIGH);
delay(300);
digitalWrite(led4, HIGH);
delay(300);
digitalWrite(led3, HIGH);
delay(300);
digitalWrite(led2, HIGH);
delay(300);
digitalWrite(led1, HIGH);
delay(5000);
digitalWrite(led12, LOW);
delay(1200);
digitalWrite(led11, LOW);
delay(1100);
digitalWrite(led10, LOW);
delay(1000);
digitalWrite(led9, LOW);
delay(900);
digitalWrite(led8, LOW);
delay(800);
digitalWrite(led7, LOW);
delay(700);
digitalWrite(led6, LOW);
delay(600);
digitalWrite(led5, LOW);
delay(500);
digitalWrite(led4, LOW);
delay(400);
digitalWrite(led3, LOW);
delay(300);
digitalWrite(led2, LOW);
delay(250);
digitalWrite(led1, LOW);
}
Ik ben niet de slimste maar doe wel mijn best.
Andreas
Andreas
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Krijg een void niet gestart
Als je een functie aanroept moet je er wel () achter zetten....
Re: Krijg een void niet gestart
Inderdaad Nico
Nu werkt het wel
Dank je
Nu werkt het wel
Dank je
Ik ben niet de slimste maar doe wel mijn best.
Andreas
Andreas
Re: Krijg een void niet gestart
Nu komt er een ander probleem boven
Als er geen beweging binnen de 10 en 100 cm is dan gaat de verlichting werken dus het brand constant terwijl ik toch
Dus als er beweging is tussen de 10 en 100 cm is dan void "trapoplicht" aan en anders "buitenbereik"
Als er geen beweging binnen de 10 en 100 cm is dan gaat de verlichting werken dus het brand constant terwijl ik toch
- Code: Alles selecteren
//Trap op sensor
if (distance >=10 && distance <=100)
trapoplicht();
else {
Serial.println("Buiten bereik sensor beneden");
}
Dus als er beweging is tussen de 10 en 100 cm is dan void "trapoplicht" aan en anders "buitenbereik"
Ik ben niet de slimste maar doe wel mijn best.
Andreas
Andreas
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Krijg een void niet gestart
Dan heb je nog eea uit te zoeken
Re: Krijg een void niet gestart
De if-statements doen dit: https://www.youtube.com/watch?v=jH2a6PLfQFU.
Ze zitten in elkaar.
Begin met op Ctrl+T te drukken, en kijk alles na. Iedere '{' en '}' hoort op de juiste plaats te staan en ook hoort het inspringen overal correct te zijn. Dan is het veel gemakkelijker om de structuur van je code te zien.
Print de distance naar de seriële monitor, misschien zit er soms een verkeerde waarde tussen.
Ze zitten in elkaar.
Begin met op Ctrl+T te drukken, en kijk alles na. Iedere '{' en '}' hoort op de juiste plaats te staan en ook hoort het inspringen overal correct te zijn. Dan is het veel gemakkelijker om de structuur van je code te zien.
Print de distance naar de seriële monitor, misschien zit er soms een verkeerde waarde tussen.
Re: Krijg een void niet gestart
persoonlijk zou ik ook even wachten tot de eerste uitgepingt is en dat is niet al na 1 milliseconde.
verder heeft koepel gelijk want de {} staan niet juist.
verder heeft koepel gelijk want de {} staan niet juist.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Krijg een void niet gestart
Inderdaad heren,
Na veel zoeken werkt het nu helemaal goed zo als ik het wil.
Mijn dank is groot voor jullie hulp.
Na veel zoeken werkt het nu helemaal goed zo als ik het wil.
Mijn dank is groot voor jullie hulp.
Ik ben niet de slimste maar doe wel mijn best.
Andreas
Andreas
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Krijg een void niet gestart
Dan zou het wel leuk zijn als je ook verteld waarin het zat. Dan heeft een ander er ook wat aan.
Re: Krijg een void niet gestart
Er stonden inderdaad een paar {} verkeerd en een spelfout.
Heb het nu zo kunnen uitbreiden dat het nu zo is geworden (en ja ik weet het kan beter)
Heb het nu zo kunnen uitbreiden dat het nu zo is geworden (en ja ik weet het kan beter)
- Code: Alles selecteren
//*********** Deze waardes mogen worden gewijzigt *******************************
int afstand = 50; // deze waarde is voor de detectieafstand van 0 tot XX CM
int luxwaarde = 500; // deze waarde is voor lichtsensor
int wachttijd = 2; // wachttijd in sec.
//**********************************************************************************
#define trigPin A0 //Trap op ultrasonor sensor
#define echoPin A1 //Trap op ultrasonor sensor
#define btrigPin A2 //Trap af ultrasonor sensor
#define bechoPin A3 //Trap af ultrasonor sensor
#define ldrPin A5 // set ingang pin voor lichtsensor
int ldrValue = 0;
int calibrationTime = 40; // wachttijd voor sensor calibratie
int ledstrip1 = 2; //ledstrip aan uitgang
int ledstrip2 = 3; //LED aan uitgang
int ledstrip3 = 4; //LED aan uitgang
int ledstrip4 = 5; //LED aan uitgang
int ledstrip5 = 6; //LED aan uitgang
int ledstrip6 = 7; //LED aan uitgang
int ledstrip7 = 8; //LED aan uitgang
int ledstrip8 = 9; //LED aan uitgang
int ledstrip9 = 10; //LED aan uitgang
int ledstrip10 = 11; //LED aan uitgang
int ledstrip11 = 12; //LED aan uitgang
int ledstrip12 = 13; //LED aan uitgang
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT); // set pin als uitgang
pinMode(echoPin, INPUT); // set pin als ingang
pinMode(btrigPin, OUTPUT); // set pin als uitgang
pinMode(bechoPin, INPUT); // set pin als ingang
pinMode(ldrPin, INPUT); // set pin als ingang
pinMode(ledstrip1, OUTPUT); // set pin als uitgang
pinMode(ledstrip2, OUTPUT); // set pin als uitgang
pinMode(ledstrip3, OUTPUT); // set pin als uitgang
pinMode(ledstrip4, OUTPUT); // set pin als uitgang
pinMode(ledstrip5, OUTPUT); // set pin als uitgang
pinMode(ledstrip6, OUTPUT); // set pin als uitgang
pinMode(ledstrip7, OUTPUT); // set pin als uitgang
pinMode(ledstrip8, OUTPUT); // set pin als uitgang
pinMode(ledstrip9, OUTPUT); // set pin als uitgang
pinMode(ledstrip10, OUTPUT); // set pin als uitgang
pinMode(ledstrip11, OUTPUT); // set pin als uitgang
pinMode(ledstrip12, OUTPUT); // set pin als uitgang
delay(calibrationTime);
}
void loop() {
//lichtsensor
//ldrValue = analogRead(ldrPin);
//Trap op sensor
int duration, distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;
//Trap af sensor
int bduration, bdistance;
digitalWrite(btrigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(btrigPin, LOW);
bduration = pulseIn(bechoPin, HIGH);
bdistance = (bduration / 2) / 29.1;
//Trap op sensor
if (ldrValue <= luxwaarde && distance <= afstand)
trapoplicht();
//Trap af sensor
if (ldrValue <= luxwaarde && bdistance <= afstand)
trapaflicht();
delay(100);
}
//Start licht aan trap op
void trapoplicht() {
Serial.println("Trap op licht aan");
digitalWrite(ledstrip1, HIGH);
delay(300);
digitalWrite(ledstrip2, HIGH);
delay(300);
digitalWrite(ledstrip3, HIGH);
delay(300);
digitalWrite(ledstrip4, HIGH);
delay(300);
digitalWrite(ledstrip5, HIGH);
delay(300);
digitalWrite(ledstrip6, HIGH);
delay(300);
digitalWrite(ledstrip7, HIGH);
delay(300);
digitalWrite(ledstrip8, HIGH);
delay(300);
digitalWrite(ledstrip9, HIGH);
delay(300);
digitalWrite(ledstrip10, HIGH);
delay(300);
digitalWrite(ledstrip11, HIGH);
delay(300);
digitalWrite(ledstrip12, HIGH);
Serial.println("start wachttijd trap op");
delay(wachttijd * 1000);
Serial.println("stop");
digitalWrite(ledstrip1, LOW);
delay(1200);
digitalWrite(ledstrip2, LOW);
delay(1100);
digitalWrite(ledstrip3, LOW);
delay(1000);
digitalWrite(ledstrip4, LOW);
delay(900);
digitalWrite(ledstrip5, LOW);
delay(800);
digitalWrite(ledstrip6, LOW);
delay(700);
digitalWrite(ledstrip7, LOW);
delay(600);
digitalWrite(ledstrip8, LOW);
delay(500);
digitalWrite(ledstrip9, LOW);
delay(400);
digitalWrite(ledstrip10, LOW);
delay(300);
digitalWrite(ledstrip11, LOW);
delay(250);
digitalWrite(ledstrip12, LOW);
Serial.println("Trap op licht uit");
}
//Start licht aan trap af
void trapaflicht() {
Serial.println("Trap af licht aan");
digitalWrite(ledstrip12, HIGH);
delay(300);
digitalWrite(ledstrip11, HIGH);
delay(300);
digitalWrite(ledstrip10, HIGH);
delay(300);
digitalWrite(ledstrip9, HIGH);
delay(300);
digitalWrite(ledstrip8, HIGH);
delay(300);
digitalWrite(ledstrip7, HIGH);
delay(300);
digitalWrite(ledstrip6, HIGH);
delay(300);
digitalWrite(ledstrip5, HIGH);
delay(300);
digitalWrite(ledstrip4, HIGH);
delay(300);
digitalWrite(ledstrip3, HIGH);
delay(300);
digitalWrite(ledstrip2, HIGH);
delay(300);
digitalWrite(ledstrip1, HIGH);
Serial.println("start wachttijd trap af");
delay(wachttijd * 1000);
Serial.println("stop");
digitalWrite(ledstrip12, LOW);
delay(1200);
digitalWrite(ledstrip11, LOW);
delay(1100);
digitalWrite(ledstrip10, LOW);
delay(1000);
digitalWrite(ledstrip9, LOW);
delay(900);
digitalWrite(ledstrip8, LOW);
delay(800);
digitalWrite(ledstrip7, LOW);
delay(700);
digitalWrite(ledstrip6, LOW);
delay(600);
digitalWrite(ledstrip5, LOW);
delay(500);
digitalWrite(ledstrip4, LOW);
delay(400);
digitalWrite(ledstrip3, LOW);
delay(300);
digitalWrite(ledstrip2, LOW);
delay(250);
digitalWrite(ledstrip1, LOW);
Serial.println("Trap af licht uit");
}
Ik ben niet de slimste maar doe wel mijn best.
Andreas
Andreas
15 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 36 gasten