Bonjour,
Pour un projet je doit faire un compteur à bille, et la solution à été de passer par un arduino, donc du language C. J'en est jamais fait avant, mais j'ai réussi à faire un programme que le logiciel valide, mais en vrais sa ne fonctionne pas.
J'arrive bien à allumer pinActOuveture mais sa ne compte pas , pouvez vous m'aider s'il vous plait
Voici le programme
//Capteurs
boolean cptPresenceBille = false;
//Boutons de commande
boolean btnDcy = false;
boolean btn50 = false;
//Grafcet
boolean etp00 = false;
boolean etp10 = false;
boolean etp11 = false;
boolean etp12= false;
boolean etp40 = false;
boolean etp41 = false;
//Constantes
byte max50 = 5;
//Broches
int pinCptPresenceBille = 52;
int pinBtnDcy = 53;
int pinBtn50 = 47;
int pinActOuveture =46;
//variables internes
int compteur;
void setup()
{
//entr??es
pinMode(pinCptPresenceBille, INPUT);
pinMode(pinBtnDcy, INPUT);
pinMode(pinBtn50, INPUT);
//Sorties
pinMode(pinActOuveture, OUTPUT);
//Grafcet
etp00 = true;
digitalWrite(pinActOuveture, false);
compteur=0;
}
void loop()
{
//lecture des entr??es
btnDcy = digitalRead(pinBtnDcy);
btn50 = digitalRead(pinBtn50);
cptPresenceBille = digitalRead(pinCptPresenceBille);
if (btnDcy && etp00)
{
etp10 = true;
etp00 = false;
}
if (etp10 && btn50)
{
etp11 = true;
etp10 = false;
etp40 =true;
}
if (etp11 && compteur >= max50)
{
etp12 = true;
etp11 = false;
etp40 =false;
}
if (etp12)
{
etp12 = false;
etp10 = true;
}
if (etp40 && cptPresenceBille)
{
etp41 = true;
etp40 =false;
}
if (etp41)
{
compteur++;
}
if (etp41 && !cptPresenceBille)
{
etp41 = false;
etp40 =true;
}
//Traitement étapes
if (etp11)
{
digitalWrite(pinActOuveture, true);
}
if (etp12)
{
digitalWrite(pinActOuveture, false);
compteur=0;
}
}