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

Pages: [1]
1
Vos projets / Re : MODIFICATION ET COMMANDE PLAQUE TOURNANTE ATLAS
« le: août 10, 2018, 03:54:57 pm »
Merci Dominique, d'avoir rectifié le texte que j'avais toutefois vérifié en prévisualisant.
J'ai un réseau à l'échelle N, ce montage peut être adapté à d'autres echelles (ho,z ....)la plaque tournante Atlas existe en HO je pense chez Daliplumes sur Google.Peut être adapté à d'autres modèle de plaque tournante ou rotonde.
Je mettrais prochainement les images et schémas.

2
Vos projets / MODIFICATION ET COMMANDE PLAQUE TOURNANTE ATLAS
« le: août 09, 2018, 10:10:35 am »
Telecommande Pont tournant ATLAS (1 à 8 voies) avec Arduino uno et shield motor

Nomenclature :

Pont tournant ATLAS modifié (avec moteur bipolaire d'origine)
 
1 Arduino Uno

1 Shield Motor
 
1 télécommande (utilisation des touches numériques 1 à 8)
 
8 TLE4905L( capteurs magnétiques «  Effet hall ») :http://pdf.datasheetcatalog.com/datasheets/270/318493_DS.pdf
 
8 diodes LED (jaune ou verte) (position de voie)
1 Capteur infrarouge pour détection télécommande :     SFH5110 OU AX 1838HS
 
9 Résistances 10k (R1 à R8 et R17)
8 Résistances 1k (R9 à R15)
8 Résistances 3.3k (R18 à R25)

Description, détails :

Chacun des 8 TLE 4905 L ( capteurs magnétiques «  Effet hall ») sont collés sur l’emplacement correspondant à la voie1 à voie 8 sur le plateau fixe du pont tournant, l’aimant qui active la voie est collé sur le plateau tournant du pont. (voir photo)
A la mise en route, du 5v et 12v, le positionnement du pont est indiqué par la LED correspondante.
L’appui sur une touche numérique de la télécommande indique la voie de destination.
Le déplacement du pont est dans les 2 sens 1 .. vers ..8 ; 8… vers …1
Le positionnement est précis.
Exemple : a la mise en route si voie 3 = LED voie 3 allumée
Si appui sur touche 8 avance du pont vers voie 8 = LED voie 3,4,5,6,7 clignotent, arrêt précis sur voie 8 = LED voie 8 allumée .
Si LED voie 8 allumée, appui sur touche 5 retour du pont vers voie 5 led = voie 8,7,6 clignotent, arrêt précis sur voie 5 = LED voie 5allumée. Ainsi de suite …..

Programme : (Arduino1.8.5)

// 08/10/2017 v10
// Commander un pont TOURNANT avec une telecommande IR
#include <IRremote.h>
// Broche pour le detecteur infra rouge
int IR = 9; // capteur IR en broche 9
// Broches utilisees
int ledV1 = A4; // led pont en voie 1 broche 0
int ledV2 = A3; // led pont en voie 2 broche 1
int ledV3 =  2; // led pont en voie 3 broche 2
int ledV4 =  3; // led pont en voie 4 broche 3
int ledV5 =  4; // led pont en voie 5 broche 4
int ledV6 =  5; // led pont en voie 6 broche 5
int ledV7 =  6; // led pont en voie 7 broche 6
int ledV8 =  7; // led pont en voie 8 broche 7
// Broches le CIRCUIT MOTEUR (shield Motor)
const int vitesseMotB = 11; // sortie pour vitesse
const int sensMotB = 13; // sorties pour commander le sens
const int freinMotB = 8; // FREIN
int POS = A5; // détection de la position du pont broche A5
int VD; // valeur de la voie de destination = Touche actionn�e
int VP; // valeur de la voie de depart du pont
int Mvt; // Valeur du r�sultat de la comparaison entre voie de depart et voie de destination
int VL; // valeur de la tension lue par l'entree analogique (position du pont A5)
int Vit = 0 ;  // vitesse du moteur du pont ici 240 sur 255 au maxi

IRrecv RCEP(IR);
decode_results RIR;

void setup()
{
  // Serial.begin(9600);
  RCEP.enableIRIn(); // Commencement de la reception
  // mise en memoire position du pont avant commande
  Pospont() ;

  // Determination des sorties
  pinMode(ledV1, OUTPUT);
  pinMode(ledV2, OUTPUT);
  pinMode(ledV3, OUTPUT);
  pinMode(ledV4, OUTPUT);
  pinMode(ledV5, OUTPUT);
  pinMode(ledV6, OUTPUT);
  pinMode(ledV7, OUTPUT);
  pinMode(ledV8, OUTPUT);
  pinMode(vitesseMotB, OUTPUT);
  pinMode(sensMotB, OUTPUT);
  pinMode(freinMotB, OUTPUT);
}
void loop()
{
  digitalWrite(freinMotB, LOW);
  // lecture de la valeur de la tension sur l'entree analogique
  VL = analogRead(POS) ;

  // Appel position du pont
 Pospont() ;

  // Eteindre toutes les leds et allumer la led qui correspond à la position du pont
  switch (VP) // allumer led de la position du pont lors de la premiere mise sous tension VP
  {
    case 1: digitalWrite (ledV1, 1); break ;
    case 2: digitalWrite (ledV2, 1); break ;
    case 3: digitalWrite (ledV3, 1); break ;
    case 4: digitalWrite (ledV4, 1); break ;
    case 5: digitalWrite (ledV5, 1); break ;
    case 6: digitalWrite (ledV6, 1); break ;
    case 7: digitalWrite (ledV7, 1); break ;
    case 8: digitalWrite (ledV8, 1); break ;
  }
  // lecture de la touche appuyee sur la telecommande
  if (RCEP.decode(&RIR))
  {
    // Traduction de touche telecommande IR en N° de voie destination VD
    if (RIR.value == 16582903)  {
      VD = 1 ;
    }
    if (RIR.value == 16615543)  {
      VD = 2 ;
    }
    if (RIR.value == 16599223)  {
      VD = 3 ;
    }
    if (RIR.value == 16591063)  {
      VD = 4 ;
    }
    if (RIR.value == 16623703)  {
      VD = 5 ;
    }
    if (RIR.value == 16607383)  {
      VD = 6 ;
    }
    if (RIR.value == 16586983)  {
      VD = 7 ;
    }
    if (RIR.value == 16619623)  {
      VD = 8 ;
    }
    delay (50);
    switch (VD) // allumer la led de destination et clignotement des leds de passage de voie
    {
      case 1:
        digitalWrite(ledV1, 1);
        digitalWrite(ledV2, 0);
        digitalWrite(ledV3, 0);
        digitalWrite(ledV4, 0);
        digitalWrite(ledV5, 0);
        digitalWrite(ledV6, 0);
        digitalWrite(ledV7, 0);
        digitalWrite(ledV8, 0);
        delay(1000);
        break ;
      case 2:
        digitalWrite(ledV1, 0);
        digitalWrite(ledV2, 1);
        digitalWrite(ledV3, 0);
        digitalWrite(ledV4, 0);
        digitalWrite(ledV5, 0);
        digitalWrite(ledV6, 0);
        digitalWrite(ledV7, 0);
        digitalWrite(ledV8, 0);
        delay(1000);
        break ;
      case 3:
        digitalWrite(ledV1, 0);
        digitalWrite(ledV2, 0);
        digitalWrite(ledV3, 1);
        digitalWrite(ledV4, 0);
        digitalWrite(ledV5, 0);
        digitalWrite(ledV6, 0);
        digitalWrite(ledV7, 0);
        digitalWrite(ledV8, 0);
        delay(1000);
        break ;
      case 4:
        digitalWrite(ledV1, 0);
        digitalWrite(ledV2, 0);
        digitalWrite(ledV3, 0);
        digitalWrite(ledV4, 1);
        digitalWrite(ledV5, 0);
        digitalWrite(ledV6, 0);
        digitalWrite(ledV7, 0);
        digitalWrite(ledV8, 0);
        delay(1000);
        break ;
      case 5:
        digitalWrite(ledV1, 0);
        digitalWrite(ledV2, 0);
        digitalWrite(ledV3, 0);
        digitalWrite(ledV4, 0);
        digitalWrite(ledV5, 1);
        digitalWrite(ledV6, 0);
        digitalWrite(ledV7, 0);
        digitalWrite(ledV8, 0);
        delay(1000);
        break ;
      case 6:
        digitalWrite(ledV1, 0);
        digitalWrite(ledV2, 0);
        digitalWrite(ledV3, 0);
        digitalWrite(ledV4, 0);
        digitalWrite(ledV5, 0);
        digitalWrite(ledV6, 1);
        digitalWrite(ledV7, 0);
        digitalWrite(ledV8, 0);
        delay(1000);
        break ;
      case 7:
        digitalWrite(ledV1, 0);
        digitalWrite(ledV2, 0);
        digitalWrite(ledV3, 0);
        digitalWrite(ledV4, 0);
        digitalWrite(ledV5, 0);
        digitalWrite(ledV6, 0);
        digitalWrite(ledV7, 1);
        digitalWrite(ledV8, 0);
        delay(1000);
        break ;
      case 8:
        digitalWrite(ledV1, 0);
        digitalWrite(ledV2, 0);
        digitalWrite(ledV3, 0);
        digitalWrite(ledV4, 0);
        digitalWrite(ledV5, 0);
        digitalWrite(ledV6, 0);
        digitalWrite(ledV7, 0);
        digitalWrite(ledV8, 1);
        delay(1000);
        break ;
    } 
    // Comparer la voie de depart et la voie de destination Mvt
    Mvt = VD - VP ;

    if (Mvt == 0) // Arreter le pont
    {
      digitalWrite(vitesseMotB, LOW); // à l'arret
      delay (400); // on attend 400 milisecondes avant de couper l'alimenation du pont
      // pour arret nickel en face de la voie de destination
      digitalWrite(sensMotB, LOW); // arret du moteur
      digitalWrite(freinMotB, LOW);

      RCEP.resume(); // Reception de la prochaine valeur
    }

    if (Mvt > 0) // Faire avancer le pont
    {
      // sens de rotation 1 : rotation inverse du sens 2
      digitalWrite(sensMotB, LOW); // 1 indique niveau haut ou HIGH
      digitalWrite(vitesseMotB, HIGH);
    }
 delay(50);
    if (Mvt < 0) // Faire reculer le pont
    {
      // sens de rotation 2 : rotation inverse du sens 1
      digitalWrite(sensMotB, HIGH);
      digitalWrite(freinMotB, LOW);
      digitalWrite(vitesseMotB, HIGH);
    }
  }
}

 void Pospont()   // Mise en memoire des constantes des positions du pont VP
 // tension VL determinee par le chainage des valeurs de resistance voir schema
{
  if (VL > 990 && VL <= 1000 )   {
    VP = 1 ;
  }
  if (VL > 970 && VL <= 980 )    {
    VP = 2 ;
  }
  if (VL > 930 && VL <= 950 )    {
    VP = 3 ;
  }
  if (VL > 850 && VL <= 890 )    {
    VP = 4 ;
  }
  if (VL > 700 && VL <= 800 )    {
    VP = 5 ;
  }
  if (VL > 590 && VL <= 650 )    {
    VP = 6 ;
  }
  if (VL > 350 && VL <= 380 )    {
    VP = 7 ;
  }
  if (VL > 100 && VL <= 110 )    {
    VP = 8 ;
  }TROU
}                                 

 

                                
PERCAGE (8 trous) pour emplacements TLE4905L collés

1   AIMANT pastille  2ou 3 mm epais collé                   

8 TLE4905L (achetés sur ebay ou autres fonctionnement OK)

Montage sur circuit imprimé : avec le logiciel de CI lochmaster 3.0 ou 4.0
 

3
Présentez vous ! / presentation laiguilleur
« le: septembre 30, 2017, 12:37:42 pm »
 :)Bonjour à tous
Je suis Jean-Luc (LAIGUILLEUR) je suis âgé de 66 ans, je réside dans les Yvelines (Guyancourt),je suis retraité de l'électronique depuis quelques années, j'ai construit un réseau "analogique" sous Driving Railway de Pégase Info (made in France en france comté) depuis quelques année dépot de bilan de la sté.
Je recherche une alternative vers le DCC,j'ai sélectionné dans un premier Train Controleur ou CDM-Rail comme logiciel pour l'adapter si possible à une centrale construite autour des modules arduino.
J'ai moi même à finaliser une cde de plateau tournant avec Arduino UNO et télécommande IR .

Pages: [1]