projet bac portail

Bonjour, je passe mon bac en candidat libre bientôt, où la programmation est coef 12.

voilà j’ai besoin d’aide mon programme doit ouvrir un portail à distance (j’ai choisi la solution de la télécommande infra rouge) il y a 10 résident, chacun à son code pour ouvrir et ils sont limité à une voiture par résident.

Si vous voulez bien aider déjà pour cette partie s’il vous plaît ce serait parfait ^^’

matériel: un lcd un moteur pas à pas, j’ai aussi un servomoteur mais je sais pas quelle est le plus pratique pour le portail (à ventaux), une télécommande ir avec son récepteur, et led + resistance

ps: je me suis déjà bien servi d’internet

#include <Wire.h>
#include<LiquidCrystal.h>
#include <LiquidCrystal_I2C.h> // Library for LCD
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 20, 4);
#include <LiquidCrystal.h> // Library for LCD
#ifndef ConfigTouches_h // ifndef = if not define
#define ConfigTouches_h

#define EL_Touche0     0xFF6897
#define EL_Touche1     0xFF30CF
#define EL_Touche2     0xFF18E7
#define EL_Touche3     0xFF7A85
#define EL_Touche4     0xFF10EF
#define EL_Touche5     0xFF38C7
#define EL_Touche6     0xFF5AA5
#define EL_Touche7     0xFF42BD
#define EL_Touche8     0xFF4AB5
#define EL_Touche9     0xFF52AD

#endif
#include <IRremote.h>
const byte row = 4;
const byte col = 4;

char pass[] = {'1','9','9','D','C','0'};
char newpass[6];

int i= 0,f =0,c=0,error =0;

void print1(){
 lcd.clear();
 lcd.setCursor(0,0);
 lcd.print("Enter password ");
 lcd.setCursor(0,1);
  
 
}

void setup() {
 Serial.begin(9600);
 pinMode(13,OUTPUT);
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("* hello there * ");
delay(2000);
print1();
}

void loop() {

  int val = analogRead(0);
 // Si on reçoit un message :
int val = analogRead(0);
 if (receptIR.decode(&msgRecu)) {
       switch(msgRecu.value){ 
//           Ajoutez votre propre code !
//        case maTouche : mon Code; break;    
         case EL_Touche0 : lcd.print("0"); break;
         case EL_Touche1 : lcd.print("1"); break;
         case EL_Touche2 : lcd.print("2"); break;
         case EL_Touche3 : lcd.print("3"); break;
         case EL_Touche4 : lcd.print("4"); break;
         case EL_Touche5 : lcd.print("5"); break;
         case EL_Touche6 : lcd.print("6"); break;
         case EL_Touche7 : lcd.print("7"); break;
         case EL_Touche8 : lcd.print("8"); break;
         case EL_Touche9 : lcd.print("9"); break;

         
 char key = mykeypad.getKey();
 if(key !=NO_KEY && i<6){
 lcd.setCursor(i,1);
 lcd.print("*");
 newpass[i] = key;
 if(newpass[i]== pass[i])
 c++;
 i++;
 }
 if (c == 6){
   delay(500);
   lcd.clear();
   lcd.setCursor(0,0);
   lcd.print("correct");
   digitalWrite(13,HIGH);
   delay(1000);
   digitalWrite(13,LOW);
   i=0;
   c=0;
   error = 0;
   print1();
 }
  
 if (c<6 &&i ==6){
       delay(500);
   lcd.clear();
   lcd.setCursor(0,0);
   lcd.print("Invalid Password");
   delay(1000);
   i=0;
   c=0;
   error++;
   if (error == 3){
     lcd.print("Invalid Password");
     lcd.setCursor(0,1);
     lcd.print("u must waite ");
     delay(1000);
     Serial.println("NNMM");
     
     for (int i=180;i>=0;i--){
       
       lcd.setCursor(13,1);
       lcd.print(i);
       delay(1000);
     }
     }
     else
     print1();
   }
}

Si tu veux avoir des réponses, code entre balises STP :