Arduino - Clavier - Relais

Dans ce tutoriel, nous allons apprendre à utiliser un clavier, un relais et un Arduino ensemble. En détail, si un utilisateur saisit correctement le mot de passe sur le clavier, l'Arduino active le relais.

Le tutoriel fournit également le code qui active un relais pendant une période donnée puis le désactive sans utiliser la fonction delay(). Le code Arduino prend également en charge plusieurs mots de passe.

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

Clavier Arduino relais

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×Keypad 3x4 and 4x4 Kit
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 clavier et du relais

Si vous ne connaissez pas le clavier et le relais (brochage, fonctionnement, programmation...), renseignez-vous grâce aux tutoriels suivants :

Diagramme de câblage

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

This image is created using Fritzing. Click to enlarge image

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

Les codes ci-dessous activent un relais si le mot de passe est correct.

/* * 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-keypad-relay */ #include <Keypad.h> #define RELAY_PIN A0 // the Arduino pin, which connects to the IN pin of relay #define ROW_NUM 4 // four rows #define COLUMN_NUM 4 // four columns char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password_1 = "ABC1234"; // change your password here const String password_2 = "5642B"; // 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 password is correct, turning ON relay"); digitalWrite(RELAY_PIN, HIGH); } else { Serial.println("The password is incorrect, try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } }

Étapes rapides

  • Connectez l'Arduino au PC via le câble USB
  • Ouvrez l'IDE Arduino, sélectionnez la carte et le port appropriés
  • Naviguez vers l'icône Libraries sur la barre gauche de l'IDE Arduino.
  • Recherchez "keypad", puis trouvez la bibliothèque keypad de Mark Stanley, Alexander Brevig
  • Cliquez sur le bouton Install pour installer la bibliothèque keypad.
Bibliothèque de clavier Arduino
  • Recherchez « ezOutput », puis trouvez la bibliothèque ezOutput par ArduinoGetStarted.
  • Cliquez sur le bouton Install pour installer la bibliothèque ezOutput.
Bibliothèque de sortie Arduino
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur l'Arduino
Téléversement de code Arduino IDE
  • Appuyez sur les touches 1234 et appuyez sur #
  • Appuyez sur les touches 9765 et appuyez sur #
  • Consultez le résultat sur le moniteur série et l'état du relais
COM6
Send
The password is incorrect, try again The password is correct, 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 Arduino.

Une chaîne est utilisée pour stocker le mot de passe saisi par les utilisateurs, appelée 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 du clavier est pressée :

  • Si la touche pressée n'est pas l'une 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. Vous pouvez l'utiliser pour commencer ou recommencer à saisir le mot de passe.
  • Si la touche pressée est # :
    • La chaîne de saisie est comparée aux 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 entrée.

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

Le code ci-dessous active le relais pendant 5 secondes si le mot de passe est correct. Après 5 secondes, le relais est désactivé.

/* * 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-keypad-relay */ #include <Keypad.h> #include <ezOutput.h> #define RELAY_PIN A0 // the Arduino pin, which connects to the IN pin of relay #define ROW_NUM 4 // four rows #define COLUMN_NUM 4 // four columns #define RELAY_ON_TIME 5000 // in milliseconds char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); ezOutput relay(RELAY_PIN); const String password_1 = "ABC1234"; // change your password here const String password_2 = "5642B"; // 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 password is correct, 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 password is incorrect, 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!