Arduino Nano - Clavier - Relais

Ce tutoriel vous explique comment utiliser un clavier numérique et un Arduino Nano pour contrôler un relais. Lorsque l'utilisateur saisit le bon mot de passe sur le clavier, l'Arduino Nano active le relais.

Le tutoriel fournit également le code Arduino Nano qui active un relais pendant une certaine durée puis le désactive sans utiliser la fonction delay(). De plus, le code Arduino Nano peut gérer plusieurs mots de passe.

En connectant un relais à un verrou électromagnétique, un verrou à solénoïde, un actionneur linéaire, un élément chauffant, une pompe, ou un ventilateur... Nous pouvons les contrôler à l'aide d'un clavier.

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
1×Keypad
1×Relay
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino Nano
1×(Recommended) Screw Terminal Adapter for Arduino Nano

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 clavier et du relais

Si vous n'êtes pas familier avec le clavier et le relais (y compris le brochage, le fonctionnement, la programmation, etc.), les tutoriels suivants peuvent vous aider :

Diagramme de câblage

Schéma de câblage du relais à clavier Arduino Nano

This image is created using Fritzing. Click to enlarge image

Code Arduino Nano - activer le relais si le mot de passe est correct

Si le mot de passe est correct, les codes suivants activeront un relais.

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-keypad-relay */ #include <Keypad.h> const int ROW_NUM = 4; //four rows const int COLUMN_NUM = 3; //four columns const int RELAY_PIN = 2; // The Arduino Nano pin connected to the IN pin of relay module const byte pin_rows[ROW_NUM] = {10, 9, 8, 7}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {6, 5, 4}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM); const String password_1 = "4321"; // change your password here const String password_2 = "09876"; // change your password here const String password_3 = "9765"; // change your password here String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum password size is 32, change if needed pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output. digitalWrite(RELAY_PIN, LOW); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // reset the input password } else if (key == '#') { if (input_password == password_1 || input_password == password_2 || input_password == password_3) { Serial.println("The correct password! Turning ON relay"); digitalWrite(RELAY_PIN, HIGH); } else { Serial.println("The incorrect password! try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } }

Étapes rapides

  • Connectez un câble USB entre l'Arduino Nano et le PC.
  • Ouvrez l'IDE Arduino, sélectionnez la carte et le port appropriés.
  • Cliquez sur l'icône Libraries dans la barre latérale gauche de l'IDE Arduino.
  • Recherchez "keypad" et localisez la bibliothèque keypad créée par Mark Stanley et Alexander Brevig.
  • Ensuite, appuyez sur le bouton Install pour installer la bibliothèque keypad.
Bibliothèque de clavier pour Arduino Nano
  • Recherchez "ezOutput", puis localisez la bibliothèque ezOutput par ArduinoGetStarted.
  • Appuyez sur le bouton Install pour installer la bibliothèque ezOutput.
Bibliothèque de sortie Arduino Nano
  • Copiez le code et ouvrez-le dans l'IDE Arduino.
  • Ensuite, appuyez sur le bouton Upload dans l'IDE Arduino pour compiler et téléverser le code vers l'Arduino Nano.
Téléversement de code Arduino IDE
  • Entrez 1234 suivi de la touche #, puis 9765 suivi de la touche #.
  • Vérifiez le résultat sur le moniteur série et observez l'état du relais.
COM6
Send
The incorrect password! try again The correct password! Turning ON relay
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Explication du code

Les mots de passe autorisés sont prédéfinis dans le code de l'Arduino Nano. Une chaîne est utilisée pour stocker le mot de passe saisi par les utilisateurs, désignée sous le nom de chaîne d'entrée. Sur le clavier, deux touches (* et #) sont utilisées à des fins spéciales : effacer le mot de passe et terminer le mot de passe. Lorsqu'une touche sur le clavier est pressée :

  • Si la touche pressée n'est ni l'une ni l'autre des deux touches spéciales, elle est ajoutée à la chaîne de saisie.
  • Si la touche pressée est *, la chaîne de saisie est effacée. Cela peut être utilisé pour commencer ou recommencer la saisie du mot de passe.
  • Si la touche pressée est # :
    • L'Arduino Nano vérifie le mot de passe saisi en comparant la chaîne de saisie avec les mots de passe pré-définis. Si elle correspond à l'un des mots de passe pré-définis, le relais est activé.
    • Que le mot de passe soit correct ou non, la chaîne de saisie est effacée pour la prochaine saisie.

Code Arduino Nano - activer un relais pendant une période si le mot de passe est correct

Si le mot de passe est correct, le relais sera activé pendant 5 secondes. Après cette période, le relais sera désactivé.

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-keypad-relay */ #include <Keypad.h> #include <ezOutput.h> #define RELAY_ON_TIME 5000 // in milliseconds const int ROW_NUM = 4; //four rows const int COLUMN_NUM = 3; //four columns const int RELAY_PIN = 2; // The Arduino Nano pin connected to the IN pin of relay module const byte pin_rows[ROW_NUM] = {10, 9, 8, 7}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {6, 5, 4}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM); ezOutput relay(RELAY_PIN); const String password_1 = "4321"; // change your password here const String password_2 = "09876"; // change your password here const String password_3 = "9765"; // change your password here String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum password size is 32, change if needed relay.low(); } void loop() { relay.loop(); // MUST call the loop() function first char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // reset the input password } else if (key == '#') { if (input_password == password_1 || input_password == password_2 || input_password == password_3) { Serial.println("The correct password! Turning ON relay"); relay.low(); // set low before making a high pulse relay.pulse(RELAY_ON_TIME); // turn on relay in RELAY_ON_TIME duration and then turn off } else { Serial.println("The incorrect password! try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } }

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!