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);
}
}
}