Forums LR PRESSE

Où il est question de trains, petits et grands

  • Advertisement

Galère de débutant!

Toutes les discussions sur l'Arduino !

Modérateur: MOD

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 08:37 
Quand je parlais de 10 LED, j'avais compté les différents feux ; ce n'était pas pour dire que toutes clignotaient.

Et pour le pétard, t'as prévu quoi ? (là, je me risque sur un terrain qui n'est pas le mien :lol: )
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1631
Inscrit le: Mer 25 Sep 2013, 16:14

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 09:56 
un relais sous le signal et 3 grammes de C4......!!!!!

Plus sérieusement pour les pétards, il se pourrait bien que je m'amuse à faire un clin d'oeil, puisque je compte appliquer l'Arduino pour assurer l'Aubinage et la coupure du courant traction en cas de franchissement du carré sur mon réseau.
ça va prendre forme!!!!!, un klaxon ou un truc bien discret!!! je sais pas encore, mais vu les possibilité de la platine, j'ai le choix.
Dernière édition par Greg84 le Sam 13 Fév 2016, 10:07, édité 1 fois au total.
faire bref? sais pas faire
Avatar de l’utilisateur
Greg84
Fécond
 
Messages: 594
Inscrit le: Jeu 09 Sep 2010, 10:03
Localisation: Vedène
Âge: 38
Echelle pratiquée: HO,HOe,N
Prénom: Grégory
Club: Maison

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 10:01 
j'ai bidouillé vite fait le schéma sur fritzing, grosso modo ma platine d'essai,se présente comme ça actuellement, j'ai juste à remplacer les groupes de Leds/ résistance par l'ampoule du signal associée.
Image
les Leds ne sont pas dans l'ordre!!! c'est pour l'exemple....
faire bref? sais pas faire
Avatar de l’utilisateur
Greg84
Fécond
 
Messages: 594
Inscrit le: Jeu 09 Sep 2010, 10:03
Localisation: Vedène
Âge: 38
Echelle pratiquée: HO,HOe,N
Prénom: Grégory
Club: Maison

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 10:45 
Salut Greg... il faudrait que tu nous communiques l'interface réalisée pour commander ton signal avec des feux à micro lampes, qu'on puisse écrire un code adapté à ton signal.. au moins savoir si l'indication est commandée par un 0 ou un 5V... Low ou High.
Hier soir je me suis amusé à faire un panneau C,S,Rouge Cli,A, VL
Si cela t'intéresse je peux te le communiquer, c'est un sketch de débutant pour débutant.. Christian aurait beaucoup d'améliorations à apporter mais ça marche... mais c'est le cas le plus simple
Et merci pour ce rappel de S1A...la bible de la signalisation ferroviaire... à moins qu'il ait changé de nom depuis le temps...!!!!
Avatar de l’utilisateur
sergio11
Bavard
 
Messages: 59
Inscrit le: Ven 08 Jan 2016, 22:20
Localisation: 11 Ouveillan
Âge: 64
Echelle pratiquée: N
Prénom: Serge

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 10:52 
J'ai ete un peu long à envoyer mon message
Avatar de l’utilisateur
sergio11
Bavard
 
Messages: 59
Inscrit le: Ven 08 Jan 2016, 22:20
Localisation: 11 Ouveillan
Âge: 64
Echelle pratiquée: N
Prénom: Serge

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 11:11 
Je te montre ce que j'ai fait, peut-être que tu es déjà arrivé à ce résultat

Code: Tout sélectionner
const byte LedC = 2;    // Déclaration des broches des Led
const byte LedS = 3;
const byte LedA = 4;
const byte LedVL = 5;

const byte BnC = 6;     //  Déclaration des broches des boutons de commande
const byte BnS = 7;
const byte BnRougeCli = 8;
const byte BnA = 9;


void setup() {
pinMode (LedC, OUTPUT);      // Configuration des broches Led en sortie
pinMode (LedS, OUTPUT);
pinMode (LedA, OUTPUT);
pinMode (LedVL, OUTPUT);

pinMode (BnC, INPUT_PULLUP);     // Configuration des broches bouton en entrée avec résistance de Pull up
pinMode (BnS, INPUT_PULLUP);
pinMode (BnRougeCli, INPUT_PULLUP);
pinMode (BnA, INPUT_PULLUP);

digitalWrite (LedC,HIGH);     // Extinction de toutes les indications  (Initialisation)
digitalWrite (LedS,HIGH);
digitalWrite (LedA,HIGH);
digitalWrite (LedVL,HIGH);


void loop() {
   if (digitalRead(BnC) == LOW)   // Indication carré présentée si Bouton Carré enfoncé
  {
     digitalWrite (LedC,LOW);
     digitalWrite (LedS,LOW);
     digitalWrite (LedA,HIGH);
     digitalWrite (LedVL,HIGH);
   }
  else if (digitalRead(BnS) == LOW)   // Si condition au dessus n'est pas remplie, indication S si le BnS enfoncé
   {
    digitalWrite (LedC, HIGH);
    digitalWrite (LedS, LOW);
    digitalWrite (LedA, HIGH);
    digitalWrite (LedVL, HIGH);
   }
 
  else if (digitalRead(BnRougeCli) == LOW) //  idem  Rouge Cli
   {
    digitalWrite (LedC, HIGH);
    digitalWrite (LedA, HIGH);
    digitalWrite (LedVL, HIGH);
    digitalWrite (LedS, LOW);
    delay(500);                     // Fonction sommaire pour faire clignoter le rouge
    digitalWrite (LedS, HIGH);
    delay(500);
   }

 
else if (digitalRead(BnA) == LOW)     // idem A
   {
    digitalWrite (LedC, HIGH);
    digitalWrite (LedS, HIGH);
    digitalWrite (LedA, LOW);
    digitalWrite (LedVL, HIGH);
   }

else
   {
    digitalWrite (LedC, HIGH);    // Si aucune condition plus haut remplie  alors Voie Libre
    digitalWrite (LedS, HIGH);
    digitalWrite (LedA, HIGH);
    digitalWrite (LedVL, LOW);
   }
     



Avatar de l’utilisateur
sergio11
Bavard
 
Messages: 59
Inscrit le: Ven 08 Jan 2016, 22:20
Localisation: 11 Ouveillan
Âge: 64
Echelle pratiquée: N
Prénom: Serge

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 11:41 
merci Sergio11, mais non je n'ai pas ce résultat, pour la bonne et simple raison:
le changement d'aspect du signal est automatique, il ne fait appel à aucun bouton ni rien d'autre, c'est juste une animation de diorama, qui n'a donc d'autre fonction que de montrer un signal avec toutes ses combinaisons possibles.
mon code fait simplement appel a une activation successive et selon un délai fixe de 8 secondes ( moins c'est trop court, plus, le cycle complet est trop long), des différentes sorties désignées.
faire bref? sais pas faire
Avatar de l’utilisateur
Greg84
Fécond
 
Messages: 594
Inscrit le: Jeu 09 Sep 2010, 10:03
Localisation: Vedène
Âge: 38
Echelle pratiquée: HO,HOe,N
Prénom: Grégory
Club: Maison

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 11:46 
Bien voila tu m'en diras tant...on sait tout de ta vie...!!
Je vais donc repenser mon petit S,S Cli, A et VL avec ce mode de commande
Avatar de l’utilisateur
sergio11
Bavard
 
Messages: 59
Inscrit le: Ven 08 Jan 2016, 22:20
Localisation: 11 Ouveillan
Âge: 64
Echelle pratiquée: N
Prénom: Serge

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 12:02 
voici le code que j'ai bricolé;
il manque donc tous les aspects clignotants.

/*Allume un aspect d'un signal, successivement toutes les 8 secondes
* Pin 8,9,10,11, 12 13
*/

int pinLed1 = 8;
int pinLed2 = 9;
int pinLed3 = 10;
int pinLed4 = 11;
int pinLed5 = 12;
int pinLed6 = 13;
int delai = 8000;

void setup() {
// feu rouge1
pinMode(pinLed1,OUTPUT);
// feu rouge2
pinMode(pinLed2,OUTPUT);
// feu jaune A
pinMode(pinLed3,OUTPUT);
// feu vert
pinMode(pinLed4,OUTPUT);
// feux Jaunes Ralentissement
pinMode(pinLed5,OUTPUT);
// Oeilleton
pinMode(pinLed6,OUTPUT);

// Eteint tous les feux au début
digitalWrite(pinLed1,LOW);
digitalWrite(pinLed2,LOW);
digitalWrite(pinLed3,LOW);
digitalWrite(pinLed4,LOW);
digitalWrite(pinLed5,LOW);
digitalWrite(pinLed6,LOW);
}

void loop() {
/* code principal:
* debut du programme: présentation du signal au carré
*/
digitalWrite(pinLed1,HIGH);
digitalWrite(pinLed2,HIGH);
delay(delai);
// ouverture au sémaphore
digitalWrite(pinLed1,LOW);
digitalWrite(pinLed2,HIGH);
digitalWrite(pinLed6,HIGH);
delay(delai);
// passage à l'avertissement
digitalWrite(pinLed2,LOW);
digitalWrite(pinLed3,HIGH);
digitalWrite(pinLed6,HIGH);
delay(delai);
// présentation du ralentissement 30
digitalWrite(pinLed3,LOW);
digitalWrite(pinLed5,HIGH);
digitalWrite(pinLed6,HIGH);
delay(delai);
// passage au voie libre
digitalWrite(pinLed4,HIGH);
digitalWrite(pinLed5,LOW);
digitalWrite(pinLed6,HIGH);
delay(delai);
//extinction des feux
digitalWrite(pinLed4,LOW);
digitalWrite(pinLed6,LOW);
delay(delai);
}
faire bref? sais pas faire
Avatar de l’utilisateur
Greg84
Fécond
 
Messages: 594
Inscrit le: Jeu 09 Sep 2010, 10:03
Localisation: Vedène
Âge: 38
Echelle pratiquée: HO,HOe,N
Prénom: Grégory
Club: Maison

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 12:20 
sergio11 a écrit:Salut Greg... il faudrait que tu nous communiques l'interface réalisée pour commander ton signal avec des feux à micro lampes, qu'on puisse écrire un code adapté à ton signal.. au moins savoir si l'indication est commandée par un 0 ou un 5V... Low ou High.
Hier soir je me suis amusé à faire un panneau C,S,Rouge Cli,A, VL
Si cela t'intéresse je peux te le communiquer, c'est un sketch de débutant pour débutant.. Christian aurait beaucoup d'améliorations à apporter mais ça marche... mais c'est le cas le plus simple
Et merci pour ce rappel de S1A...la bible de la signalisation ferroviaire... à moins qu'il ait changé de nom depuis le temps...!!!!


Et oui les séries S ont changé de nom..... c'est devenu du TT(quelque chose).
le contenu n'a pas beaucoup varié, surtout la mise en page!

l'interface il est déjà sur la breadboard: je supprime chaque Led et chaque résistance associée pour les remplacer par le fil qui alimente l'ampoule correspondante, donc chaque ampoule se retrouve connectée au collecteur du transistor correspondant à l'aspect du signal.
ensuite un fil commun, relié au + de l'alimentation assure l'alimentation de l'ensemble des ampoules ( ici du 9V, mais dans mon cas un chargeur qui délivre 7,5V)
faire bref? sais pas faire
Avatar de l’utilisateur
Greg84
Fécond
 
Messages: 594
Inscrit le: Jeu 09 Sep 2010, 10:03
Localisation: Vedène
Âge: 38
Echelle pratiquée: HO,HOe,N
Prénom: Grégory
Club: Maison

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 13:03 
voilà la vidéo du programme, pardonnez le câblage brouillon!

https://youtu.be/xg_DBfSVipI
J'ai réduit le délai à 3 seconde, pour raccourcir la vidéo, ça fonctionne..
faire bref? sais pas faire
Avatar de l’utilisateur
Greg84
Fécond
 
Messages: 594
Inscrit le: Jeu 09 Sep 2010, 10:03
Localisation: Vedène
Âge: 38
Echelle pratiquée: HO,HOe,N
Prénom: Grégory
Club: Maison

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 13:54 
Ok j'ai bien compris... aucun intérêt à hiérarchiser les indications, on les allume dans l'ordre que l'on veut sans priorité.
Par contre, le problème vient de la gestion du temps. La fonction Delay() est utilisable si tu n'as rien d'autre à faire pendant ce temps, puisqu'elle arrête le microcontroleur
Dans ton cas il faut aussi gérer un autre tempo...celui de la fréquence du clignotement
Il faut donc gérer le temps avec la fonction millis() qui est un compteur de temps qui tourne en permanence.
Le principe est: (je vais essayer de ne pas dire de bêtise)
Si valeurCompteurActuel - ValeurCompteurAncien > 8000 //(on compte en ms)
{
présentation de la nouvelle indication
ValeurCompteurAncien = ValeurCompteurActuel //On met à jour le compteur
}
Et entre temps tu geres ton clignotement en remplaçant les Delay de mon sketch par des millis

J'ai fait çà de tête sans en avoir une grande expérience, il faut que tu peaufines la syntaxe et déclarer les variables correspondantes..n'essaye pas tel quel ... c'est juste pour te donner la piste sur laquelle je vais aussi travailler
Avatar de l’utilisateur
sergio11
Bavard
 
Messages: 59
Inscrit le: Ven 08 Jan 2016, 22:20
Localisation: 11 Ouveillan
Âge: 64
Echelle pratiquée: N
Prénom: Serge

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 13:59 
Greg84 a écrit:j'ai bidouillé vite fait le schéma sur fritzing, grosso modo ma platine d'essai,se présente comme ça actuellement...


Pour un premier schéma avec fritzing, c'est super ! :wink:
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1631
Inscrit le: Mer 25 Sep 2013, 16:14

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 14:01 
Greg84 a écrit:le changement d'aspect du signal est automatique, il ne fait appel à aucun bouton ni rien d'autre, c'est juste une animation de diorama, qui n'a donc d'autre fonction que de montrer un signal avec toutes ses combinaisons possibles.


C'était une des questions que je voulais te poser (utilisation d'un bouton ou non pour présenter les différents cas) ; j'ai maintenant la réponse.
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1631
Inscrit le: Mer 25 Sep 2013, 16:14

Re: Galère de débutant!

Publié: Sam 13 Fév 2016, 14:11 
Greg84 a écrit:voici le code que j'ai bricolé;
il manque donc tous les aspects clignotants.
..... PRGM ......


Pas facile de lire un tel code ; donc, petite astuce lorsque tu veux inclure du code dans un post.
1- Tu utilises la balise Code, tu obtiens deux pavés (comme pour "citer") [code][/code] et tu insères ton code entre les deux pavés. Ainsi le lecteur peut facilement le sélectionner pour l'inclure dans son IDE et ainsi l'essayer (par exemple, très utile quand on est plusieurs à travailler sur le même projet, TP par exemple :lol: )
2- Sinon, dans l'IDE d'Arduino, il y a une option "copier pour le forum", ce qui donne le même résultat quand tu colles dans ton post.
Avatar de l’utilisateur
Arduino
Prolixe
 
Messages: 1631
Inscrit le: Mer 25 Sep 2013, 16:14

PrécédentSuivant

Retour vers Arduino

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 3 invité(s)