Auteur Sujet: bonjour à tous  (Lu 460 fois)

frederic

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
bonjour à tous
« le: avril 02, 2021, 03:29:06 pm »
bonjour

voici mon petit projet pour mon musée

j'ai une voie de démonstration en HO DC (pas de digital)
sur la quelle j'aimerais faire des navettes automatique
je vous symbolise la voie ---------<=========>------- (excuser moi pour le schéma rudimentaire en rouge)
pour se faire je voudrais utiliser mon Arduino uno avec des contacts ILS
 https://www.ebay.fr/itm/Module-ILS-Interrupteur-lame-souple-3-3V-5V-Arduino-reed-switch-MKA14103-/123653306363
de chaque coté
1 relais pour piloté le module de freinage et de démarrage progressif
1 relais inverseur de polarité
le temp d arrêt est gérer par l' Arduino
il me faut aussi un bouton "start" et un arrêt après 2 allé retour
pouvez-vous m'aider svp 

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2286
  • 100% Arduino et N
    • Voir le profil
Re : bonjour à tous
« Réponse #1 le: avril 02, 2021, 04:58:51 pm »
Bonjour,

Votre projet est sympa, mais on ne voit pas les éléments de recherche que vous auriez pu faire dans le site Locoduino (éditorial et forum) pour construire ce projet à partir de l'expérience et le partage d'autres modélistes.

S'il y a une truc qu'on ne peut pas faire à votre place, c'est ça  ???

Je suis certain que vous allez trouver votre bonheur rapidement.

Cordialement.

La qualité des réponses est liée à la qualité des questions. Les Winners, c'est juste des Losers qui s'acharnent..

frederic

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : bonjour à tous
« Réponse #2 le: avril 02, 2021, 07:28:05 pm »
bonsoir
merci pour votre aide

Sur se merveilleux site, j'ai vue plein de chose génial, mais je voudrais commencer simple avec  le vas et viens en DCC c'est se qui ma donné des idées
j'ai déjà commencé un début de programme avec lequel j'essaye de créer une tempo avec delay ou millis pour le temp d'attente, j'ai simulé mes ILS par des boutons poussoir et mes relais 5v par des DELs (avec resistance)
je précise que mon grand réseau N est gérer par ordinateur mais la j y suis pour rien lol
par contre pour tout les animations des réseaux je pense utiliser des Arduinos
je vais essayer de vous mettre mon début de programme demain ne pas rire svp   

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2286
  • 100% Arduino et N
    • Voir le profil
Re : bonjour à tous
« Réponse #3 le: avril 02, 2021, 07:37:16 pm »
Surtout prenez votre temps pour relire votre programme et le tester avec des Serial.print pour afficher les états.
Vous avez bien commencé à mettre en place quelques outils, c’est bien !

On préférerait ne pas rigoler en le lisant  ;D
« Modifié: avril 03, 2021, 09:32:32 am par Dominique »
Cordialement.

La qualité des réponses est liée à la qualité des questions. Les Winners, c'est juste des Losers qui s'acharnent..

frederic

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
voici mon début

voie HO 1 train
int ILS1 = 2;   //entrée voie A actionne
                     //1° relais 5V (K1) "arret" pendant 20 seconde
                    //2° après 15 seconde enclenche le relais 5V (K2)
                   //inverseur sens de marche
             
int ILS2 = 3; //entrée voie B actionne
                  //1° relais 5V (k1) "arret" pendant 20 seconde
                //2° après 15 seconde relache le relais 5V (K2)
              //inverseur sens de marche

int K1 = 4;             // relais "arret"
int K2 = 5;             // relais "inverseur"
[color=red]int timeDelay1 = 20000; // tempo d'arret
int timeDelay2 = 15000; //tempo avant inversion[/color]

unsigned long debounceTimeStamp;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;

void setup() {
 pinMode (ILS1, INPUT_PULLUP);
 pinMode (ILS2, INPUT_PULLUP);
 pinMode (K1, OUTPUT);
 pinMode (K2, OUTPUT);
}

void loop() {
  if (reading != lastButtonState) {
    // reset  debounce temps
    lastDebounceTime = millis();
}
« Modifié: avril 03, 2021, 01:31:16 pm par frederic »

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2286
  • 100% Arduino et N
    • Voir le profil
Re : bonjour à tous
« Réponse #5 le: avril 03, 2021, 01:25:05 pm »
Et alors ?
Cordialement.

La qualité des réponses est liée à la qualité des questions. Les Winners, c'est juste des Losers qui s'acharnent..

frederic

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : bonjour à tous
« Réponse #6 le: avril 03, 2021, 01:31:46 pm »
je suis perdu je cherche comment avec millis crée mes tempos avant l'action du relais
« Modifié: avril 03, 2021, 01:36:39 pm par frederic »

frederic

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : bonjour à tous
« Réponse #7 le: avril 03, 2021, 01:49:16 pm »
essai avec millis
int ILS1 = 2;  //entrée voie A actionne
              //1° relais 5V (K1) "arret" pendant 20 seconde
              //2° après 15 seconde enclenche le relais 5V (K2)
              //inverseur sens de marche
             
int ILS2 = 3; //entrée voie B actionne
              //1° relais 5V (k1) "arret" pendant 20 seconde
              //2° après 15 seconde relache le relais 5V (K2)
              //inverseur sens de marche

int K1 = 4;             // relais "arret"
int K2 = 5;             // relais "inverseur"
//int timeDelay1 = 20000; // tempo d'arret
//int timeDelay2 = 15000; //tempo avant inversion
//int millis1 = 20000;
//int millis2 = 15000;
 int temps1;
     
    if(millis()-temps1> 20000)
   
 int temps2;
     
    if(millis()-temps2> 15000)


unsigned long debounceTimeStamp;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;

void setup() {
 pinMode (ILS1, INPUT_PULLUP);
 pinMode (ILS2, INPUT_PULLUP);
 pinMode (K1, OUTPUT);
 pinMode (K2, OUTPUT);
}

void loop() {
  if (reading != ILS1) {
    // reset  debounce temps
    lastDebounceTime = millis();

 if (reading != ILS2) {
    // reset  debounce temps
    lastDebounceTime = millis();

   
}

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2286
  • 100% Arduino et N
    • Voir le profil
Re : bonjour à tous
« Réponse #8 le: avril 03, 2021, 02:11:43 pm »
Vos pouvez regarder l’exemple “blink without delay”  qui est l’exemple typique dont vous avez besoin.

Je vous conseille de chercher un peu avant de décréter “je n’y arrive pas”. Ce n’est pas pour vous embêter, c’est pour vous permettre de devenir bon et autonome plus tard.

Faites attention au type des données : millis() retourne un unsigned long, pas un int.
Lisez aussi souvent le menu aide/référence.
« Modifié: avril 03, 2021, 02:16:18 pm par Dominique »
Cordialement.

La qualité des réponses est liée à la qualité des questions. Les Winners, c'est juste des Losers qui s'acharnent..

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2286
  • 100% Arduino et N
    • Voir le profil
Re : bonjour à tous
« Réponse #9 le: avril 03, 2021, 02:20:17 pm »
Cordialement.

La qualité des réponses est liée à la qualité des questions. Les Winners, c'est juste des Losers qui s'acharnent..

frederic

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : bonjour à tous
« Réponse #10 le: avril 03, 2021, 07:13:22 pm »
merci pour ton aide
oui je l ai lue [code
int ILS1 = 2;  //entrée voie A actionne
              //1° relais 5V (K1) "arret" pendant 20 seconde
              //2° après 15 seconde enclenche le relais 5V (K2)
              //inverseur sens de marche
             
int ILS2 = 3; //entrée voie B actionne
              //1° relais 5V (k1) "arret" pendant 20 seconde
              //2° après 15 seconde relache le relais 5V (K2)
              //inverseur sens de marche

int K1 = 4;             // relais "arret"
int K2 = 5;             // relais "inverseur"

int timeDelay = false;


void K10()
{
  if (digitalRead(ILS1) == HIGH && !ILS1)
  {
    ILS1 = !ILS1;  // ILS1 active le relais K1
   
 
   
   
  else if (K1 == LOW && intervalle >860) {
    K1 = HIGH;
    digitalWrite(4, K1);
    dateDernierChangement4 = dateCourante; // après 860 mon relais K1 se desangage
  }

}   
void setup()
{

}

void loop()
{
 
  }]

frederic

  • Newbie
  • *
  • Messages: 7
    • Voir le profil
Re : bonjour à tous
« Réponse #11 le: avril 03, 2021, 07:17:10 pm »
le Blink without Delay est très intéressant merci je regarde demain en détail
bonne soirée

msport

  • Hero Member
  • *****
  • Messages: 1287
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : bonjour à tous
« Réponse #12 le: avril 03, 2021, 07:24:29 pm »
Je suggère la lecture de la série d'article La programmation, qu’est ce que c’est ?
https://www.locoduino.org/spip.php?article7 et suivants (voir en  bas des articles)

pour éviter de poster des programmes qui ne passent pas à la compilation, faute d'une déclaration complète des variables et de la présence d'instructions dans les déclarations.

Mais, effectivement,  avant de se lancer dans l'écriture du code, il vaudrait mieux lister au brouillon la logique (en pseudo code) enchainant ce qu'on veut réaliser, avec les entrées d'un coté et les sorties de l'autre, et la logique au milieu. Ce qui vous permettra de lister toutes les variables dont vous avez besoin.
Cordialement