Arduino Nano - Knop - Relay
Deze tutorial vertelt u hoe u de Arduino Nano en een knop gebruikt om een relay te besturen. Door de relay te koppelen aan een magneetslot (solenoid lock), gloeilamp, LED-strip, motor of actuator..., kunt u met een knop deze apparaten bedienen. We leren twee verschillende toepassingen:
Toepassing 1 - De toestand van de relay is gesynchroniseerd met de stand van de knop. In detail:
- Arduino Nano schakelt de relay aan terwijl de knop ingedrukt wordt gehouden.
- Arduino Nano schakelt de relay uit wanneer de knop NIET ingedrukt is.
Toepassing 2 - De toestand van de relay wisselt elke keer dat de knop wordt ingedrukt. Meer specifiek:
- Als Arduino Nano detecteert dat de knop is ingedrukt (van HIGH naar LOW verandert), schakelt hij de relay AAN als deze uit staat, of UIT als deze aan staat.
- Het loslaten van de knop heeft geen invloed op de status van de relay.
Bij Toepassing 2 moeten we de knop debouncen om ervoor te zorgen dat alles goed werkt. We zullen zien waarom dit belangrijk is door te vergelijken hoe de relay zich gedraagt met en zonder debounce in de Arduino code.
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over Relay en Knop
Als u niet bekend bent met relay en knop (inclusief pinout, werking en programmeren), kunnen de volgende tutorials u helpen:
Aansluitschema

This image is created using Fritzing. Click to enlarge image
Toepassing 1 - De relay status is synchroon met de knopstatus
Arduino Nano Code
Snelle Stappen
- Verbind een Arduino Nano met uw computer via een USB-kabel.
- Start de Arduino IDE, en selecteer de juiste board en poort.
- Kopieer de code en open deze in de Arduino IDE.
- Klik op de Upload knop in de Arduino IDE om de code te compileren en te uploaden naar de Arduino Nano.

- Druk de knop in en houd deze een paar seconden vast.
- Observeer de verandering in de status van de relay.
U zult zien dat de relay-status synchroon loopt met de knop-status.
Code Uitleg
Bekijk de regel-voor-regel uitleg in de commentaarregels van de broncode!
Toepassing 2 - Knop schakelt Relay
Arduino Nano Code - Knop schakelt relay zonder debouncing
Code Uitleg
De uitleg vindt u in de commentaarregels van bovenstaande Arduino Nano code.
In de code is de expressie relay_state = !relay_state gelijk aan:
Snelle Stappen
- Kopieer de code en open deze in de Arduino IDE.
- Upload de code naar de Arduino Nano.
- Druk de knop meerdere keren in en laat weer los.
- Observeer hoe de relay-status verandert.
U merkt wellicht dat de relay telkens wisselt zodra u de knop indrukt, maar het kan zijn dat dit niet altijd hetzelfde gebeurt. Soms kan de relay snel meerdere keren schakelen bij één druk op de knop, of helemaal niet schakelen (twee keer snel achter elkaar, wat met het blote oog niet te zien is).
⇒ Om dit probleem op te lossen moeten we de knop debouncen.
Arduino Nano Code - Knop schakelt relay met debouncing
Knop debouncen kan lastig zijn voor beginners. Gelukkig maakt de ezButton library het eenvoudig.
Waarom is debouncing noodzakelijk? Zie de Arduino Nano - Knop Debounce tutorial voor meer informatie.
Snelle Stappen
- Installeer de ezButton library. Raadpleeg How To voor instructies.
- Kopieer de code en open die met de Arduino IDE.
- Klik op de Upload knop in de Arduino IDE om de code naar de Arduino Nano te uploaden.
- Druk en laat de knop meerdere keren los.
- Bekijk de verandering in de status van de relay.
U zult merken dat de relay slechts één keer schakelt telkens wanneer u de knop indrukt.
Video Tutorial
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.