Aller au contenu


Photo
- - - - -

Panne moteur de coupe, robot tondeuse diy


25 réponses à ce sujet

#1 moriss

moriss

    Membre

  • Membres
  • 24 messages

Posté 05 avril 2021 - 02:06

Salut

Voila, l'année dernière, pendant le confinement, je me suis lancé dans le robot tondeuse homemade

j'ai récup les plans sur reprap windturbine (désolé je fais pas de pub mais juste pour donner les sources)

 

tout à bien marché mais cette fois la commande de puissance du moteur de coupe à lacher, donc il roule, mais ne coupe plus... pas pratique...

 

j'ai essayé de remplacer la partie puissance par un driver "tout prêt" un IBT2 qui est surdimensionné... mais impossible de le faire fonctionner, ou plutot, le seul truc que j'arrive à faire c'est du tout ou rien, alors que je souhaiterai réguler ma vitesse (j'ai un moteur 10000rpm)

 

le moteur est un SP3657-30 

 

j'ai également essayé avec un L298N, mais il est bcp trop limite...il surchauffe très vite, mais la régulation fonctionne...

 

merci de vos conseils, j'aimerai trouver un driver "du commerce" pour m'affranchir de la partie électronique que je ne maitrise pas

 

merci



#2 Ludovic Dille

Ludovic Dille

    Habitué

  • Membres
  • PipPip
  • 186 messages
  • Gender:Male
  • Location:Belgique

Posté 05 avril 2021 - 04:24

Hello !

Quand tu dis que ton L298N est limité, tu as vérifié que ton module est bien dimensionné pour ton moteur ?
De ce que je vois sur internet ton moteur est un 60 W (35W utile / 0.65) avec une tension nominale de 7.2 V et 8A

Le L298N (https://wiki.mchobby...le=Pont-H_L298N) est plus limité:
- Courant maximum: 2A (en pointe)
- Pmax: 25 W
...
Donc le module est clairement sous-dimensionné pour alimenter ton moteur. En regardant vite fais, j'ai trouvé le "bts7960" qui pourrait convenir. Mais sinon sur la boutique de robot-maker tu as ce drivre: https://www.robot-ma...on-13a-348.html

Ludo



#3 moriss

moriss

    Membre

  • Membres
  • 24 messages

Posté 05 avril 2021 - 04:28

Merci Ludo, 

 

oui oui le L298N est trop court, mais il "marche"

 

quand je parlais du IBT2 c'est bien un bt7960, mais impossible d'avoir un fonctionnement correcte.... 

 

merci pour le lien je vais checker



#4 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 05 avril 2021 - 04:43

 

j'ai récup les plans sur reprap windturbine (désolé je fais pas de pub mais juste pour donner les sources)

 

 

PS : Tu peux mettre des liens il y a pas de soucis 

 

 

 

 

j'ai essayé de remplacer la partie puissance par un driver "tout prêt" un IBT2 qui est surdimensionné... mais impossible de le faire fonctionner, ou plutot, le seul truc que j'arrive à faire c'est du tout ou rien, alors que je souhaiterai réguler ma vitesse (j'ai un moteur 10000rpm)

 

 

 

Tu as un lien de la doc de ton driver à partager ? Et tu peux indiquer comment tu l'as câblé ? 
Peux tu faire des essais " hors " machine avec genre juste une arduino de câblé et un code d'exemple ? 


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 !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#5 moriss

moriss

    Membre

  • Membres
  • 24 messages

Posté 05 avril 2021 - 04:51

salut

merci de ton aide

 

Alors j'ai un IBT-2 / BT7960 : exemple ici https://fr.aliexpres...earchweb201603_

 

cablage j'ai essayé un peu tout ce que j'ai trouvé:

http://www.hessmer.org/blog/2013/12/28/ibt-2-h-bridge-with-arduino/

 

j'ai jamais fait avec le potentiometre, j'ai directement mis une valeur fixe analogwrite...

 

cablage un peu tout essayé, soit il démarre en directe des que le 5V est ok, soit je peux le piloter avec l'arduino sur une sortie digitalwrite R-EN ou L-EN, mais iimpossible de faire varier

 

J'ai plus les bouts de code, mais j'ai un autre arduino uno pour test...

 

Encore merci de votre aide



#6 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 05 avril 2021 - 07:01

plusieurs façon de brancher le tout, mais il te faut " deux signaux pwm si tu veux pouvoir faire varier la vitesse dans les deux sens. 

exemple de câblage : les deux EN tu les mets sur le 5V, les left et right pwm tu les met sur les gpio pwm de ta arduino. 

En mettant 100% left et 0% right ça va tourner dans un sens, si tu inverse ça va tourner dans l'autre sens. 

Pour baisser la vitesse tu fait 50% left 0% right pour diminuer de 50% et inversement pour 50% dans l'autre sens...


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 !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#7 moriss

moriss

    Membre

  • Membres
  • 24 messages

Posté 06 avril 2021 - 01:16

salut, 

je vais retester, mais ça correspond bien à mes tests et ça ne fonctionne pas...

 

(j'ai besoin que d'1 seul sens de rotation, c'est un moteur de coupe) mais juste de "maitriser" la vitesse de rotation

analogwrite (pinoutx, 50); par exemple



#8 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 06 avril 2021 - 09:31

poste un schémas de ton câblage,et une photo du câblage en réel, poste ton code ... fait des vidéo pour montrer le problème ... 
Soit tu as mal fait quelque chose, soit c'est ton câblage est pas bon, soit ton code est pas bon ou ne correspond pas à ton câblage. 
Sinon c'est ton driver qui est HS, mais en général l'erreur est le plus souvent entre la chaise est le bureau ;)  ( Pas d'offense c"est comme ça qu'on apprend ;) )


Tu as choisis quel pin pour faire ton analog write ?  tu utilises une arduino uno ? 

Bref sans plus de détails difficile de te dire ce qui va pas. 

Poster complètement ton problème avec le maximum de détails ici, c'est 80 à 90% du problème de résolu ;)  Et ça évite des allers retours de messages ^^

 


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 !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#9 moriss

moriss

    Membre

  • Membres
  • 24 messages

Posté 07 avril 2021 - 09:48

Bonjour, 

Aucun pb, et aucun soucis, je suis également persuadé que le pb vient de moi, d'où ma visite et demande ici.

Je referai une série de tests... et je reposterai un résumé ici en détail.



#10 moriss

moriss

    Membre

  • Membres
  • 24 messages

Posté 10 avril 2021 - 12:10

Salut

me revoila en mode test:

 

Donc mon pb, impossible de faire fonctionner un IBT-2 (BTS7960B) avec un arduino elegoo uno R3

le moteur est un SP3657-30 

 

j'utilise les pin :

5 : pwm sens 1

6 : pwm sens 2

 

9 : L_EN

10_R_EN

 

VCC et GND pris sur l'arduino

rien branché sur les "IS"

int pwm5 = 5; // 
int pwm6 = 6; // 
int en9 = 9;
int en10 = 10;
 
 
 
void setup() {
 pinMode(pwm5, OUTPUT);
 pinMode(pwm6, OUTPUT);
 pinMode(en9, OUTPUT);
 pinMode(en10, OUTPUT);
 
}
 
void loop() {
 digitalWrite(en9, LOW);
 digitalWrite(en10,LOW);
 analogWrite(pwm5,0);
 analogWrite(pwm6,0);
 delay(1000);
 
 digitalWrite(en10,HIGH);
 analogWrite(pwm6,40);
 delay(2000);
 
  digitalWrite(en9, LOW);
 digitalWrite(en10,LOW);
 analogWrite(pwm5,0);
 analogWrite(pwm6,0);
 delay(1000);
 
 digitalWrite(en9,HIGH);
 analogWrite(pwm5,40);
 delay(2000);
}


#11 moriss

moriss

    Membre

  • Membres
  • 24 messages

Posté 10 avril 2021 - 12:14

oups...

me reste la photo du cablage à uploader ... mais bon, rien de compliquer

 

arduino <=> IBT2

5 <=> RPWM

6 <=> LPWM

9 <=>REN

10 <=>LEN

 

GND <=> GND

+5 <=> VCC

 

Des idées ?



#12 moriss

moriss

    Membre

  • Membres
  • 24 messages

Posté 10 avril 2021 - 12:20

autre essaie

int pwm5 = 5; // 
int pwm6 = 6; // 
int en9 = 12;
int en10 = 13;
 
 
 
void setup() {
 pinMode(pwm5, OUTPUT);
 pinMode(pwm6, OUTPUT);
 pinMode(en9, OUTPUT);
 pinMode(en10, OUTPUT);
 
}
 
void loop() {
 digitalWrite(en9, LOW);
 digitalWrite(en10,LOW);
 analogWrite(pwm5,0);
 analogWrite(pwm6,0);
 delay(1000);
 
 digitalWrite(en9, HIGH);
 digitalWrite(en10,HIGH);
 analogWrite(pwm5,0);
 analogWrite(pwm6,10);
 delay(1000);
 
  digitalWrite(en9, LOW);
 digitalWrite(en10,LOW);
 analogWrite(pwm5,0);
 analogWrite(pwm6,0);
 delay(5000);
 
 
}

Image(s) jointe(s)

  • IMG_20210410_123440.jpg


#13 moriss

moriss

    Membre

  • Membres
  • 24 messages

Posté 10 avril 2021 - 12:29

le plus étonnant c'est qu'il ne tient pas compte des ordres PWM

 

exemple :

 

 digitalWrite(en9, HIGH);
 digitalWrite(en10,HIGH);
 analogWrite(pwm5,30);
 analogWrite(pwm6,30);
 
ça fonctionne quand meme


#14 moriss

moriss

    Membre

  • Membres
  • 24 messages

Posté 10 avril 2021 - 12:41

CA Y EST !!!!!!!!!!! j'ai trouvé !!!!!!!

 

c'est une question de valeur analogwrite...

 

je voulais que mon moteur tourne doucement, et je sais pas pourquoi mais il faut mettre une valeur "forte"

comme si on parlait d'attenuation, de ralentissement.... 

 

en gros analogwrite(pwm, 220) marche parfaitement



#15 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 969 messages
  • Gender:Male
  • Location:Anglet

Posté 11 avril 2021 - 12:46

Bonne nouvelle ! Ce driver fonctionne donc avec des niveaux logique inverse. 
Intéressant à savoir! =)


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 !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#16 moriss

moriss

    Membre

  • Membres
  • 24 messages

Posté 12 avril 2021 - 08:48

voila c'est exactement ça !

tout fonctionne nickel !



#17 moriss

moriss

    Membre

  • Membres
  • 24 messages

Posté 25 avril 2021 - 06:00

Salut, 

me revoila

 

J'aurai besoin d'un coup de main, je voudrais transferer le code d'un Uno vers un nodemcu V3

J'arrive à faire démarrer le moteur, mais une nouvelle fois, pas moyen de faire varier la valeur

Des idées ?

 

d'avance merci



#18 Melmet

Melmet

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 521 messages
  • Gender:Male
  • Location:Saint-Sozy (46200)

Posté 26 avril 2021 - 06:08

Montre le brochage de l'ESP que tu as utilisé.


Ne demande jamais à un robot de faire ce que tu peux faire toi même. :nono: :laugh1:


#19 moriss

moriss

    Membre

  • Membres
  • 24 messages

Posté 26 avril 2021 - 09:11

Salut

j'utilise les 4 pin D1 à D4

 

int pwm5 = D1; // 
int pwm6 = D2; // 
int en9 = D3;
int en10 = D4;
 
int in_moteur = A0;
int val_in_moteur = 0;
 
float moyenne = 0;
int nb_repeat = 3;
//int val_out_moteur = 0;
 
 
 
void setup() {
 pinMode(pwm5, OUTPUT);
 pinMode(pwm6, OUTPUT);
 pinMode(en9, OUTPUT);
 pinMode(en10, OUTPUT);
// pinMode(in_moteur, INPUT);
 
 digitalWrite(en9, LOW);
 digitalWrite(en10,LOW);
 analogWrite(pwm5,0);
 analogWrite(pwm6,0);
 
 
 Serial.begin(9600);
}
 
void loop() {
/*
Serial.print("debut boucle");
 for (int i = 0; i < nb_repeat; i++){
 
  val_in_moteur = analogRead(in_moteur);
  Serial.print("valeur digintal in     :");
 Serial.println(val_in_moteur); 
 
 moyenne += val_in_moteur;
 delay(50);
  
 }
 
 moyenne = moyenne / nb_repeat;
 
 
 if(moyenne > 0){
  Serial.println("Valeur supérieur à zéro");
 
   digitalWrite(en9, HIGH);
   digitalWrite(en10,HIGH);
   analogWrite(pwm5,1000);
   analogWrite(pwm6,0);
 }
 else{
  Serial.println("valeur inférieur");
  digitalWrite(en9, LOW);
  digitalWrite(en10,LOW);
  analogWrite(pwm5,0);
  analogWrite(pwm6,0);
 }
 */
 Serial.print("avant");
delay(1000);
   digitalWrite(en9, HIGH);
   digitalWrite(en10,HIGH);
   analogWrite(pwm5,20);
   analogWrite(pwm6,0);
   Serial.print("Apres");
delay(1000);
   digitalWrite(en9, LOW);
   digitalWrite(en10,LOW);
   analogWrite(pwm5,0);
   analogWrite(pwm6,0);
   Serial.print("Apres");
delay(3000);
}
 


#20 Melmet

Melmet

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 521 messages
  • Gender:Male
  • Location:Saint-Sozy (46200)

Posté 26 avril 2021 - 05:12

Vu que les sorties sont en 3.3V, est ce que ton driver accepte cette tension?

sI c'est pas le cas, tu peu utilié un convertiseur de niveau logique.


Ne demande jamais à un robot de faire ce que tu peux faire toi même. :nono: :laugh1:




Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users