portail 2 battants arduino

bonjour
je n'arrive pas a rajouter dans une librairie un capteur de courant(Puce du capteur ACS712ELC-05B) pour remplacer les fins de courses
connaissez vous un tuto ou une librairie
j'ai trouver sur ce site ce sketh mais j'arrive pas a le modifier
/* SYSTEME D'OUVERTURE / FERMETURE DE PORTAIL
Denys92500@hotmail.com

RELAIS
moteur de Gauche ON (Remote A et B) : port 12 -> Relais in1
moteur de Droite OFF (Remote A et B) : port 11 -> Relais in2
moteur de Droite ON (Remote A) : port 10 -> Relais in3
moteur de Gauche OFF (Remote A) : port 9 -> Relais in4
lampe temoin du portail : port 8 -> Relais in5
Eclairage portail avec tempo 3 minutes (Remote C) : port 7 -> Relais in6
Reserve : fonctionne en Marche / Arret (Remote D) : port 6 -> Relais in7
N'est pas utilisé sur la platine relais : Relais in8

RECEPTEUR 433.92 Mhz (Telecommande RF)
Remote bouton A : port 4 -> Recepteur D2
Remote bouton B : port 2 -> Recepteur D0
Remote bouton C : port 5 -> Recepteur D3
Remote bouton D : port 3 -> Recepteur D1
*/

// Relais
int in1 = 12; // moteur de Gauche
int in2 = 11; // moteur de Droite
int in3 = 10; // moteur de Droite
int in4 = 9; // moteur de Gauche
int in5 = 8; // lampe temoin portail le relais clignote
int in6 = 7; // Eclairage du portail 3 minutes
int in7 = 6; // Marche / Arret (Remote bouton D)

// Telecommande
int A = 4; // Remote bouton A 2 portes
int B = 2; // Remote bouton B 1 portes Gauche
int C = 5; // Remote bouton C Eclairage portail (Tempo 3 Minutes)
int D = 3; // Remote bouton D Reserve Marche / Arret

// Base de temps
unsigned long tempo1; // Temporisation des moteurs
unsigned long tempo2; // Eclairage portail

// Declaration de variables
int porte1; // 1 Porte Gauche
int tempoMoteur; // 2 Portes
int bloqueB = 0; // bloc le bouton B pendant le fonctionnement des 2 portes
int tempoeclairage = 0; // Temporisation de l'eclairage avec le bouton C
int reserve = 0; // Bascule ON/OFF avec le bouton D
int flipflop = 0; // Bascule Ouverture/Fermeture
int urgence = 0; // Arret d'urgence des moteurs (bouton C et D ensemble)
int compteurlampe = 0; // compteur pour faire clignoter la lampe temoin

void setup() {
pinMode(in1, OUTPUT); // moteur de Gauche
pinMode(in2, OUTPUT); // moteur de Droite
pinMode(in3, OUTPUT); // moteur de Droite
pinMode(in4, OUTPUT); // moteur de Gauche
pinMode(in5, OUTPUT); // lampe temoin
pinMode(in6, OUTPUT); // Eclairage
pinMode(in7, OUTPUT); // bouton D Reserve Marche / Arret
pinMode(A, INPUT); // Telecommande bouton A
pinMode(B, INPUT); // Telecommande bouton B
pinMode(C, INPUT); // Telecommande bouton C
pinMode(D, INPUT); // Telecommande bouton D

//Arret des relais au demarage
digitalWrite(in1, HIGH);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, HIGH);
digitalWrite(in5, HIGH);
digitalWrite(in6, HIGH);
digitalWrite(in7, HIGH);
}

void loop() {
if ((digitalRead(A) == 1 and porte1 == 0) or (digitalRead(B) == 1 and bloqueB == 0)) { // bouton A = 2 portes et B = 1 porte
if (digitalRead(B) == 1) { // Moteur de gauche et blocage bouton A
porte1 = 1;
}
else {
porte1 = 0;
}
if (digitalRead(A) == 1) { // Blocage bouton B
bloqueB = 1;
}
else {
bloqueB = 0;
}
digitalWrite(in1, HIGH); // Arret des relais
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, HIGH);
digitalWrite(in5, HIGH);
if (flipflop == 0 ) { // Bascule Ouverture / Fermeture
flipflop = 1;
}
else {
flipflop = 0;
}
tempoMoteur = 1;
urgence = 0;
delay(500);
tempo1 = millis();
}

// Mise en fonction des moteurs (portail)

if ( tempoMoteur == 1 ) {
if (( millis() - tempo1 ) >= 0 and ( millis() - tempo1 ) <= 20000) { //Moteur de Gauche de 0 a 20 Secondes

// clignotement de la lampe temoin
compteurlampe = compteurlampe + 1;
if (compteurlampe <= 5000) {
digitalWrite(in5, LOW); // lampe temoin portail allumé
}
if (compteurlampe >= 5001) {
digitalWrite(in5, HIGH); // lampe temoin portail éteinte
}
if (compteurlampe >= 50000) {
compteurlampe = 0; // lampe temoin portail Remise à Zero
}

if (flipflop == 0 ) {
digitalWrite(in1, LOW);
}
else {
if (porte1 == 1) {
digitalWrite(in4, LOW);
}
else {
digitalWrite(in2, LOW);
}
}
}
if (( millis() - tempo1 ) >= 3000 and ( millis() - tempo1 ) <= 20000 and (porte1 == 0)) { // Moteur de Droite de 3 a 20 Secondes
if (flipflop == 0 ) {
digitalWrite(in3, LOW);
}
else {
digitalWrite(in4, LOW);
}
}
if (( millis() - tempo1 ) >= 20000) { // Arret des Moteurs apres 20 secondes
digitalWrite(in1, HIGH); // Arret des relais
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, HIGH);
digitalWrite(in5, HIGH);
porte1 = 0;
tempoMoteur = 0;
bloqueB = 0;
}
}

// Arret des Moteurs en cas d'urgence (appuis sur bouton C et D ensemble)

if (digitalRead(D) == 1 and digitalRead(C) == 1) {
digitalWrite(in1, HIGH); // Arret des relais
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, HIGH);
digitalWrite(in5, HIGH);
porte1 = 0;
tempoMoteur = 0;
bloqueB = 0;
urgence = 1;
delay(1000);
}

// Bouton C (Eclairage du portail (Tempo 3 Minutes))

if ((digitalRead(C) == 1)) {
tempo2 = millis();
tempoeclairage = 1;
urgence = 0;
}
if (tempoeclairage == 1 and urgence == 0) {
if (( millis() - tempo2 ) >= 0 and ( millis() - tempo2 ) <= 180000) { // 180000= 180 Secondes
digitalWrite(in6, LOW);
}
else {
digitalWrite(in6, HIGH);
tempoeclairage = 0;
}
}

// Bouton D (Marche / Arret)

if (digitalRead(D) == 1) {
urgence = 0;
delay(500);
if (reserve == 0 and urgence == 0) {
reserve = 1;
digitalWrite(in7, LOW);
}
else {
reserve = 0;
digitalWrite(in7, HIGH);
}
}
}

j'ai trouver sur ce site ce sketh mais j'arrive pas a le modifier

Commencez par faire un petit code qui utilise le capteur pour comprendre comment il fonctionne.
Ensuite analysez le code (qui serait mieux posté avec les tags de code...) ci dessus pour comprendre la signification des variables, quand les moteurs sont en mouvement et la gestion du temps (qui est un peu douteuse quand on voit un test sur des unsigned long pour savoir s'ils sont >= à zéro)