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.


Sujets - marc

Pages: [1]
1
Vos projets / conseil pour voie évitement
« le: mars 16, 2016, 06:49:27 pm »
bonjour à tous

Mon projet avance doucement grâce en partie à votre aide, ce dont je vous en remercie
Mon but est de construire mon réseau de la façon suivante : deux voies de "parade" faisant le tour de mon réseau (en U), avec gare cachée que je gère actuellement grâce à des relais, et une autre voie indépendante des deux précédentes avec 2 boucles de retournement et un ou deux évitements (avec gare, halle marchandise, etc...)
Mon premier programme sous arduino va consister à gérer ce que j'appelle le canton 1 de mon circuit comme représenté sur le schéma que je joins.
Gestion des voies, aiguillages et signaux est au menu, c'est à dire si une train arrive sur la voie 4, contrôler les possibilités que j'ai, c'est à dire si la voie 1 ou la voie 2 ou la voie 3 est occupée, dans quel sens le train étant sur ces cantons circule, pour savoir si les trains se suivent ou s'ils vont à la rencontre l'un de l'autre.
Cela fait 7 entrées à gérer (ils ou autres), 2 moteurs lents et 6 signaux. Les moteurs lents Lemaco et les signaux pouvant, je pense, être gérés de façon électronique à partir de sorties de l'Arduino.

Pensez-vous que l'Arduino Uno est suffisant pour ce genre de projet sinon quelle carte faudrait-il ?

Faut-il traiter les différents choix par des IF... else... ou bien par des SWITCH... CASE...

Y a-t-il une instruction pour sortir d'un IF du genre : if b=3 mettre sortie 1 à 0 sinon sortir du if.

Voilà!

J'ai du pain sur la planche et j'aime ça, alors, comme on dit, ce qui plaît ne coûte pas...

Merci à tous de votre aide

Amitiés

Marc


2
Vos projets / arduino gare cachee
« le: février 15, 2016, 10:53:05 am »
bonjour à tous
J'ai une gare cachée avec 6 voies (3 dans un sens, 3 dans l'autre).
Mon projet consiste à faire entrer 3 trains sur chacune des 3 voies, détecter par ILS quelle voie est occupée, si une voie est libre le train arrivant se positionne dessus et si les trois voies sont occupées, l'une d'entre elles se libère pour permettre au nouveau train d'entrer. J'ai commencé à écrire le programme mais je bute sur le fait de libérer une des voies.
Comme c'est mon premier programme, c'est sans doute normal.
Je vous copie mon programme et soyez indulgents sur l'écriture peut-être pas très rationnelle.


/*
Le but du jeu est que lorsque les 3 entrées en 0, 1 et 2 sont validées, la sortie 11 soit activée. de façon à permettre à un des trains de démarrer, libérer une pl
 */

// constants won't change. They're used here to
// set pin numbers:
 int compteur = 0;// initialisation du compteur

const int buttonPin0 = 0;     // the number of the pushbutton pin
const int buttonPin1 = 1;     // the number of the pushbutton pin
const int buttonPin2 = 2;     // the number of the pushbutton pin

const int ledPin0 =  8;      // the number of the LED pin
const int ledPin1 =  9;      // the number of the LED pin
const int ledPin2 =  10;      // the number of the LED pin
const int ledPin3 = 11;     //sortie activée si les 3 boutons sont à 1

// variables will change:
int buttonState0 = 0;         // variable for reading the pushbutton status
int buttonState1 = 0;         // variable for reading the pushbutton status
int buttonState2 = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin0, OUTPUT);
  pinMode(ledPin1,OUTPUT);
  pinMode(ledPin2,OUTPUT);// initialize the pushbutton pin as an input:
  pinMode(ledPin3,OUTPUT);
  pinMode(buttonPin0, INPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState0 = digitalRead(buttonPin0);
  buttonState1 = digitalRead(buttonPin1);
    buttonState2 = digitalRead(buttonPin2);
  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState0 == HIGH) {
    // turn LED on:
    compteur = compteur + 1;
    digitalWrite(ledPin0, HIGH);
  } else {
    // turn LED off:
    digitalWrite(ledPin0, LOW);
  }

    if (buttonState1 == HIGH) {
    // turn LED on:
  compteur = compteur + 1;
 digitalWrite(ledPin1, HIGH);
  } else {
    // turn LED off:
     digitalWrite(ledPin1, LOW);
  }
 
    if (buttonState2 == HIGH) {
    // turn LED on:
compteur = compteur + 1;
digitalWrite(ledPin2, HIGH);
  } else {
    // turn LED off:
    digitalWrite(ledPin2, LOW);
  }
 if (compteur == 3) {
digitalWrite(ledPin3,HIGH);
}
else{
  digitalWrite(ledPin3,LOW);
  }
}

3
Présentez vous ! / Nouveau venu
« le: février 04, 2016, 06:15:21 pm »
Bonjour à tous

Je me présente : mon prénom est marc et je suis un jeune retraité de 60 ans.
J'ai débuté mon réseau il y a 1 an à peu près, un réseau en U, dans mon grenier, en analogique 2 rails.
J'ai un peu de tout en matériel : du Jouef pour les locos, du Roco et du Pico pour les rails et les moteurs d'aiguillage sont des moteurs lents Lemaco car mouvement plus lent, donc plus réaliste.
J'ai de grosses lacunes en électronique et informatique. J'ai essayé de me mettre aux PIC mais le langage assembleur m'a rebuté un peu. J'ai le logiciel Proteus pour faire des tests, ce qui m'aide bien quoiqu'il n'y ait pas tous les composants.
C'est pourquoi je vais essayer l'Arduino, voire si je m'en sors mieux avec...
Longue et fructueuse vie à ce forum
Marc

Pages: [1]