Bonjour à vous tous.
Je suis entrain de récupère les textes, les images, les schémas.
Donc voici déjà le code:
/*
Ce code concerne un compteur d'essieux ferroviaire miniature. Il y a quatre capteurs qui surveillent l'état des axes.
Chaque capteur lit une valeur analogique et vérifie si cette valeur est supérieure à 1000. Si oui, l'état du capteur est mis à 1, sinon à 0.
Lorsque l'état d'un capteur change, il est vérifié si le nouvel état correspond à celui du capteur suivant.
Si oui, le compteur de l'axe correspondant est décrémenté, sinon il est incrémenté.
La différence entre les compteurs des axes est calculée et si cette différence est nulle, la broche de sortie est réglée sur HIGH, sinon sur LOW.
Cela pourrait par exemple être utilisé pour envoyer un signal lorsque tous les axes d'un modèle ferroviaire ont dépassé le capteur.
*/
#include <Arduino.h>
// Voici le code commenté :
// Initialisation des variables
int a=0; // Etat du premier capteur
int b=0; // État du deuxième capteur
int c=0; // État du troisième capteur
int d=0; // État du quatrième capteur
int z1=0; // Compteur pour le premier axe
int z2=0; // Compteur pour le deuxième axe
int D1=0; // Différence entre le nombre d'essieux
int lastAl=1; // État précédent du premier capteur
int lastB1=1; // État précédent du second capteur
int lastC1=1; // État précédent du troisième capteur
int lastD1=1; // État précédent du quatrième capteur
int output=5; // Broche de sortie
void setup()
{
// Définition des broches en entrée
pinMode(36, INPUT); // premier capteur
pinMode(39, INPUT); // deuxième capteur
pinMode(34, INPUT); // troisième capteur
pinMode(35, INPUT); // quatrième capteur
// Définition des broches en sortie
pinMode(5, OUTPUT); // Broche de sortie
}
void loop()
{
// Lire les valeurs des capteurs
int w1=analogRead(36); // Valeur du premier capteur
int w2=analogRead(39); // Valeur du second capteur
int w3=analogRead(34); // Valeur du troisième capteur
int w4=analogRead(35); // Valeur du quatrième capteur
}
// Vérifie si la valeur du capteur est supérieure à 1 000 et définissez l'état en conséquence.
a=(w1<1000) ?0:1;
b=(w2<1000) ?0:1;
c=(w3<1000) ?0:1;
d=(w4<1000) ?0:1;
// Vérification si l'état du premier capteur a changé
if(a != lastA1)
{
if(a == b)
{
z1--; // Si l'état est égal à celui du deuxième capteur, décrémente le compteur
}
else
{
z1++; // Autrement, incrémentez le compteur
}
lastA1=a; // Mise à jour de l'état précédent
}
lastB1=b: // Mise à jour de l'état précédent
// Vérifiez si l'état du troisième capteur a changé
if(c != lastC1)
{
if (c == d)
{
z2--; // Si l'état est égal à celui du quatrième capteur, décrémenter le compteur
}
else
{
z2++; // Ansonsten inkrementiere den Zähler
}
lastC1=c; // Mise à jour de l'état précédent
}
lastD1=d; // Mise à jour de l'état précédent
D1=z1-z2; // Calcul la différence entre les compteurs d'axes
// Vérifie si la différence est nulle
if((D1) == 0)
{
digitalWrite(5,HIGH); // Si oui, réglez la broche de sortie sur HIGH
}
else
{
digitalWrite(5,LOW); // Sinon, réglez la broche de sortie sur LOW
}
Cordialement
Bruno