Bonjour,
J'ai débuter mon circuit avec une boite minitrix digital avec une mobile station, mais ne voulant pas utiliser le reste de la digitalisation Minitrix ( commande des aiguillages, détection de passage, etc..), et je me suis dit qu'avec arduino, et quelques shield je devais m'en sortir.
Je suis tombé sur ce magnifique site de connaissance qui est Locoduino, et avec le programme "décodeur d'accessoires universel", j'ai réussi sans trop de souci à faire fonctionner ma détection DCC pour piloter mes aiguillages.
Mon problème c'est posé dès que j'ai voulu ajouter ma détection de passage.
En fait, ma détection se fait avec des LEDs infra-rouge et des phototransistors.
Les Leds : je les fais clignoter à 1khz
Mes phototransistors : ils sont connectés sur les entrées digitales de Mon arduino Mega.
J'ai voulu ajouter une boucle de lecture dans mon programme décodeur d'accesoires universel, et cà ne marche pas, en fait cà bloque la partie décodeur, et je comprends pas vraiment pourquoi.
Doi-je créer une fonction, mettre ma boucle ailleur ? franchement je suis un peux largué , Merci pour votre aideVoici la partie boucle de mon programme :
void loop()
{
for (int a=38; a<46 ; a++ ) {
int duration = pulseIn(a,HIGH);
int b=duration+8;
if (duration >450 && duration <1500){
digitalWrite (b, LOW);
}else {digitalWrite (b, HIGH;}
}
// Dcc is run first, and if necessary, lets the accessories work.
if (dccCommander.Loop())
{
Serial.println ("accessories.loop");
accessories.Loop();
}
}