Leds tegelijkertijd laten knipperen

Hoi,

Met de cursus die ik volg, moet ik drie leds gebruiken waar de een snel knippert, tweede normaal en de derde heel langzaam.

Nu vroeg ik me af of er ergens een handleiding bestaat, waarin ik kan vinden dat ze allemaal tegelijkertijd knipperen in plaats van achter elkaar.

Hoi roelofw,

Ik hoop dat ik je vraag goed begrepen heb, en dat is dat je wil dat je LEDs allemaal knipperen maar wel in een ander ritme.
Als dat zo is, maak dan een hoofdteller die voor alle 3 de LEDs telt; de hartslag.
[edit]Ik denk namelijk dat je tot nog toe voor elke LED een eigen teller hebt gemaakt, waardoor ze niet tegelijkertijd knipperen[/edit]
De snelle knipperaar laat je bij elke hartslag aan of uit gaan.
De middelste laat je bij elke 2e hartslag aan of uit gaan.
De langzame laat je dan bij elke 4e hartslag aan of uit gaan.
Volgens mij kun je op die manier de opdracht uitvoeren.

Natuurlijk kun je nadat je dit gedaan hebt, ook bijvoorbeeld de middelste elke 4e hartslag laten nemen en de 3e elke 10 hartslag, waarmee je een heel ander visueel effect maakt.
Die 2e variant die ik hier noem, dat zijn de dingen die boven de opdrachten uitgaan en waarvan ik overtuigd ben dat je daar het meeste van gaat leren en er plezier aan zult beleven.
Zeker wanneer je zelf een variant gaat bedenken op die opdracht, en die succesvol uitvoert.

Ik wens je nog meer plezier in je avonturen !

Dank je

Kan ik dan het beste eerst de stetch bestuderen waarin uitgelegd wordt dat ik iets kunt doen zonder delay te gebruiken ?

Voor dit voorbeeld heb je dat nog niet nodig, omdat voor zover ik het begrijp de sketch alleen maar het knipperen van de LEDs behelst.
Deze oefening is bedoeld om dat met de hartslag te leren en het volstaat nu om je daar nog even toe te beperken.
Je gaat er later veel profijt van hebben dat je dit nu geleerd zal hebben.

De cursus volgt een zekere volgorde om je bekend te maken met de Arduino en programmeer ideeen. Dus zou het niet nodig moeten zijn om een paar hoofdstukken over te slaan om het gebruik van millis() te bestuderen.

oke. geen idee of hij de delay blijft gebruiken of later schakelt naar de millis() om dat uit te leggen.

Ik ga wel deze maken zodat ze achter elkaar knipperen en dan stoppen.
ook dat "heartbeat" verhaal zie ik niet helemaal hoe dat werkt.

Wat @MAS3 met een hartslag bedoeld is een klok met bv alleen de sekonden wijzer. Iedere keer dat die verspringt is dat een tik en kun je iets doen; die tik van de sekonden wijzer kun je bv implementeren met delay(1000).

In de suggestie van MAS3 is het "iets doen" het tellen van tikken; je houdt een teller bij voor iedere LED en als die teller een bepaalde waarde bereikt schakel je de bijbehorende LED aan of uit. Voor een LED die snel knippert kan die waarde van de teller 1 zijn, voor de langzame LED bv 10 en voor de LED die daar tusenin zit kwa snelheid kun je bv 7 gebruiken.

oke, en dan de "klok" eeuwig laten doorlopen of op een bepaald moment weer op nul zettten.
Kan me voorstellen als ik de "klok" eeuwig laat doorlopen dat het geheugen een keer vol loopt en de arduino "crasht"

Het gebruik van de voorwaardelijke operator "ternary operator" wordt soms over het hoofd gezien om dergelijke code te vergemakkelijken:
3 LEDs, different speed - Pastebin.com (quick & dirty code voor een ESP32)

Dank je,

Zit zoals zo vaak dat ik veel te veel doordenk.
Mooie lessen om voor een heel simpel oplossing te gaan.

Niet als je het goed programmeert :smiley:

Als je weet wat je moet doen is het niet zo moeilijk om een Arduino te crashen maar beginners krijgen dat alleen per ongeluk voor elkaar :rofl:

Vooruit denken is juist een goede eigenschap, dus dat moet je vooral blijven doen.
Uiteraard moet het wel in balans blijven :wink:

Ik denk ook niet dat de cursus die je nu volgt er bij gebaat is om de oplossingen te gaan googlen, waarbij je dan uitkomt op een code die voor een beginner niet te volgen is ook al doet die precies wat er beschreven is in de opdracht.

kijk vooral eens naar de les2 waar uitgelegd wordt voor een timer zonder delay (maar dus wel mills() dat is even puzzelen maar als je dat eenmaal doorhebt gaat de werled open voor allerlei multi dingen

Denk ook van niet maar het is ook leuk om je eigen uitdagingen te bedenken die je misschien kan oplosssen.

Ik volg deze cursus ( https://www.youtube.com/playlist?list=PLGs0VKk2DiYw-L-RibttcvK-WBZm8WLEP ) en ben nu bij les 4 / 5

Bedankt voor de link naar de cursus; ik weet nu in ieder geval dat je Engels verstaat :smiley:

Een advies: in les 4 (die ik bekeken heb) lijkt het erop dat bedrading wordt veranderd terwijl de Arduino nog aan is. Hoewel dat in dit geval niet al te gevaarlijk is moet je dat eigenljk nooit doen; je loopt het risico dat je je Arduino of aangesloten componenten beschadigd.

Dank je voor de tip.

Hopelijk heb ik een goede cursus gekozen en leer ik de komende weken/maanden heel veel.

Als het een slechte cursus blijkt, leer je nog veel meer :sweat_smile:

ja, verkeerde zaken.
En dan heel veel tijd moeten steken om de goede te leren.

Daarom ben ik ook helemaal afgeknapt op web design. Van een "mentor" hele verkeerde zaken geleerd zodat ik met complexe sites helemaal in de knoop kwam.

Hopelijk is dat nu niet het geval.

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