Répondre à la discussion
Affichage des résultats 1 à 21 sur 21

Parasites sur carte moteur à base de l298N



  1. #1
    Dwigo

    Parasites sur carte moteur à base de l298N

    Bonjour à tous,

    Voila j'ai un petit problème que je n'arrive pas à résoudre. J'ai réalisé un robot avec une carte moteur à base de l298N et je ne comprend pas pourquoi mon pic rentre de manière aléatoire dans la routine d'interruption.

    Je soupçon fortement un problème de perturbations électromagnétiques car tout fonctionne correctement lorsque je test le soft sur une carte de développement.

    Le plus étrange c'est que le phenomène survient lorsque un des moteurs tourne dans un sens particulier. Dans les autres cas, tout fonctionne correctement.

    J'ai pas trop d'idée pour corriger le problème, j'ai relié la carcasse des moteurs à la masse, j'ai supprimer les interruptions rs232 pour voir (le problème est toujours présent dans ce cas.)

    Voila si quelqu'un à une idée je suis preneur.
    Ci-joint le schéma et le soft.

    Damien

    Je viens de penser qu'il pourrait être intéressant que je tente de voir si le pic ne reset pas.


    Bonsoir Dwigo et tout le groupe

    Pour être en conformité avec l'épinglé

    http://forums.futura-sciences.com/el...ointes-pj.html

    les fichiers pdf ont été supprimés.

    Les schéma monopage doivent être en jpg, gif ou png.

    Les programmes, des txt, peuvent être en txt, ou délimités par une balise CODE (# dans les outils).

    Ils doivent donc être présentés à nouveau.


    .

    -----

    Dernière modification par gienas ; 17/01/2009 à 18h43. Motif: Suppression de fichiers pdf

  2. Publicité
  3. #2
    gienas

    Re : Parasites sur carte moteur à base de l298N

    Citation Envoyé par Dwigo Voir le message
    ... Voila j'ai un petit problème que je n'arrive pas à résoudre ...
    Je ne me réponds pas à moi même, mais le document que tu as présenté, ne comporte aucun découplage des alimentations du contrôleur, pas plus qu'il ne comporte de filtres de déparasitage sur les entrées. Ne sachant pas comment se présente la réalisation pratique, je crains le pire.

    Pourrais-tu joindre une photo, pour voir un peu comment "cohabitent" les fils de puissance et des entrées?

  4. #3
    Dwigo

    Re : Parasites sur carte moteur à base de l298N

    Bonjour,

    En fait je n'est que très peu de connaissances en électronique et je dois avouer que je ne sais pas ce qu'est un découplage d'alim. Celle-ci est à base de 7805 et deux condensateurs. Il y a aussi un condensateur (d'origine, je connais pas ca valeur) sur les deux moteurs.

    Ceci dit, le câblage est un vrai fouillis (voir image), mais vu le peu de différence entre la tension logique et puissance, je pensais pas que ça ne pouvais influencée le pic (enfin pas à ce point) surtout que tout est en tension continu.

    Ci joint le schéma, le soft et l'image du montage dans le format adéquate
    Code:
    /*
     * Copyright:
         (c) Zaremba damien
     * Description:
                   Controle du l298n sur le port b
                            b0 Moteur 1-1
                            b1 Moteur 1-2
                            b2 Moteur 2-1
                            b3 Moteur 2-2
                            b4 Capteur Front Right
                            b5 Capteur Front Left
                            b6 Capteur Back Right
                            b7 Capteur Back Left
    			Controle de la charge baterie moteur port a
    			Scan sharp sur port a
    			Communication Rs232 via modem xbee (port c)
     * Configuration:
         MCU:             PIC16F876a
         Oscillator:      HS, 20.0000 MHz
    */
    
    #define myAdr           0x1
    #define destAdr         0x2
    
    #define Mot11         PORTB.F0
    #define Mot12         PORTB.F1
    #define Mot21         PORTB.F2
    #define Mot22         PORTB.F3
    
    #define GoForwar      Mot11=0;Mot12=1;Mot21=0;Mot22=1
    #define GoBackwar     Mot11=1;Mot12=0;Mot21=1;Mot22=0
    #define GoLeft        Mot11=0;Mot12=1;Mot21=1;Mot22=0
    #define GoRight       Mot11=1;Mot12=0;Mot21=0;Mot22=1
    #define Break         Mot11=1;Mot12=1;Mot21=1;Mot22=1
    
    #define FRight        PORTB.F4
    #define FLeft         PORTB.F5
    #define BRight        PORTB.F6
    #define BLeft         PORTB.F7
    
    #define mvtFront   	0b00000000
    #define mvtBack    	0b00000001
    #define mvtRight   	0b00000010
    #define mvtLeft   	0b00000011
    #define mvtBreak   	0b00000100
    #define mvtDlyRot    	0b00000101
    #define mvtDlyFront    	0b00000110
    #define mvtDlyBack    0b00000111
    
    #define lgmvtOnFRight		0b1001111011101000
    #define lgmvtOnFLeft		0b1001111010101000
    #define lgmvtOnBRight		0b1000110011101000
    #define lgmvtOnBLeft		0b1000110010101000
    
    #define pop(val) stackCpt-=3;val=(mvtStack>>stackCpt)&0b111;
    #define push(val)  mvtStack|=(val<<stackCpt);stackCpt+=3;
    #define longPush(a,b) mvtStack = a; stackCpt=b;
    #define clearStack  stackCpt=0
    
    unsigned int mvtStack;    	//pile de mouvements LIFO:
    							//b15 			: Non utilisé
    							//b14b13b12     : Debut de la pile
    							//b11b10b9
    							//b8b7b6
    							//b5b4b3
    							//b2b1b0        : fin de la pile
    unsigned short stackCpt=0,t;
    unsigned int delCpt=0;
    unsigned short mvt=0,Rxdata=0;
    void delayMs(unsigned int ms);
    
    void interrupt(void){
    	if(PIR1.RCIF){
    		Rxdata=Usart_Read();
    		longPush(Rxdata,3);
    		delCpt=1;
        }
    	if (INTCON.RBIF) {
    		if(FRight){
    		    longPush(lgmvtOnFRight,15);delCpt=1;}
    		else if(FLeft){
    		    longPush(lgmvtOnFLeft,15);delCpt=1;}
    		else if(BRight){
    		    longPush(lgmvtOnBRight,15);delCpt=1;}
    		else if(BLeft){
    		    longPush(lgmvtOnBLeft,15);delCpt=1;}
    		INTCON.RBIF=0;
    	}
    	PORTC.F5=~PORTC.F5;
    }
    
    void main() {
    	OPTION_REG=0b10000000;
    	PORTB=0;
    	PORTC=0;
    	PORTA=0;
    	TRISC=0b11011111;
    	TRISA=255;
    	TRISB=0b11110000;
    
    	PWM1_Init(40000);
    	PWM2_Init(40000);
    	PWM1_Change_Duty(204);
    	PWM2_Change_Duty(255);
    	PWM1_Start();
    	PWM2_Start();
    	
    	Usart_Init(9600);
    
    	INTCON.RBIE=1;
    	PIE1.RCIE=0;
    	INTCON.PEIE=0;
    
        mvtStack=0;
    	push(mvtFront);
    
    	INTCON.RBIF=0;
    	INTCON.GIE=1;
    	
      while(1){
    	if(stackCpt!=0){
    	  pop(mvt);
    	  switch (mvt){
    		case mvtFront:		GoForwar;break;
    		case mvtBack:		GoBackwar;break;
    		case mvtRight:		GoRight;break;
    		case mvtLeft:		GoLeft;break;
    		case mvtBreak:		Break;break;
    		case mvtDlyRot:		delayMs(1000);break;
    		case mvtDlyFront:	delayMs(1000);break;
    		case mvtDlyBack:	delayMs(2000);break;
      	  }
    	}
      }
    }
    void delayMs(unsigned int ms){
        delCpt=ms;
    	while(delCpt--!=0){Delay_ms(1);}
    }
    Images attachées Images attachées

  5. #4
    gcortex

    Re : Parasites sur carte moteur à base de l298N

    j'ai pas bien vu, mais si tu pouvais alimenter le L298 en 9V,
    avec une capa de 2200µF 16V pour absorber les retours de courant
    des ponts en H

    si besoin fais une régulation de courant par découpage


  6. #5
    DAUDET78

    Re : Parasites sur carte moteur à base de l298N

    1/ Je ne vois pas de PullDown sur les entrées de bouton poussoir (c'est encore des sorties à "0" qu'on force à "1" .... pôvre PIC)
    2/ Je ne vois aucun découplage sur le 5V (220µF +100nF au minimum !)
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  7. A voir en vidéo sur Futura
  8. #6
    Dwigo

    Re : Parasites sur carte moteur à base de l298N

    Daudet78v-> oui effectivement j'ai oublié de mettre sur les schéma les résistances de pull down mais sur le montage elles sont bien la, on peut les apercevoir sur la photo à droite.

    Si le découplage c'est mettre des condensateurs en parallèle de l'alim, alors ils sont aussi sur le montage mais pas sur le schéma. Leur valeur est de 100µf et 100nf pour l'alim 5v.

    gcortex-> je vais essayer, mais hier j'ai tout décâblé pour tout refaire de façon plus organisé en séparant la puissance de la logique. La capa je l'a met bien en // de l'alim ?
    Dernière modification par Dwigo ; 18/01/2009 à 13h34. Motif: orthographe

  9. Publicité
  10. #7
    verdifre

    Re : Parasites sur carte moteur à base de l298N

    Bonjour,
    avec un L298, les diodes en sortie doivent etre des diodes rapides et pas des 1n4...., j'ai déja donné en croyant economiser quelques centimes...
    Donc dans le cas ou tu aurais monté des diodes de base, il faut les changer pour des modeles de course
    fred
    On ne vient pas de nulle part et il serait souhaitable qu'on n'aille pas n'importe où !

  11. #8
    Dwigo

    Re : Parasites sur carte moteur à base de l298N

    Citation Envoyé par verdifre Voir le message
    Bonjour,
    avec un L298, les diodes en sortie doivent etre des diodes rapides et pas des 1n4....
    C'est des 1n4007. Aurais tu une référence de diode utilisable ? (7,2 v, 1A nominal par moteur)

  12. #9
    Dwigo

    Re : Parasites sur carte moteur à base de l298N

    Voila en image l'alim et les résistances de pull down. Plus tard, il y aura une carte d'alime c'est pour ça que le +5v arrive sur un connecteur.

    ...c'est encore des sorties à "0" qu'on force à "1" .... pôvre PIC...
    Ce n'est pas comme ça qu'il faut faire ? Mieux vaut il faire des pullup ?
    Images attachées Images attachées
    Dernière modification par Dwigo ; 18/01/2009 à 14h28. Motif: oubli images

  13. #10
    MorpheusPic

    Re : Parasites sur carte moteur à base de l298N

    salut quelle sont les valeur des resistances R1 et R2 car au moment que ton moteur demare jais bien peur que RA0 et RA1 se prenent une tension supperieure a 5 V

    il te faudrait metre 1 resistance entre RA0 et R1 et une entre RA1 et R2 pour limiter les eventuel pic de courant

  14. #11
    Dwigo

    Re : Parasites sur carte moteur à base de l298N

    Citation Envoyé par MorpheusPic Voir le message
    salut quelle sont les valeur des resistances R1 et R2 car au moment que ton moteur demare jais bien peur que RA0 et RA1 se prenent une tension supperieure a 5 V

    il te faudrait metre 1 resistance entre RA0 et R1 et une entre RA1 et R2 pour limiter les eventuel pic de courant
    R1 et R2 sont des résistances de 10ohm. Je vais mettre les résistances que tu me conseil, 1k devrai suffire ?

  15. #12
    verdifre

    Re : Parasites sur carte moteur à base de l298N

    bonsoir,
    C'est des 1n4007. Aurais tu une référence de diode utilisable ? (7,2 v, 1A nominal par moteur)
    je n'ai pas de reference sous la main, il y en a dans le datasheet du 298. Mais ces diodes sont trés mauvaises et pour les parasites et pour le 298, elles sont beaucoup trop lentes
    il faudrait prendre dans les gammes BY...
    fred
    On ne vient pas de nulle part et il serait souhaitable qu'on n'aille pas n'importe où !

  16. Publicité
  17. #13
    Dwigo

    Re : Parasites sur carte moteur à base de l298N

    Ok merci j'en ai trouvé chez Gotronic

  18. #14
    Zig38

    Re : Parasites sur carte moteur à base de l298N

    Bonsoir,

    Et sur le cablage, tu ne pense pas qu'il laisse à désirer aussi?

    Les plaques de tests sont en grandes paeties sources de pannes je pense.

  19. #15
    verdifre

    Re : Parasites sur carte moteur à base de l298N

    bonjour,
    c'est sur qu'un tel cablage laisse à désirer, j'ai déja été attrapé par l'utilisation de diodes trops lentes sur un circuit imprimé "propre" alors la j'ose pas imaginer.
    des antennes partout et des emmeteurs puissants à coté , c'est fait pour marcher ensemble.
    Cependant je crois que de réduire les emissions est le premier pas (qui ne peu qu'etre amelioré par un routage corret)
    fred
    On ne vient pas de nulle part et il serait souhaitable qu'on n'aille pas n'importe où !

  20. #16
    Zig38

    Re : Parasites sur carte moteur à base de l298N

    Bonsoir,

    Je ne parle pas que d'effets antennes quand je "critique" la qualité du câblage, je parle aussi de faux contacts purement et simplement qui resteront même si les emissions sont réduites.

    A+

  21. #17
    Dwigo

    Re : Parasites sur carte moteur à base de l298N

    Bonsoir,

    Oui c'est sur mon câblage est vraiment très mauvais, mais avant de passé au circuit imprimé je voulais m'assurer que tout allais bien. Je l'ai d'ailleurs un peu amélioré (voir photos). Pensez vous que je peut passer au CI (avec tout les changements qu'il m'a été conseillé)? le montage n'est pas très compliqué mais ça m'ennuierais de gâcher une plaque de cuivre.

    Pour les diodes je vais de toutes façon devoir les changer car elles provoque une grande chute de tension et la batterie n'est pas suffisant pour combler ce gouffre. Je suis en train de chercher sur le net la chute de tension du l298 pour voir.
    Images attachées Images attachées

  22. #18
    Dwigo

    Re : Parasites sur carte moteur à base de l298N

    Bon ba j'ai trouvé une discussion intéressante
    http://forums.futura-sciences.com/el...f876-l298.html

    Je vais rajouter les résistances dont ils parles
    Je suis en train d'assassiner mon pic...


    Ba en fait mon pic n'est peut être pas en interruption mais en reset constant, je vais tester avec les registre de reset....
    Dernière modification par Dwigo ; 19/01/2009 à 19h14. Motif: précision

  23. Publicité
  24. #19
    MorpheusPic

    Re : Parasites sur carte moteur à base de l298N

    c'est resistant un pic ^^ pour les resistances en serie dont je t'avait parler des 1 khom devrais aller

    sur sa plaque d'essaie branche l'alimentation de puissance du l298 et sa masse directement sur ton regulateur essay aussi de relier aussi directement les 2 sorties curent sens du l298 a la pin2 de ton regulateur

  25. #20
    Dwigo

    Re : Parasites sur carte moteur à base de l298N

    Citation Envoyé par MorpheusPic Voir le message
    ...essay aussi de relier aussi directement les 2 sorties curent sens du l298 a la pin2 de ton regulateur
    A la pine 8 tu veux dire non?

  26. #21
    MorpheusPic

    Re : Parasites sur carte moteur à base de l298N

    non relie directement sans les 2 resistances les pin current sens A et B a la pin 2(GND) de ton regulateur 7805 tout sa pour eviter de faire circuler trop de courant (moteurs) a traver toute la plaque d'essai ...

Sur le même thème :

Discussions similaires

  1. Parasites PIC, moteur et relais
    Par The Viking dans le forum Électronique
    Réponses: 16
    Dernier message: 04/07/2007, 08h32
  2. pc portable / parasites sur carte son externe
    Par LTHOMAS dans le forum Matériel - Hardware
    Réponses: 4
    Dernier message: 04/05/2007, 09h18
  3. interface moteur anti parasites
    Par astrofan dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 22/04/2007, 15h26
  4. interface moteur anti parasites
    Par astrofan dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 22/04/2007, 14h57
  5. Interference / Parasites - Moteur - iPod
    Par Yonosai dans le forum Électronique
    Réponses: 10
    Dernier message: 05/03/2007, 11h13