double loop ?

Hey allemaal

ik vraag me af of je 2 loops tegelijkertijd kan laten lopen op een arduino?

want ik wil een ledje continu laten knipperen
en ondertussen mijn servo’s aansturen ?

en nog iets wat ik me af vraag

ik ben bezig met lego om daar beweging in te krijgen nu is mijn vraag
is mijn volgende project mogelijk

een treintje rijd rond over een circuit en er zit een spoorweg overgang in
om met 2 fotocel sensors 2 servos en 10 ledjes een soortgelijke spoorwegovergang te programmeren

dus trein komt aan sensor 1 ziet dat slagbomen gaan dicht lampjes en belletje gaan aan trein komt voorbij sensor 2 slagbomen open lampjes en belletje uit

zou mooi zijn als dit zou werken

alvast bedankt

Mark

2 foto cellen10 leds 2 servo's is 14pinnen. dat moet kunnen.
Je spreekt echter ook over bellen. Dat zijn wel extra pinnen.

Om 2 sketches te laten draaien ter gelijkertijd verwijst men standaard naar de sketch blink without delay.
Met vriendleijke groet
Jantje

Het lijkt me verstandig als je eerst je andere projectje afmaakt, daar is nog het een en ander te leren.
Wanneer je daar letterlijk beweging in de zaak hebt, komt de materie die hier van toepassing is (blink without delay) namelijk ook vanzelf om de hoek kijken.

In ieder geval is het nog wat te vroeg om met meerdere projecten gelijktijdig bezig te zijn.

Hoi Mark,

Het wordt geen dubbele loop denk ik. Een goede manier is om je delay() functie zo kort mogelijk te houden. Want tijdens een delay() kan het programma (over het algemeen), geen andere dingen uitvoeren.

Kortom probeer iets als:
boolean ledIsAan = true;
void loop() {

}

Hoi Mark,

Het wordt geen dubbele loop denk ik. Een goede manier is om je delay() functie zo kort mogelijk te houden. Want tijdens een delay() kan het programma (over het algemeen), geen andere dingen uitvoeren.

Kortom probeer iets als:

boolean ledIsAan = true;
byte counter = 0;
void loop()  {
counter++;
if(counter == 0)
    ledIsAan = !ledIsAan; // schakel je led  

    // in de tussentijd kan je hier wat andere zaken uitlezen doen. Zorg er voor dat deze niet veel tijd in beslag nemen...

    delay(10); // korte delay die dus led gaat 255 * 10  (elke 2,55 sec)  aan en uit
}

Delay() is een onding waar alle beginners (ja ook ik...) problemen mee gehad hebben.

"Blink without delay" is de enige goeie manier om die verdomde delay() te leren ontwijken.