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

Pages: [1] 2
1
Bonjour Dominique, je comprends que mes réflexions de néophyte agace et encombre inutilement le forum d’un sachant comme vous. Mais justement, jusqu’à présent ce que j’ai réalisé pour mon train électrique  (déjà cité) ou pour ma maison dans le domaine de la domotique, centralisation de l’ouverture et fermeture de mes volets roulant et l’automatisation de mon portail le tout à base d’Arduino, avec l’unique aide de tuto sur youtube. Je pensai qu’avec locoduino j’allais intégrer une communauté d’entre aide, et j’y ai vraiment cru avec la patience de msport, et votre réflexion, a vraiment tout gâché, j’ai l’impression que votre site est réservé à quelques sachant qui cherche à se faire mousser entre eux. A la limite invité un C.. de temps en temps le mardi soir à un diné.
Le schéma d'abord doit être finalisé : je n'ai vu nulle part dans votre fil le schéma définitif utilisé et les explications du pourquoi du comment vous êtes parti de quoi...
Le schema utilisé est celui que j’ai téléchargé sur votre site ou l’emplacement pour souder le 27PF n’existe pas et qui est conçu pour faire fonctionner 5 feux tricolores mais à priori pas 7 feux bicolores.
Sur les 7500 consultations, je serais curieux de savoir combien ont fait aboutir ce projet ? 
Beaucoup de modélistes passent énormément de temps à lire les articles et les contributions du forum, et ensuite, ensuite seulement, réalisent, échouent, recommencent jusqu'à la réussite, puis, le plus souvent quand c'est fini et testé, partagent leur expérience au profit des autres modélistes.
Oui  je sais ce que c’est, oui je félicite tous ceux qui ont vus leurs projets aboutir, et qui en font profiter la communauté, une fois encore bravo.   
Vous avez pu profiter de cette énorme masse de contributions pour préparer votre projet, mais je n'ai pas vu vos efforts pour adapter ces connaissances à votre projet. Au lieu de cela, au fur et à mesure, chaque problème s'est étalé sur le forum (et avec force détails !), au risque de provoquer la risée d'autres modélistes ...
Malheureusement en tant que modérateur, il me semble que vous avez un peu de mal à synthétisé cette énorme masse de contributions, voilà pourquoi plus votre site prends de l’ampleur, plus tout cela devient brouillon et illisible. Vous ne voulez pas suivre les deux ou trois conseils que je vous donne. Dommage car vous y gagneriez en lisibilité plutôt qu’en curiosité.   
Cordialement             

2
Bonjour, je comprends que la réflexion de Dominique vous ai agacé et que vous renonciez à m'aider .... Certes mes connaissances en électronique sont loin d'être au top, mais je manie le fer à souder depuis l'âge de 12 ans et j'en ai 60, j'estime avoir un peu d'expérience, mes soudures sont propres et lorsqu'il m'arrive d'en avoir une sèche je la corrige.
Pour mes connaissances en informatique et l'usage de l'Arduino, là non plus je ne prétends pas être au top, j'ai découvert ce produit il y a peu de temps mais j'ai réalisé un fonctionnement de pont tournant, le fonctionnement d'un rotary dumper, et le fonctionnement d'un passage à niveau double voies à l'aide de sensor GP2YoD805Z0f parfaitement fonctionnel et réaliste. J'ai voulu passer à l'étape supérieur en réalisant un montage électronique complet et en réalisant pour la première fois de ma vie le circuit imprimé artisanalement. Là je dois dire que la réussite n'y était pas,  j'ai  donc opté pour votre solution, le faire imprimer chez JLCPCB.
Vous avez essayé de m'aider et je vous en remercie encore.
Mais à votre place, et pour éviter de perdre le temps que vous avez perdu avec moi, et qui à priori ne servira pas aux autres internautes, vous devriez refaire tout ce post avec les circuits qui vont biens et les programmes tricolores et bicolores bien séparé avec quelques options comme pour le fonctionnement avec CDM rail par exemple,  et téléchargeable, le détail exacte des composants. Car actuellement tout cela est un peu brouillon et peu conviviale.
Je vais donc essayer de me débrouiller seul avec ce truc qui ne fonctionne pas. En espérant obtenir un résultat quitte à réécrire tout le code.  Car le temps passé et les sous investis en vale la peine.   
cordialement  >:( ::) :-[ :-\
               

3
Attention, la facture de msport pour ce support technique particulier va être bien salée  ;D >:(

Oui je l'ai dejà remercié plus haut pour la patience dont il fait montre avec moi, mais je dois avouer que cela n'est pas si simple, d'ailleurs je me demande pourquoi vous n'avez pas plutôt fait deux programmes l'un pour les tricolors et l'autre pour les bi avec toutes les mises à jours qui vont bien.
j'en profite pour écrire que j'ai soudé le petit condo de 27pf et que le résultat est surprenant car maintenant je n'ai plus que la led verte qui s'allume mais à condition que les leds rouges soient conecté également .......!   

4
je n'ai pas ajouté le 27 pf  le problème provient-il de là ?

Pour le savoir, ajoutez le ...

effectivement sur ce montage, puisque l'emplacement n'existe pas sur le circuit imprimé,


/*
 * Decoder for traffic light with three or two leds on ARDUINO NANO
 *
 * by default the red leds are switched on
 * pin 2 receives DCC interrupts
 *
 * TRAFFIC LIGHT WITH THREE leds (GREEN, RED, YELLOW)
 * 5 decoders of traffic lights with three leds on Arduino UNO
 * the leds are controlled by pins 3 to A3 by triplet
 * traffic light 1 : 3,4,5
 * traffic light 2 : 6,7,8
 * traffic light 3 : 9,10,11
 * traffic light 4 : 12,13,A0
 * traffic light 5 : A1,A2,A3
 * two addresses by traffic light
 * even addresses for green and red lights
 * odd addresses for yellow light
 *
 * TRAFFIC LIGHT WITH TWO leds (GREEN, RED)
 * 8 decoders of traffic lights with two leds on Arduino UNO
 * the leds are controlled by pins 3 to A4 by pair
 * traffic light 1 : 3,4
 * traffic light 2 : 5,6
 * traffic light 3 : 7,8
 * traffic light 4 : 9,10
 * traffic light 5 : 11,12
 * traffic light 6 : 13,A0
 * traffic light 7 : A1,A2
 * traffic light 8 : A3,A4
 * one address by traffic light
 *
 * CONFIGURATION
 * MODE : determined by the common of the led, LOW if common = HIGH, HIGH if common = LOW
 * FIRST_ID_DCC : DCC address of the first traffic light
 * NB_TRAFFIC_LIGHT : determined by the kind of traffic light, BICOLOR for two leds, TRICOLOR for three leds
 *
 */

/***************************************************************************************           
 *            CONFIGURATION SETTING
 *           
 ****************************************************************************************/
 
//#define CONSOLE                             // output console, delete this after checking the configuration
#define MODE   HIGH                         // LOW or HIGH
#define FIRST_ID_DCC   90                   // first DCC address, DCC_CODE
#define NB_TRAFFIC_LIGHT  BICOLOR           //  TRICOLOR or BICOLOR

/********************************************************************************** 
 *   DON'T CHANGE THE FOLLOWING
 *********************************************************************************/
 
/******************************************************************************
 *    INTERNAL PARAMETERS
 *   
 ********************************************************************************/
 
//  DCC

#include <DCC_Decoder.h>                 // Minabay library
#define kDCC_INTERRUPT    0             // pin 2 receives DCC interrupts
int previous_address = 0;               // avoids multiple DCC addresses
int previous_position = 2;              // avoids multiple DCC orders
volatile boolean update_light;          // set if an update should be processed after DCC control

// traffic light

#define BICOLOR  8                     // 8 traffic lights with two leds
#define TRICOLOR 5                     // 5 traffic lights with three leds
#define FIRST_PIN         3             // pin of the first traffic light
#define GREEN             0             // address DCC/0
#define RED               1             // address DCC/1
#define YELLOW            2             // address DCC+1/0

// traffic light definition

struct light {
  int address;                    // its DCC address
  int current_position;           // green / red / yellow
  int green;                      // pin of the green led
  int red;                        // pin of the red led
  int yellow;                     // pin of the yellow led
  boolean activation_request;     // request of activation
};
light traffic_light[NB_TRAFFIC_LIGHT];    // the set of traffic light

/********************************************************************
 * method called if a request is made by the DCC
 *
 *******************************************************************/
 
void activation_traffic_light() {
  for (int i = 0; i < NB_TRAFFIC_LIGHT; i++)                 // for all traffic lights
  {
    if (traffic_light.activation_request == true)  // if the traffic_light is waiting for activation
    {
      switch(traffic_light.current_position)            // we look the current position
      {
        case GREEN :{                                                     // if green led
                      digitalWrite(traffic_light.green,MODE);         // switch on green
                      digitalWrite(traffic_light.red,!MODE);          // switch off red
                      if ( NB_TRAFFIC_LIGHT == TRICOLOR){digitalWrite(traffic_light.yellow,!MODE);} // switch off yellow
                      #ifdef CONSOLE
                        Serial.print("activation -> traffic light");Serial.print(i);Serial.println(" : green led");
                      #endif
                      break;}
        case RED : {                                                  // if red led
                      digitalWrite(traffic_light.green,!MODE);      // switch off green
                      digitalWrite(traffic_light.red,MODE);         // switch on red
                      if ( NB_TRAFFIC_LIGHT == TRICOLOR){digitalWrite(traffic_light.yellow,!MODE);} // switch off yellow
                      #ifdef CONSOLE
                        Serial.print("activation -> traffic light");Serial.print(i);Serial.println(" : red led");
                      #endif
                     break;}
         case YELLOW : {                                                  // if yellow led
                      digitalWrite(traffic_light.green,!MODE);         // switch off green
                      digitalWrite(traffic_light.red,!MODE);           // switch off red
                      digitalWrite(traffic_light.yellow,MODE);         // switch on yellow
                      #ifdef CONSOLE
                        Serial.print("activation -> traffic light");Serial.print(i);Serial.println(" : yellow led");
                      #endif
                     break;}
         }
           }
       traffic_light.activation_request = false;            // the traffic light is updated
      }
  update_light = false;                                        // all updates are made
}

/*************************************************************************************
 *  DCC method
 * 
 ***********************************************************************************/

void BasicAccDecoderPacket_Handler(int address, boolean activate, byte data)

 
  address -= 1; address *= 4; address += 1; address += (data & 0x06) >> 1;    // DCC address decoding
  int led = (data & 0x01) ? GREEN : RED;                                      // DCC/0 or DCC/1
  int traffic_light_index = address;                                          // index of a traffic light   
  int color = led;                                                            // the color of the led
  boolean activation = false;
  if ((address != previous_address) || ((led != previous_position) && (address == previous_address))){ // if we change the address or the led
        switch (NB_TRAFFIC_LIGHT) {
          case BICOLOR : {      // if the address is in our range for traffic light with two leds
                    if ((address >= FIRST_ID_DCC) && (address < FIRST_ID_DCC + NB_TRAFFIC_LIGHT)){
                      traffic_light_index = address - FIRST_ID_DCC;                                  // index of the traffic light
                      activation = true;}
                        break;}
          case TRICOLOR : {     // if the address is in our range for traffic light with three leds
                    if ((address >= FIRST_ID_DCC) && (address < FIRST_ID_DCC + (2*NB_TRAFFIC_LIGHT))){
                      if (address%2 != 0) {  traffic_light_index = address - 1; color = YELLOW;}         // if odd address => yellow led
                        traffic_light_index = (traffic_light_index - FIRST_ID_DCC)/2;                    // index of the traffic light
                        activation = true;}
                        break;}
        }
     traffic_light[traffic_light_index].activation_request =  activation;    // activation is requested
     traffic_light[traffic_light_index].current_position = color;            // state is requested (color of the led)
     update_light = activation;                                              // traffic light update is requested
    }
   previous_address = address; previous_position = led;                    // the current activation is saved
  }
/**********************************************************************************************
 *  setup
 *
 ******************************************************************************************/

void setup() {
  int pin_jump = 0;                                                     // a jump for traffic light pins
  int traffic_light_jump = 0;                                           // a jump for traffic light number
  for (int i=0; i<NB_TRAFFIC_LIGHT; i++){                               // for all the traffic lights
    traffic_light.activation_request = false;                        // no activation request
    traffic_light.green = pin_jump + FIRST_PIN;                      // pin number of the green led
    pinMode(traffic_light.green, OUTPUT);                            // green led in output(ID DCC/0)                                                                                                                                                                                                                                                                   
    digitalWrite(traffic_light.green, !MODE);                       // green led switch off
    traffic_light.red = 1+ pin_jump + FIRST_PIN;                    // pin number of the red led
    pinMode(traffic_light.red, OUTPUT);                             // red led in output  (ID DCC/1)
    digitalWrite(traffic_light.red, MODE);                          // red led switch on
    if (NB_TRAFFIC_LIGHT == TRICOLOR) {                                // if three leds
      traffic_light.address = traffic_light_jump + FIRST_ID_DCC + i;   // its DCC ID
      traffic_light.yellow = 2+ pin_jump + FIRST_PIN;               // pin number of the yellow led
      pinMode(traffic_light.yellow, OUTPUT);                        // yellow led in output  (ID DCC+1/0)
      digitalWrite(traffic_light.yellow, !MODE);                    // yellow led switch off
      traffic_light_jump++;                                             // the following traffic light
      pin_jump+=3;                                                     // the following pin for three leds
          }
    else {                                                             // if two leds
         traffic_light.address = FIRST_ID_DCC + i;                  // its DCC ID
        pin_jump+=2;                                                   // the following pin for two leds
        }
 
  }
 
  DCC.SetBasicAccessoryDecoderPacketHandler(BasicAccDecoderPacket_Handler, true);   // instanciate the DCC
  DCC.SetupDecoder( 0x00, 0x00, kDCC_INTERRUPT );                                   // its IT
  update_light = false;                                                             // no update
 
  #ifdef CONSOLE
   Serial.begin(115200);
   for (int i=0; i<NB_TRAFFIC_LIGHT; i++){
    Serial.print("traffic light");Serial.println(i);
    Serial.print("\t green led on pin : ");Serial.print(traffic_light.green);Serial.print(" , DCC address : ");Serial.print(traffic_light.address);Serial.println("/0");
    Serial.print("\t red led on pin : ");Serial.print(traffic_light.red);Serial.print(" , DCC address : ");Serial.print(traffic_light.address);Serial.println("/1");
    if (NB_TRAFFIC_LIGHT == TRICOLOR) {
      Serial.print("\t yellow led on pin : ");Serial.print(traffic_light.yellow);Serial.print(" , DCC address : ");Serial.print(traffic_light.address+1);Serial.println("/0");
      }
   }
  #endif
}

/*************************************************************************
 * loop
 *
 ******************************************************************/
 
void loop() {
  DCC.loop();                                              // Is there a DCC command ?
  if (update_light) {activation_traffic_light();}          // if yes, activation of traffic lights
}

Quel emplacement ?

Postez nous votre programme modifié.

5
Bonjour, il y a un mieux,
la led rouge s'allume désormais sur les bornes A5 04 G4 R3 O2 mais pas sur G2 et R1, et toujours aucune inter-action à partir de ma central multmaus à partir de l'adresse 90, effectivement sur ce montage, puisque l'emplacement n'existe pas sur le circuit imprimé,  je n'ai pas ajouté le 27 pf  le problème provient-il de là ?
cordialement

6
Bonjour,
Oui j'ai téléversé decoder_traffic_light.ino sans modification,( mais je veux le faire fonctionner en bicolores) le commun de mes LED est effectivement le GND.
le pont est également sur GND.
oui j'ai branché les 2 fils DCC sur input
oui j'ai branché une led verte avec résistance sur G1 et la led s'allume
oui j'ai activé l'adresse 90 et la led verte est toujours allumée
oui j'ai branché une led rouge sur R1 avec une résistance elle est éteinte
oui j'ai activé et essayé toutes les adresses de 39 à 151 de G1 à G4 et rien ne se passe.

J'ai donc dû louper un épisode, car il me semble qu'à une borne sur deux la led verte devrait s'allumer ou je me trompe?   
cordialement et à tête reposée

7
Bonsoir, et bien me revoilà, un peu désespéré je dois l'avouer, j'ai suivi vos conseils fait imprimé les circuits à l'adresse que vous m'avez indiqué, je les ai reçu plus tôt que prévu, super.  J'ai remonté tout le circuit avec des composants neufs, j'ai téléversé le programme Arduino sur mon Nano, mais lorsque je branche le signal il n'y a que la borne G1 qui doit correspondre a D2 qui allume la led l'autre led est connecté à R1, j'ai beau essayer toutes les adresses DCC de 39 à 151 rien ne se passe, de plus les autres bornes sont inactives !!!!! ? :-\ :-\ :-\ :-\ :-\ :-\ >:( >:(   d'ou ma question ce montage fonctionne-t-il vraiment ?   

8
Bonsoir,
Pour info j'ai commandé les circuits mais pour informer la communauté les tarifs ont changé il faut compter 2€ pour les circuits et 12€ pour le transport entre 1 semaine et 15 jours le moins chère mais pas par DHL ....!
Donc le vous tiendrais informé d'ici là ....
cordialement
DF

9
Bonsoir je veux bien essayer avec le fichier gerber, mais à priori au nombre de borne il est prévu pour une signalisation 3 feux, puisque le nombre de borne (15) est impair, voilà pourquoi j'avais opté pour l'autre carte offrant la possibilité d'alimenter 8 feux bicolores.
cordialement   

10
Re bonjour,
Donc j'ai bien 5.01V sur VIM valeur sur borne 6 du 6N137 1.28V que je retrouve donc sur D2  j'ai changé le 6N137 les valeur en entrée sont désormais sur 2 de 3.37V sur 3 de 3.55V  (au lieu de 5.88V et 6.09v précédemment) en sortie vers D2 0.60V donc D2 0.60V. on est loin de la moitié de la valeur 5V de l'Arduino. valeur que je retrouve sur la broche 5V de l'Arduino. Le repère du 6N137 doit bien être dirigé vers le coté ou se trouve les condensateurs? et j'ai toujours des valeurs sur les bornes de D12 à D3 qui s'élèvent de de 00V à 1.59V en passant par 2.55V  j'avoue ne plus rien comprendre.
cordialement

dernière minute le fait d'avoir déssoudé l'Arduino grillé avait certainement laissé des débris microscopiques produisant des contactes invisibles à l'œil nu j'ai fini par résoudre ce problème entre D12 et D3 pour le reste je ne comprends toujours pas ....

11
bonjour,
mon ohmmetre est réglé sur 200K, pour qu'un quelconque courant circule entre les bornes d12 à d4 il ne peut provenir que de d2 j'ai testé il n'y a pas de continuité entre d2 et toutes les autres bornes je passe mon réglage à 200M et là je trouve une valeur de 03.7
la valeur mesuré de D2 est : 1.55V
j'en perd mon latin
cordialement
DF

12
Bonjour oui en y regardant de plus prêt avec mes mauvais yeux le régulateur est un 7805 cela implique-t-il le voltage de 3V sur VIN et non 8V ?
valeur mesuré sur D12 1.51 V , D11 2.86V, D10 3.88V,  D09 4.28V, D8 4.37V, D7 4.34V, D6 4.35V, D5 4.45V, D4 4.30V, ET ENFIN D3 4.85V je n'arrive pas m'expliquer pourquoi il y a du courant sur ces bornes puisque sans l'Arduino elles ne sont relié à rien ?

A priori, la diode 1N4148 est OK, vérifiez que la tension à ses bornes ne dépasse pas 0.7V, le 6N137 peut tenir un petit moment à plus.
Le courant mesuré au borne du 1N4148 est largement supérieur à 0.7V puisque l'on atteint 5.88V et 6.02V ? et sur le 6N137 on n'a les même mesure ?

mais je sens que je touche au but
cordialement 

13
bonsoir
je suis vraiment un manche, je vous imagine en train de sourire

je n'étais en fait pas relié au GND,
voici donc d'autre mesure qui semble plus fiable
patte + pont de diode 11.71V les 2 centrales 5.8V - 0V
1K 5.76V et 6.09V
diodes 5.76V et 6.09V (elle doit être claquée)
6N137 (2) 5.88V (3) 6.09
régulateur 11.72V  0V et 5.07V
100nf 0V ext et 11.2V et 5.2V
pattes Arduino VIN 3V GND 0V RST 4.24V de D13 à A2 0.1V et de D12 à D3 entre 1.35V et 4.35V

Encore une fois merci pour le temps que vous me consacrez
Cordialement
DF

14
Bonjour,

Voici quelques tensions prises, branché en DCC sur mon montage sans l'Arduino

-pattes extérieurs du pont de diode  5.8V
-entrée résistance  1K 0.02V sortie 0V
-pattes externes condo 100nf 5.56V et 5.92V pattes internes  2V et 0,56V
-diodes 1N4148  0.34VC et 11.3VA
-entrée résistance 10K 1.33V pour les deux  sortie Idem
-entrée opto 0.35V et 0.02V sorties les 4 entre 1.5V et 1.27V
-patte 1 du régulateur 5.96V centrale 5.88V troisième 0.80V
-Broches Arduino VIN 1.29V GND 5.87V RST 1.92V 5V 1,31V de A6 à D13 entre 0.01 et 0.03V de l'autre coté D12 4.33V D11 3.50V D10 2.56V D9 2.20V
D8 2.20V D7 2.10V D3 0V D2 1.43V
Tension entrée DCC 11.3VA
Ces valeurs sont elles conforme ?
merci pour votre patience


15
Donc voilà j'ai dessoudé l'Arduino avec beaucoup de dificulté,  j'en ai remis un autre avec le programme pré téléversé, mais avant de le souder pourriez-vous SVP m'indiquer certaines valeurs que je pourrais contrôler avec mon multimètre sur la carte afin de voir si le problème ne vient pas de là.
 
certes, je suis pénible, mais tout cela est un peu nouveau pour moi, et j'aimerai comprendre merci d'avance.

cordialement
FD
       

Pages: [1] 2