Aller au contenu

Filament ABS

Cwazy-Cookie

[Aide débutant] Piloter pont en H

Messages recommandés

Hello,

 

Bon, c’est sympa l’impression de gadget/deco en 3D mais ce n’est pas ça qui va s’occuper de mon petit jardinet. Du coup, je suis parti à la découverte du monde merveilleux qu’est l’arduino.

J’ai pu rapidement crée des petits montages et découvrir les joies du code sur Thinkercad et l’option circuit. Cependant, je bloque depuis jeudi sur un souci que je ne comprends pas du tout…

Pour crée une fonction, aucun souci. Mais dès qu’il s’agit d’en placé plusieurs à la suite, ça part en cacahuète.

 

Objectif : Faire avancé un chariot jusqu’à la fin de course A, repartir jusqu’à la fin de course B et recommencé.

Petit photo du code  (oui j’utilise les bloc comme un petit n’enfant )

835205606_Capturedu2020-02-1712-08-55.thumb.png.58694fc09df169bebe5c23cddd1e5bd3.png

Lorsque je lance la simulation, le moteur démarre, se coupe une fois la fin de course A détecter et repart dans l’autre sens. Ensuite plus rien ne réponds et la rotation du moteur reste bloqué dans le sens inverse. Peu importe ce que je place après le bloc ''définir la broche 5 sur élevé''. C'est comme si le programme n'avancé plus et rester bloqué sur cette fonction...

 

Si quelqu'un pourrait m'expliqué le pourquoi du comment, ça me serait d'une grande aide. Car là, je sèche vraiment... et ça commence à me courir sur le n'haricot.

 

Merci d'avance. 🙂

 

 

 

 

Modifié (le) par Cwazy-Cookie

Partager ce message


Lien à poster
Partager sur d’autres sites

*Quelques cheveux arraché plus tard*

Petit test avec ce code

 

Si j'appuie un coup sur Ba, le moteur s'inverse, et lorsque j'appuie sur Bb, il repart sans le sens inverse. PARFAIT! But.... impossible de faire quoi que ce soit avant sans que ça prennent le dessus sur ça...

1644232264_Capturedu2020-02-1714-08-37.thumb.png.ec01224198079c44a5c52f489926a7e4.png

 

Si je rajoute la boucle qui fonctionné avant ici, ça ne fonctionne pas...

703583850_Capturedu2020-02-1714-29-01.thumb.png.894be0d21f15c6c80b2da1ac9e56d1e3.png

 

project coding GIF

Modifié (le) par Cwazy-Cookie

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

Salut

La programmation arduino est formée sur le principe d'une boucle et ton script ne sait pas dans quelle phase du mouvement tu es.

Dans ton cas il te faut une boucle au sein de la boucle, pour définir si tu es en mode avance ou en mode recul, et ainsi tester le capteur de fin de course qui correspond.
 

void loop() {

  if (etat==0){

    if (Ba != HIGH ) {
      // instruction pour faire avanceer dans un sens
    } else {
      // arret moteur
   etat = 1 ;
    }
    
  }
  if (etat==1){

    if (Bb != HIGH ) {
      // instruction pour faire avancer dans l'autre sens
    } else {
      // arret moteur
   etat = 0 ;
    }
  }
}

avec un truc comme ça, tu devrais pouvoir arriver à ce que tu souhaites

A+  Fred

Modifié (le) par Invité

Partager ce message


Lien à poster
Partager sur d’autres sites

Mille merci @Vectoriz. J'avais fait un test de modification d'état vendredi, mais il avait foiré. Et là, ça fonctionne! :youpi:

int Ba = 0;

int Bb = 0;

int Etat = 0;

void setup()
{
  pinMode(6, INPUT);
  pinMode(7, INPUT);
  pinMode(3, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(5, OUTPUT);
}

void loop()
{
  Ba = digitalRead(6);
  Bb = digitalRead(7);
  if (Ba == HIGH) {
    Etat = 1;
  }
  if (Bb == HIGH) {
    Etat = 0;
  }
  if (Etat == 1) {
    digitalWrite(3, LOW);
    delay(1000); // Wait for 1000 millisecond(s)
    digitalWrite(2, HIGH);
    digitalWrite(5, HIGH);
  }
  if (Etat == 0) {
    digitalWrite(5, LOW);
    delay(1000); // Wait for 1000 millisecond(s)
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
  }
}

Me reste plus qu'a essayé tout ça dans le monde réel et modéliser mon prototype pour l'impression. 😄

Encore merci, car j'étais à deux doigt de mettre tout ça dans un tiroir pour plus tard!

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité

C'est le problème de la programmation, des fois il est possible de tourner en rond pendant des heures voir des jours, alors que la solution est toute simple.

Si tu as besoin d'autre chose, je me ferai un plaisir de t'apporter mon aide, si mes connaissances me le permettent bien entendu 😉

A+ Fred

Partager ce message


Lien à poster
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez poster un message et vous inscrire plus tard. Si vous avez déjà un compte, connectez-vous afin de poster avec.

Invité
Répondre à ce sujet…

×   Vous avez copié du contenu avec formatage.   Supprimer le formatage

  Only 75 emoji are allowed.

×   Votre lien a été automatiquement intégré.   Afficher en tant que lien à la place

×   Le contenu sauvegardé a été restauré.   Effacer l'éditeur

×   You cannot paste images directly. Upload or insert images from URL.


  • Sur cette page :   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×
×
  • Créer...