Arduino - Capteur de porte pour inverser un relais

Dans un tutoriel précédent, nous avons appris à activer le relais si la porte est ouverte, et à désactiver le relais si la porte est fermée. Dans ce tutoriel, nous allons apprendre à basculer le relais chaque fois que la porte se ferme.

En connectant un relais à une ampoule, une bande LED, un moteur ou un actionneur... Nous pouvons utiliser le capteur de porte pour activer ou désactiver une ampoule, une bande LED, un moteur ou un actionneur...

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×Door Sensor
1×Relay
1×Jumper Wires
1×(Optional) Solenoid Lock
1×(Optional) 12V Power Adapter
1×(Optional) DC Power Jack
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du relais et du capteur de porte

Si vous ne connaissez pas les relais et les capteurs de porte (brochage, fonctionnement, programmation...), renseignez-vous sur ces sujets dans les tutoriels suivants :

Diagramme de câblage

Schéma de câblage du relais de capteur de porte Arduino

This image is created using Fritzing. Click to enlarge image

Code Arduino - Capteur de porte active un relais

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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); } }

Étapes rapides

  • Connectez l'Arduino au PC via le câble USB
  • Ouvrez l'Arduino IDE, sélectionnez la bonne carte et le bon port
  • Copiez le code ci-dessus et ouvrez-le avec l'Arduino IDE
  • Cliquez sur le bouton Upload de l'Arduino IDE pour charger le code sur l'Arduino
  • Approchez l'aimant du commutateur à lames puis éloignez-le. Répétez cela plusieurs fois
  • Observez le changement d'état du relais

Explication du code

Vous pouvez trouver l'explication dans la ligne de commentaires du code Arduino ci-dessus.

Dans le code, relayState = !relayState est équivalent au code suivant :

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

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!