Bonsoir à tous,
Je viens demander de l'aide car je suis débutant dans le domaine de la programmation et en attendant de recevoir la arduino uno que j'ai commandé je me suis avancé dans mon projet et j'ai fais un programme mais je voudrais savoir si il est correct.
Mon programme consiste à piloter un shield relais 4 canaux avec un clavier matriciel 4*4.
Quand j'appuie sur le bouton 1 puis A je mets à l'état bas le relais 1 pendant 300ms
Quand j'appuie sur le bouton 2 puis A je mets à l'état bas le relais 1 pendant 400ms
Quand j'appuie sur le bouton 1 puis B je mets à l'état bas le relais 2 pendant 300ms
Etc...etc..
Les boutons 1, 2 et 3 correspondent aux temps.
Les boutons A, B, C, D corresponde aux relais 1, 2, 3, 4.
Le délais est à titre d'exemple et pourra être changé.
Voici mon programme :
Je vous remercie par avance de votre aide précieuse.Code:#define RELAY_1 6 #define RELAY_2 7 #define RELAY_3 8 #define RELAY_4 9 #include <Keypad.h> //--- Constantes utilisées avec le clavier 4x4 const byte LIGNES = 4; // 4 lignes const byte COLONNES = 4; //4 colonnes const int C4=2; //declaration constante de broche const int C3=3; //declaration constante de broche const int C2=4; //declaration constante de broche const int C1=5; //declaration constante de broche const int L4=16; //declaration constante de broche const int L3=17; //declaration constante de broche const int L2=18; //declaration constante de broche const int L1=19; //declaration constante de broche //--- Définition des touches char touches[LIGNES][COLONNES] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; // tableaux de lignes et colonnes byte BrochesLignes[LIGNES] = {L1, L2, L3, L4}; //connexions utilisées pour les broches de lignes du clavier byte BrochesColonnes[COLONNES] = {C1, C2, C3, C4}; //connexions utilisées pour les broches de colonnes du clavier char touche; // variable de stockage valeur touche appuyée // création d'un objet keypad = initialisation clavier Keypad clavier = Keypad( makeKeymap(touches), BrochesLignes, BrochesColonnes, LIGNES, COLONNES ); // les broches de lignes sont automatiquement configurées en ENTREE avec pullup interne activé // les broches de colonnes sont automatiquement configurées en SORTIE void setup() { // on initialise les sorties et on éteind les leds connectées pinMode(RELAY_1, OUTPUT); digitalWrite(RELAY_1, HIGH); pinMode(RELAY_2, OUTPUT); digitalWrite(RELAY_2, HIGH); pinMode(RELAY_3, OUTPUT); digitalWrite(RELAY_3, HIGH); pinMode(RELAY_4, OUTPUT); digitalWrite(RELAY_4, HIGH); } void loop() { // debut de la fonction loop() // --- ici instructions à exécuter par le programme principal --- touche = clavier.getKey(); // lecture de la touche appuyée if(touche != NO_KEY){ // si une touche a été frappée -- gestion de la touche appuyée if(touche=='1','A') //si les touches '1' et touche 'A' sont tapées {digitalWrite(RELAY_1, LOW) // alors RELAY_1 est activé (LOW) delay(300) //pendant 30secondes digitalWrite(RELAY_1, HIGH)}; if(touche=='2','A') //si les touchse '2' et 'A' sont tapées {digitalWrite(RELAY_1, LOW) //alors le RELAY_1 est activé (LOW) delay(400) digitalWrite(RELAY_1, HIGH)} if(touche=='3','A') {digitalWrite(RELAY_1, LOW) delay(500) digitalWrite(RELAY_1, HIGH)} if(touche=='1','B') {digitalWrite(RELAY_1, LOW) delay(300) digitalWrite(RELAY_1, HIGH)} if(touche=='2','B') {digitalWrite(RELAY_1, LOW) delay(400) digitalWrite(RELAY_1, HIGH)} if(touche=='3','B') {digitalWrite(RELAY_1, LOW) delay(500) digitalWrite(RELAY_1, HIGH)} if(touche=='1','C') {digitalWrite(RELAY_1, LOW) delay(300) digitalWrite(RELAY_1, HIGH)} if(touche=='2','C') {digitalWrite(RELAY_1, LOW) delay(400) digitalWrite(RELAY_1, HIGH)} if(touche=='3','C') {digitalWrite(RELAY_1, LOW) delay(500) digitalWrite(RELAY_1, HIGH)} if(touche=='1','D') {digitalWrite(RELAY_1, LOW) delay(300) digitalWrite(RELAY_1, HIGH)} if(touche=='2','D') {digitalWrite(RELAY_1, LOW) delay(400) digitalWrite(RELAY_1, HIGH)} if(touche=='3','D') {digitalWrite(RELAY_1, LOW) delay(500) digitalWrite(RELAY_1, HIGH)} }
-----