:OPGELOST: Probleem met een while loopje

Hallo,

ik heb een tijd terug beginning C for arduino gekregen.
er staat een er staat een "opdrachtje" over werken met loopjes,
het is de bedoel dat het programma 5x mag raden en tijdens het raden knippert de rondjes led
wanneer het DOEL gevonden zou de gevonden led moeten gaan branden.

Alleen mijn programma gaat na 5x naar de
if statement doel = target
kan iemand mij vertellen wat ik verkeerd doe?

#define PAUZE 500L
#define LANGEPAUZE 2000L
#define MAX 5000L
#define MIN 0L
#define DOEL 2500L
#define IOPIN2 2
#define IOPIN3 3
int rondjesled = IOPIN2;
int gevondenled = IOPIN3;

unsigned long rondjes;
unsigned long gevonden;
unsigned long totaal;
long randNumber;

int teller;

void setup() {
 pinMode(rondjesled, OUTPUT);
 pinMode(gevondenled, OUTPUT);
 randomSeed(analogRead(0));
Serial.begin(9600);
}

void loop() {
 
 while(teller < 4){
     randNumber = random(MIN, MAX);
     if (randNumber == DOEL){
      break;
      }
  digitalWrite (rondjesled, LOW);
  delay (PAUZE);
  digitalWrite (rondjesled, HIGH);
  delay (PAUZE);
  totaal++;
  teller++;
 }
 if ( teller == 4){
      teller = 0;
      rondjes++;
      delay(LANGEPAUZE);
      }

if (randNumber = DOEL){ // HIER gaat het mis
 totaal++; 
 Serial.println(" Totaal");
 Serial.println(totaal);
 Serial.println("rondjes ");
 Serial.println(rondjes);
 Serial.println("gevonden ");
 Serial.println(gevonden);
  
  digitalWrite (gevondenled, LOW);
  delay (LANGEPAUZE);
  digitalWrite (gevondenled, HIGH);
  delay (LANGEPAUZE);
  teller = 0;
}else{
  teller = 0;

}
}
 






 

Hoi.

Je maakt een veelgemaakte fout, die iedereen al eens gemaakt heeft.
In regel 45 kijk je naar het resultaat van de handeling die je daar doet, want je begint met een if..
Maar de handeling die je doet slaagt altijd en het resultaat is daarom altijd niet nul, waarmee de if.. zijn zin krijgt.
De if krijgt dus niet zijn zin als de handeling nul als resultaat heeft.
De handeling die je na de if doet, is niet een vergelijking, maar je maakt de ene waarde gelijk aan de andere waarde.
Eerder deed je dat wel goed, dus je weet eigenlijk wat je moet doen.

Ik had ook in 1 regel kunnen zetten je moet dit doen in plaats van dat doen, maar het doel van dit antwoord is dat je zelf de fout vind en het daarom een volgende keer zelf zult vinden.

top bedankt! ik zag het gisteravond echt niet meer. Terwijl ik je reply aan het lezen was had ik mijn fout al door. Het werkt inmiddels!
voel me nu wel een noob, gelukkig ben ik er ook 1 :stuck_out_tongue:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.