début du code, manque la communication wifi et entre carte
tout le reste est implenté
--------------------
// pin D2 led verte
const int led_verte=D2;
// pin D3 led jaune
const int led_jaune=D3;
// pin D4 led rouge
const int led_rouge=D4;
// extention pin 5 & 6 carre et ralent et 8 pour le rappel ralent
const String nom="esp1"; // definition du nom de la carte
int etat=1; // 1 pour vert / 2 pour orange / 3 pour rouge / 4 pour occupé en cours, / 5 carré / 6 ralent / 7 rappel ralent / 9 initialisation
int etat_precedent=0;
int etat_amont; // ici on recoie les données canton + 1
int etat_aval; // ici on envoie les données canton - 1
// ici on initialise le cfc (switch ) qui ets enfilé soius le crocodile :) ^^
const int pedale=D7;
int ETAT_BP=0;
// declaration du transitor 1 sur pin 13
const int sortieAnalogique1 = D13;
// declaration du transitor 2 sur pin 12
const int sortieAnalogique2 = D12;
void setup()
{
// ici les code d initialisation
pinMode(led_rouge, OUTPUT);
pinMode(led_jaune, OUTPUT);
pinMode(led_verte, OUTPUT);
pinMode(D7,INPUT_PULLUP);
// extention pin 5 & 6 carre et ralent et 8 pour le rappel ralent
// ici on eteind les leds
digitalWrite(led_verte, HIGH);
digitalWrite(led_jaune, HIGH);
digitalWrite(led_rouge, HIGH);
// ici on prepare les transitors
pinMode(sortieAnalogique1, OUTPUT);
pinMode(sortieAnalogique2, OUTPUT);
}
void loop()
{
//ici le code répété :)
// test de la pedale
ETAT_BP=digitalRead(pedale);
if (ETAT_BP==false)
{
etat=4;
}
// ici on a fini la pedale on passe à la suite
// chose 1 on verifie l'etat par rapport à etat precedent
// != different
if (etat!=etat_precedent)
{
switch (etat)
{
case 1:
allume_vert();
// ici on place les 2 transitor a pleine puissance
analogWrite(sortieAnalogique1, 0); // en cas d erreur passez l inverse a 254
analogWrite(sortieAnalogique2, 0); // en cas d erreur passez l inverse a 254
break;
case 2:
allume_orange();
// ici on place les 2 transitor a mi puissance
analogWrite(sortieAnalogique1, 127); // ici on reglera la pwm en fonction de la machine la plus delicate en prise de courant ou la plus rapide par defaut a 127
analogWrite(sortieAnalogique2, 127); // ici on reglera la pwm en fonction de la machine la plus delicate en prise de courant ou la plus rapide par defaut a 127
case 3:
allume_rouge();
// ici on place le 1 premier transitor a mi puissance et le 2e a zero
analogWrite(sortieAnalogique1, 127); // ici on reglera la pwm en fonction de la machine la plus delicate en prise de courant ou la plus rapide par defaut a 127
analogWrite(sortieAnalogique2, 254); // en cas d erreur passez l inverse a 0
break;
case 4:
allume_rouge();
// ici on touche pas au transitor on les laisse en l'etat precedent
break;
// ici les extentions pour carré et ralent et rappel ralent
}
}
// fin du test d'etat
// ici on place etat dans etat_precedent
etat_precedent=etat;
// ici on transmet a la carte canton-1 l'etat de la carte en cours
switch (etat)
{
case 1:
etat_aval=1;
break;
case 2:
etat_aval=1;
break;
case 3:
etat_aval=2;
break;
case 4:
etat_aval=3;
break;
}
// ici on transmet à la carte aval
// ici on reçoie de la carte amont
etat=etat_amont;
}
// procedure allumage feu
void allume_vert()
{
digitalWrite(led_verte, LOW);
digitalWrite(led_jaune, HIGH);
digitalWrite(led_rouge, HIGH);
}
void allume_orange()
{
digitalWrite(led_verte, HIGH);
digitalWrite(led_jaune, LOW);
digitalWrite(led_rouge, HIGH);
}
void allume_rouge()
{
digitalWrite(led_verte, HIGH);
digitalWrite(led_jaune, HIGH);
digitalWrite(led_rouge, LOW);
}