Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Boubou

Pages: [1]
1
Hello,

Merci à Jean-luc et Thierry , cà marche, plus qu'à régler qq détails.


Boubou

2
Salut Thierry,

Merci pour le conseil, mais ça ne résoud pas mon problème.

J'ai beau chercher, je ne trouve pas.

Merci

Boubou

3
Salut Jean-Luc,

Merci pour ton code, je l'ai installé mais j'ai un bug et je trouve pas, peux-tu m'aider ?

message d'error :

no match for 'operator==' (operand types are 'EntreePulse' and '<anonymous enum>')

Je te remercie d'avance pour ton aide

boubou
 

4
Bonjour Dominique,

Je fais clignoter les leds pour éviter que la lumière extérieur (soleil, lampe halogène) soit détecter par mon phototransistor. Ma détection se fait depuis dessous avec ce composant : ITR20001

Pour info : j'ai reçu deux réponses  sur mon problème et je les remercies

voici leur réponse :

1) De ce que je comprends, pulseIn peut prendre un temps indéterminé, qui peut au pire osciller entre 450 et 1500 millisecondes pour une seule broche, et vous bouclez sur neuf broches de 38 à 46 ! C’est beaucoup trop long et ne permet pas au reste de fonctionner correctement... La première modification pourrait être de ne faire qu’une seule broche à chaque loop(). Mais même dans ce cas, la plus grande des durées possibles est tout de même d’une seconde et demie ! Un traitement par interruption pourrait faire l’affaire, mais il y a trop de broches concernées... La seule solution viable serait de faire faire ce travail à un autre Arduino, et de les faire discuter via I2C, CAN ou liaison série. Il faut réfléchir davantage...
2) La solution consiste à ne pas utiliser pulseIn qui est une fonction bloquante.
Tel que c’est écrit, la boucle bloque longtemps le programme et les messages DCC sont perdus.

La solution que je vais essayer d'appliquer, c'est d'ajouter un arduino et ainsi séparer ma gestion DCC de ma détection.
Le Mega me servira pour la détection et un Uno pour le DCC.

Merci à tous, je vous tiens au courant si cà marche

5
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 aide

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

Pages: [1]