1/160 - Echelle N

Le Forum consacré à l'Echelle N
 
AccueilAccueil  PortailPortail  ÉvènementsÉvènements  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
N'hésitez pas à consulter le calendrier et les événements du forum pour voir les manifestations près de chez vous !
Le deal à ne pas rater :
Cdiscount : -30€ dès 300€ d’achat sur une sélection Apple
Voir le deal

 

 PONT TOURNANT ATLAS ET ARDUINO

Aller en bas 
3 participants
AuteurMessage
LAIGUILLEUR
Membre
LAIGUILLEUR


Masculin Age : 72
Localisation : YVELINES -île de France
Nombre de messages : 64
Date d'inscription : 13/10/2007

PONT TOURNANT ATLAS ET ARDUINO Empty
MessageSujet: PONT TOURNANT ATLAS ET ARDUINO   PONT TOURNANT ATLAS ET ARDUINO Icon_minitimeDim 18 Oct 2015 - 10:12

Telecommande Pont tournant ATLAS (1 à 8 voies) avec Arduino uno et shield motor

PONT TOURNANT ATLAS ET ARDUINO 0113

Montage sur plaque d'essai dans fritzing
https://i.servimg.com/u/f21/19/07/26/23/fritzi12.jpg
télécommande utilisée: (utilisation des touches numériques 1 à Cool
https://servimg.com/view/19072623/6
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 (voir photo)
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)
2 diodes LED (jaune ou verte) (sens moteur) optionnel
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 sut touche 8 avance du pont vers voie 8 = LED voie 3 clignote, arrêt précis sur voie 8 = LED voie 8 allumée et extinction LED voie 3.
Si LED voie 8 allumée, appui sur touche 5 retour du pont vers voie 5 led = voie 8 clignote, arrêt précis sur voie 5 = LED voie 5allumée et extinction LED voie 8. Ainsi de suite …..
Programme : (Arduino1.6.5)
Code:
Telecommande Pont tournant ATLAS (1 à 8 voies) avec Arduino uno et shield motor
Montage sur plaque d'essai dans fritzing
http://i21.servimg.com/u/f21/19/07/26/23/fritzi12.jpg
télécommande utilisée: (utilisation des touches numériques 1 à Cool
http://www.servimg.com/view/19072623/6
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 (voir photo)
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)
2 diodes LED (jaune ou verte) (sens moteur) optionnel
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 sut touche 8 avance du pont vers voie 8 = LED voie 3 clignote, arrêt précis sur voie 8 = LED voie 8 allumée et extinction LED voie 3.
Si LED voie 8 allumée, appui sur touche 5 retour du pont vers voie 5 led = voie 8 clignote, arrêt précis sur voie 5 = LED voie 5allumée et extinction LED voie 8. Ainsi de suite …..
Programme : (Arduino1.6.5)



[code]// 30/08/2015
// Commander un pont TOURNANT avec une t�l�commande IR
#include <IRremote.h>
 
int IR = 9; // capteur IR en broche 9
int ledV1 =  2; // led pont en voie 1 broche 2
int ledV2 =  4; // led pont en voie 2 broche 4
int ledV3 =  5; // led pont en voie 3 broche 5
int ledV4 =  6; // led pont en voie 4 broche 6
int ledV5 =  7; // led pont en voie 5 broche 7
int ledV6 =  8; // led pont en voie 6 broche 8
int ledV7 =  10; // led pont en voie 7 broche 10
int ledV8 =  18; // led pont en voie 8 broche 18
// Connecter le CIRCUIT MOTEUR SUR  l'Arduino UNO
const int vitesseMotB = 11; // sortie pour vitesse
const int sensMotB = 13; // sorties pour commander le sens
const int freinMotB = 8; // FREIN
int POS = 19; // d�tection de la position du pont broche 19 (A5)
int VD; // valeur de la voie de destination = Touche actionn�e
int VP; // valeur de la voie de d�part du pont
int Mvt; // Valeur du r�sultat de la comparaison entre voie de d�part et voie de destination
int VL; // valeur de la tension lue par l'entr�e 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 r�ception
  // mise en m�moire position du pont avant commande
 Pospont() ;
// D�termination 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'entr�e 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 premi�re mise sous tension
      {
      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 appuy�e sur la t�l�commande  
  if (RCEP.decode(&RIR))
  {
 // Traduction de touche t�l�commande IR en N�voie destination
  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 ;}
  // led0() ; // �teindre toutes les leds
  // delay (50);
 switch (VD) // allumer la led de destination en clignotant
      {
      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(ledV2,1);
      digitalWrite(ledV3,0);
      digitalWrite(ledV4,0);
      digitalWrite(ledV5,0);
      digitalWrite(ledV6,0);
      digitalWrite(ledV7,0);
      digitalWrite(ledV8,0);
      digitalWrite (ledV1,0);
      delay(1000);  
      break ;
      case 3:
      digitalWrite(ledV3,1);
      digitalWrite(ledV4,0);
      digitalWrite(ledV5,0);
      digitalWrite(ledV6,0);
      digitalWrite(ledV7,0);
      digitalWrite(ledV8,0);
      digitalWrite(ledV1,0);
      digitalWrite(ledV2,0);
      delay(1000);
      break ;
      case 4:
      digitalWrite(ledV4,1);
      digitalWrite(ledV5,0);
      digitalWrite(ledV6,0);
      digitalWrite(ledV7,0);
      digitalWrite(ledV8,0);
      digitalWrite(ledV1,0);
      digitalWrite(ledV2,0);
      digitalWrite(ledV3,0);
      delay(1000);
      break ;
      case 5:
      digitalWrite(ledV5,1);
      digitalWrite(ledV6,0);
      digitalWrite(ledV7,0);
      digitalWrite(ledV8,0);
      digitalWrite(ledV1,0);
      digitalWrite(ledV2,0);
      digitalWrite(ledV3,0);
      digitalWrite(ledV4,0);
      delay(1000);
      break ;
      case 6:
      digitalWrite(ledV6,1);
      digitalWrite(ledV7,0);
      digitalWrite(ledV8,0);
      digitalWrite(ledV1,0);
      digitalWrite(ledV2,0);
      digitalWrite(ledV3,0);
      digitalWrite(ledV4,0);
      digitalWrite(ledV5,0);
      delay(1000);
      break ;
      case 7:
      digitalWrite(ledV7,1);
      digitalWrite(ledV8,0);
      digitalWrite(ledV1,0);
      digitalWrite(ledV2,0);
      digitalWrite(ledV3,0);
      digitalWrite(ledV4,0);
      digitalWrite(ledV5,0);
      digitalWrite(ledV6,0);
      break ;
      case 8:
      digitalWrite(ledV8,1);
      digitalWrite(ledV1,0);
      digitalWrite(ledV2,0);
      digitalWrite(ledV3,0);
      digitalWrite(ledV4,0);
      digitalWrite(ledV5,0);
      digitalWrite(ledV6,0);
      digitalWrite(ledV7,0);
      break ;
      delay(1000);
      }
   //delay(50);

  // Comparer la voie de d�part et la voie de destination
     Mvt = VD - VP ;
  
    if (Mvt == 0) // Arr�ter le pont
     {
     digitalWrite(vitesseMotB,LOW); // à l'arret
     delay (400); // on attend 400 milisecondes avant de couper l'alimenation du pont
   // pour arr�t nickel en face de la voie de destination
     digitalWrite(sensMotB,LOW);  // arr�t du moteur
     digitalWrite(freinMotB,LOW);
  
     RCEP.resume(); // R�ception 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);
    }
  
    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);  
    }
  }
}
// cr�ation des fonctions
void led0() // fonction �teindre toutes les leds
{
digitalWrite(ledV1, 0);
digitalWrite(ledV2, 0);
digitalWrite(ledV3, 0);
digitalWrite(ledV4, 0);
digitalWrite(ledV5, 0);
digitalWrite(ledV6, 0);
digitalWrite(ledV7, 0);
digitalWrite(ledV8, 0);
}
void Pospont()   // Mise en m�moire de la position du pont
 {  
    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 ;}  
 }[/code]


BIEN CORDIALEMENT

JEAN-LUC
Revenir en haut Aller en bas
corwin92
Membre
Membre
corwin92


Masculin Age : 51
Localisation : 78
Nombre de messages : 1800
Date d'inscription : 21/08/2007

PONT TOURNANT ATLAS ET ARDUINO Empty
MessageSujet: Re: PONT TOURNANT ATLAS ET ARDUINO   PONT TOURNANT ATLAS ET ARDUINO Icon_minitimeDim 18 Oct 2015 - 12:04

Sujet intéressant.
Ne manquerait-il pas des photos?
Je ne vois pas le positionnement de l'aimant.

Je cherche à motoriser un pont peco, je vais étudier tout cela et je m'inspirerais probablement de ces travaux.
Revenir en haut Aller en bas
LAIGUILLEUR
Membre
LAIGUILLEUR


Masculin Age : 72
Localisation : YVELINES -île de France
Nombre de messages : 64
Date d'inscription : 13/10/2007

PONT TOURNANT ATLAS ET ARDUINO Empty
MessageSujet: Quelques photos techniques   PONT TOURNANT ATLAS ET ARDUINO Icon_minitimeLun 19 Oct 2015 - 10:21

PONT TOURNANT ATLAS ET ARDUINO 2015-013

PONT TOURNANT ATLAS ET ARDUINO 2015-015/view/19072623/21]PONT TOURNANT ATLAS ET ARDUINO 2015-014[/url]

PONT TOURNANT ATLAS ET ARDUINO 2015-015

PONT TOURNANT ATLAS ET ARDUINO 2015-016
Revenir en haut Aller en bas
Traindenfer
Membre
Membre
Traindenfer


Masculin Age : 61
Localisation : Montlhery (91) - Sens-Beaujeu (18)
Nombre de messages : 13296
Date d'inscription : 07/09/2007

PONT TOURNANT ATLAS ET ARDUINO Empty
MessageSujet: Re: PONT TOURNANT ATLAS ET ARDUINO   PONT TOURNANT ATLAS ET ARDUINO Icon_minitimeLun 19 Oct 2015 - 11:24

Je me suis beaucoup intéressé à ce pont à Sedan qui est mis en oeuvre sur Turtle Field Road, car je cherche une idée pratique pour le futur pont tournant de Ste Etagère; merci à Bubule pour les explications.
Il y a un problème : Le pont ne correspond pas du tout en dimensions ce qui signifie une reprise totale du mécanisme seul et adaptation à un pont plus conforme SNCF. Au prix de la bête (dans les 260€ apparemment) on a pas intérêt à se louper.
Autre solution pont PECO mécanisme lent et Arduino, pour lequel je n'ai aucune connaissance. J'ai profité de voir Piston93 pour en parler, va falloir que je m'y mette.
Sinon il y a la solution mécanique par manivelle et compas dans l'oeil; mais avec 8 voies minimum en rotonde...
Je ne sais donc pas quoi faire.
Revenir en haut Aller en bas
Contenu sponsorisé





PONT TOURNANT ATLAS ET ARDUINO Empty
MessageSujet: Re: PONT TOURNANT ATLAS ET ARDUINO   PONT TOURNANT ATLAS ET ARDUINO Icon_minitime

Revenir en haut Aller en bas
 
PONT TOURNANT ATLAS ET ARDUINO
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Pont tournant ATLAS
» Motorisation pont tournant PECO : moteur pas-à-pas + Arduino
» Automatisation Pont Transbordeur et/ou Pont Tournant
» pont tournant 14m
» Pont tournant de 19m

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
1/160 - Echelle N :: Modèles réduits à l'echelle N :: Electricité / Electronique-
Sauter vers: