Opdracht touchsensor 3

A. Voer de volgende code in. 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, 2, 3 of 4
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 of losgelaten
  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
  If toestand = 2 Then
    If waarde = 0 Then
      lamp = "aan"
      toestand = 3
      LCD.Clear()
      LCD.Write(10, 40, "Waarde = " + waarde)
      LCD.Write(10, 60, "Toestand = " + toestand)
      LCD.Write(10, 80, "Lamp = " + lamp)
    EndIf
  EndIf
  If toestand = 3 Then
    If waarde = 100 Then
      lamp = "uit"
      toestand = 4
      LCD.Clear()
      LCD.Write(10, 40, "Waarde = " + waarde)
      LCD.Write(10, 60, "Toestand = " + toestand)
      LCD.Write(10, 80, "Lamp = " + lamp)
    EndIf
  EndIf
  If toestand = 4 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. Maak gebruik van je eerder subroutine.