Stel je hebt dure spulletjes of gewoon spulletjes waar je aan gehecht bent. Je wilt niet dat een ander daar zomaar aan zit.
Er bestaan schakelaars die bij beweging een signaal af geven. We gaan deze schakelaar inzetten voor een alarm!
Je hebt gezien dat een drukknop de variabele waarde kan veranderen, indrukken was HIGH. Drukte je niet op de knop, dan veranderde de variabele weer terug naar LOW.
Dit heb je nodig
Bouw onderstaande schakeling na
Gebruik de code ‘balschakelaar_test, upload deze code, kijk wat er gebeurt. ???
Bekijk de code hieronder eens goed, lees het helemaal door.
Misschien valt je op dat deze code heel erg lijkt op de code van les 3. (??)
Er zijn wat woorden vervangen, de knop heeft een andere naam en ook de naam van de variabele is anders.
Op regel 20 en regel 26 zie je ook nog iets wat we niet eerder hebben gezien.
Op regel 20 staat dat we een seriële monitor kunnen gebruiken. (Een seriële monitor is een extra scherm wat we kunnen openen in Arduino IDE.)
In dat scherm zie je dan gegevens die terugkomen uit de Arduino.
In het geval van deze code de waarde van de variabele ‘signaal’. (Zie regel 26.)
Als het getal in de monitor 0 is, dan is het ledje uit. Klopt dit met de code?
We hebben nu gezien hoe de balschakelaar werkt, maar we hebben nog geen alarm.
We veranderen niets aan de stroomkring maar w gaan een andere code gebruiken.
Gebruik de code: alarm_met_opdracht ?? waar vinden we die??
Upload de code en kijk wat er gebeurt.
Als het goed is.. was het ledje uit nadat je de code hebt geupload.
De led gaat branden als je de balschakelaar beweegt, maar de led gaat niet meer uit!
Het alarm gaat af.
We kijken weer naar de code, zie hieronder.
We gaan nu in stapjes bekijken wat er bijzonder is aan de code.
We hebben:
balschakelaar op pin 2 (regel 15)
buzzer op pin 13 (regel 18, je hebt in de schakeling nog steeds een led. en geen buzzer)
waarde1 is naam voor een variabele voor de beginstand
waarde2 is de naam voor de variabele van het alarm
Uitleg over de laatste twee (de variabelen) volgt later.
In de setup geven we de buzzer als output aan en de balschakelaar als input, dat is duidelijk.
We geven ook het commando om de buzzer uit te zetten.
En... dit is belangrijk voor het alarm.
We kijken hoe de balschakelaar nu staat en geven de waarde door aan de variabele van de beginstand.
Er heeft nog niemand aan jouw object gezeten, er is nog geen dief, maar het alarm staat nu wel op scherp! Dat zien we in programmablok loop.
De loop wordt doorlopend gelezen.
Iedere keer weer wordt regel 30 uitgevoerd. De balschakelaar word gelezen en de waarde doorgegeven aan de variabele van het alarm. Daarna wordt de waarde vergeleken met de waarde van de beginstand (waarde1). Als waarde2 hetzelfde als waarde1 betekent dit dat er nog niemand aan het object heeft gezeten. Pas als waarde2 niet meer hetzelfde is waarde1 is het opbject opgepakt of verplaatst. Nu moet het alarm afgaan!
De coderegel if (waarde2 ==!waarde1) { betekend in normale taal; als waarde2 niet gelijk is aan waarde2 dan...