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 - jeanmi67

Pages: [1] 2
1
 
Bonsoir,

En ce qui me concerne, je trouve l'aspect encombrement extrêmement relatif puisqu'il n'y a essentiellement que la hauteur des modules qui peut éventuellement gêner, le "tirant d'air" étant lié à la taille des transformateurs de courant. En tous cas, ça ne m'avait jamais effleuré car sous un réseau, la hauteur des platines (inférieure à 2 cm) n'a pas grande importance à mes yeux.

Ce qui fait que je me suis éloigné de cette solution est que je n'ai pas réussi, toujours à cause des transformateurs de courant, à arriver à un prix de revient se rapprochant de celui des détecteurs par diodes, en sachant que la chute de tension provoquée par leur usage est finalement plutôt un faux problème avec les décodeurs actuels et leur compensation de charge qui joue parfaitement son rôle dans ce cas (je n'ai jamais cherché à faire des détecteurs mixtes DCC/analogique).

Ceci étant dit, la conversation technique qui précédait était tout à fait intéressante et je reste attentif aux éventuelles contributions d'autres membres qui pourraient réagir sur cet aspect.

Jean-Michel



2
 
Bonsoir,

N'étant pas électronicien de formation, je n'ai rien compris à cette phrase :
on a un transformateur de courant tête et dans cas, il faut toujours que le secondaire soit en court-circuit sinon le risque est que la tension s’envole jusqu’à griller le transformateur.

J'ai expérimenté plusieurs montages de détection de présence à base de transformateur de courant, que ce soit ceux de Rob Paisley, de Reinhard Müller, de RocRail et d'autres encore, je n'ai jamais entendu parler de transformateur de courant tête. J'ai expérimenté les transformateurs chinois et d'autres plus conventionnels comme les Murata ou les Talema, et je n'ai jamais observé que la tension s'envolait (mais je n'ai certainement pas tout vu :P).

Jean-Michel

3
 
Bonsoir,

n'y a-t-il pas de risque du fait de l'absence de resistance en série avec la zener ?

Sur un des montages proposé sur le site de Rocrail et qui ressemble assez fortement au schéma proposé par Pyk35, il n'y a pas non plus de résistance. Il comporte même une diode en moins, donc trois composants uniquement.

Jean-Michel



4
Débuter / Re : Rétrosignalisation
« le: septembre 05, 2019, 11:07:45 am »
Bonjour,

Pour l'analogique, vous avez plusieurs solutions possibles sur cette page :
http://amfn.nice.free.fr/det2.htm

Jean-Michel  :)

5
Vos projets / Re : Réalisation de carte pour compléter le shield ATTiny
« le: février 22, 2018, 09:33:32 am »
... voir http://forum.locoduino.org/index.php?topic=290.msg3125#msg3125 ...

Bonjour,

Le lien ne fonctionne pas très bien semble-t-il...

Cordialement.
Jean-Michel

6
Vos projets / Re : Utilisation d'ATTiny
« le: février 16, 2018, 04:11:48 pm »
Merci pour votre réponse  :D

Pour la mutualisation de frais, j'avais bien compris votre proposition dans ce sens, mais j'admets que ma formulation sur ce sujet était un peu maladroite  ;)

Jean-Michel

7
Vos projets / Re : Utilisation d'ATTiny
« le: février 16, 2018, 02:28:56 pm »
Bonjour, :)

Merci pour votre proposition, mais ayant déjà réalisé un module "universel" (universel pour mes besoins évidement) à partir d'un support de test à 40 broches, je ne vais malheureusement pas vous passer commande.

Par contre, les photos que vous nous montrez ainsi que le schéma de votre shield pour Uno m'interpellent.

En effet, pour réaliser mon module, je me suis basé sur ce que Christian avait écrit et dessiné sur le site Locoduino concernant la procédure de programmation du microcontrôleur ATtiny45 (http://www.locoduino.org/spip.php?article189).
Dans cet arcticle sur Locoduino, à aucun moment il n'est fait mention de condensateur, et j'ai déjà programmé sans problème plusieurs ATtiny45 comme celà.

Sur votre shield, je vois six condensateurs dont un polarisé.
De plus, en regardant le lien que vous avez donné concernant l'ATTinyCore (https://github.com/SpenceKonde/ATTinyCore), je lis :
Citer
To work correctly, these parts should be installed with a 0.1uf capacitor between Vcc and Ground, as close to the chip as possible

Mes questions sont donc les suivantes :
  • Quelle est l'utilité de ces condensateurs ?
  • Comment doivent-ils être connectés ?
  • Quelles sont leur valeur ?
Je ne suis pas du tout électronicien de formation, j'ai fait un peu de programmation dans ma vie, vous m'avez fait découvrir l'électronique programmable et je vous en suis très reconnaissant.
Mon apprentissage se faisant avec vous, c'est donc vous que j'embête avec mes questions ;D et excusez moi par avance si les réponses ont déjà été données par ailleurs.

Bien cordialement.
Jean-Michel


8
Vos projets / Re : Bibliotheque minabay et le DCC.loop()
« le: juin 13, 2017, 12:24:27 am »
...
le temps de déplacement d'une butée à l’autre est de 1sec. Pendant ce temps le nano n'est pas capable de lire une commande DCC. Je suis sur Train Controller et Train Controller envoi les ordres les uns derrière les autres sans delai, le résultat fait que mon système n'est pas capable de lire toutes les commandes DCC envoyées par la centrale. en fait il lit la premiere et puis plus rien tant que le servo n'est pas arrivé
Logiquement j'ai inserré une commande DCC.loop() dans la boucle for pour pouvoir lire plusieurs commande DCC en provenance de la centrale.

Bonjour,

Une première piste : je ne sais pas quelle est la finalité des instructions delay(30) dans la routine mais toujours est-il que la fonction delay() met en pause totale le programme. Donc si des commandes DCC arrivent durant cette pause, elles seront perdues.

Par ailleurs, et à titre personnel, je ne trouve pas très heureux le choix de la police utilisée pour retranscrire du code.
L'utilisation de la balise "Code" (bouton #) serait sans doute plus judicieux. Exemple :
case 0:  // bouge le servo vers position droite
        for (pos = Aig[xx][2] ; pos <= Aig[xx][1] ; pos = pos + Pas) {
          Aig1.writeMicroseconds(pos);
          Serial.println (pos);
          delay(30);
          if (pos == xP + Aig[xx][2] ) {
            Serial.println("vers pos droite pos Droit > devié relais actionne");
            digitalWrite (NumPinR[xx], LOW);
            DCC.loop();
          }
        }
        Aig1.writeMicroseconds(Aig[xx][1] + Ressort);
        break;
      case 1:  // bouge le servo vers position deviee
        for (pos = Aig[xx][1] ; pos >= Aig[xx][2] ; pos = pos - Pas) {
          Aig1.writeMicroseconds(pos);
          Serial.println (pos);
          delay(30);
          if (pos == Aig[xx][1] - xP) {
            Serial.println("vers pos deviee pos Droit > devié relais actionne");
            digitalWrite (NumPinR[xx], HIGH);
             DCC.loop();
          }     
        }

Jean-Michel  :)

9
Vos projets / Re : Utilisation d'ATTiny
« le: juin 02, 2017, 05:13:16 pm »
Bonjour,

Merci pour cette vidéo  :)

Pour ceux que cela intéresse, la version modifiée de ce programme intégrant l'extinction et l'allumage progressifs des LEDs a également été publiée un peu plus haut dans ce fil (version testé sur un montage réalisé avec un ATtiny85).

Jean-Michel

10
Vos projets / Re : Re : Utilisation d'ATTiny
« le: mai 29, 2017, 11:48:39 pm »
Bonjour,

jeanmi67 : merci pour tes expérimentations. Donc il existe une bibliothèque pour les ATtiny. Peux-tu nous dire où la télécharger ?

J'ai trouvé cette bibliotèque sur le site de l'Arduino, et plus précisément ici : https://playground.arduino.cc/ComponentLib/Servo


CATPLUS : effectivement, il manque une ou deux lignes dans le programme de la fiche pratique du LR mai 2017.

Je pense que c'est plutôt moi qui avait émis cette hypothèse (message du 14-05-2017, 01:27:45), mais je ne suis pas jaloux ;D, l'important, me semble-t-il, est que chaque pierre apportée par chacun contribue à faire avancer la communauté  :)

Bien cordialement.

Jean-Michel

11
Vos projets / Re : Utilisation d'ATTiny
« le: mai 15, 2017, 12:02:07 pm »
Suite à la demande d'Albert, voici le programme complet et documenté de l'adaptation de celui de Christian paru initialement dans Loco-Revue de mai 2017 (simulation de BAL)

/* Simulation de Bloc Automatique Lumineux
  Base tirée de Loco-Revue n° 837 - Mai 2017 (Christian Bézanger)
    Adaptation *** jmB *** 04/05/2017
    Durée du Jaune paramétrable
    Allumage et extinction des LEDs de façon progressive
    Testé sur ARDUINO MEGA2560 et sur ATtiny85
  Fading repris de l'IDE Arduino : Exemples - 03.Analog - Fading
  http://www.arduino.cc/en/Tutorial/Fading

  Signal à anode commune, allumé par LOW

  ===>>> Version ATtiny85 <<<===
*/

// Déclaration des constantes
//  => Assignation des broches d'entrées et de sorties
//  ===>>> Version ATtiny85 <<<===
const byte ILS_entree = 3; // Pin 2
const byte ILS_sortie = 2; // Pin 7
enum FEU : const byte { VERT = 4, ROUGE = 0, JAUNE = 1 }; // Ordre des LEDs en partant du haut du signal (www.railexpert.fr/images/railexpert/photos-pave-droite/signal.jpg)
//  ===>>> Version ATtiny85 <<<===

//  => Gestion du fading
const byte fadeValue = 10;  // Incrément de fading
const byte fadeDelay = 10;  // Temporisation de fading

// Déclaration et initialisation des variables
unsigned int dureeJaune = 5000; // Durée du jaune : 1000 = 1 seconde
unsigned long debJaune = 0;
unsigned long time0; // Top pour le cyle d'extinction et d'allumage
unsigned long time1; // Top intermediaire
byte FEU = VERT; // Pour mémorisation de l'état du feu : ou VERT, ou ROUGE ou JAUNE

////////////////////////////////////////////////////
// Routine d'allumage et d'extinction progressifs //
////////////////////////////////////////////////////
void signal(const byte quelFeuA, const byte quelFeuE, byte fadingA, byte fadingE) // A=Allumage - E=Extinction
{
  time0 = 0;
  do {
    time1 = millis();
    if (time1 - time0 >= fadeDelay) {
      analogWrite(quelFeuA, fadingA);
      analogWrite(quelFeuE, fadingE);
      time0 = time1;
      fadingA = fadingA - fadeValue;
      fadingE = fadingE + fadeValue;
    }
  } while (fadingE >= fadeValue);
  analogWrite(quelFeuA, 0);   // Fin de boucle : allumage 100%
  analogWrite(quelFeuE, 255); // Fin de boucle : extinction totale
  FEU = quelFeuA;
}

//  Initialisation du module
void setup() {
  // Déclaration des entrées et initialisation (HIGH) => ILS non enclenchés
  pinMode(ILS_entree, INPUT_PULLUP);
  pinMode(ILS_sortie, INPUT_PULLUP);
  // Déclaration des sorties
  pinMode(VERT, OUTPUT);
  pinMode(ROUGE, OUTPUT);
  pinMode(JAUNE, OUTPUT);

  // Initialisation du signal
  digitalWrite(VERT, LOW); // Vert allumé - Pas de fading à la mise sous tension
  digitalWrite(ROUGE, HIGH); // Rouge éteint
  digitalWrite(JAUNE, HIGH); // Jaune éteint
}

//  Boucle principale
void loop() {
  // surveillance ILS entrée
  while (digitalRead(ILS_entree) == HIGH)
  {
    // ILS Entrée non enclenché
    if (FEU == JAUNE)
    {
      if ((millis() - debJaune) > dureeJaune)
      {
        signal(VERT, JAUNE, 255, 0); // Ordre : allumage, extinction
      }
    }
  }

  // ILS Entrée déclenché
  switch (FEU) {
    case VERT:
      signal(ROUGE, VERT, 255, 0); break; // Ordre : allumage, extinction
    case JAUNE:
      signal(ROUGE, JAUNE, 255, 0); break; // Ordre : allumage, extinction
  }

  // Surveillance de l'ILS de sortie
  while (digitalRead(ILS_sortie) == HIGH)
  {
    // ILS Sortie non déclenché, ne rien faire
  }
  // ILS Sortie déclenché
  signal(JAUNE, ROUGE, 255, 0); // Ordre : allumage, extinction
  debJaune = millis();
}

Bonne journée à tous.  :)

Jean-Michel

12
Vos projets / Re : Re : Utilisation d'ATTiny
« le: mai 15, 2017, 10:20:07 am »

Bonjour Christian
....
Pourrais-tu STP nous faire profiter des modifs que tu as apporté "inclure le programme sur le post de ce  Forum"

Bonjour Marcel,

Je me permets de répondre à la place de Christian  ;D ;D ;D

Je déposerai ici le programme complet dans le courant de la journée  :)

Jean-Michel

13
Vos projets / Re : Re : Utilisation d'ATTiny
« le: mai 15, 2017, 10:15:02 am »

Concernant les servos, cette bibliothèque est-elle affectée du "syndrome de l'essuie-glace" au démarrage ?

Bonjour Denis,

Comme je le disais plus haut, je n'ai pas d'expérience particulière avec les servos, donc je ne connais pas le "syndrome de l'essuie-glace".
Si celui-ci peut-être représenté par un aller-retour complet du servo à sa mise en route, la réponse est non.
Je viens de faire quelques essais, servo toujours "conduit" par l'ATtiny84, et voici mon constat : quelque soit la position de départ du servo, à la mise en route il y a un premier mouvement très fugitif dans le sens des aiguilles d'une montre suivi immédiatement après par le déroulé normal du balayage commençant dans le sens inverse des aiguilles d'une montre, sens initial de déplacement donné par le programme.
Voila, j'espère avoir répondu à ta question. :)

Jean-Michel

14
Vos projets / Re : Utilisation d'ATTiny
« le: mai 14, 2017, 09:53:45 pm »
Bonjour Christian,

Finalement, j'ai trouvé pourquoi cela ne marchait pas : c'est la bibliothèque Servo.h utilisée dans le programme "Sweep" qui n'est pas adaptée.
En effet, cette bibliothèque est basée sur un timer 16-bit alors que les ATtiny utilisent en standard un timer 8-bit (l'ATtiny84 dispose bien d'un timer 16-bit mais son utilisation dans un programme n'est pas simple puisqu'il s'agit plutôt d'un artifice permettant de faire travailler de concert deux timers 8-bit).

Donc, en cherchant un peu, j'ai finit par trouver une bibliothèque basée sur un timer 8-bit et adaptée à l'ATtiny : SoftwareServo.h

En adaptant le programme "Sweep" à cette bibliothèque, ça fonctionne maintenant parfaitement : le servo connecté à l'ATtiny84 effectue bien son mouvement permanent de balayage.

En  adaptant le port de sortie, ça fonctionne aussi bien sans autre adaptation avec un ATtiny85  :)

Cordialement.

Jean-Michel

15
Vos projets / Re : Re : Utilisation d'ATTiny
« le: mai 14, 2017, 01:27:45 am »

Le but de la manip est de téléverser le programme Sweep dans un ATtiny84 et de voir ensuite si celui-ci peut commander un servomoteur (attaché à la bonne sortie) pour obtenir ce mouvement de balayage. Si c'est le cas, cela veut dire que la bibliothèque Servo est utilisable avec l'ATtiny84, ce qui serait une aide précieuse pour utiliser des servos.

Bonjour Christian,

Ben... malheureusement, ça ne marche pas  :-\
Aucun mouvement du servo quand le programme "Sweep" est téléversé dans l'ATtiny84, alors que le mouvement de balayage du servo est bien observé quand ce même programme est téléversé dans l'Arduino Mega.
Bien évidement, j'ai adapté le numéro de la sortie en fonction de la carte utilisée :
Sortie 2 pour le module Mega
Sortie 1 (pin 12) de l'ATtiny84

Pour être certain de mon coup quand à la sortie 1 de l'ATtiny84, j'ai testé celle-ci avec le programme basique "Blink" (avec le rythme modifié pour être bien sûr que c'était le mien) et une LED (externe évidement ;D)

A toute fin utile, je précise que, une fois le programme "Sweep" téléversé dans l'ATtiny84, le fait de connecter une LED sur la sortie prévue pour la commande du servo allume celle-ci de manière fixe (en tout cas, visuellement parlant).

Je profite de ce message pour vous dire que, avant de tester le programme "Sweep" et à titre de mise en bouche puisque je débutais en programmation de µC, j'ai programmé un ATtiny85 en m'inspirant du programme "signal_BAL" paru dans le LR de mai 2017 (programme auquel il manque une ou deux lignes il me semble) en lui rajoutant une durée du "Jaune" paramétrable ainsi que l'allumage / extinction des LEDs de façon progressive. Ca fonctionne très bien  :)



Pages: [1] 2