#4 Knippersnelheid regelen met potmeter


In deze Nederlandstalige Arduino tutorial voor beginners leer ik je hoe je een LED op verschillende snelheden kunt laten knipperen door aan een potmeter te draaien.

#4 Knippersnelheid regelen met potmeter schakelschema

Benodigdheden

  • 1× Arduino
  • 1× Breadboard
  • 2× Jumper wire (man-man)
  • 1× Potmeter

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:11.799 welkom bij de vierde tutorial van deze Arduino serie
0:00:15.410 vandaag gaan we een ledje laten knipperen met een aanpasbare snelheid
0:00:21.320 voor deze tutorial heb je nodig: een Arduino, drie jumper-wires
0:00:27.680 een breadboard en een potmeter
0:00:32.620 die potmeter zal ik van wat dichterbij laten zien. Hij heeft 3 pennetjes en je kunt er aan draaien
0:00:40.760 zo'n beetje het idee van een volumeknop op een versterker
0:00:45.460 hoe dat werkt ga ik je zo uitleggen
0:00:54.200 vandaag gaan we werken met de potmeter of potentiometer zoals hij het Engels wordt genoemd
0:01:00.840 het is eigenlijk een variabele weerstand
0:01:04.060 we hebben in de tweede tutorial met deze weerstand gewerkt, die had een vaste waarde
0:01:08.820 deze heeft een variabele waarde afhankelijk van hoe we de knop draaien
0:01:13.930 een ander verschil: deze heeft twee aansluitingen deze heeft er drie
0:01:18.550 eigenlijk is dat het bijna hetzelfde de ene kant is de "plus" en de andere kant de "min"
0:01:25.360 omdat je een weerstand op twee manieren kunt gebruiken
0:01:29.000 maakt niet uit wat je als plus en min neemt. Het midden dat is de
0:01:32.740 waarde van de stroom met de weerstand erop toegepast
0:01:37.420 zetten we dus op de plus en de min 5 volt
0:01:43.060 dan betekent, dat als de potmeter
0:01:45.820 voor 50% open staat, hier 2.5 Volt uitkomt
0:01:51.729 dat kunnen bijvoorbeeld gebruiken om een lampje harder of zachter te laten
0:01:55.390 branden of om een geluid harder of zachter te zetten
0:01:59.640 wij gaan het gebruiken om de pauzes tussen twee knippers in aan te kunnen passen
0:02:10.240 dan gaan we beginnen met het bouwen van onze schakeling
0:02:13.720 begin met de rode draad, die stop ik in de 5 volt
0:02:22.900 die zet ik hier op het eerste gaatje
0:02:28.360 de ground gaat op "GND" die zit ernaast, op het breadboard op het 5e gaatje
0:02:38.020 de potmeter kan er dan mooi tussen
0:02:42.140 dat kan een beetje zwaar gaan maar ze moeten wel allemaal contact maken
0:02:48.800 en als laatste, de middelste pen van de potmeter
0:02:57.720 en die prikken we in pin 11
0:03:04.960 sorry in analoog 2
0:03:07.480 je kunt hier zien, dat we de hele tijd met de digitale pinnen hebben gewerkt
0:03:11.700 er staat hier ook "digital" en nu gaan we werken met de analoge
0:03:15.160 invoer en de digitale kunnen alleen maar één of nul lezen en de analoge ingang
0:03:19.840 kan veel meer waarde lezen: van 0 tot 1023
0:03:27.200 dat is de schakeling, dan ga ik je nu laten zien hoe je deze kunt programmeren
0:03:35.730 we kunnen nu beginnen met het programmeren van de
0:03:38.810 Arduino die gaan we stap voor stap uitleggen waar elke regel voor staat en
0:03:44.629 beginnen met de eerste regel dit is de "potPin"
0:03:48.349 de pin waar de potentiometer aan zit dat is pin 2 bij ons
0:03:53.640 die hebben we een type "integer" gegeven omdat het een nummer is
0:03:56.860 de LED pin is een speciale daar hebben we "LED_BUILDIN" ingezet. Je kan er ook 13 van maken
0:04:03.620 maar "LED_BUILDIN" verwijst dus naar het LED wat op de Arduino zit.
0:04:07.820 we hebben een "potVal", een potentiometer value. Die hebben we op nul gezet
0:04:13.440 dus we gaan er initieel vanuit dat de waarde van de potmeter 0 is
0:04:19.980 Die "Serial.begin" kom ik later even op terug
0:04:23.960 we zeggen dat de ledPin, dus dat verwijst hier naar LED_BUILTIN
0:04:29.840 oftewel pin 13, dat een output is zodat hij dus als lamp gebruikt gaat worden
0:04:36.920 dan het hoofdprogramma, dat zien we aan de "loop()"
0:04:41.720 de potentiometer value lezen we met een "analogRead()"
0:04:46.440 we hadden eerst in de vorige tutorial een "analogWrite()"
0:04:49.760 als je het nog weet om het LED harder en zachter te laten branden.
0:04:54.280 Hier doen we een read dus we gaan de "potPin" uitlezen oftewel pen nummer 2
0:05:01.250 en die waarde waar is tussen de 0 en 1023
0:05:06.110 ik zal het er nog eventjes bijzetten: tussen de 0 en 1023
0:05:10.720 Die "Serial.println()" kom ik zo op terug
0:05:13.360 dan gaan we de LED "aan" zetten. Dit kennen we van de eerste tutorial: "digitalWrite(ledPin, HIGH)"
0:05:19.860 "ledPin" is dus het ingebouwde LED die zetten we op HIGH, dus het ingebouwde LED gaat "aan"
0:05:27.200 dan gaan we vertragen, je ziet bij de vorige tutorial hadden we hier een getal staan
0:05:32.340 nu hebben we dat niet gedaan, we plaatsen hier de waarde van de potentiometer
0:05:38.780 je kunt zien dat we hier diezelfde potVal hebben als we hebben uitgelezen
0:05:44.580 dus die die waarde komt nu hier te staan
0:05:46.660 dus de waarde van de potentiometer tussen de 0 en 1023 gaan dus bepalen
0:05:53.449 hoe lang we wachten. Dat kan dus zijn van 0 tot 1023 milliseconden
0:05:59.630 dan zetten we de LED "uit" doen met "LOW" en dan wachten we weer
0:06:06.380 op de waarde van de potentiometer
0:06:10.200 dus je code goed heb overgenomen dan kun je je Arduino gaan aankoppelen op de  usb-poort
0:06:15.240 en vervolgens uploaden
0:06:19.700 hoe dan verder kunt gaat, laat ik je nu zien
0:06:27.080 we hebben de code op de Arduino gezet en zoals je ziet
0:06:31.360 gebeurt er nog helemaal niks dat komt omdat de potmeter nog helemaal
0:06:35.050 dichtgedraaid is. Als we die nu langzaam gaan opendraaien zul je zien dat het
0:06:38.980 LED steeds sneller gaat knipperen. In mijn geval dus langzamer.
0:06:45.620 hoe verder ik hem open draai
0:06:48.610 hoe langzamer hij gaat knipperen. Dus de  waarde van de potmeter die gemeten wordt over het groene draadje
0:06:56.600 wordt steeds groter waardoor de tijd tussen twee
0:07:00.849 knippers steeds langer wordt.
0:07:03.520 Is ook heel gevoelig, als ik te ver draai
0:07:05.280 duurt het heel lang voordat hier terug is. Ik zal hem nu terugdraaien en dan zul je zien dat hij
0:07:11.220 steeds sneller gaat knipperen
0:07:17.860 als dit niet werkt moet je even goed kijken of je deze groene draad met het
0:07:24.160 derde pootje en verbonden hebt, en of je hem niet per ongeluk en in een
0:07:27.940 andere analoge input hebt geprikt danpin 2
0:07:34.900 wat ook nog kan is dat je per ongeluk niet 1 gaatje ertussen hebt gelaten
0:07:40.740 daardoor maakt hij geen contact met de potmeter. Je moet goed kijken dat de drie pennen van de
0:07:46.240 potmeter precies op dezelfde rij staan als deze drie draden
0:07:50.590 dan wil ik nog eventjes terug komen om eerder die "Serial.begin()"
0:07:54.490 met 9600 ertussen. Een handigheidje van de Arduino is dat hij over de seriële
0:08:01.810 poort naar jou terug kan praten op de computer
0:08:05.469 je kunt dus uitlezen wat daar naartoe geschreven wordt
0:08:08.830 die 9600 is de zogenaamde "baudrate" oftewel de snelheid waarmee hij
0:08:14.420 informatie naar de computer terug schrijft.
0:08:19.040 Hier zeg ik ook "Serial.println()" dus schrijf een regel met de waarden van
0:08:25.599 de potmeter die hier hebben uitgelezen hoe kun je dat nou bekijken
0:08:30.520 bovenin beeld zie ik op mijn Mac een menu "hulpmiddelen" en dan kies ik voor
0:08:34.420 seriële monitor. Je ziet allemaal nullen voorbij komen
0:08:39.300 je ziet ook hieronder die zelfde 9600 baud als die ik eerder op regel 9 had
0:08:46.100 ga ik nu echter draaien aan mijn potmeter, dan zie je de getallen verspringen
0:08:52.120 ik door blijf draaien tot het maximum dan zul je zien dat hij stopt op 1023
0:08:58.600 wat de hoogste waarde is. Ga ik weer terug draaien
0:09:02.350 dan zie je ook dat de waarde weer af loopt dus ook je op een makkelijke
0:09:05.680 manier zien welke waarden je Arduino binnen krijgt van je potmeter
0:09:12.510 in de volgende les gaan we kijken naar hoe je met drukknopjes kunt werken