Je eerste schakeling bouwen
Nu we weten wat de ESP32 is en onze belangrijkste onderdelen hebben verzameld, kunnen we voor het eerst iets gaan bouwen. We beginnen bewust met een…
Nu we weten wat de ESP32 is en onze belangrijkste onderdelen hebben verzameld, kunnen we voor het eerst iets gaan bouwen.
We beginnen bewust met een eenvoudige schakeling: een led die gaat branden zodra we de ESP32 via USB van voeding voorzien. Daarvoor hoeven we nog geen code te schrijven of software te installeren.
Deze eerste schakeling lijkt misschien bescheiden, maar bevat al verschillende principes die in bijna ieder elektronisch project terugkomen:
- een voedingsbron;
- een gesloten stroomkring;
- een onderdeel dat we willen gebruiken;
- een weerstand die de stroom begrenst;
- verbindingen tussen alle onderdelen.
We gaan niet alleen kijken naar waar iedere draad moet komen. Ik wil je vooral laten begrijpen waarom we ieder onderdeel aansluiten. Wanneer je dat begrijpt, kun je straks ook gerichter onderzoeken waarom een schakeling eventueel niet werkt.
Wat we gaan bouwen
We sluiten een losse led met een weerstand aan tussen de 3,3-volt-aansluiting en de massa van de ESP32.
De stroom loopt dan:
3,3V → weerstand → led → GND
3,3V is de voedingsspanning die de ESP32 beschikbaar stelt.
GND staat voor ground, oftewel massa. Je kunt dit voor nu zien als het punt waar de elektrische stroom naar terugkeert.
Zodra we de ESP32 met de USB-kabel verbinden, kan er stroom vanuit de 3,3-volt-aansluiting door de weerstand en de led naar GND lopen. De led zet een klein deel van die elektrische energie om in licht.
Daarvoor moet de stroomkring volledig gesloten zijn. Als ergens een verbinding ontbreekt, kan er geen stroom lopen en blijft de led uit.
Dit heb je nodig
Voor deze schakeling gebruiken we:
- een ESP32-ontwikkelbord met ESP32-WROOM-32-module;
- een geschikte USB-datakabel;
- een breadboard;
- een led;
- een weerstand van 220 tot 330 ohm;
- drie mannelijk-mannelijke jumperdraden.
De USB-kabel wordt in dit hoofdstuk alleen gebruikt om de ESP32 van voeding te voorzien. In het volgende hoofdstuk gebruiken we dezelfde kabel om code te uploaden.
Eerst zonder spanning bouwen
Maak er vanaf het begin een gewoonte van om een schakeling zonder aangesloten voeding te bouwen of aan te passen.
Controleer daarom voordat je begint:
- de USB-kabel is nog niet op de ESP32 aangesloten;
- het breadboard ligt op een schoon en droog oppervlak;
- er liggen geen losse metalen voorwerpen onder de ESP32;
- de pinnen van het ontwikkelbord zijn recht;
- je hebt een weerstand met de juiste waarde gekozen.
Pas nadat we de volledige schakeling hebben gecontroleerd, sluiten we de USB-kabel aan.
Het breadboard begrijpen
Een breadboard bestaat uit veel kleine gaatjes. Aan de buitenkant lijken die allemaal los van elkaar te staan, maar onder het kunststof zitten metalen strips die bepaalde gaatjes met elkaar verbinden.
In het middelste gedeelte zijn de gaatjes meestal in korte rijen van vijf verbonden. De vijf gaatjes aan de ene kant van de middensleuf vormen samen één elektrisch punt. De vijf gaatjes aan de andere kant vormen een afzonderlijk punt.
De middensleuf onderbreekt de verbinding.
Langs de zijkanten van veel breadboards bevinden zich langere rijen, vaak aangeduid met een rode en een blauwe of zwarte lijn. Dit zijn de voedingsrails.
Daarbij moeten we voorzichtig zijn met aannames:
- een rode lijn betekent niet automatisch dat er spanning op staat;
- een blauwe lijn betekent niet automatisch dat deze met GND is verbonden;
- sommige voedingsrails zijn halverwege onderbroken;
- de indeling kan per breadboard verschillen.
Pas wanneer wij een rail met de ESP32 verbinden, krijgt die rail een elektrische functie.
De kleur en markering op een breadboard helpen ons bij het organiseren van de schakeling. Ze maken zelf geen elektrische verbinding met de voeding.
Als je een multimeter met continuïteitstest hebt, kun je onderzoeken welke gaatjes intern met elkaar zijn verbonden. Dit is een eenvoudige manier om het breadboard beter te leren kennen.
De aansluitingen op de ESP32 vinden
Zoek op jouw ontwikkelbord naar de pin met de aanduiding:
- 3V3 of 3.3V;
- GND.
Gebruik voor deze schakeling alleen de pin met 3V3 als aanduiding. Verwar deze niet met een pin waarop 5V, VIN of VUSB staat.
Een ESP32-ontwikkelbord kan meerdere GND-pinnen hebben. Deze zijn op het bord met elkaar verbonden. Je mag een GND-pin kiezen die praktisch bereikbaar is.
De plaats van deze pinnen kan per uitvoering verschillen. Volg daarom de tekst op jouw eigen bord en niet alleen de positie die je op een willekeurige afbeelding ziet.
Kun je de aanduidingen niet goed lezen? Gebruik dan een vergrootglas of maak met je telefoon een foto waarop je kunt inzoomen.
De led bekijken
Een led heeft twee aansluitingen en laat stroom maar in één richting door.
Bij een nieuwe led kun je de aansluitingen meestal als volgt herkennen:
- het lange pootje is de anode, de pluszijde;
- het korte pootje is de kathode, de minzijde;
- de afgeplatte kant van de behuizing markeert meestal de kathode.
De anode moet in onze schakeling in de richting van 3,3 volt wijzen. De kathode wordt met GND verbonden.
Wanneer je de led omgekeerd aansluit, gaat hij normaal gesproken niet branden. Dat is niet meteen een ramp. Het is een mogelijke oorzaak die we gericht kunnen controleren.
Bij gebruikte leds kunnen de pootjes al zijn afgeknipt en daardoor even lang zijn. Kijk dan naar de afgeplatte kant van de behuizing. In een doorzichtige led is vaak ook te zien dat het grootste metalen deel aan de kathodezijde zit.
Waarom de weerstand nodig is
Een led mag niet rechtstreeks tussen 3,3 volt en GND worden aangesloten.
Zodra een led stroom begint door te laten, kan de stroom snel te groot worden. De weerstand begrenst deze stroom en beschermt daarmee zowel de led als de schakeling.
Voor onze eerste opstelling gebruiken we een weerstand van 220 tot 330 ohm.
Een weerstand heeft geen plus- of minkant. Het maakt daarom niet uit in welke richting je hem plaatst.
Ook maakt het voor de elektrische werking niet uit of de weerstand vóór of na de led staat. In één gesloten stroomkring loopt door beide onderdelen dezelfde stroom.
Beide volgordes werken dus:
3,3V → weerstand → led → GND
en:
3,3V → led → weerstand → GND
In deze gids gebruiken we de eerste volgorde, omdat die gemakkelijk in het schema te volgen is.
Stap 1 — Breng 3,3 volt naar het breadboard
Verbind met een jumperdraad de 3V3-pin van de ESP32 met de rode voedingsrail van het breadboard.
Gebruik bij voorkeur een rode draad. Dat is technisch niet verplicht, maar maakt direct zichtbaar dat deze verbinding voor de voedingsspanning wordt gebruikt.
Controleer of de draad werkelijk in de rij van de 3V3-pin zit. Bij een ESP32 staan veel pinnen dicht naast elkaar. Een draad die één positie verschoven is, kan op een heel andere aansluiting terechtkomen.
De USB-kabel blijft tijdens deze stap losgekoppeld.
Stap 2 — Verbind GND met het breadboard
Verbind een GND-pin van de ESP32 met de blauwe of zwarte voedingsrail van het breadboard.
Gebruik hiervoor bij voorkeur een zwarte of blauwe jumperdraad.
We hebben nu twee herkenbare punten op het breadboard:
- de rode rail is verbonden met 3,3 volt;
- de blauwe of zwarte rail is verbonden met GND.
Er staat nog geen spanning op deze rails, omdat de ESP32 nog niet via USB is aangesloten.
Stap 3 — Plaats de weerstand
Plaats één pootje van de weerstand in een gaatje van de rode voedingsrail.
Plaats het andere pootje in een vrije rij in het middelste gedeelte van het breadboard.
Buig de pootjes voorzichtig zodat de weerstand netjes vlak of iets boven het breadboard ligt. De metalen pootjes mogen elkaar en andere ongewenste aansluitingen niet raken.
Het uiteinde van de weerstand in het middengedeelte vormt nu een nieuw elektrisch punt. In dezelfde rij kunnen we de anode van de led aansluiten.
Stap 4 — Plaats de led
Plaats het lange pootje van de led in dezelfde verbonden rij als het uiteinde van de weerstand.
Plaats het korte pootje in een andere, vrije rij.
Let goed op dat de twee ledpootjes niet in dezelfde verbonden rij staan. Als dat wel zo is, zijn beide zijden van de led elektrisch met hetzelfde punt verbonden en kan de schakeling niet op de bedoelde manier werken.
Een handige plaatsing is over de middensleuf van het breadboard. De pootjes zitten dan vanzelf aan verschillende zijden van de onderbreking. Dit is niet verplicht, maar maakt de scheiding duidelijk zichtbaar.
Stap 5 — Verbind de led met GND
Gebruik een jumperdraad om de rij met het korte pootje van de led te verbinden met de GND-rail.
De volledige stroomkring is nu opgebouwd:
3,3V-pin → rode rail → weerstand → led → GND-rail → GND-pin
Neem nog even de tijd om deze route op je eigen breadboard te volgen. Begin bij de 3V3-pin en wijs ieder onderdeel en iedere verbinding aan totdat je bij GND uitkomt.
Kun je de volledige route niet volgen? Sluit de USB-kabel dan nog niet aan. Controleer eerst waar de verbinding ontbreekt.
Controle vóór het inschakelen
Voordat we de ESP32 met de computer verbinden, controleren we de schakeling.
Stel jezelf de volgende vragen:
- Loopt er een herkenbare route van 3V3 naar GND?
- Staat er een weerstand van 220 tot 330 ohm in serie met de led?
- Is de led in de juiste richting geplaatst?
- Zitten de pootjes van de led in verschillende verbonden rijen?
- Is de rode rail werkelijk met 3V3 verbonden?
- Is de andere voedingsrail werkelijk met GND verbonden?
- Zijn er geen losse draden of metalen pootjes die elkaar onbedoeld raken?
- Is er nergens een directe verbinding tussen 3V3 en GND?
Dat laatste punt is bijzonder belangrijk. Een directe verbinding tussen de voedingsspanning en GND noemen we kortsluiting. Daarbij ontbreekt een onderdeel dat de stroom voldoende begrenst.
Sluit de ESP32 niet aan wanneer je vermoedt dat 3V3 en GND rechtstreeks met elkaar zijn verbonden.
Een voorspelling doen
Voordat we de voeding aansluiten, doen we eerst een voorspelling.
Wat verwacht je dat er gebeurt zodra je de USB-kabel aansluit?
Waarschijnlijk verwacht je dat de losse led gaat branden. Maar probeer iets nauwkeuriger te zijn:
- Gaat de led direct branden?
- Blijft hij continu branden?
- Hoe fel verwacht je dat hij brandt?
- Welke andere leds op het ontwikkelbord kunnen aangaan?
Door vooraf een verwachting uit te spreken, kunnen we die straks vergelijken met wat er werkelijk gebeurt.
Dit lijkt een kleine stap, maar vormt de basis van systematisch foutzoeken:
Verwachten → waarnemen → vergelijken → onderzoeken
De schakeling inschakelen
Sluit de USB-kabel eerst aan op de ESP32 en daarna op de computer.
Raak de schakeling niet direct aan. Kijk eerst rustig wat er gebeurt.
Als alles correct is aangesloten, gaat de losse led branden. Mogelijk gaat er ook een voedingsled op het ESP32-ontwikkelbord branden. Die led hoort bij het bord zelf en staat los van de schakeling die wij hebben gebouwd.
Let op het verschil tussen:
- de ingebouwde voedingsled op de ESP32;
- de losse led op het breadboard.
De voedingsled op het bord vertelt ons dat het ontwikkelbord voeding ontvangt. De losse led vertelt ons dat onze externe stroomkring werkt.
Wat hebben we aangetoond?
Wanneer de losse led brandt, hebben we meer aangetoond dan alleen dat de led werkt.
We weten nu dat:
- de USB-kabel voeding levert;
- de ESP32 spanning ontvangt;
- de 3V3-pin spanning levert;
- de verbinding met de voedingsrail werkt;
- de weerstand en de led een gesloten stroomkring vormen;
- de led in de juiste richting is aangesloten;
- de verbinding met GND aanwezig is.
Eén waarneming kan dus informatie geven over verschillende delen van een schakeling.
Toch moeten we voorzichtig blijven met conclusies. Een brandende led bewijst bijvoorbeeld nog niet dat iedere pin van de ESP32 werkt of dat onze computer het bord via USB kan herkennen. Dat gaan we later afzonderlijk testen.
Als de led niet brandt
Blijft de losse led uit? Verander dan niet meteen verschillende onderdelen tegelijk.
Koppel eerst de USB-kabel los. Daarna onderzoeken we de schakeling stap voor stap.
Kijk eerst naar de ESP32
Brandt er een voedingsled op het ontwikkelbord wanneer de USB-kabel is aangesloten?
Als ook die led uitblijft, kan het probleem zitten in:
- de USB-kabel;
- de USB-aansluiting;
- de computer of USB-adapter;
- de aansluiting op het ontwikkelbord.
Probeer niet direct aan de rest van de schakeling te sleutelen als de ESP32 zelf mogelijk geen voeding ontvangt.
Controleer de richting van de led
Bekijk het lange en korte pootje of zoek de afgeplatte kant van de behuizing.
De anode moet via de weerstand met 3,3 volt zijn verbonden. De kathode moet uiteindelijk naar GND lopen.
Twijfel je? Draai de led dan pas om nadat je de USB-kabel hebt losgekoppeld.
Controleer de rijen van het breadboard
Volg iedere verbinding gaatje voor gaatje.
Controleer vooral:
- of het uiteinde van de weerstand en de anode werkelijk in dezelfde verbonden rij zitten;
- of de twee pootjes van de led niet in dezelfde rij staan;
- of de GND-draad in dezelfde rij zit als de kathode;
- of een voedingsrail misschien halverwege is onderbroken.
Een draad die één gaatje verkeerd zit, kan er van bovenaf toch overtuigend uitzien.
Controleer de weerstand
Een verkeerde weerstand kan ervoor zorgen dat de led nauwelijks zichtbaar brandt. Bij een zeer lage weerstand kan er juist te veel stroom lopen.
Controleer daarom of je een weerstand van 220 tot 330 ohm hebt gebruikt. Meet de weerstand met een multimeter wanneer je niet zeker bent van de kleurringen.
Test één verandering tegelijk
Als je een mogelijke oorzaak hebt gevonden, verander dan alleen dat ene onderdeel of die ene verbinding. Sluit daarna de voeding opnieuw aan en kijk wat er gebeurt.
Zo weet je welke verandering het probleem heeft opgelost.
Wanneer je tegelijkertijd de led omdraait, een andere weerstand plaatst en drie draden verplaatst, kan de schakeling gaan werken zonder dat je weet wat er oorspronkelijk fout zat. Je hebt dan wel een brandende led, maar weinig nieuwe kennis.
Meten in plaats van aannemen
Heb je een multimeter? Dan kun je controleren of de voedingsspanning werkelijk op het breadboard aankomt.
Zet de multimeter daarvoor op het meten van gelijkspanning. Plaats de zwarte meetpen op de GND-rail en de rode meetpen op de 3,3-volt-rail.
Je verwacht een waarde van ongeveer 3,3 volt.
De exacte waarde kan iets afwijken. Het gaat er nu vooral om dat je vaststelt of er spanning aanwezig is en of de polariteit klopt.
Geeft de multimeter een negatieve waarde aan? Dan zijn de meetpennen waarschijnlijk omgewisseld. Dat is meteen nuttige informatie: de meter laat niet alleen zien hoeveel spanning er is, maar ook wat de richting tussen beide meetpunten is.
Pas op dat de metalen uiteinden van de meetpennen niet tegelijk twee naast elkaar gelegen pinnen raken. Daarmee kun je onbedoeld kortsluiting veroorzaken.
Van continu branden naar bestuurbaar
Onze led is nu rechtstreeks met de 3,3-voltvoeding verbonden. Zolang de ESP32 voeding krijgt, blijft de led branden.
Dat is een werkende schakeling, maar de microcontroller bestuurt de led nog niet. De ESP32 levert alleen de voeding.
Om de led met code aan en uit te kunnen zetten, vervangen we de vaste 3,3-voltverbinding door een verbinding met een programmeerbare uitgang.
Daarvoor gaan we in deze gids GPIO 23 gebruiken.
GPIO staat voor General-Purpose Input/Output. Het is een aansluiting die we met code onder andere als digitale uitgang kunnen gebruiken.
De schakeling voorbereiden op code
Koppel eerst de USB-kabel los.
Verwijder daarna de jumperdraad tussen de 3V3-pin van de ESP32 en de rode voedingsrail.
Verbind die voedingsrail nu met de pin waarop 23, IO23 of GPIO23 staat. De exacte aanduiding hangt af van jouw ontwikkelbord.
De rest van de schakeling blijft hetzelfde:
GPIO 23 → weerstand → led → GND
Controleer zorgvuldig dat je werkelijk GPIO 23 gebruikt. Verwar de aanduiding niet met een naastgelegen pin.
Sluit de USB-kabel daarna nog niet opnieuw aan.
Op dit moment zal de led niet noodzakelijk branden. GPIO 23 moet eerst door onze code als uitgang worden ingesteld en worden ingeschakeld. Dat gaan we in het volgende hoofdstuk doen.
Een belangrijk verschil
We hebben nu twee situaties gezien.
In de eerste situatie was de schakeling:
3,3V → weerstand → led → GND
De 3,3-volt-aansluiting levert voortdurend spanning. De led brandt daarom continu.
In de tweede situatie is de schakeling:
GPIO 23 → weerstand → led → GND
GPIO 23 is programmeerbaar. Onze code bepaalt straks of deze aansluiting wel of geen spanning levert. Daardoor kunnen we de led laten knipperen, op een knop laten reageren of gebruiken om de toestand van een sensor zichtbaar te maken.
De onderdelen zijn vrijwel hetzelfde gebleven. Alleen de bron van het signaal is veranderd.
Wat je uit dit hoofdstuk kunt meenemen
Je hebt je eerste externe schakeling gebouwd en daarbij kennisgemaakt met verschillende basisprincipes:
- stroom kan alleen door een gesloten stroomkring lopen;
- een led heeft een vaste aansluitrichting;
- een weerstand begrenst de stroom door de led;
- de gaatjes van een breadboard zijn volgens een vast patroon verbonden;
- de markeringen op een breadboard krijgen pas betekenis door onze aansluitingen;
- de 3V3-pin levert een vaste voedingsspanning;
- GND vormt het gemeenschappelijke terugkeerpunt;
- een GPIO-pin kan later door code worden bestuurd;
- controleren begint voordat we de voeding aansluiten;
- bij een fout veranderen we één ding tegelijk.
Misschien brandde de led meteen. Misschien moest je eerst een draad verplaatsen of de led omdraaien. In beide gevallen heb je iets waardevols geleerd.
Een schakeling die direct werkt, bevestigt dat je de instructies goed hebt uitgevoerd. Een schakeling die niet direct werkt, geeft je de gelegenheid om te ontdekken hoe de onderdelen werkelijk met elkaar samenhangen.
Laat de schakeling met GPIO 23 voorlopig opgebouwd, maar houd de USB-kabel losgekoppeld. In het volgende hoofdstuk installeren we de benodigde software, maken we ons eerste programma en geven we de ESP32 opdracht om de led te laten knipperen.