Herhalingsblok

Het Herhalingsblok is een container die opeenvolgende programmeerblokken kan bevatten. Met dit blok kunnen de opeenvolgende blokken herhaald worden. Je kunt kiezen voor een herhaling die oneindig is, een bepaald aantal keer voorvalt of herhaald wordt tot een sensortest of een andere voorwaarde Waar is.

Alleen de blokken binnen de lus worden herhaald. Aan het einde van de lus zal het programma verder gaan met de blokken die zich na de lus bevinden.
Handige weetjes
Versleep blokken om ze binnen een lus te plaatsen. Het Herhalingsblok zal uitgebreid worden om ruimte te maken voor de blokken die zich erin bevinden.
Kies de modus Herhaling


Moduskiezer
Inputs
Output Teller
Naam herhaling

Gebruik de Moduskiezer om te bepalen hoe de lus uitgevoerd zal worden. De verschillende modi geven aan welke voorwaarde de lus doet beëindigen. Je kunt bijvoorbeeld kiezen voor een bepaald aantal herhalingen, herhalingen tot de waarde van een sensor een bepaalde drempel bereikt, of een oneindig aantal herhalingen. De beschikbare Inputs variëren afhankelijk van de modus. De modi worden hieronder beschreven.

In het veld Naam herhaling boven aan het Herhalingsblok kun je een naam invoeren voor de lus. Deze naam wordt gebruikt door het blok Onderbreking herhaling en biedt je een andere manier om de lus te beëindigen.

Blokken die zich binnen de lus bevinden, kunnen de output Teller gebruiken om na te gaan hoeveel keer de lus zich al heeft voorgedaan. Zie De output Teller gebruiken voor meer informatie.
Modi
Onbeperkt


In de modus Onbeperkt worden de blokken binnen de lus oneindig herhaald. Blokken die zich na de lus bevinden, zullen nooit gestart worden.
Voorbeeld 1
Met dit programma blijft een robot afwisselend rechtdoor/draaiend rijden tot het programma gestopt wordt.
Handige weetjes
Gebruik de Terug-knop op de EV3 om een programma te stoppen.
Voorbeeld 2
Met dit programma wordt er een gesloten mond weergegeven op het EV3-scherm als de Tastsensor ingedrukt wordt, en een open mond als dat niet het geval is. De lus zorgt ervoor dat de sensortest in het blok Schakelen doorlopend herhaald wordt.
Teller


In de modus Teller specificeert de input Teller hoe veel keer de blokken in de lus herhaald moeten worden.
Voorbeeld
Met dit programma zegt een robot één keer „Hello”, daarna zes keer „Go” en vervolgens één keer „Bravo”. Het Herhalingsblok bevat één blok Geluid en is geconfigureerd om zes keer herhaald te worden.
Tijd


In de modus Tijd kun je via de input Seconden een tijdsduur opgeven voor de herhaling van de lus. De tijd wordt gemeten vanaf het begin van de lus.

De tijdslimiet wordt enkel aan het einde van de lussequentie getest. De lussequentie zal altijd minstens één keer uitgevoerd worden, en de lus zal uitsluitend herhaald worden als de verstreken tijd op dat moment minder bedraagt dan het aantal ingevoerd bij Seconden.
Logisch


In de modus Logisch zal de lus herhaald worden tot de input Tot aan het einde van de lussequentie Waar is. De lussequentie zal altijd minstens één keer uitgevoerd worden, en de input Tot wordt aan het einde van elke lussequentie getest.

Gebruik een Gegevensverbinding om de input Tot te verbinden met een output Logisch van een programmeerblok binnen de lus. Deze output moet Waar zijn als je wilt dat de lus beëindigd wordt.
Voorbeeld
Met dit programma rijdt een robot rechtdoor tot de Tastsensor ingedrukt wordt of de Kleursensor zwart detecteert (afhankelijk van wat er als eerste voorvalt). De output van een blok Logische bewerkingen wordt gebruikt voor de input Tot van de lus. Wanneer de lus beëindigd wordt, stopt de robot.
Handige weetjes
Heel wat sensortests waarbij er slechts één sensor wordt gebruikt, kunnen rechtstreeks door het Herhalingsblok uitgevoerd worden door gebruik te maken van de onderstaande sensormodi.
Sensormodi
Het Herhalingsblok bevat verschillende modi die sensorgegevens lezen en deze vergelijken met een inputwaarde. Er zijn verschillende modi voor elk sensortype. Sommige types sensorgegevens kunnen vergeleken worden met een Drempelwaarde, en andere types kunnen vergeleken worden met bepaalde specifieke waarden.
Sensorgegevens vergelijken met een Drempelwaarde
In een modus met een input Drempelwaarde zal het Herhalingsblok de bloksequenties binnen de lus herhalen tot een drempelvergelijking Waar heeft als resultaat. Je kunt een lus bijvoorbeeld laten herhalen tot de Kleursensor een waarde voor Intensiteit gereflecteerd licht detecteert die lager ligt dan een drempelwaarde die je opgegeven hebt.



Moduskiezer
Poortkiezer
Input Vergelijktype
Input Drempelwaarde

Gebruik de Moduskiezer om een sensormodus te kiezen met een input Drempelwaarde. Als de gekozen modus een poort gebruikt, gebruik je de Poortkiezer om ervoor te zorgen dat de poort overeenstemt met de poort op de EV3-steen waarmee de sensor of motor verbonden is.

Kies het gewenste vergelijktype in de lijst Vergelijktype en voer de Drempelwaarde in.

Telkens wanneer de bloksequentie binnen de lus beëindigd is, zal het Herhalingsblok de sensorgegevens lezen en de drempel testen. Als het resultaat van de test op dat moment Onwaar is, zal de lus herhaald worden. Als het resultaat Waar is, zal de lus beëindigd worden en zal het programma doorgaan met het blok dat zich na de lus bevindt.

Raadpleeg de helponderwerpen bij „Sensoren gebruiken” voor meer informatie over het gebruik van verschillende sensortypes en de gegevens die deze verstrekken.
Voorbeeld
Met dit programma rijdt een robot rechtdoor terwijl deze drie verschillende geluiden herhaalt, tot de Kleursensor een waarde van minder dan 50 detecteert voor Intensiteit gereflecteerd licht. Vervolgens wordt de robot gestopt.
Handige weetjes
De drempelwaarde wordt enkel aan het einde van de lussequentie getest. Als de Kleursensor in het bovenstaande voorbeeld in het midden van de lus over een donkere kleur passeert, is het mogelijk dat de robot deze niet waarneemt en niet zal stoppen.
Sensorgegevens vergelijken met specifieke waarden
Met de volgende sensormodi kan een Herhaling sensorgegevens vergelijken met specifieke inputwaarden. De lus zal herhaald worden tot de sensorgegevens overeenstemmen met een opgegeven inputwaarde.
ModusOpmerkingen
Knoppen Intelligente steen De lus wordt herhaald tot een van de geselecteerde knoppen de geselecteerde actie uitvoert.

Zie De Knoppen Intelligente steen gebruiken.
Kleursensor - Kleur De lus wordt herhaald tot een van de geselecteerde kleuren gedetecteerd wordt.

Zie De Kleursensor gebruiken.
Infraroodsensor – Afstandsbediening De lus wordt herhaald tot een van de geselecteerde knoppen op het IR beacon ingedrukt wordt.

Zie De Infraroodsensor gebruiken in de modus Afstandsbediening.
Tastsensor De lus wordt herhaald tot de Tastsensor de geselecteerde status heeft bereikt.

Zie De Tastsensor gebruiken.
Ultrasone sensor – Aanwezigheid De lus wordt herhaald tot er een ultrasoon signaal gedetecteerd wordt.

Zie De Ultrasone sensor gebruiken.
Berichten De lus wordt herhaald tot het opgegeven type bericht ontvangen wordt.

Zie Blok Berichten.
Handige weetjes
De sensor wordt enkel aan het einde van de lussequentie getest. Als de sensorgegevens tijdens het uitvoeren van de lus slechts voor een korte tijd overeenstemmen met de opgegeven inputwaarde, is het mogelijk dat de lus niet beëindigd wordt.
De output Teller gebruiken
De output Teller aan het begin van een Herhalingsblok laat je weten hoeveel keer de lussequentie al werd uitgevoerd. Je kunt de Teller van een lus gebruiken om de lussequentie een andere handeling te laten uitvoeren telkens wanneer de lus herhaald wordt.

De waarde van de Teller bedraagt 0 wanneer de lus voor het eerst wordt uitgevoerd, en wordt bij elke herhaling van de lus verhoogd met 1.
Voorbeeld
Met dit programma wordt op het EV3-scherm een teller weergegeven met het aantal keer dat de tastsensor werd geraakt (ingedrukt en losgelaten). Een blok Wachten binnen de lus zorgt ervoor dat er gewacht wordt tot de tastsensor geraakt wordt vooraleer de lus herhaald wordt. De Teller wordt gebruikt voor de input Tekst van het blok Beeldscherm (weergeven).
Het formaat van een lus wijzigen
Het Herhalingsblok zal normaal automatisch uitgebreid worden om ruimte te maken voor nieuwe programmeerblokken die je naar de lus sleept. Je kunt het formaat van een Herhalingsblok indien nodig ook handmatig wijzigen. Om het formaat van een lus te wijzigen, selecteer je het Herhalingsblok en versleep je vervolgens de grepen aan de buitenkant van het blok.
Voorbeeld
Het formaat van dit Herhalingsblok wordt gewijzigd om ruimte te maken voor een tweede bloksequentie.
Inputs en Output
De beschikbare inputs voor het Herhalingsblok hangen af van de geselecteerde modus. Je kunt de inputwaarden rechtstreeks invoeren in het blok. Daarnaast kunnen de ingevoerde waarden ook verschaft worden via Gegevensverbindingen van de outputs van andere programmeerblokken.
InputTypeOpmerkingen
Teller NumeriekAantal keer dat de lus herhaald moet worden in de modus Teller.
Seconden NumeriekAantal seconden dat de lus herhaald moet worden in de modus Tijd.
Tot LogischIn de modus Logisch zal de lus beëindigd worden wanneer deze input Waar is.
Vergelijktype NumeriekVergelijktype voor een sensormodus met een Drempelwaarde.
0: = (Gelijk aan)
1: ≠ (Niet gelijk aan)
2: > (Groter dan)
3: ≥ (Groter dan of gelijk aan)
4: < (Kleiner dan)
5: ≤ (Kleiner dan of gelijk aan)
Drempelwaarde NumeriekWaarde waarmee de sensorgegevens vergeleken moeten worden voor een sensormodus met een Drempelwaarde.
(Inputs voor individuele sensortypes)Raadpleeg de helponderwerpen over de individuele sensortypes voor meer informatie over de sensorgegevens.
De output van het Herhalingsblok is gelijk aan het aantal keer dat de lus werd herhaald. Om de output te gebruiken, gebruik je een Gegevensverbinding om deze te verbinden met een programmeerblok binnen of na de lus.
OutputTypeOpmerkingen
Teller NumeriekHet aantal keer dat de lus werd uitgevoerd. De waarde voor de Teller bedraagt 0 wanneer de lus voor het eerst wordt uitgevoerd.
Herhaling
Snelkoppelingen