Montage fait-maison au fonctionnement curieux...

meepmeep

Senior Member
Bonjour,
J'ai fais le montage suivant autour d'un 08M2
(Les 4 jumpers à gauche permettent d'activer ou non des résistances de pulldown)
carte08M2perso.jpg
J'utilise la sortie 0 pour commander un MOSFET et c'est là que ça coince :
Quand je branche un moteur derrière le MOSFET et que j'active la sortie 0, le moteur tourne pendant moins d'une seconde, s'arrête, puis repart, puis s'arrête...
Avez-vous des pistes ???
Merci d'avance
 

MGU

Senior Member
Bonjour,

Les entrées ne doivent pas rester "en l'air", pourquoi désactiver les pulldown ?
C'est quel mosfet ?
Valeur de R3 ?
Comment est alimenté le moteur?

MM
 

meepmeep

Senior Member
Merci pour ta réponse...

Les entrées ne doivent pas rester "en l'air"
Mais avec les cartes programmables habituelles, les entrées que je n'utilise pas sont en l'air sans pour autant poser problème...

pourquoi désactiver les pulldown ?
Au cas où j'ai des modules (genre grove) avec la résistance de pulldown intégré

C'est quel mosfet ?
IRL530

Valeur de R3 ?
10k Ohm

Comment est alimenté le moteur?
COmme tu vois sur le schém, directement par l'alimentation 5v du circuit (le même que le PIC)

Voilà pour les précisions
 

BESQUEUT

Senior Member
Ajouter quelque chose de remarquable au début du programme :
Sertxd ("Début",13,10)
ou clignotement d'une led 3 fois par exemple.
Ceci permet de savoir si le Picaxe reset ou si c'est un autre problème.

COmme tu vois sur le schém, directement par l'alimentation 5v du circuit (le même que le PIC)
Que se passe-t-il si on sépare les alims (pour test) ?
Si le problème vient de là, d'autres solutions peuvent être suggérées.
 

meepmeep

Senior Member
C'est super étrange, j'ai fait ce programme (avec 2 clignotements à des vitesses différentes sur C.2), le BP est sur C.1 et le moteur sur C.0
carte08M2persoPROG.jpg
Avec ce programme, tout fonctionne
Si je supprime les deux appel de sous programmes, ça fonctionne à nouveau en intermittence...

Sinon, pour séparer les alim, c'est plus difficile car le montage est fait avec un PCB déjà tout fait (c'est un proto que je comptais modifier si besoin). Il faut donc que je dessoude une patte du MOSFET pour essayer.
 

meepmeep

Senior Member
Si je fais un programme avec uniquement activer C.0, le symptôme persiste.
Crois-tu que l'alimentation séparée résoudra le problème ???

C'est étrange, car j'utilise habituellement une carte servopilot de chez A4 avec un module puissance (module-puissance) et ça fonctionne bien, même avec une seule alim.
Et la carte CHI035A utilise ces même MOSFET et ça fonctionne bien aussi avec une seule alim...

J'ai du mal à comprendre...

L’intermittence de fonctionnement du moteur est très aléatoire, parfois, le moteur tourne pendant plusieurs secondes, s'arrête et d'autres fois, il tourne pendant une fraction de secondes...
 

PieM

Senior Member
Relire 4 !
a mettre juste après le start.
pourquoi demander conseils si c'est pour ne pas les suivre ?
 

MGU

Senior Member
Bonjour,

Le problème vient probablement d'un reset intempestif. le doute sera levé par le test #4.
Maintenant, d'où vient-il?
Le condo de 100µF en découplage me parait un peu faible, essayer 470µF.
Pas la peine de dessouder le mosfet, c'est l'alim du moteur qu'il faut modifier, avec une autre pile de 4,5v, en reliant uniquement les masses

MM
 

meepmeep

Senior Member
Bonjour PieM
pourquoi demander conseils si c'est pour ne pas les suivre ?
Je me fais remettre d'équerre mais je n'avais pas l'impression de ne pas suivre les conseils de BESQUEUT : c'est la raison pour laquelle j'ai fais un nouveau programme avec 3 clignotements de DEL.
Je suis loin d'être aussi experts que vous et je pensais que mon programme avec clignotement permettait de détecter, comme conseillé, un reset du µC.
Maintenant, je vais essayé la commande Sertxd ("Début",13,10) qui, entre deux cours hier, ne me parlais moins.
J'ai donc fais au plus vite ce que je savais faire... mais je ne demande qu'à apprendre...

* J'ai soudé un condensateur de filtrage de 100nF sur le moteur
--> Comme j'avais déjà l'ancien programme dans le PIC, j'ai allumé, ça a tourné 20sec puis stop, 15s, stop...

* J'ai injecté ce programme
Code:
    main :
    Sertxd ("Début",13,10)
    high C.0
    goto main
--> Ça tourne sans s'arrêter... (Donc ça marche...)

1) Mais Sertxd est censé faire quoi ? Me renvoyé une information sur le terminal ? Mais j'ai un switch sur la broche Serin...
2) Sinon, pour continuer à suivre vos conseils, vous me proposez d'alimenter le moteur séparément, mais puis-je alimenter le moteur uniquement au niveau du connecteur J3 (voir mon schéma) ou dois-je également injecter mon alimentation séparée sur la cathode de la diode en l'isolant du V+ du 08M ?
3) Dernière chose : pour le condensateur de filtrage : plastique ou un céramique ?

Merci encore.
 
Last edited:

PieM

Senior Member
Il faut comprendre que pour détecter un reset éventuel, il faut créer un évènement qui soit en dehors de la boucle du programme!
Donc dès l'initialisation du picaxe, soit un bref allumage d'une diode, soit un bip, soit un message via sertxd.
C'est la première chose à faire.
Dans tous les cas mettre au moins un C de 100nF directement aux bornes du moteur. Je préconiserai même de souder la diode aussi aux bornes du moteur.
Il faut éviter de faire remonter les parasites sur la piste d'alim du picaxe!

Si il y a toujours des pb, alimenter le moteur par un fil venant directement du + de la pile au + moteur, l'autre borne moteur étant connectée au drain du mosfet.
Cela peut être suffisant pour résoudre les problèmes.

Si ce n'est pas suffisant on peut encore améliorer le filtrage, mais à terme, ce sera une alim séparée si le moteur est de mauvaise qualité.
dans tous les cas, ne faire qu'une chose à la fois!
détection - filtrage - modif circuit d'alim

Ce serait bien de donner une photo des pistes du pcb.
Contrairement à la croyance, il y a des problèmes de ce genre avec des circuits comme celui du CHI035a! voir un sujet précédent.
 

PieM

Senior Member
Ben oui mais je ne vois pas où rentre l'alim sur cette carte !
au niveau de la gravure je vois une piste entre le - du picaxe et le source du mosfet qui va nulle part !
la gravure au niveau drain source et diode ne me parait pas claire.
le condo de 100nF doit être aux bornes du picaxe !

Désolé, mais faire transiter tout le courant puissance par les pistes de la partie logique est la plus mauvaise solution.
 

MGU

Senior Member
Bonjour,

J'ai un doute sur le câblage de serin (switch sur serin ?)). La 10k doit être reliée directement à la masse, elle assure le potentiel 0v de cette broche en dehors de la programmation.
Les condos de découplages sont là pour "court circuiter" les parasites. Ils vont par paire, un chimique pour les basses fréquences (ici, plutôt un 470µF au lieu du 100µF, à cause du moteur) et un céramique multicouches de 100nF pour les signaux rapides (µC).
Pour le PCB, comme déjà dit, il ne faut pas mélanger courants forts (moteur) et courants faibles (commandes) , d'où le principe de circuits d'alimentation en étoile.

MM
 

jojojo

Senior Member
Bonjours, tout le monde.

Michel:

(ici, plutôt un 470µF au lieu du 100µF, à cause du moteur)
Pour ce genre d'appli, le calcul est simple, le minimum pour l'électrolytique, c'est 1000µ par ampère.
EN TENANT COMPTE de la sur-intensité au démarrage.
 

meepmeep

Senior Member
Voici la suite (le PCB actuel)... je regarde vos remarque pour essayer de comprendre ce que je dois modifier...
pcb.jpg
pcb2.jpg
Merci encore...
 

MGU

Senior Member
Que donne le test du reset ?

Un ex pour le PCB
Les masses du µC et celle du mosfet sont reliées ensemble et passent par un strap commun relié au - alim: c'est exactement ce qu'il faut éviter.

Le µC travaille a une fréquence de plusieurs MHz et un strap représente une impédance non négligeable. Il faut donc un 100nF sur les pattes alim du µC (mais je crois que ça a déjà été dit, non ?)

MM
 
Last edited:

meepmeep

Senior Member
En fait, c'est super déprimant... je me lance dans des montages en pensant que je vais y arriver et en fait, je me rends compte que je n'ai absolument pas les compétences !
J'aurais dû vous solliciter avant de me lancer mais bon, j'ai fais un proto qui ne fonctionne pas, je vais essayer de re-partir de là...

Pour les test du reset, j'ai injecté ce programme :
Code:
main :
Sertxd ("Début",13,10)
high C.0
goto main
Le résultat est que mon moteur tourne sans s'arrêter, c'est donc ce que je recherche !!! ... mais je ne sais pas par quel miracle ça marche comme ça... (j'ai juste soudé un 100n au moteur qui n'avait pas résolu le pb avec juste high C.0, mais là ça marche...)
Et PieM me dit que la commande ne doit pas être dans la boucle du programme mais juste au début... Mon code n'est-il donc pas correct ?
C'est ça que je dois mettre ?
Code:
Sertxd ("Début",13,10)
main :
high C.0
goto main
Et ensuite, avec la commande Sertxd, je ne sais pas ce que je suis censé faire ensuite.

Je disais plus haut que si c'est censé renvoyé une valeur, comment est-ce possible si le switch S1 dé-commute mon câble Picaxe, je n'aurai pas d'information en retour...

Et tu (MGU) me dis que tu as un doute sur le câblage de serin, mais mon switch ne commute que serout...
View attachment 20498
Pour ce qui est de l'alimentation, je comprends mieux avec l'exemple concret de l'alim du uC et de MOSFET...

Merci en tous les cas, j'espère que je ne vais pas trop vous faire perdre de temps avec mes questions...

PS : je vais essayer aussi de remplacer mon alim secteur par des piles et je vais essayer la manip de PieM en alimentant le moteur directement depuis le + de la pile.
Je vous tiens au courant (au courant, ha ha...)
 

MGU

Senior Member
Je pense que tu n'as pas compris ce que l'on veut dire par le test du reset. Par grave, on recommence.

Un programme se décompose en plusieurs parties:

Une entête: déclaration des variables, nomination, fréquence du µC...
Ces instructions ne sont exécutées qu'une fois, a la mise sous tension.

Vient ensuite le programme, dans une boucle sans fin.

Le reset est une réinitialisation totale du programme, des parasites peuvent provoquer ce reset.
Pour savoir si il y a reset intempestif, on le visualise par ex en allumant une diode ou en envoyant un message dans l'en tête du programme, normalement exécutée une seule fois.
Si le diode clignote ou si on a plusieurs messages, il y a reset intempestif.
En #20, le premier code n'est pas bon, le second oui, mais il faut le faire avec le programme que tu utilises.
Il faut faire ce test avant toute modif. Faire ensuite les modifs une par une et refaire le test pour identifier la source du problème.

MM
 

meepmeep

Senior Member
Ok, merci, je suis long à la détente mais j'ai compris.
Je vais essayer.
Sinon, pendant ce temps, je retravaillais mon PCB, voici un premier jet...
C'est mieux pour le MOSFET ? Et le 100n (C7) ? (si je reste une alim commune...)
PCBv2.jpg
 

meepmeep

Senior Member
Bon, maintenant que j'ai compris la manip, j'ai pu vérifier :
Depuis que j'ai mis le condensateur sur le moteur, c'est très nettement plus stable mais, en effet, il y a eu un reset intempestif (puisque ma diode sur C.2 s'est rallumée)...
Sur 2 minutes , un seul reset.
Du coup, j'imagine qu'en optimisant un peu le PCB, en changeant la valeur du condo de filtrage (100uF -> 470uF) et en mettant la diode au plus près du moteur ça devrait résoudre le problème ???
Que pensez-vous du PCB ci-dessus ?
Merci encore pour votre patience !
 

MGU

Senior Member
Pour moi, c'est déjà mieux, mais ça ne veut pas dire que le problème est résolu.

Il y a danger à vouloir alimenter µC et circuit de puissance par la même source, surtout avec des piles, avec l'usure, la résistance interne augmente et des couplages sont possibles. Le 100µF est largement sous dimensionné. Jojojo a rappelé la règle empirique de 1µF par mA véhiculé, il faut calculer le courant de démarrage du moteur, et ajouter un céramique en //. Idem pour le moteur, si c'est un moteur continu à ballais, il faut court circuiter les surtensions.

MM
 

meepmeep

Senior Member
View attachment 20516

View attachment 20517

J5, J7 et J9 sont les broches de connexion entre les deux cartes.

Voilà les modification en essayant de tenir compte de vos remarques
Sur la carte du PIC, j'ai une alim par fiche 5.5/2.1mm pour alimenter le uC.
Sur la carte de connexion, j'ai un bornier PWR pour une alimentation séparée pour les sorties (Grove, Bornier et Mosfet)
J'ai mis un jumper sur la carte de connexion si je veux utiliser l'alim du PIC pour les sorties.
Je profite du fait que la prise fiche alim 5.5/2.1 ait un système de commutation si il n'y a pas de fiche insérée pour réinjecter l'alim PWR (+commut) sur la carte du PIC. Dans ce cas, la position du jumper n'a pas d'importance.

J'ai retravaillé les pistes uC et puissance...
Pour la diode, je peux peut-être la supprimer et la souder au moteur comme conseillé par PieM...

J'espère que je n'ai rien oublié...
Je me lance dans la gravure des PCB ?
 
Top