Piloter un servo moteur en LowPower

Bonjour,

J'ai un servo moteur que j'aimerai piloter pour ouvrir et fermer mon poulailler.

Pour cela, je me suis basé sur les composants suivants:

  • Un Arduino Nano
  • Un DfRobot solar power manager 5V avec son panneau solaire
  • Un capteur de luminosité
  • Un servo moteur 5V 25Kg/cm
  • Une batterie à base de 3x18650 montées en parallèle

J'arrive bien à piloter l'ensemble lorsque le Nano est branché à une source d'alimentation USB (qui produit suffisamment de courant) mais il passe en RESET lorsque je ne compte que sur le 5V/1A qui sort de la carte DfRobot (sur ses sorties pilotables).
J'en suis arrivé à la conclusion que le courant d'appel du servo était trop costaud pour la carte (2.5A selon la documentation).

Comme mon Nano est en mode LowPower et que j'ai désactivé la LED pour encore grappiller quelques mAh, j'aimerais qu'il en soit de même pour le servo moteur.
Il faudrait donc que le +5V du moteur puisse être activé et désactivé à la demande (c'est à dire quand il faut ouvrir ou fermer la porte uniquement) pour économiser de la batterie.

Est-ce qu'un module à base de Mosfet (comme ça ?) suffirait pour piloter cette alimentation du servo (je ne parle pas du fil de pilotage du servo, qui lui est relié directement au Nano) ?

Est-ce je peux installer un step-up après le mosfet pour rehausser la tension des batterie (3.7V) à 5V ?
J'imagine quelque chose dans ce goût là:


                   ┌───────┐              5V   ┌───────┐
                   │ Solar │            ┌──────► Light │
                   │ Panel │            │      │       │
                   │       │            │      │ Sensor│
                   └───┬───┘            │      └───┬───┘
                       │5V              │          │Data
  ┌────────────┐   ┌───▼────────────────┴─┐ 5V ┌───▼───┐
  │  BATTERIE  └───► DfRobot solar pwr    ├───►│ Nano  │
  │  3x18650   ◄───┐       5V/1A          │ 1A │       │
  └──────┬─────┘   └──────────────────────┘    └──┬───┬┘
         │                                        │   │
         │                   ON/OFF Signal        │   │Signal
         │              ┌─────────────────────────┘   │
         │              │                             │
         │              │                             │
         │ 3.7V    ┌────▼───┐   ┌─────────┐ 5V ┌──────▼┐
         └─────────► Mosfet ├──►│Step-up  ├───►│ Servo │
                   │ Module │   │ 3.7>5V  │    │ Motor │
                   └────────┘   └─────────┘    └───────┘

Merci d'avance

A tu regardé le thread ?

Qui ça Il ton DfRobot ou le nano ?

Un servo-moteur est généralement utilisé pour contrôler précisément la position d'un axe mécanique. Lorsqu'on coupe son alimentation, il perd sa capacité à maintenir la position précise à laquelle il a été commandé : il n'y a plus de rétroaction de position donc le servo-moteur peut se déplacer librement sous l'influence des forces externes (même si certains servo-moteurs intègrent un mécanisme de freinage ou de maintien de position, lorsque l'alimentation est coupée, ce mécanisme de freinage peut se relâcher, permettant à l'axe de se déplacer plus librement).

Pire encore certains servo-moteurs ont une position neutre mécanique prédéfinie. En l'absence d'alimentation, le moteur peut revenir à cette position neutre sous l'influence de ressorts ou d'autres mécanismes internes.

➜ le servo n'est peut être pas le moteur idéal pour votre porte de poulailler..

Merci à tous les deux de vos réponses.

Les batteries sont neuves ont été égalisées. RAS de ce côté là.
C'est bien la Nano qui reset lorsque je veux démarrer le servo moteur. Quand le servo n'est pas connecté, tout fonctionne parfaitement.

Le servo peut être "mou" quand la porte du poulailler est ouverte ou fermée. C'est une porte rotative (axe haut-bas) qui n'a pas besoin d'être freinée. Quant à la position neutre du moteur, je l'ai installé en place plusieurs jours (déconnecté) et je n'ai pas constaté de mouvements parasites.

OK

si un prédateur pousse la porte quand le courant est coupé, est-ce qu'elle tourne ?

sur votre dessin on ne voit pas la source de courant pour le step-up et le montage avec votre mosfet. il faudrait un "vrai" schéma électronique de votre circuit

Non, impossible pour un renard ou une fouine de réussir à l'ouvrir. C'est très sécurisé.

Le step-up est alimenté directement depuis le mofset (lui-même aliménté par les 18650 mises en parallèle). Comme c'est le Nano qui pilote le mosfet, si la tension devient trop basse, il se coupera et de fait, coupera l'alimentation du moteur.

Avec quel outil est-il possible de faire un schéma avec tous ces composants ?

Salut.
Il y a plusieurs défauts dans ton système.

Le MOSFET IRF520 envisagé n'est pas un modèle Logic level. Il ne pourra pas commander un servo avec un courant élevé et une tension de gate de 5V.
J'ai déjà réalisé un projet analogue et j'ai utilisé un SUP90P06

La NANO consomme trop, même en deep sleep. Il faudrait plutôt envisager une PRO MINI 16MHz, en la bricolant pour qu'elle soit la moins consommatrice possible.

Un capteur de luminosité n'est pas adapté. La porte va se fermer trop tôt. Les poules se couchent le plus tard possible et profitent de la moindre luminosité. Pour mon projet j'ai utilisé un module RTC DS3231 et réglé la fermeture sur l'heure de coucher du soleil + 30 minutes.

Pour mon projet, j'ai également utilisé deux convertisseurs step-up, un pour l'ARDUINO, et un pour le servo, ceci afin d'éviter le problème que tu évoques.

un crayon, un règle et du papier puis poster une photo :slight_smile:
ça n'a pas besoin d'être photo-réaliste mais indiquer les points importants et les broches utilsées

@hbachetti n'a pas mis le lien sur son projet : ➜ RitonDuino: Porte Motorisée de Poulailler (1ère Partie)

Voici le cablage que j'avais fait initialement. Le courant était insuffisant pour faire fonctionner le servo.


Après ma porte est plutôt légère et bien équilibrée (elle ressemble à ça), donc s'il suffit de changer le servo par un plus léger, je suis preneur.

Si ça n'est pas possible, j'imaginais un branchement comme ceci:

Tu as par exemple fritzing qui permet de concevoir dans la vue "platine d'essai" et d'exporter l'image de la vue "schématique" sur le forum.

Attention, le LM2596 est un convertisseur step-down.
Un MT3608 ou un SX1308 sera plus approprié.

Le MT3608 ne sort-il pas un courant trop faible pour être capable de gérer le servo moteur en pic ?

Ne connaissant pas le courant absorbé par ton servo, je ne vois pas comment je pourrais répondre a cette question.

J'ai acheté un DS3231 suite aux échanges précédents mais j'ai un souci pour le faire fonctionner correctement.

J'ai réalisé le schéma et le code suivant pour l'utiliser (le mien était légèrement différent de celui disponible sur Wokwi mais les connexions sont les mêmes): DS3231 - Wokwi ESP32, STM32, Arduino Simulator

Quand le Nano part en deep sleep, le DS3231 semble perdre l'heure qui lui était assignée. Les piles sont neuves et testées à 3.3V. J'ai retiré la résistance qui était située après la diode sur le PCB du RTC. Comme je n'avais pas de pile rechargeable, ça ne servait à rien à part endommager une pile classique.

Voici un extrait des logs quand je lance le système:

Booting up
RTC lost power. Set time to compilation one
Now: 16/12/2023 19:11:38
> Loop
Now: 16/12/2023 19:11:48
> Loop
Now: 16/12/2023 19:11:58
> Loop
Now: 1/1/2000 0:0:0
> Loop
Now: 1/1/2000 0:0:0
> Loop
Now: 1/1/2000 0:0:0

Mon DS3231 est-il deffectueux ?

Quel est le code.
Tu ne fais pas une mise à l'heure fixe dans ton code ?

Le code est celui que j'ai mis dans le lien Wokwi ci-dessus.
Etonnamment le DS3231 semble fonctionner quand il est branché sur le 3.3V (et pas sur le 5V). Je peux couper complètement l'alim du Nano et revenir 20mn après, l'heure est toujours bonne.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.