Bug quand les moteurs se mettent en marche!

Bonjour à tous,

Je suis désolé si je ne suis pas sur le bon forum exactement, mais vraiment j'ai envoyé plein de post sur divers forums en Anglais, et je n'ai aucune réponse! Bon en tous cas ça me fait déjà plaisir d'écrire dans ma langue, quelle décontraction!
Je vous l'annonce tout de suite, mon problème concerne un microcontrolleur "FEZ panda" en micro-framework, en non un Arduino, mais en fait les deux engins sont quasiment identiques. Je m'adresse à ce forum car le support sur mon microcontrolleur est inexistant en France (du moins je crois)

Alors voici mon problème : Je suis en train de faire un bateau-drone, qui va se débrouiller tout seul sur l'eau à l'aide d'un GPS (en gros). Il s'agit d'un catamaran, et sur chaque coque il y a un moteur (12V, 1A, 1000RPM) et une batterie plomb 12V.
Le microcontrolleur est relié à une platine "Ardumoto" et les batteries sont reliées à l'entrée "VIN" de l'Ardumoto. En sortie de l'Ardumoto, j'ai les 2 moteurs.

Tout se passe bien tant que je n'alimente pas les moteurs. A l'aide d'un écran LCD ou de la console du PC je vérifie que le programmme fonctionne et calcule de bonnes valeurs à balancer aux moteurs.
Quand j'alimente les moteurs (ou plutot le Ardumoto), je constate que les moteurs se mettent à tourner au taquet (ce qui est OK), mais problème le microcontrolleur "freeze" après 2 ou 3 secondes.

Ca fait méchamment penser un problème de bruit qui ferait planter le microcontrolleur.
Je vous ai joint le schéma de mon installation (je n'ai pas mis les modules comme le GPS, le compas, le sondeur et d'autres choses pour ne pas compliquer la sauce).

Pensez-vous que c'est un problème de bruit, et si oui quelles outils peuvent exister pour localiser le problème et le calmer ?
Merci!

Qu'est ce que ça donne en séparant les masses ?

Excellente idée, je regarde ça!

Qu'est ce que ça donne en séparant les masses ?

Fausse bonne idée.
La liaison entre la masse des 2 cartes permet de fixer une référence des potentiels entre elles.
Elle est indispensable pour pouvoir échanger des signaux entre les 2 cartes.
On ne le répétera jamais assez deux équipement peuvent fonctionner avec des alimentations différentes mais il faut réunir les masses sauf dans le cas où on réalise la liaison par des optocoupleurs qui permettent alors d'isoler complètement les appareils les uns des autres.

Je ne comprends pas très bien comment tu alimentes ta fez panda.
Le 12V entre sur Vin de l'ardumoto donc il entre aussi sur le Vin de la fez. Or tu fais apparaitre un 5V sur ton dessin. Entrerais-tu un 5V externe sur la fez?
Si tu as un 5V externe, tu pourrais supprimer la liaison Vin entre l'ardumoto et la fez. Il y a de fortes chances que les perturbations passent par ce canal. Si tu devais laisser la connexion Vin entre les deux cartes il faudrait prendre la précaution de mettre un filtre (un bon LC) entre les deux cartes pour filtrer les perturbations apportées par les moteurs.

De même il faudrait pas de comdo d'antiparasitage sur les moteurs ?

C'est des moteurs à charbon ou brushless ?

Sinon autre idée, utiliser des optocoupleurs entre les 2 cartes pour une isolation galvanique des signaux à base de 4N28 comme on le fait en midi.

C'est juste une idée, je ne sais pas si çà pourra aider.

fdufnews:
Je ne comprends pas très bien comment tu alimentes ta fez panda.

Effectivement c'est moyennement expliqué sur le schéma.
La FEZ est alimentée par une pile de 9V via le Power Jack, ou bien par le PC via le cable USB.
Le 5V qui apparaît sur le schéma est le 5V produit par la FEZ, il correspond au 3e pin des "power pins" de l'Arduino (qui comprennent dans l'ordre RESET, 3V3, 5V, GND, GND, Vin)
J'espère que c'est plus clair.
Avec ces éclaircissement est-ce que ton conseil "Si tu as un 5V externe, tu pourrais supprimer la liaison Vin entre l'ardumoto et la fez." est toujours valable? (car si oui je ne comprends pas trop ce que je dois faire! )

Note : J'ai bien pigé que je devais garder une masse commune!

Grag38:
De même il faudrait pas de comdo d'antiparasitage sur les moteurs ?
C'est des moteurs à charbon ou brushless ?
Sinon autre idée, utiliser des optocoupleurs entre les 2 cartes pour une isolation galvanique des signaux à base de 4N28 comme on le fait en midi.

C'est du bon vieux moteur à charbon! Et je n'ai pas mis de condos d'antiparasitage. Je me disais que, comme j'avais séparé le circuit moteur 12V du circuit logique, ce n'était pas nécessaire. Tu crois que je dois faire l'éssai? Je peux le faire!

Je n'ai pas d'optocoupleur, donc je ferai l'essai en dernier recours!

La FEZ est alimentée par une pile de 9V via le Power Jack

Là je pense qu'il y a comme un conflit. Le Vin de l'ardumoto est connecté au Vin de la carte fez par les broches qui relient les 2 cartes. Si tu mets une pile sur le Power Jack et une batterie sur le Vin l'un crache dans l'autre.
Tu devrais essayer de tordre légèrement la broche Vin de l'ardumoto afin qu'elle ne rentre pas dans la fez. Ainsi tu séparerais complètement ton alimentation puissance de ton alimentation processeur.

C'est du bon vieux moteur à charbon! Et je n'ai pas mis de condos d'antiparasitage. Je me disais que, comme j'avais séparé le circuit moteur 12V du circuit logique, ce n'était pas nécessaire.

Quand on parle de perturbations, il y a les perturbations conduites (par les alimentations ou les fils entre les cartes) et les perturbations rayonnées (par effet d'antenne dans les câbles mais aussi par proximité entre un circuit où passe un fort courant et les circuits voisins)
Certes les alimentations sont séparées mais un moteur rayonne beaucoup. Les condensateurs d'antiparasitage ne sont pas une option.

Là je pense qu'il y a comme un conflit. [...] Tu devrais essayer de tordre légèrement la broche Vin de l'ardumoto afin qu'elle ne rentre pas dans la fez.

Ah mais non! Le Ardumoto n'est pas "stacké" sur le Arduino! Donc le 12V branché sur le VIn de l'Ardumoto n'est pas connecté au VIn de l'arduino. Donc, de ce coté là, c'est OK.

[...] il y a les perturbations conduites [...] et les perturbations rayonnées [...] Certes les alimentations sont séparées mais un moteur rayonne beaucoup. Les condensateurs d'antiparasitage ne sont pas une option.

Je vois... Je pense que les perturbations sont rayonnées. Je vais m'occuper de mettre les condos (le temps de commander sur internet... il faut du 0.1uF céramique d'après ce que j'ai lu)

Je suis à présent sur que j'ai un pb de bruit car j'ai observé la chose suivante : Dans mon circuit j'ai un bouton qui fonctionne par interruption (je sais pas si c'est un fonction dispo sur l'Arduino, mais sur la FEZ le principe est un callback qui est appelé quand un pin passe de haut à bas et réciproquement). Avec les moteurs à l'arrêt, le bouton se comporte normalement... Et quand les moteurs envoient la sauce, je constate que le callback est appelé plein de fois avant que le proc ne plante. Donc cela signifie un bon bruit, je pense.

En attendant de mettre les condos antiparasites, je vais déjà essayer d'isoler mieux les fils... Les cables 12V moteur et les cables logiques 5V sont très proches par endroit.
Je vous dirai si ça fait une différence.
Merci encore pour vos posts. :slight_smile:

En attendant de mettre les condos antiparasites, je vais déjà essayer d'isoler mieux les fils... Les cables 12V moteur et les cables logiques 5V sont très proches par endroit.

Bonne idée. Pense à torsader ensembles les fils d'alimentation de chaque moteur, cela limite le rayonnement.
Peut être ajouter un petit condensateur sur les entrées logiques de la carte fez (comme cette entrée avec un bouton).

fdufnews:
Peut être ajouter un petit condensateur sur les entrées logiques de la carte fez (comme cette entrée avec un bouton).

Je veux bien faire l'essai. Par "entrée logique de la carte FEZ" tu fait bien référence aux pins diXX (di01, di02, ..., An0, An1, etc...) par exemple?
Et aussi, pour ces condos, il faut combien de uF?
Merci!

Par "entrée logique de la carte FEZ" tu fait bien référence aux pins diXX (di01, di02, ..., An0, An1, etc...) par exemple?

Oui. Principalement celles qui sont utilisées. Celles qui ne sont pas utilisées mais qui pourraient perturber, peuvent être tirées à la masse avec une résistance de faible valeur ou alors configurées en sortie.

Et aussi, pour ces condos, il faut combien de uF?

quelques nF suffisent.