Aller au contenu


Photo
- - - - -

problème avec L293D


13 réponses à ce sujet

#1 zizotta

zizotta

    Nouveau membre

  • Membres
  • 9 messages

Posté 22 novembre 2014 - 07:41

salut tout le monde  :thank_you:



#2 Taupiot_Jr

Taupiot_Jr

    Habitué

  • Membres
  • PipPip
  • 232 messages
  • Gender:Male

Posté 22 novembre 2014 - 10:08

Hello,

En lisant le datasheet du composant (ce que je pense que tu as déjà fait vu les branchements), tu verras que les entrées In1 à In4 servent à piloter l'état des moteurs (arrêt / rotation horaire / rotation anti-horaire / blocage).

Tu peux contrôler que les moteurs et le driver fonctionnent en mettant simplement les valeurs aux entrées manuellement ;)

Quand aux signaux PWM, si tu as un oscilloscope c'est facile à contrôler, sinon utilise une petite LED qui devrait t'aider à savoir si tu arrives à contrôler les timers ;)

Si les signaux PWM et le driver répondent correctement alors normalement ton montage doit fonctionner et peut être qu'une erreur de câblage est passée par là... ^^

#3 Melmet

Melmet

    Pilier du forum

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

Posté 23 novembre 2014 - 09:44

Manque pas les diodes de roue libre sur tes sorties moteurs?  :kez_13:


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


#4 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 251 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é 23 novembre 2014 - 11:14

Manque pas les diodes de roue libre sur tes sorties moteurs?  :kez_13:

 

Je suppose qu'il a la version D ( L293D ) comme indiqué en tout petit sur son schémas. (Version avec diode de roue libre intégrée ) 
Sinon en effet il manque les diodes de roues libre si c'est la version L293 tout court. 
Quoi qu'il en soit il est possible d'ajouter des diodes de roues libre à la version D ... 


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 ! 

 

Les réalisations de Mike118  

 

 

 


#5 zizotta

zizotta

    Nouveau membre

  • Membres
  • 9 messages

Posté 23 novembre 2014 - 03:52

Manque pas les diodes de roue libre sur tes sorties moteurs?  :kez_13:

j'utilise L293D donc j'ai pas besoin d'ajouter diodes 



#6 zizotta

zizotta

    Nouveau membre

  • Membres
  • 9 messages

Posté 23 novembre 2014 - 03:54

Hello,

En lisant le datasheet du composant (ce que je pense que tu as déjà fait vu les branchements), tu verras que les entrées In1 à In4 servent à piloter l'état des moteurs (arrêt / rotation horaire / rotation anti-horaire / blocage).

Tu peux contrôler que les moteurs et le driver fonctionnent en mettant simplement les valeurs aux entrées manuellement ;)

Quand aux signaux PWM, si tu as un oscilloscope c'est facile à contrôler, sinon utilise une petite LED qui devrait t'aider à savoir si tu arrives à contrôler les timers ;)

Si les signaux PWM et le driver répondent correctement alors normalement ton montage doit fonctionner et peut être qu'une erreur de câblage est passée par là... ^^

à qui sert la configuration des timers?



#7 Taupiot_Jr

Taupiot_Jr

    Habitué

  • Membres
  • PipPip
  • 232 messages
  • Gender:Male

Posté 23 novembre 2014 - 04:03

Pour générer ton signal PWM tu utilises un timer interne. C'est un compteur qui fonctionne en permanence, il tourne en tâche de fond.

Avec lui tu peux, entre autres applications, générer un signal PWM.

 

Dans ton application, as-tu réussi à écrire le code qui génère ce signal?

 

Donc, quand tu as fait tourner ton moteur dans un seul sens et à vitesse constante, avec quoi l'as tu contrôlé?



#8 zizotta

zizotta

    Nouveau membre

  • Membres
  • 9 messages

Posté 23 novembre 2014 - 05:04

Pour générer ton signal PWM tu utilises un timer interne. C'est un compteur qui fonctionne en permanence, il tourne en tâche de fond.

Avec lui tu peux, entre autres applications, générer un signal PWM.

 

Dans ton application, as-tu réussi à écrire le code qui génère ce signal?

 

Donc, quand tu as fait tourner ton moteur dans un seul sens et à vitesse constante, avec quoi l'as tu contrôlé?

Donc, quand tu as fait tourner ton moteur dans un seul sens et à vitesse constante, avec quoi l'as tu contrôlé?

 

j'ai pas controlé les moteurs, et j'ai utiliser l298 avec des diodes

 

Dans ton application, as-tu réussi à écrire le code qui génère ce signal?

 

j'ai pas configurer les timers



#9 Taupiot_Jr

Taupiot_Jr

    Habitué

  • Membres
  • PipPip
  • 232 messages
  • Gender:Male

Posté 23 novembre 2014 - 05:33

Okay, alors essaie de contrôler ton moteur avec le L293D tout seul comme je te l'ai dit plus haut.

 

Ensuite, qu'as tu déjà fait exactement avec ton PIC alors?

Tu as écris du code déjà? Tu as compris comment fonctionne le PWM?

 

Nous avons besoin de plus de détails pour t'aider...



#10 Leon

Leon

    Membre passionné

  • Membres
  • PipPipPipPipPip
  • 1 289 messages
  • Gender:Male

Posté 23 novembre 2014 - 05:38

Et le multimètre? Tu as utilisé le multimètre pour tout vérifier? C'est l'outil principal en électronique. Vérifie que toutes les tensions sont conformes à ce que tu attends, en entrée comme en sortie de ton composant. Vérifie toutes les continuités, etc... C'est la seule solution pour trouver d'où vient le problème.

 

Leon.


BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)


#11 zizotta

zizotta

    Nouveau membre

  • Membres
  • 9 messages

Posté 23 novembre 2014 - 06:00

Et le multimètre? Tu as utilisé le multimètre pour tout vérifier? C'est l'outil principal en électronique. Vérifie que toutes les tensions sont conformes à ce que tu attends, en entrée comme en sortie de ton composant. Vérifie toutes les continuités, etc... C'est la seule solution pour trouver d'où vient le problème.

 

Leon.

mais j'ai pas réalisé le montage pratiquement, j'ai essayé avec isis seulement



#12 transistance

transistance

    Membre passionné

  • Membres
  • PipPipPip
  • 411 messages

Posté 23 novembre 2014 - 06:01

Bonsoir,

 

Il y a longtemps que je n'ai pas utilisé de L293D mais si je me souviens bien la broche 8 (Vs) du composant sert à l'alim des moteurs. Sur ton schéma tu alimentes tes moteurs en 11.7V et tes moteurs sont, toujours d'après ton schèma, en 5V... 

 

Edit:

 

 

mais j'ai pas réalisé le montage pratiquement, j'ai essayé avec isis seulement

 

Ben oui mais Isis ne peut pas tout simuler parfaitement...


N'oubliez jamais que "Ban Ki-moon n'attrape pas mousse"


#13 zizotta

zizotta

    Nouveau membre

  • Membres
  • 9 messages

Posté 23 novembre 2014 - 06:09

Okay, alors essaie de contrôler ton moteur avec le L293D tout seul comme je te l'ai dit plus haut.

 

Ensuite, qu'as tu déjà fait exactement avec ton PIC alors?

Tu as écris du code déjà? Tu as compris comment fonctionne le PWM?

 

Nous avons besoin de plus de détails pour t'aider...

voici le code que j'ai écrit



#14 Piquillos64

Piquillos64

    Nouveau membre

  • Membres
  • 23 messages
  • Gender:Male
  • Location:Biarritz
  • Interests:Electronique, programmation C/C++, robotique, mécanique.

Posté 25 novembre 2014 - 02:46

 

voici le code que j'ai écrit

#include "C:\Users\mallouka\Desktop\VERSIN FINALE\LABYRINTHE.h"

#byte PORTB=0x06
#byte PORTC=0x07
#byte intcon=0x8b

#byte TRISB=0x86
#byte TRISC=0x87
#byte intcon=0x90


void main()
{
   // TODO: USER CODE!!

 
 trisc=0x00;
 trisb=0xff;
 
 
while(1)
{
 int m=0;

 m = portb;

    switch (m)
      {
         case (0x02):
         {
            trisc = 0x00; 
            portc = 0x05;//les 2 moteurs tournent dans le meme sens, le robot avance
            break;
         }
          case (0x42):
         {
            trisc = 0x00;
            portc = 0x05;//les 2 moteurs tournent dans le meme sens, le robot avance
            break;
         }
          case(0x22):
         {
            trisc = 0x00;
            portc = 0x05;//les 2 moteurs tournent dans le meme sens, le robot avance
            break;
         }
          case (0x62):
         {
            trisc = 0x00;
            portc = 0x05;//les 2 moteurs tournent dans le meme sens, le robot avance
            break;
         }
          case (0x12):
         {
            trisc = 0x00;
            portc = 0x05;//les 2 moteurs tournent dans le meme sens, le robot avance
            break;
         }
          case (0x52):
         {
            trisc = 0x00;
            portc = 0x05;//les 2 moteurs tournent dans le meme sens, le robot avance
            break;
         }
          case (0x32):
         {
            trisc = 0x00;
            portc = 0x05;//les 2 moteurs tournent dans le meme sens, le robot avance
            break;
         }
          case (0x72):
         {
            trisc = 0x00;
            portc = 0x05;//les 2 moteurs tournent dans le meme sens, le robot avance
            break;
         }
         case 0xb2: //capteur avant= capteur droite=capteur gauche=1
         {
          //  tourner 180 degré
           portc=0x09;
           Delay_ms(5000);
           portc=0x00;
           Delay_ms(1000);
            break;
         }

         case 0x82:
         {
            trisc = 0x00;
            portc=0x09;
            Delay_ms(3000);
            portc=0x04; //le robot récule puis tourne à droite
            Delay_ms(3000);
            break;
         }
           case 0x92:
         {
            trisc = 0x00; 
            portc=0x09;
            Delay_ms(3000);
            portc=0x04;
            Delay_ms(3000);
            
            break;
         }
           case 0xd2:
         {
            trisc = 0x00;
            portc=0x09;
            Delay_ms(3000);
            portc=0x04;  //le robot récule puis tourne à droite
            Delay_ms(3000);
            
            break;
         }

         case 0xc2:
         {
            trisc = 0x00;
            portc=0x09;
            Delay_ms(3000);
            portc=0x01;  //le robot récule puis tourne à gauche
            Delay_ms(3000);
            break;
         }
         case 0xe2:
         {
            trisc = 0x00;
            portc=0x09;
            Delay_ms(3000);
            portc=0x01; //le robot récule puis tourne à gauche
            Delay_ms(3000);
            break;
         }      
         case 0xa2:
         {
            trisc = 0x00;
            portc=0x09;
            Delay_ms(3000);
            portc=0x01; //le robot récule puis tourne à gauche
            Delay_ms(3000);
            break;
         }
       
         default:
         {
            trisc = 0x00;
            portc = 0x00; // le robot s'arrete

         }
         
        
      }
}
 }

Bonjour,

 

Isis n'est pas un bon simulateur. Ne te fie pas à ses résultats.

Je pense que le mieux est que tu réalises ton schéma.

A première vue tout semble OK. As-tu un oscillo pour vérifier tes signaux??





Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users