1. Home
  2. Docs
  3. Arduino Basis
  4. Lessen
  5. Les 16: SOS met Switch Case

Les 16: SOS met Switch Case

In de voorgaande lessen hebben we vooral gekeken naar wat je met een Arduino kan besturen en hebben we minder gelet op slimme oplossingen in het programma zelf. Deze les is speciaal bedoeld om je programma kleiner en overzichtelijker te maken. Dit kan je onder andere doen door te werken met switch-cases. Deze les is nieuw en daarom nog niet opgenomen in het geheel.

Morse code

Morse is een communicatiecode, bestaande uit met tussenpozen uitgezonden signalen, die letters, leestekens en cijfers representeren. De code werd in 1835 uitgevonden en ontwikkeld door Samuel Morse met het doel deze te gebruiken voor de telegrafie. Morse kent twee symbolen: punten en streepjes, ofwel dits en dahs . De lengte van de ‘dit’ bepaalt de snelheid waarmee de boodschap wordt verzonden en wordt als ‘eenheid’ gebruikt. Een dah is volgens de afspraken drie keer zo lang als een dit. Spaties tussen dits en dahs binnen een lettercode hebben de lengte van één dit, spaties tussen letters in een woord hebben de lengte van 3 dits (één dah ), en spaties tussen woorden zijn 7 dits lang.

Bron: Wikipedia

In bovengenoemde tekst worden de woorden “dit” en “dah” genoemd, vaak gebruikt men hiervoor ook de woorden “dot” en “dash”. In de verdere uitleg gebruiken we “dot” en “dash”. Hieronder een afbeelding het alfabet en de nummers in Morsecode:

Implementatie SOS 1

In deze les is de morse-code van SOS geprogrammeerd op pin 13. Deze pin is op de Arduino ingebouwd. De lengte van een dot is gekozen voor 500 miliseconden. Deze code is enorm lang en onnodig.

Implementatie SOS2

De code kan verbeterd worden door voor een dot en dash een eigen functie te maken. Ook wordt het interval gedeclareerd. Voor een letterspatie en een woordspatie zal tevens een functie gemaakt worden. Het wordt duidelijk dat de code al een stuk overzichtelijker is geworden.

Implementatie SOS 3

De code kan nog beter! In de “void letter” maken we een switch naar “karakters” (char) aan, met de variabele “c”. Binnen de switch kennen we de cases toe. Die cases bestaan uit karakters en die  plaatsen we tussen ‘enkele – aanhalingsstreepjes’. Roep je in de hoofd – loop nu een bepaalde letter aan, dan gaat het programma binnen de switch – case zoeken. Heeft het programma de bepaalde letter gevonden, dan zorgt “break” ervoor dat het programma doorgaat naar het einde van de “void letter” loop. Daar staat een “letterSpatie”. Vandaar dat in deze sketch de loop van “woordSpatie” is aangepast. Kijk maar eens goed…


Opdrachten

Opdracht 16.1:

De switch case is enorm overzichtelijk. Er kan dus ook makkelijk letters aan toegevoegd worden. Probeer dit eens.