Blok Schakelen

Het blok Schakelen is een container die twee of meer opeenvolgende programmeerblokken kan bevatten. Elke opeenvolging wordt een Voorwaarde genoemd. Een test aan het begin van Schakelen bepaalt welke Voorwaarde er wordt uitgevoerd. Er wordt slechts één Voorwaarde uitgevoerd telkens wanneer Schakelen uitgevoerd wordt.
De test Schakelen die hier wordt getoond bepaalt welke Voorwaarde er uitgevoerd wordt op basis van een waarde van sensorgegevens of van een Gegevensverbinding. Als er een Voorwaarde geselecteerd en uitgevoerd is, gaat het programma verder met eventuele blokken die zich na het blok Schakelen bevinden.

Voorbeeld
Met het onderstaande programma zegt een robot „Touch”, waarna er getest wordt of de Tastsensor ingedrukt wordt. Als dit het geval is, wordt de Voorwaarde Waar (boven) uitgevoerd en zal de robot „Thumbs up” weergeven en „Yes” zeggen. Als de Tastsensor niet ingedrukt is, wordt de Voorwaarde Onwaar (onder) uitgevoerd en zal de robot „Thumbs down” weergeven en „No” zeggen. Na het blok Schakelen zegt de robot „Thank you”.
Voorbeeld
Voorwaarde Waar
Voorwaarde Onwaar

De Tastsensor wordt getest zodra de robot „Touch” uitgesproken heeft. Als de sensor op dat moment ingedrukt is, zal het blok Schakelen de Voorwaarde Waar uitvoeren. Is dit niet het geval, dan wordt de Voorwaarde Onwaar uitgevoerd.
Handige weetjes
In een blok Schakelen wordt er niet gewacht tot sensorgegevens of een gegevensverbinding een bepaalde waarde hebben bereikt. De test wordt uitgevoerd zodra het blok Schakelen gestart wordt, en meteen na de test wordt een van de Voorwaarden gekozen en uitgevoerd.
In het bovenstaande programma kun je voorafgaand aan de test (of zelfs nog voor het programma gestart wordt) de Tastsensor indrukken en deze ingedrukt houden tijdens de test om ervoor te zorgen dat het blok Schakelen de Voorwaarde Waar uitvoert. Ga na hoe lang je kunt wachten met de sensor in te drukken zodat de robot toch nog steeds „Yes” zegt.
Je kunt om het welke Voorwaarde binnen een blok Schakelen leeg laten als je niet wilt dat de robot iets onderneemt in die situatie. Probeer in het bovenstaande programma de twee blokken uit de Voorwaarde Onwaar te verwijderen en kijk wat er gebeurt.
Weergave Met tabbladen
Een blok Schakelen kan weergegeven worden als Vlak (zie hierboven) of als Met tabbladen (zie hieronder). In de weergave Vlak zijn alle Voorwaarden zichtbaar op verschillende rijen. In de weergave Met tabbladen is er slechts één Voorwaarde tegelijk zichtbaar.

Je kunt de weergave Met tabbladen gebruiken om ervoor te zorgen dat je programma minder ruimte inneemt op het scherm. De weergave heeft geen invloed op de manier waarop het blok Schakelen wordt uitgevoerd.



Keuze vlak beeld/ tabbladen
Voorwaarde Waar
Voorwaarde Onwaar

Om te schakelen tussen de weergave Vlak en Met tabbladen, klik je op Keuze vlak beeld/ tabbladen.

Om in een blok Schakelen een andere Voorwaarde weer te geven in de weergave Met tabbladen, klik je op de verschillende tabbladen boven aan de rand van het blok Schakelen.
Handige weetjes
De blokken in alle Voorwaarden van Schakelen (weergave Met tabbladen) vormen een onderdeel van je programma, zelfs als je deze niet allemaal tegelijk kunt zien.
Kies de test Schakelen


Moduskiezer
Poortkiezer
Inputs

Gebruik de Moduskiezer om het type test te selecteren dat door het blok Schakelen gebruikt zal worden om te bepalen welke Voorwaarde er uitgevoerd zal worden. Je kunt de waarde van een sensor of een Gegevensverbinding testen.

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.

De beschikbare Inputs variëren afhankelijk van de modus. In bepaalde modi kun je een sensorwaarde vergelijken met een Drempelwaarde, en in andere modi kun je testen op specifieke sensorwaarden. De modi worden hieronder beschreven.
Een Drempelwaarde lijn testen
Het blok Schakelen bevat verschillende modi die een numerieke sensorgegevenswaarde lezen en deze vergelijken met een Drempelwaarde om Waar of Onwaar als resultaat te krijgen. In de modus Kleursensor – Vergelijken – Intensiteit gereflecteerd licht kun je bijvoorbeeld testen of de Intensiteit gereflecteerd licht van de Kleursensor minder dan 50 bedraagt.

In deze modi bevat het blok Schakelen twee Voorwaarden. Als het resultaat van de test Waar is, wordt de Voorwaarde Waar uitgevoerd. Is dit niet het geval, dan wordt de Voorwaarde Onwaar uitgevoerd.
Handige weetjes
De Voorwaarde Waar is de bovenste Voorwaarde in de weergave Vlak en is gemarkeerd met een vinkje. De Voorwaarde Onwaar is de onderste Voorwaarde en is gemarkeerd met een „X”.
Om een modus met een Drempelwaarde te gebruiken, kies je het Vergelijktype (bijvoorbeeld Kleiner dan) en voer je de Drempelwaarde in (bijvoorbeeld 50) waarmee de sensorgegevens vergeleken moeten worden. Het blok Schakelen zal de gelezen waarde van één sensor nemen en deze vergelijken met de drempel om Waar of Onwaar als resultaat te krijgen.
Voorbeeld
In dit programma maakt het blok Schakelen gebruik van de modus Kleursensor – Vergelijken – Intensiteit gereflecteerd licht om te testen of de Intensiteit gereflecteerd licht minder dan 50 bedraagt. Als dit het geval is, wordt „Low” weergegeven; indien niet wordt „High” weergegeven. Het blok Schakelen wordt via een Herhaling herhaald zodat de weergave doorlopend geüpdatet wordt op basis van nieuwe sensortests.
Handige weetjes
Sensortests worden uitermate snel uitgevoerd. Zonder de Herhaling in het bovenstaande voorbeeld zou het programma de sensor één keer testen en zo snel beëindigd worden dat je dit zelfs niet zou merken.
Testen naar specifieke sensorwaarden
In de volgende modi kan een blok Schakelen testen naar specifieke sensorwaarden. Je kunt in het blok Schakelen twee of meer Voorwaarden aanmaken die overeenstemmen met verschillende waarden waar je naar wilt testen. Het blok Schakelen zal in dat geval de overeenstemmende Voorwaarde selecteren.
ModusGebruikenZie
Knoppen Intelligente steen – Meten Kiezen tussen twee of meer Voorwaarden afhankelijk van de ingedrukte Knop Intelligente steen.De Knoppen Intelligente steen gebruiken
Knoppen Intelligente steen – Vergelijken Kiezen tussen twee Voorwaarden afhankelijk van of er een van de geselecteerde Knoppen Intelligente steen Ingedrukt, Vrijgegeven of Geraakt wordt.De Knoppen Intelligente steen gebruiken
Kleursensor – Meten - Kleur Kiezen tussen twee of meer Voorwaarden afhankelijk van welke kleur er gedetecteerd wordt.De Kleursensor gebruiken
Kleursensor – Vergelijken - Kleur Kiezen tussen twee Voorwaarden, afhankelijk van of er al dan niet een van de geselecteerde kleuren gedetecteerd wordt.De Kleursensor gebruiken
Infraroodsensor – Meten - Afstandsbediening Kiezen tussen twee of meer Voorwaarden afhankelijk van welke knoppen er ingedrukt worden op het IR beacon.De Infraroodsensor gebruiken in de modus Afstandsbediening
Infraroodsensor – Vergelijken - Afstandsbediening Kiezen tussen twee Voorwaarden, afhankelijk van of een opgegeven knop op het IR beacon ingedrukt is (of afhankelijk van of er een opgegeven set knoppen ingedrukt is).De Infraroodsensor gebruiken in de modus Afstandsbediening
Tastsensor Kiezen tussen twee Voorwaarden afhankelijk van of de Tastsensor al dan niet Ingedrukt, Vrijgegeven of Geraakt wordt.De Tastsensor gebruiken
Ultrasone sensor – Vergelijken - Aanwezigheid Kiezen tussen twee Voorwaarden gebaseerd op het feit of er al dan niet een ultrasoon signaal gedetecteerd wordt in de modus „Alleen luisteren”.De Ultrasone sensor gebruiken
Berichten Kiezen tussen twee Voorwaarden op basis van een berichtwaarde.Berichten
Testen naar meerdere waarden
Met de modi Meten van een sensor van het blok Schakelen kun je verscheidene (twee of meer) verschillende sensorwaarden opgeven om naar te testen. Je kunt elke waarde een verschillende Voorwaarde geven in het blok Schakelen. In de modus Kleursensor – Meten – Kleur kun je bijvoorbeeld testen naar Zwart, Wit en Rood, en voor elke kleur een verschillende Voorwaarde aanmaken.




Voorwaarde toevoegen
Waarde voorwaarde
Standaardvoorwaarde
Voorwaarde verwijderen

Om meerdere Voorwaarden te gebruiken in een modus Meten van een sensor, klik je op de knop Voorwaarde toevoegen om het gewenste aantal Voorwaarden aan te maken. Klik voor elke Voorwaarde op Waarde voorwaarde om in de lijst een waarde te selecteren voor de sensor. Je kunt op de knop Voorwaarde verwijderen klikken om een voorwaarde te verwijderen.

Klik op de knop Standaardvoorwaarde om een Voorwaarde als Standaardvoorwaarde te markeren. De Standaardvoorwaarde wordt uitgevoerd wanneer de sensor een waarde detecteert die niet overeenstemt met een van de Voorwaarden in het blok Schakelen.

Zie het programmeervoorbeeld: „Red”, „Green” en „Blue” zeggen na detectie bij De Kleursensor gebruiken.

Zie het programmeervoorbeeld: Configuratiescherm Knoppen Intelligente steen bij De Knoppen Intelligente steen gebruiken.
Een waarde van een Gegevensverbinding testen
In de modi Logisch, Tekst en Numeriek kan het blok Schakelen kiezen welke Voorwaarde er uitgevoerd moet worden op basis van een inputwaarde van een Gegevensverbinding.
Modi
Modus Logisch
In de modus Logisch kiest een blok Schakelen tussen een Voorwaarde Waar en een Voorwaarde Onwaar op basis van de waarde van de input Logisch. Je kunt de output Logisch van een programmeerblok via een Gegevensverbinding verbinden met de input Logisch.

Programmeervoorbeeld: Zie het blok Vergelijken.
Modus Tekst
In de modus Tekst vergelijkt het blok Schakelen de waarde van de input Tekst met twee of meer opgegeven Tekstwaarden, met voor elke waarde een Voorwaarde. De Voorwaarde waarvan de waarde overeenstemt met de input Tekst zal uitgevoerd worden. Als er geen waarden overeenstemmen, wordt de Standaardvoorwaarde uitgevoerd.

Zie Testen naar meerdere waarden hierboven voor meer informatie over het aanmaken van meerdere Voorwaarden. Elke Voorwaarde in de modus Tekst heeft een Tekstwaarde die je rechtstreeks kunt invoeren in de „Waarde voorwaarde” ervan.
Voorbeeld
In dit voorbeeld gebruikt een blok Schakelen in de modus Tekst de output van een blok Berichten om afhankelijk van het ontvangen bericht te kiezen tussen drie verschillende Voorwaarden.
Modus Numeriek
In de modus Numeriek vergelijkt het blok Schakelen de waarde van de input Getal met twee of meer opgegeven Numerieke waarden, met voor elke waarde een Voorwaarde. De Voorwaarde waarvan de waarde overeenstemt met de input Getal zal uitgevoerd worden. Als er geen waarden overeenstemmen, wordt de Standaardvoorwaarde uitgevoerd.

Zie Testen naar meerdere waarden hierboven voor meer informatie over het aanmaken van meerdere Voorwaarden. Elke Voorwaarde in de modus Numeriek heeft een Numerieke waarde die je rechtstreeks kunt invoeren in de „Waarde voorwaarde” ervan.
Voorbeeld
In dit voorbeeld gebruikt een blok Schakelen in de modus Numeriek de output van een blok Variabele om te kiezen tussen drie verschillende Voorwaarden. De Standaardvoorwaarde van het blok Schakelen is leeg. Als de waarde van de variabele „Actie” dus iets anders is dan 1, 2 of 3, zal het blok Schakelen niets ondernemen.
Het formaat van een blok Schakelen wijzigen
Het blok Schakelen zal normaal automatisch uitgebreid worden om ruimte te maken voor nieuwe programmeerblokken die je naar de Voorwaarden sleept. Je kunt het formaat van een Voorwaarde indien nodig ook handmatig wijzigen. Om het formaat van een Voorwaarde in een blok Schakelen in de weergave Vlak te wijzigen, klik je op de linker- of rechterrand van het blok Schakelen bij de Voorwaarde waarvan je het formaat wilt wijzigen, en versleep je vervolgens de grepen die aan de buitenkant verschijnen.

Handige weetjes
In de weergave Met tabbladen hebben alle Voorwaarden hetzelfde formaat. Als je een Voorwaarde groter maakt, zullen alle Voorwaarden in datzelfde formaat weergegeven worden.
Inputs
De beschikbare inputs voor het blok Schakelen 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
Logisch LogischWordt gebruikt voor het selecteren van een Voorwaarde in de modus Logisch.
Getal NumeriekWordt gebruikt voor het selecteren van een Voorwaarde in de modus Numeriek.
Tekst TekstWordt gebruikt voor het selecteren van een Voorwaarde in de modus Tekst.
Vergelijktype NumeriekVergelijktype voor een modus met een input 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 sensorgegevens vergeleken worden om een Voorwaarde Waar of Onwaar te kiezen op basis van een Numerieke sensorwaarde.
(Inputs voor individuele sensortypes)Raadpleeg de helponderwerpen over de individuele sensortypes voor meer informatie over de sensorgegevens.
Schakelen
Snelkoppelingen