Krijg een void niet gestart

Projecten die niet passen in bovenstaande onderwerpen
Gebruikers-avatar
Berichten: 102
Geregistreerd: 26 Okt 2015, 16:07

Krijg een void niet gestart

Berichtdoor Atwist » 05 Mrt 2017, 16:02

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. ;)

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

Advertisement

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

Re: Krijg een void niet gestart

Berichtdoor nicoverduin » 05 Mrt 2017, 16:10

Als je een functie aanroept moet je er wel () achter zetten....
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 102
Geregistreerd: 26 Okt 2015, 16:07

Re: Krijg een void niet gestart

Berichtdoor Atwist » 05 Mrt 2017, 16:21

Inderdaad Nico

Nu werkt het wel

Dank je
Ik ben niet de slimste maar doe wel mijn best.
Andreas

Gebruikers-avatar
Berichten: 102
Geregistreerd: 26 Okt 2015, 16:07

Re: Krijg een void niet gestart

Berichtdoor Atwist » 05 Mrt 2017, 16:42

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
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

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

Re: Krijg een void niet gestart

Berichtdoor nicoverduin » 05 Mrt 2017, 16:43

Dan heb je nog eea uit te zoeken :)
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Krijg een void niet gestart

Berichtdoor Koepel » 05 Mrt 2017, 16:57

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.

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Krijg een void niet gestart

Berichtdoor shooter » 07 Mrt 2017, 20:42

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.
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 102
Geregistreerd: 26 Okt 2015, 16:07

Re: Krijg een void niet gestart

Berichtdoor Atwist » 08 Mrt 2017, 07:41

Inderdaad heren,

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

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

Re: Krijg een void niet gestart

Berichtdoor nicoverduin » 08 Mrt 2017, 09:22

Dan zou het wel leuk zijn als je ook verteld waarin het zat. Dan heeft een ander er ook wat aan.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 102
Geregistreerd: 26 Okt 2015, 16:07

Re: Krijg een void niet gestart

Berichtdoor Atwist » 08 Mrt 2017, 14:00

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)

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

Volgende

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 35 gasten