Opdracht touchsensor 1

A. Sluit de touchsensor aan op poort 1 van de EV3. Voer de volgende code in. De die beginnen met een aanhalingsteken (') zijn commentaar en hoeven niet te worden ingevoerd. Test het programma en let op de werking ervan. Lees het commentaar en probeer de code te begrijpen.

'De touchsensor wordt gekoppeld aan poort 1. De modus is 0.
'Modus 0 betekent dat na aanraking het percentage weer 0 wordt.
Sensor.SetMode(1,0)
'lamp kan aan of uit zijn
lamp = "uit"
'toestand geeft aan in welke toestand het systeem zit: 1 of 2
toestand = 1
'waarde 100 geeft aan dat de sensor ingedrukt is en bij waarde 0 is deze niet ingedrukt
waarde = 0
'De regels om het scherm te verversen moeten direct, na wijzigen van de toestand, worden uitgevoerd i.v.m. de leesbaarheid
LCD.Clear()
LCD.Write(10, 40, "Waarde = " + waarde)
LCD.Write(10, 60, "Toestand = " + toestand)
LCD.Write(10, 80, "Lamp = " + lamp)
'De While-lus wordt continu doorlopen
While "true"
  'Lees de waarde die de touchsensor aangeeft en ken deze toe aan de variabele 'waarde'
  waarde = Sensor.ReadPercent(1)
  'Controleer of de sensor is ingedrukt
  If toestand = 1 Then
    If waarde = 100 Then
      lamp = "aan"
      toestand = 2
      LCD.Clear()
      LCD.Write(10, 40, "Waarde = " + waarde)
      LCD.Write(10, 60, "Toestand = " + toestand)
      LCD.Write(10, 80, "Lamp = " + lamp)
    EndIf
  EndIf
  'Controleer of de sensor is losgelaten
  If toestand = 2 Then
    If waarde = 0 Then
      lamp = "uit"
      toestand = 1
      LCD.Clear()
      LCD.Write(10, 40, "Waarde = " + waarde)
      LCD.Write(10, 60, "Toestand = " + toestand)
      LCD.Write(10, 80, "Lamp = " + lamp)
    EndIf
  EndIf
EndWhile

B. Maak het toestandsdiagram, dat bij deze code past.

C. De  vier regels voor het schrijven naar het scherm worden vaak herhaald. Dit kan worden opgelost, door een subroutine te schrijven waardoor de totale code compacter wordt. Schrijf zo’n subroutine.