#5 LED schakelen met drukknop


In deze Nederlandstalige Arduino tutorial voor beginners leer ik je hoe je een LED met een drukknop aan en uit kunt zetten.

#5 LED schakelen met drukknop schakelschema

Benodigdheden

  • 1× Arduino
  • 1× Breadboard
  • 3× Jumper wire (man-man)
  • 1× Min 10K Ohm weerstand
  • 1× Drukknop

Bas van Dijk

Over Bas on Tech


Mijn naam is Bas van Dijk, ondernemer, software ontwikkelaar en maker. Onder de naam "Bas on Tech" bied ik op YouTube videolessen aan over technische onderwerpen zoals Arduino en 3D-printen.

De video’s zijn in het Nederlands met ondertiteling, zodat mensen met een gehoorbeperking ze ook kunnen volgen.

Jaren geleden toen ik mijn eerste Arduino kocht had ik maar één doel: zo snel mogelijk een LCD schermpje aansluiten en er een tekst op laten zien. Na allerlei bronnen te hebben geraadpleegd kwam ik er na veel puzzelen eindelijk uit. Ik was als een kind zo blij met die paar letters op een geel schermpje.

Met Bas on Tech wil ik mijn kennis delen zodat ook anderen deze blijheid kunnen ervaren. Ik heb gekozen voor kort en krachtige YouTube video’s, met een duidelijke vaste opbouw en één onderwerp per video. Daarnaast staan onder elke video links naar de broncode en webshops waar de onderdelen te koop zijn.

video Transcriptie


0:00:12.280 welkom bij deze vijfde Arduino tutorial waar we gaan leren werken met een drukknop
0:00:18.520 wat heb je nodig voor deze tutorial?
0:00:21.520 een Arduino,  breadboard, 3 jumper-wires, drukknop
0:00:28.000 en een weerstand van minimaal 10.000 Ohm
0:00:35.520 prik de drukknop op deze manier. De gaatjes zijn verticaal verbonden
0:00:42.480 hetzelfde geldt voor deze kant
0:00:44.700 Als we erop drukken
0:00:46.470 worden de onderste pennen van de schakelaar met elkaar verbonden
0:00:50.080 beginnen we met een rood draadje van de 5V
0:00:54.360 van de 5 volt gaan we naar het eerste pootje van de schakelaar
0:01:02.700 nu gaan we met het groene draadje naar pin 12
0:01:08.200 en van de 12 naar de andere kant van de schakelaar.
0:01:13.280 op dit moment zijn deze twee draden dus niet met elkaar verbonden
0:01:20.360 als ik hem hier had geprikt...
0:01:22.710 ...zijn ze gewoon met elkaar verbonden en heeft de drukknop geen zin
0:01:27.119 ik zet hem eentje verder. Als ik nu de knop indruk
0:01:31.020 worden deze twee kanten met elkaar verbonden, en omdat ze ook in een lengte
0:01:35.220 met elkaar verbonden zijn, staan de draden met elkaar in verbinding
0:01:39.510 er is nu een probleem, dat is dat de pen 12 een "zwevende waarde" heeft
0:01:48.400 je weet niet zeker of pen 12 nu 1 of 0 is. Om dat te gaan doen
0:01:56.700 gaan we zorgen dat alle stroom die hier eventueel loopt direct naar "ground" gaat
0:02:01.560 maar niet voordat we daar een weerstand tussen hebben gezet.
0:02:05.720 anders dan verbinden we ze direct en dat is niet de bedoeling (kortsluiting)
0:02:09.209 we gebruiken hier een veel zwaardere weerstand dan dat we eerder deden
0:02:12.780 zodat er maar een heel klein stroompje kan gaan lopen
0:02:17.760 die zetten we op de "GND"
0:02:21.240 als je nu je Arduino aanzet en de schakelaar is niet verbonden, dan stopt de 5V bij de schakelaar
0:02:27.140 maar omdat boven en onder van de schakelaar wel met elkaar verbonden is.
0:02:31.440 Wordt pin 12 mocht daar een stroompje lopen
0:02:33.820 direct naar de grande gezet, dus wordt pin 12 nul
0:02:37.880 dit noem je overigens een pull-down
0:02:42.090 omdat hij hem naar beneden trekt, naar de nul
0:02:45.240 willen we een pull-pup, dus dat hij altijd 1 is, tenzij wij de knop indrukken
0:02:51.020 dan wissel je de 5 volt om met de "ground"
0:02:59.140 nu loopt er dus altijd
0:03:02.360 5 volt op onze pen 12 en als we de knop indrukken komt er
0:03:07.739 verbinding met de "ground" en dan gaat hij dus naar 0
0:03:10.290 dat is de kortste weg, want hier zit nog een weerstand tussen
0:03:14.700 voor onze oefening ga ik eventjes terug naar "pull-up"
0:03:20.250 we gaan straks zien hoe dat in de praktijk werkt
0:03:23.400 dit is onze schakeling, dan gaan we nu verder met de code
0:03:30.920 dit is de code die we gaan gebruiken om de drukknop aan te sturen
0:03:35.219 ik ga deze weer regel voor regel eventjes bespreken
0:03:38.129 als eerste hebben we de "switchPin", waar we net de knop op hebben aangesloten
0:03:44.560 in dit geval nummer 12
0:03:47.260 de "ledPin" is de pin van de ingebouwde LED
0:03:52.880 dat doen we met "LED_BUILTIN"  zoals hier staat geschreven
0:03:55.960 we houden de "switchState" bij, deze is LOW op het moment dat het programma start
0:04:02.900 dat is de waarde van de drukknop, deze kan LOW of HIGH zijn
0:04:06.640 dus LOW of 0 als hij niet is ingedrukt en HIGH of 1 als hij wel is ingedrukt
0:04:12.340 als ons programma gaat starten
0:04:15.000 dan hebben we hier de setup() dan gaat hij de seriële monitor starten
0:04:22.600 we zeggen dat de "ledPin" een OUTPUT is
0:04:27.800 en onze "switchPin" deze keer een INPUT
0:04:31.680 dus we gaan de "switchPin" gebruiken als invoer
0:04:34.200 "switchPin" slaat op deze pin 12
0:04:37.460 dan gaan we de loop() in de loop() wordt oneindig herhaald
0:04:41.620 we zeggen: begin met de "switchState" uit te lezen
0:04:44.880 in plaats van "digitalWrite()" wat we eerder deden naar de LED, doen we hier een "digitalRead()"
0:04:49.260 we zeggen dat hij of 1 of 0 is, of HIGH of LOW
0:04:54.400 en als we dat gedaan hebben
0:04:56.280 printen we ook naar de seriële monitor wat die "state" om dit moment is
0:05:01.289 als de "switchState" hoog is, dan zetten we de LED ook hoog dus gaat
0:05:06.120 LED aan, en anders gaat de LED uit
0:05:09.780 als we nu ons project naar de Arduino gaan sturen
0:05:13.940 dan kunnen we op de seriële monitor zien wat de status van onze drukknop is
0:05:21.960 Ik heb mijn Arduino aangesloten, en druk op "uploaden"
0:05:30.040 hij is bijna klaar...
0:05:36.320 dan ga ik in het menu naar "hulpmiddelen" -> "seriële monitor"
0:05:39.760 dan zien we dat de schakelaar nul is, kortom "laag"
0:05:42.800 als ik nu het knopje ingedrukt houd dan zie je dat het allemaal "enen" worden
0:05:47.280 zo kun je dus zien of je hem goed hebt aangesloten
0:05:50.840 dan laat het je nu zien hoe deze code eruit ziet als het op je Arduino draait
0:05:59.060 ik heb de stroom op onze schakeling aangesloten
0:06:02.880 en zoals je ziet is het LED uit
0:06:07.060 als ik op het knopje druk, gaat de stroom lopen
0:06:12.150 en geeft het LED licht
0:06:14.980 dat komt omdat nu met de knop, hier een stroom door gaat lopen
0:06:22.000 wat we ook kunnen doen is de zwarte en de rode draad opdraaien
0:06:28.740 en dan gaat de schakelaar in spiegelbeeld werken
0:06:31.660 zoals je ziet brandt nut nu het LED
0:06:35.780 en als ik het knopje indruk gaat de LED uit dit is een zogenaamde pull up weerstand
0:06:44.270 het uit trekt hem naar de rode draad, naar de plus, hier via de weerstand
0:06:51.400 dat is het voor deze tutorial in de volgende tutorial ga ik je laten zien
0:06:55.420 hoe je een thermometer kunt uitlezen