Arduino - Deursensor schakelt relais aan en uit

In een eerdere tutorial hebben we geleerd hoe het relais wordt ingeschakeld wanneer de deur open is en uitgeschakeld wanneer de deur gesloten wordt. In deze tutorial gaan we leren hoe het relais bij elke sluiting van de deur wordt omgeschakeld (getoggled).

Door het relais te verbinden met een lamp, led-strip, motor of actuator... kunnen we de deursensor gebruiken om deze apparaten aan en uit te schakelen.

Hardware Vereist

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×Deursensor
1×Relais
1×Jumperdraden (man-man)
1×(Optioneel) Solenoïde Slot
1×(Optioneel) 12V Voeding Adapter
1×(Optioneel) DC Voeding Jack
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over Relais en Deursensor

Als u niet precies weet wat een relais en deursensor zijn (pinout, werking, programmeren, etc.), leer hier meer via de volgende tutorials:

Bekabelingsschema

Arduino Deursensor Relais Bekabelingsschema

This image is created using Fritzing. Click to enlarge image

Arduino Code - Deursensor schakelt relais aan en uit

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-door-sensor-toggle-relay */ // constants won't change const int DOOR_SENSOR_PIN = 13; // Arduino pin connected to door sensor's pin const int RELAY_PIN = 3; // Arduino pin connected to relay's pin // variables will change: int relayState = LOW; // the current state of relay int lastDoorState; // the previous state of door sensor int currentDoorState; // the current state of door sensor void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode currentDoorState = digitalRead(DOOR_SENSOR_PIN); } void loop() { lastDoorState = currentDoorState; // save the last state currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read new state if (lastDoorState == HIGH && currentDoorState == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected"); // toggle state of relay relayState = !relayState; // control relay arccoding to the toggled state digitalWrite(RELAY_PIN, relayState); } }

Snelle Stappen

  • Verbind de Arduino met de PC via USB-kabel
  • Open de Arduino IDE, selecteer het juiste board en de juiste poort
  • Kopieer de bovenstaande code en open deze in de Arduino IDE
  • Klik op de Upload-knop in de Arduino IDE om de code naar de Arduino te uploaden
  • Beweeg de magneet dicht naar de reed switch en daarna weer weg van de reed switch. Herhaal dit meerdere keren
  • Bekijk de statusverandering van het relais

Code Uitleg

Lees de regel-voor-regel uitleg in de commentaarregels van de code!

In de code is relayState = !relayState gelijk aan de volgende code:

if(relayState == LOW) relayState = HIGH; else relayState = LOW;

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.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en laat stap voor stap zien hoe u de deursensor en het relais instelt en programmeert.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!