Problème de "pics" de courant?

Bonjour,

J'ai réalisé un montage arduino qui fonctionne presque comme je le désire, mais je rencontre quelques problèmes.

Mon projet en quelques lignes :

Une lampe de chevet. Lorsqu'on l'allume à l'aide d'un interrupteur levier, le boitier s'ouvre à l'aide d'un bras guidé par un servo moteur, et un second bras vient appuyer sur le levier pour l'éteindre. Un objet très inutile et un peu "troll", dans l'idée de faire un cadeau de Noël un peu marrant.

Le programme fonctionne comme je le désire, le circuit (que vous pouvez trouver en PJ) réagit presque aussi comme je le désire.

Le problème que je rencontre :

Au repos, un des deux servos réagit comme si il recevait des petits pics de courant de la part de la pin arduino sur laquelle il est branché. Ce qui le fait faire des petits mouvements aléatoires. Ceci arrive environ toutes les 15 secondes, sinon il ne bouge pas.

Je précise que les servos ne jamais en même temps.

Voici les tests que j'ai réalisé pour en arriver à la conclusion que le problème venait de la carte :

J'ai inversé les deux servos pour savoir si le problème venait du servo lui-même, résultat, le servo qui bougeait au repos ne bouge plus, alors que l'autre se mets à bouger (le problème ne vient donc pas du servo).

J'ai également réalisé, avant ce montage, un circuit "test" avec des servos beaucoup moins puissants (SG90) et une autre alimentation dédiée (en 5V), sans passer par un régulateur de tension. Le problème apparaissait exactement de la même façon sur un des deux servos.

J'ai essayé 3-4 pins différentes pour commander ce servo et pour voir si le problème n'était pas lié à une pin en particulier, le problème persiste (C'est d'ailleurs pourquoi les pins de mon programme sont différentes de celles de mon circuit).

J'ai débranché la pin de "commande" du servo en question, pour voir si le problème venait de l'alimentation du servo => le servo ne bouge plus.

Y'a-t-il un montage particulier à réaliser pour commander les servos? Aurais-je oublié quelque chose dans mon programme, comme la configuration des pins en OUTPUT ?

Le programme :

#include <Servo.h>

int levierPin = 9;
int couverclePin = 12;
int brasPin = 10;
Servo couvercle;
Servo bras;

void setup() {
  Serial.begin(9600);
  pinMode(levierPin, INPUT);
  couvercle.attach(couverclePin);
  bras.attach(brasPin);
}

void loop() {
  int levierState = digitalRead(levierPin);
  delay(500);
  
  if( levierState != 0 ){
    
    Serial.println("ON");
    
    for (int position = 0; position <= 45; position++) {
      couvercle.write(position);
      delay(15);
    }

    delay(500);

    for (int position = 140; position >= 0; position--) {
      bras.write(position);
      delay(15);
    }

    delay(500);

    for (int position = 0; position <= 140; position++) {
      bras.write(position);
      delay(15);
    }

    delay(500);
    

    for (int position = 45; position >= 0; position--) {
      couvercle.write(position);
      delay(15);
    }
    
  } else {   
    Serial.println("OFF");
  }

}

Un énorme merci d'avance à ceux qui prendront le temps de me lire et qui m'aideront à résoudre ce problème. C'est relativement urgent puisque Noël approche, et j'aimerais beaucoup que ce projet aboutisse, pour ne pas avoir à retomber sur un cadeau "bateau"...

  pinMode(levierPin, INPUT);

Y a t-il une résistance de pulldown sur l'interrupteur ?

Si la réponse est non :

  pinMode(levierPin, INPUT_PULLUP);

Ce qui veut dire que l'état de repos sera : UN
Ensuite il faut inverser la logique :

  if (levierState == LOW){

Merci beaucoup hbachetti,

Je m'en vais essayer ça, et je reviens te dire si ça a fonctionné!

Si l'on en croit le schéma électrique fourni, c'est pire que ça, l'entrée qui teste l'interrupteur est tirée à la masse à travers une LED + une résistance. Ce qui ne garantie pas un zéro fiable.

En effet. Je n'avais pas vu le schéma joint.

Au final, l'entrée peut-être considérée comme en l'air lorsque l'interrupteur est ouvert.

Il y a de fortes chances que ce soit le cas.

Merci hbachetti et fdufnews pour vos retours, en effet, je me suis rendu compte de mes erreurs, et j'ai revu entièrement mon montage.

J'ai également vu qu'il était important que la masse de mes servos soit reliée à celle de la carte arduino, chose que je n'avais pas fait! J'ai remonté le tout et cela fonctionne parfaitement cette fois!

J'ai une petite question supplémentaire :

Je cherche à alimenter mon arduino ainsi que mes deux servos via une alimentation secteur.

Mon circuit de commande, n'ayant que la carte arduino et un relais à alimenter, a besoin selon mes calculs d'environ 200mA.

Mon circuit de puissance possède 2X 1 servo avec un courant minimum de 1A pour fonctionner. Les deux servos ne fonctionnent jamais en même temps. Actuellement ils sont branchés sur une pile 9V qui peut délivrer 1200mA (et fonctionnent très bien comme cela).

Dans le but de brancher le tout sur secteur, je me suis tourné vers ce produit :

Je pensais en utiliser 2, puisqu'ils semblent de délivrer qu'1A d'intensité (1 pour la carte arduino, 1 pour les servos).

J'ai bien sûr des borniers et des PCBs pour la sécurité, ainsi que des régulateurs de tensions pour délivrer les bonnes tensions respectives aux 2 circuits.

Est-ce que cela vous semble ok ?

Merci d'avance!

Mon circuit de puissance possède 2X 1 servo avec un courant minimum de 1A pour fonctionner

Si ce sont des servos MG996R :
Running current 500mA - 900mA
Stall Current : 2.5 A en 6V
A moins d'être sûr qu'il n'y aura jamais de blocage, il vaut mieux considérer le courant maximal.

La tension de 7.4V pour les servos est vraiment un maximum. Pourquoi pas 5V ou 6V ?

Il n'y a pas nécessité à mon sens de séparer l'alimentation de l'ARDUINO. Une seule alimentation peut suffire.

D'une part le module 1A pour les servos risque d'être sous-dimensionné en cas de blocage, d'autre part 1A pour l'ARDUINO + relais sera surdimensionné.

Une alimentation MEANWELL 20W ou 30W ne coûtera pas plus cher que deux modules 1A : IRM-20-12 1.6A ou IRM30-12 2.5A, et me semble un produit un peu plus sérieux.

Merci pour ton retour encore une fois,

Mes servos sont des Lewansoul LD27MG (http://www.lewansoul.com/product/detail-19.html) et semblent nécessiter une tension entre 6 et 7,4V et bien 1A pour le "min working current".

Je ne parviens pas à trouver le "stall current" de ces derniers cependant.

Y-a-t-il un moyen simple de réduire le courant de sortie d'une alimentation? pour en tirer par exemple du 500mA au lieu d'1A? (Je suis une quille en elec, dsl!)

Il n'y a pas nécessité à mon sens de séparer l'alimentation de l'ARDUINO

Si mes servos nécessitent au moins 1A, et que je fais passer +1A dans l'arduino il ne va pas griller?

Etant donné que cela presse, j'ai commandé les deux modules avant d'avoir ta réponse... (My very bad)

J'aimerais donc pouvoir les utiliser et ne pas avoir une enième commande à repasser... :frowning:

Aurais-tu un montage à me conseiller avec ces derniers, pour obtenir suffisamment de courant et les bonnes tensions dans chacun des 2 circuits? (je rappelle que j'ai des régulateurs de tension, des PCBS si il faut les mettre en série ou parallèle ou autre....)

Un grand merci d'avance

Y-a-t-il un moyen simple de réduire le courant de sortie d'une alimentation? pour en tirer par exemple du 500mA au lieu d'1A? (Je suis une quille en elec, dsl!)

Non. Le moteur tire le courant dont il a besoin, en fonction de la charge mécanique. L'alimentation doit le fournir obligatoirement, sinon sa tension s'écroulera.

Si mes servos nécessitent au moins 1A, et que je fais passer +1A dans l'arduino il ne va pas griller?

Le courant des moteurs ne doit pas passer par l'ARDUINO. Il s'agit de réaliser un branchement en parallèle, donc alimenter l'ARDUINO et le convertisseur par deux fils séparés partant de l'alimentation.

Mais comme tu as déjà passé commande de deux modules, à moins de pouvoir annuler, suis ton idée de départ.

J'aimerais donc pouvoir les utiliser et ne pas avoir une enième commande à repasser... :frowning:

Tout dépendra de la charge mécanique des moteurs. Ils tirent au minimum 100mA sans charge.

Merci beaucoup pour ces précisions hbachetti,

Je vais donc essayer comme ça, et si ça ne fonctionne pas je partirais sur autre chose, telle que l'alimentation que tu me conseillais.

Je tâcherais de venir faire un tour ici pour donner mon retour :wink:

Bonjour,

Je reviens car je viens de recevoir mes 2 alims... Et je me rends compte, via la datasheet, que ces 2 composants seuls ne peuvent pas être utilisés tels quels, et qu'il faut que je réalise un montage avec fusible etc... entre autres...

Je pense me tourner vers une solution "ready-to-go" et ne pas avoir à m'embêter avec un nouveau montage...

Vous me recommandez donc de partir une alimentation MEANWELL 20W ou 30W?
Auriez-vous un lien sur conrad, amazon ou un autre site sur lequel je peux l'acheter pour être certain de ne pas me tromper?

Merci d'avance, encore une fois!

Auriez-vous un lien sur conrad, amazon ou un autre site sur lequel je peux l'acheter pour être certain de ne pas me tromper?

En général je me fournis ici (7.90€ de port, réception sous 48H) :
TME

Le choix est large : bloc secteur, alimentation pour PCB, avec connecteurs JST, barres de serrage.
La IRM-20-12 est la moins chère (attention, sans être connecté les prix sont hors taxe).

Je peux difficilement choisir à ta place.

Le principal est de voir si une 20W convient ou s'il faut plutôt 30W, en fonction de la conso maxi des moteurs, blocage envisagé ou pas.

Merci beaucoup, c'est commandé, en espérant que ça fasse le job!
Je viendrais te donner mon retour! :wink:

Je reviens car je viens de recevoir mes 2 alims... Et je me rends compte, via la datasheet, que ces 2 composants seuls ne peuvent pas être utilisés tels quels, et qu'il faut que je réalise un montage avec fusible etc... entre autres...

Un fusible ... entre autres ... c'est peu dire.
Dont un transformateur impossible à approvisionner :confused:

Bonjour,

Je reviens car je me suis rendu compte que la livraison du module IRM-20-12 que j'avais commandé arriverait seulement d'ici 5 semaines.

J'ai donc commandé ceci sur amazon : alimentation 110V/220V to 24V 2A 48W

Vous pensez que ça fera le job?

Il s'agit de modèles 24V ...

En effet, mais j'ai des régulateurs de tensions tels que ceux-ci :

régulateurs 3-40 V en 1.5-35 V/3 A

Tu ne penses pas que ça peut aller?

Quel est l'intérêt d'une alimentation 24V suivie d'un régulateur 12V, suivi lui-même d'un régulateur 7.4V ?

Fais comme tu veux ...