Aller au contenu


Photo
- - - - -

Débutant en programmation arduino et moteur NEMA


  • Veuillez vous connecter pour répondre
33 réponses à ce sujet

#21 Forthman

Forthman

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 919 messages
  • Gender:Not Telling
  • Location:Montauban (82)

Posté 27 juin 2019 - 07:08

ok, donc le transfo sur la prise 230V n'était pas pour alimenter les moteurs ?

le relais que tu as (sur la photo)  se branche sur une sortie de l'arduino pour pouvoir commuter une puissance supérieure (toujours celui  sur ta photo il peut commuter du 250Vac 10A entre autre)

 

Il te faut donc un relais dans "l'autre sens", qui soit alimenté en 220V et qui délivre un contact pour attaquer une entrée de l'arduino.

 

En fait, je pense même qu'il faudrait remplacer ce relais par un petit montage à base d'optocoupleur



#22 Stéphanie Jenny

Stéphanie Jenny

    Nouveau membre

  • Membres
  • 17 messages

Posté 27 juin 2019 - 07:49

Pardonnez moi je suis vraiment débutante dans le domaine je n'ai pas tout compris dans votre message mon relais est branché sur l arduino sur le pin digital8 et le transfo est bien relié au gnd et vcc du driver est il possible de demander a arduino de lire l’état du relais pour savoir si il reçois le 230V et si oui de basculer en normalement fermer afin que le moteur soit alimenté et ensuite de dire a l arduino de faire avancer le moteur de x pas 

 

petite parenthèse c'est montage à base d'optocoupleur, cela me permettrai de faire quoi?

 

merci encore pour vos réponse et pour le temps que vous accordée



#23 Stéphanie Jenny

Stéphanie Jenny

    Nouveau membre

  • Membres
  • 17 messages

Posté 28 juin 2019 - 10:41

Bonsoir je reviens vers vous car après réflexion je me demande si il est possible de se servir du bouton du joystick pour que lorsque on appui une fois le moteur avance de x pas et lorsque on re appuie le moteur recule pour revenir à sa position merci pour vos réponses.

#24 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 905 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 29 juin 2019 - 02:30

Si vous êtes capable de vous servir du bouton du joystick pour faire allumer et éteindre la led sur la pin 13 de votre arduino : Oui . 
Pas la peine de chercher à faire plus compliqué tant que vous ne saurez pas faire ça. 

Il faut toujours aller étape par étape. =)

Mais on est là pour aider.


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !

 

Les réalisations de Mike118  

 

 

 


#25 Stéphanie Jenny

Stéphanie Jenny

    Nouveau membre

  • Membres
  • 17 messages

Posté 04 juillet 2019 - 04:04

Bonjour à toute la communauté je vient vers vous car j'ai un problème concernant un projet.

 

je souhaite faire fonctionner un moteur nema 23 avec un capteur à ultrason  voici le code que j'ai utilisée

 

 
# include <Stepper.h>
 
 
const int echoPin = 7;
const int triggerPin = 6;
 
#define motorPin1 8
#define motorPin2 9
#define motorPin3 11
#define motorPin4 10
int distanceAvant;
 
float intervalle;
 
const int stepsPerRevolution = 20000;
Stepper myStepper(stepsPerRevolution,  10, 11);
 
void setup() {
  // put your setup code here, to run once:
 Serial.begin(9600);
  pinMode(echoPin, INPUT);
  pinMode(triggerPin, OUTPUT);
  myStepper.setSpeed (2000);
 
}
 
void mesurerDistanceAvant()
 
{
  
   digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin, HIGH); //Envoie d'une onde sonore
  delayMicroseconds(5);
  digitalWrite(triggerPin, LOW);
  intervalle = pulseIn(echoPin, HIGH); //Réception de l'écho
  intervalle = intervalle/5.8/10; //Conversion de la différence de temps entre l'envoie de l'onde sonore et la réception de l'écho en distance (cm)
  Serial.println("Distance avant:");
  Serial.println(intervalle);
  distanceAvant = intervalle; //Arrondi
  
  
  
  
  
  }
 
void modeUltrason()
 
{
    mesurerDistanceAvant();
 
  
  if(distanceAvant > 10) //Si la distance avant est de moins de 25cm
  {
    Serial.println("démarrage moteur");
    Serial.println();
    Serial.println("avance");
myStepper.step(stepsPerRevolution);
 
delayMicroseconds (5);}
else (distanceAvant < 10);//Si la distance avant est de plus de 25cm
 {
   Serial.println("Arret des moteurs");
    Serial.println();
    digitalWrite(8,LOW);
 digitalWrite(10,LOW);
 digitalWrite(9,LOW);
 digitalWrite(11,LOW); 
delay(500);
 }
}
void loop() {
  // put your main code here, to run repeatedly:
  modeUltrason();
  mesurerDistanceAvant();
}
 
 
le problème c'est que lorsque le capteur détecte qu'il faut tourner le moteur tourne mais pas de façon continue il tourne puis s’arrête , puis tourne , puis s’arrête etc
 
j'ai essayé de changer les delay mais rien y fais il marque un pause entre chaque tour pouvez vous me dire ce qu'il ne va pas dans mon code merci pour vos réponses.


#26 Forthman

Forthman

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 919 messages
  • Gender:Not Telling
  • Location:Montauban (82)

Posté 04 juillet 2019 - 05:04

à première vue (je ne sais pas aligner 3 lignes de code, mais j'arrive à déchiffrer)

 

Le fonctionnement du programme est :

 

- mesure de la distance

- si distanceAvant > 10 alors active moteur pour un tour complet (20000 pas)

 

donc oui, le moteur fait un tour complet (20000 pas) entre chaque "captature"

 

 

edit : tu peux diminuer le nombre de pas, ça va toujours faire des à-coups mais plus rapprochés



#27 Stéphanie Jenny

Stéphanie Jenny

    Nouveau membre

  • Membres
  • 17 messages

Posté 04 juillet 2019 - 05:16

Merci pour réponse  mais comment faire pour qu'il tourne de facon continue quel sont les changements du code que je dois faire merci a vous pour vos réponse



#28 Forthman

Forthman

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 919 messages
  • Gender:Not Telling
  • Location:Montauban (82)

Posté 04 juillet 2019 - 06:08

bien le meilleur moyen c'est d'apprendre à coder...

Oui, dit comme ça, ça fait le mec relou qui veut pas aider, mais tant que tu ne comprendra pas la programmation, tu ne pourras pas faire "ce que tu veux"

 

Pour cet exemple, ce n'est pas une simple modif qu'il faudra, en fait tu aurais donné un programme de LED clignotante on en serait preque au même point  :pardon:

Là il faut que l’acquisition de la distance se fasse en "temps réel" ,pendant que le moteur tourne.

Mais comme je l'ai écrit plus haut, je ne suis pas assez calé :help:

 

 



#29 Stéphanie Jenny

Stéphanie Jenny

    Nouveau membre

  • Membres
  • 17 messages

Posté 04 juillet 2019 - 06:55

Merci pour votre réponse j'essaie d'apprendre a coder au fur et a mesure de mes projets car pour moi c'est  complexe tout çà mais merci pour votre aide 



#30 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 905 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 04 juillet 2019 - 07:29

Alors, 

En effet là on arrive sur un cas de problème de " temps réel " où on demande à l'arduino de faire deux choses en même temps ... 
Globalement l'arduino ne peut pas faire deux choses exactement en même temps mais il y a des astuces ... 

Une d'elle dans votre cas c'est d'être capable de savoir faire tourner le moteur pas à pas pendant qu'on fait une mesure du capteur... 
Une autre serait d'utiliser deux arduino ...

 

Dans tous les cas il faut savoir faire tourner un moteur pas à pas en continu =) Est ce que cette étape est déjà maîtrisée ? 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !

 

Les réalisations de Mike118  

 

 

 


#31 Stéphanie Jenny

Stéphanie Jenny

    Nouveau membre

  • Membres
  • 17 messages

Posté 04 juillet 2019 - 07:47

Bonjour merci de votre réponse oui je sais faire tourner un moteur pas a pas en continue j'arrive aussi a les piloter avec un joystick mais je ne sais pas comment faire pour que l'arduino face deux chose en même temps pouvez m'aider svp merci



#32 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 7 905 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 04 juillet 2019 - 09:27

Postez votre code pour faire tourner le moteur en continu et on va le modifier pour essayer de simuler le fait que l'arduino fasse deux choses en même temps mais par contre je vous préviens tout de suite : Oubliez les fonctions " delay() " ou "delayMicroseconds() " elles n'ont plus le droit de faire parti de votre code si vous souhaitez avoir le résultat attendu. 

 

Donc j'attends votre code capable de faire tourner votre moteur sans utiliser ces fonctions ;)

 

à très bientôt ! =)


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !

 

Les réalisations de Mike118  

 

 

 


#33 Forthman

Forthman

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 919 messages
  • Gender:Not Telling
  • Location:Montauban (82)

Posté 04 juillet 2019 - 10:18

Je pense que quand Mike parle d'étape maîtrisée, il sous-entend comprendre l'entièreté du programme, voire de savoir l'écrire soi-même :pardon:



#34 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 391 messages
  • Gender:Male
  • Location:Paris

Posté 04 juillet 2019 - 10:57

Si ça peut aider, voilà quelque reflexions que j'ai posé ici quand j'ai compris la chose.

https://www.robot-ma...s-avec-arduino/

Si je peux me permettre ce conseil : commence par les faire actions une par une. Avance, arrête, lis ton capteur et recommence. Tu amélioreras ensuite avec des interruptions.


Podcast Made By Humans

Je cherche des volontaires de tous niveaux pour nos petites conversations entre hobbyistes.

Accès aux salles secrètes

 





0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users