/*
Voici une solution à notre défi programmation Arduino.
Il existe plein de programmes différents qui fonctionnent très bien ; celui-ci
a été programmé en tâchant d'être le plus compréhensible.
*/
/* On déclare un objet 'moteur' pour contrôler le moteur,
en utilisant la librairie ESP32Servo */
#include <ESP32Servo.h>
Servo moteur;
/* On déclare un objet 'led_rgb', pour contrôler la LED de couleur,
en utilisant la librairie Adafruit_NeoPixel */
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel led_rgb(
1 /* nombre de pixels */, 12 /* broche */,
NEO_GRB + NEO_KHZ800 /* type de LED */);
/* On déclare un objet 'clavier', en utilisant la librairie Keypad */
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
const char keys[ROWS][COLS] = { /* ce tableau associe à chaque touche un chiffre/une lettre */
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {18, 5, 17, 16}; /* numéros de broches des rangées */
byte colPins[COLS] = {4, 0, 2, 15}; /* numéro de broches des colonnes */
Keypad clavier = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
/* On déclare les variables globales du programme */
String code = ""; /* enregistre le code tapé par l'utilisateur */
String password = "123A"; /* enregistre le code de verrouillage attendu */
/*
La fonction setup() sert à configurer et initialiser le microcontrôleur.
Cette fonction est executée une seule fois, lorque le microcontrôleur démarre.
*/
void setup() {
/* on démarre la connexion série, à vitesse 115200 bit/s */
Serial.begin(115200);
Serial.println();
Serial.println("Bonjour le monde !");
/* on démarre la LED de couleur */
led_rgb.begin();
/* on initialise le moteur en position verrouillée */
moteur.attach(13); /* utilise la broche N°13 pour contrôler le moteur */
fermer(); /* position verrouillée */
}
/*
Après l'initialisation, la fonction loop() est exécutée en boucle indéfiniment.
*/
void loop() {
/* lire l'état du clavier */
char key = clavier.getKey();
if (key != NO_KEY) {
Serial.println(key);
}
delay(10);
}
/* quelques fonctions utiles... */
/* choisir la couleur de la LED, avec trois composantes 0 <= rouge, vert, bleu <= 255 */
void setColor(int r, int g, int b) {
led_rgb.setPixelColor(0, led_rgb.Color(r, g, b));
led_rgb.show();
}
/* ouvrir la porte = tourner à 90°C */
void ouvrir() {
moteur.write(90);
}
/* fermer la porte = remettre droit */
void fermer() {
moteur.write(0);
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4