[Programmation] Pas à pas après coupure de courant (Arduino)
Répondre à la discussion
Page 1 sur 4 12 3 DernièreDernière
Affichage des résultats 1 à 30 sur 93

Pas à pas après coupure de courant (Arduino)



  1. #1
    Malevthi

    Pas à pas après coupure de courant (Arduino)


    ------

    Bonjour,
    Je débute avec l'utilisation de moteurs pas à pas pilotés par Arduino. Mes programmes fonctionnent bien mais j'aurais aimé que le moteur continue là où il s'est arrêté après une coupure de courant.
    Par exemple s'il doit faire un tour soit 1024 pas et qu'il a déjà fait 500 pas au moment de la coupure, comment lui faire faire derniers 524 pas restants plutôt que reprendre à 0 ?

    -----

  2. #2
    f6bes

    Re : Pas à pas après coupure de courant (Arduino)

    Bsr à toi, Le moteur est probablement commandé par l'arduino et une interface.
    Plus de jus..l'arduino est en position "off" ( son alimentation ) et le moteur itou.
    Si tu veux reprendre ou en était ton moteur, il faut faire une sauvegarde des données (mais une coupure
    de courant ne te préviens pas à l'avance !!)
    Donc faudrait sauvegarder en "live" et en permanence.
    De quoi s'arracher les cheveux !!
    Bonne soirée

  3. #3
    Exotique

    Re : Pas à pas après coupure de courant (Arduino)

    Il faut que tu prévois d'alimenter ton µC le temps de sauvegarder la position du moteur, au moment de la coupure, en EEPROM du µC.
    Pour cela le condensateur "réservoir" qui devra alimenter le µC (et uniquement lui) doit contenir suffisamment d'énergie pour permettre l'opération.
    Il faut aussi détecter la situation de sous tension sur une des entrées de mesure pour lancer la procédure de sauvegarde.
    Tu peux calculer le condensateur réservoir de sauvegarde de cette manière:

    Cmin= I*t/(U2-U1) avec I le courant nécessaire au µC, t le temps nécessaire à la procédure de sauvegarde, U2 la tension nominale, U1 la tension minimale d'alimentation de ton µC.

    Par exemple Cmin=60.10^-3*0.05/(5-3)=1500µF (valeurs prises au hasard, il faut regarder la doc de ton µC, si c'est une carte il te faudra ajouter une diode sur le +5V du Vcc du µC et le condensateur C.

  4. #4
    jiherve

    Re : Pas à pas après coupure de courant (Arduino)

    Bonsoir
    il faut surtout regarder la tension minimale permettant la sauvegarde en EEPROM(voir BOD). Dans la vraie vie on passe soit par un DC/DC alimenté par une capa de valeur ad hoc chargée à une tension du même bois pour assurer la sauvegarde soit par une sauvegarde sur batterie/pile par un moniteur d'alimentation.
    Les temps de programmation se comptent en ms et même si cela ne consomme pas des ampères la décharge arrive vite!
    JR
    l'électronique c'est pas du vaudou!

  5. A voir en vidéo sur Futura
  6. #5
    jiherve

    Re : Pas à pas après coupure de courant (Arduino)

    Ajout,
    pour detecter la coupure il existe des circuits spécialisés mais on peut aussi utiliser un comparateur basique, dans les deux cas il faudra activer le signal INT0 en interruption c'est l'interruption la plus prioritaire après le RESET.
    JR
    l'électronique c'est pas du vaudou!

  7. #6
    f6bes

    Re : Pas à pas après coupure de courant (Arduino)

    Remoi,
    Donc avec un...."je debute avec l'utilisation" ....etc...ça va vite etre vu !!!
    Bonne journée et année

  8. #7
    Malevthi

    Re : Pas à pas après coupure de courant (Arduino)

    Bonjour et bonne année à tous.
    Merci pour vos réponses, je vois ce que vous proposez pour que la tension soit maintenue un court instant après la coupure. Ma question était autant sur comment dans le programme, mémoriser en continu la position du moteur. J'imagine un compteur de pas, je ne sais pas trop comment poser ma question .... F6BES je pense que c'est ce dont tu voulais parler dans ton premier message.
    Dernière modification par Malevthi ; 01/01/2021 à 10h18.

  9. #8
    Malevthi

    Re : Pas à pas après coupure de courant (Arduino)

    Je ne suis pas un débutant complet, je parlais juste des moteurs pas à pas. J'ai déjà réalisé un guidage GPS pour bateaux depuis de nombreuses années, de la régulation de pression et de niveau de chaudières à vapeur ... qui fonctionnent très bien. Par contre je suis autodidacte, donc j'ai des lacunes. C'est pourquoi les forums et l'entraide me permettent d'avancer.
    Dernière modification par Malevthi ; 01/01/2021 à 10h26.

  10. #9
    FC05

    Re : Pas à pas après coupure de courant (Arduino)

    Je pense que la solution par eeprom est raisonable.

    De plus le nombre de cycle d'écriture est limité, je n'ai plus le chiffre en tête.
    Si tu écris en permanence dans eeprom tu vas rapidement la flinguer.

    Donc il te faut mettre en place une interruption externe, comme déjà suggéré, qui va détecter la coupure de l'alimentation.
    En plus de ça il te faut une réserve d'énergie (capa, pile) qui te permet d'exécuter la routine d'interruption.

    Cette routine écrira dans l'eeprom la position que tu souhaites conserver et bloquera le système en position.

    Il y a des exemples de mises en place des interruptions, c'est au final pas très compliqué.
    "La réalité c'est ce qui reste quand on refuse d'y croire" P.K. Dick

  11. #10
    jiherve

    Re : Pas à pas après coupure de courant (Arduino)

    bonjour,
    en effet la solution d’écrire en permanence aura raison des 100000 cycles de l'EEPROM assez rapidement. Il faut obligatoirement passer par une gestion sur détection de coupure de l'alimentation primaire.
    Je ne sais pas si c'est facile à faire en arduichrarabia, mais en assembleur c'est presque trivial.
    Cependant il faudra être sur que le PaP ne bouge pas à la coupure ou à la mise sous tension et çà c'est pas trivial car les régimes transitoires sont souvent sources de surprises.
    J'ai toujours privilégié soit un codage absolu de la position soit un retour à une position connue indexée par un capteur quelconque.
    JR
    l'électronique c'est pas du vaudou!

  12. #11
    Exotique

    Re : Pas à pas après coupure de courant (Arduino)

    Citation Envoyé par jiherve Voir le message
    bonjour,
    en effet la solution d’écrire en permanence aura raison des 100000 cycles de l'EEPROM assez rapidement.
    JR
    Le problème, comme souvent ici, c'est qu'il n'y a aucune description du besoin...
    100000 coupures de courant, mieux vaut s'attaquer à la cause de ces coupures avant tout.
    C'est sur que si c'est pour une solution à long terme qui est requise il faudra utiliser de la mémoire flash plutôt que de l'EEPROM.

    Mais bon vu que c'est forcément du bidouillage sur ce type de plateforme...

  13. #12
    FC05

    Re : Pas à pas après coupure de courant (Arduino)

    Citation Envoyé par jiherve Voir le message
    bonjour,
    en effet la solution d’écrire en permanence aura raison des 100000 cycles de l'EEPROM assez rapidement. Il faut obligatoirement passer par une gestion sur détection de coupure de l'alimentation primaire.
    Je ne sais pas si c'est facile à faire en arduichrarabia, mais en assembleur c'est presque trivial.
    Cependant il faudra être sur que le PaP ne bouge pas à la coupure ou à la mise sous tension et çà c'est pas trivial car les régimes transitoires sont souvent sources de surprises.
    J'ai toujours privilégié soit un codage absolu de la position soit un retour à une position connue indexée par un capteur quelconque.
    JR
    La gestion des interruptions est vraiment facile. J'ai fais un compte goutte avec.
    Le programme est trivial.
    Le plus dur a été d'adapter ma fourche optique qui était trop étroite pour mes grosses gouttes ... et de faire un petit traitement pour avoir un beau signal bien carré (ca passait sans, mais je suis un peu "ceinture et bretelles").
    "La réalité c'est ce qui reste quand on refuse d'y croire" P.K. Dick

  14. #13
    Malevthi

    Re : Pas à pas après coupure de courant (Arduino)

    Les coupures ne sont pas forcément involontaires. Par exemple, je dois faire tourner une grue sur 170°, elle démarre à 0° et arrivé à 50° je dois éteindre le programme pour une raison quelconque et le redémarrer plus tard. Quand je rallume, la grue va tourner de 170° à partir de là où elle s'est arrêtée au lieu de finir sa course des 120° manquant. Il doit sans doute y avoir une solution simple pour "mémorisé" le dernier pas au moment de l'arrêt

  15. #14
    jiherve

    Re : Pas à pas après coupure de courant (Arduino)

    re
    la solution a été donnée : détection perte alimentation => interruption => sauvegarde en EEPROM avec inscription d'un flag indiquant que cela a été fait, au redémarrage vérification du flag, si bon restitution de la valeur sauvegardée si pas bon valeur par defaut
    C'est trivial en assembleur!
    JR
    Dernière modification par jiherve ; 01/01/2021 à 19h58.
    l'électronique c'est pas du vaudou!

  16. #15
    Malevthi

    Re : Pas à pas après coupure de courant (Arduino)

    Bonjour,
    Merci pour l'info, il me reste à apprendre l'assembleur que je ne maitrise absolument pas ... C'est tout le problème des autodidactes, il y a des trous !
    J'ai imaginé une autre solution inspirée des servos de modélisme: il y a un suivi de la position par potentiomètre. Cela me restituerait la donnée à la reprise du programme. Un flag "mécanique" en quelque sorte ...
    La solution informatique est bien sûr plus légère !
    Dernière modification par Malevthi ; 02/01/2021 à 11h06.

  17. #16
    Piefra

    Re : Pas à pas après coupure de courant (Arduino)

    Bjr et bon voeux

    T'es pas oblige de passer l'assem leur pour programmer une interruption , l'ide le fait tres bien

    https://www.locoduino.org/spip.php?article64

    Cdlt

  18. #17
    f6bes

    Re : Pas à pas après coupure de courant (Arduino)

    Citation Envoyé par Malevthi Voir le message
    Bonjour,
    Merci pour l'info, il me reste à apprendre l'assembleur que je ne maitrise absolument pas ... C'est tout le problème des autodidactes, il y a des trous !
    J'ai imaginé une autre solution inspirée des servos de modélisme: il y a un suivi de la position par potentiomètre. Cela me restituerait la donnée à la reprise du programme. Un flag "mécanique" en quelque sorte ...
    !
    Remoi,
    Reste à savoir la préçision souhaitée !
    Avec un potar pas dit qu'on retrouve ses petits...(à moins de multitours professionnels)
    Bonne journée

  19. #18
    penthode

    Re : Pas à pas après coupure de courant (Arduino)

    Citation Envoyé par Malevthi Voir le message
    Bonjour,
    Merci pour l'info, il me reste à apprendre l'assembleur que je ne maitrise absolument pas ... C'est tout le problème des autodidactes, il y a des trous !
    J'ai imaginé une autre solution inspirée des servos de modélisme: il y a un suivi de la position par potentiomètre. Cela me restituerait la donnée à la reprise du programme. Un flag "mécanique" en quelque sorte ...
    La solution informatique est bien sûr plus légère !
    tout l'avantage des moteurs PàP est qu'ils n'ont pas besoin de recopie : on compte les pas depuis un repère de départ.

    si tu envisage un potentiomètre de recopie : plus besoin de t'enquiquiner avec un PàP
    [b]le bon sens est un fardeau, car il faut s'entendre avec ceux qui ne l'ont pas [/b]

  20. #19
    fdamien12

    Re : Pas à pas après coupure de courant (Arduino)

    Citation Envoyé par Malevthi Voir le message
    Les coupures ne sont pas forcément involontaires. Par exemple, je dois faire tourner une grue sur 170°, elle démarre à 0° et arrivé à 50° je dois éteindre le programme pour une raison quelconque et le redémarrer plus tard. Quand je rallume, la grue va tourner de 170° à partir de là où elle s'est arrêtée au lieu de finir sa course des 120° manquant. Il doit sans doute y avoir une solution simple pour "mémorisé" le dernier pas au moment de l'arrêt
    Bonjour,

    Pour rappel, et au cas où ce ne soit pas très clair pour toi, le microcontrôleur de l'Arduino possède une mémoire non volatile (Flash ou EEPROM) qui conserve donc les données même en cas de coupure de courant. Le seul problème est que le nombre d'écriture est limité (entre 100 000 et 1 000 000).

    En fait, nous étions tous partis sur le fait que la coupure de courant pouvait survenir à n'importe quel moment PENDANT le mouvement. Auquel cas, il faudrait enregistrer la position du moteur à chaque pas, ce qui fait que l'on va très vite atteindre le nombre maximal d'écritures.
    Cette solution n'étant pas envisageable, il faut passer par un circuit externe de détection de perte d'alimentation, associée à un condensateur pour garder l'Arduino alimenté quelques instants, juste le temps nécessaire d'enregistrer en mémoire la position du moteur au moment de la perte du courant (même si avec l'inertie du rotor, le résultat risquera d'être faussé)...

    Si on considère que les pertes de courant ne peuvent arrivent qu'une fois le mouvement terminé, tu peux enregistrer en mémoire la position du moteur à la fin de chaque mouvement : cela limite énormément le nombre d'écritures à réaliser par rapport à si tu le faisais à chaque pas tout en t'épargnant un circuit externe pour détecter la coupure.

  21. #20
    Malevthi

    Re : Pas à pas après coupure de courant (Arduino)

    Mais le problème était bien de mémoriser l'endroit où la manœuvre a été arrêtée. Mais tu fais bien de me le signaler, l'inertie du moteur va tout fausser. Je vais plutôt me tourner vers un retour forcé au 0° avec détection de courant de blocage pour faire le reset du mouvement.
    Je connais bien le site Locoduino qui m'aide bien.
    Dernière modification par Malevthi ; 02/01/2021 à 16h54.

  22. #21
    Qristoff
    Animateur Électronique

    Re : Pas à pas après coupure de courant (Arduino)

    l'inertie du moteur va tout fausser
    l'inertie du PàP est assez faible et de plus, il présente un couple à l'arrêt sous tension que les moteurs DC n'ont pas. Ensuite, si c'est pour faire tourner une grue (modélisme ?), j'imagine que tu as une grande démultplication (grande roue dentée). Quel est ce rapport de démultiplication pour connaitre la précision angulaire recherchée ?
    Tout existe, il suffit de le trouver...!

  23. #22
    FC05

    Re : Pas à pas après coupure de courant (Arduino)

    Comme d'hab, après 25 post on saura exactement à quoi ça va servir et quelles sont les contraintes ...
    "La réalité c'est ce qui reste quand on refuse d'y croire" P.K. Dick

  24. #23
    jiherve

    Re : Pas à pas après coupure de courant (Arduino)

    bonsoir
    çà fait partie du charme!
    JR
    l'électronique c'est pas du vaudou!

  25. #24
    Malevthi

    Re : Pas à pas après coupure de courant (Arduino)

    Bonjour,

    FC05, puisque tu veux savoir à quoi ça va servir et quelles sont les contraintes, je reviens sur mon tout premier post : "je débute avec les moteurs pas à pas" ça va donc me servir à apprendre et comprendre, les contraintes : je suis autodidacte.
    Merci jiherve pour ton indulgence, merci à ceux qui ont accepté de partager leur savoir et désolé d'avoir fait perdre leur temps aux cadors.
    Le savoir, plus on le partage plus il grandit ...

  26. #25
    Qristoff
    Animateur Électronique

    Re : Pas à pas après coupure de courant (Arduino)

    Le savoir, plus on le partage plus il grandit ...
    il ne faut pas se bloquer sur une réponse mais plutôt chercher à répondre aux questions que ceux qui s'intéresse à ton projet se posent..
    Tout existe, il suffit de le trouver...!

  27. #26
    Malevthi

    Re : Pas à pas après coupure de courant (Arduino)

    Tu as raison, mais difficile de faire abstraction quand la réponse est "c'est trivial", " vraiment facile" avec ça je suis bien avancé.

  28. #27
    Malevthi

    Re : Pas à pas après coupure de courant (Arduino)

    Dans un premier temps je voulais faire tourner deux potences pour la mise à l'eau d'un canot de sauvetage (modélisme). Le mouvement est un peu particulier. Au début, le canot est sur le pont avec les potences tournées dos à l'eau. Au démarrage elles tournent simultanément dans le même sens et ensuite l'une continue de tourner et l'autre change de sens. Ainsi le canot "pointe" vers l'eau puis se retrouve // à l'extérieur du bateau et descend. Je pourrais faire un programme avec 2 servos mais je me suis dit que ce serait l'occasion d'apprendre ce qui peut être fait avec les PàP. J'espère ne pas trop déranger avec ce projet si peu utile.

  29. #28
    mag1

    Re : Pas à pas après coupure de courant (Arduino)

    Citation Envoyé par Malevthi Voir le message
    Tu as raison, mais difficile de faire abstraction quand la réponse est "c'est trivial", " vraiment facile" avec ça je suis bien avancé.
    Bonjour,

    Oui, mais les pros, c'est comme çà, ils ont parfois du mal avec les bricoleurs, faut pas leur en vouloir.
    On ne sait pas combien ce moteur consomme. Je pense qu'il faudrait une réserve d'énergie suffisante pour alimenter le µC et la grue le temps suffisant pour arrêter les pulses et sauvegarder la position en EEPROM après détection de la perte d'alim par interruption.
    La valeur de consigne initiale elle est sauvegardée où? Ex les 170° de #13
    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  30. #29
    Malevthi

    Re : Pas à pas après coupure de courant (Arduino)

    Merci pour ces encouragements !
    J'ai trouvé sur un autre site, un équivalent à mon soucis de recalage. Il s'agit d'un pont tournant ferroviaire, j'y ai découvert le pilotage par µPas, le suivi très précis par roue codeuse ... Si le pont a été manœuvré à la main, hors tension, pas de soucis la roue indique la position exacte et repart là où le pont se trouve. Je pense que cela peut être utile à d'autres dans d'autres buts, c'est là l'intérêt d'un forum !
    Pour l'instant je n'ai pas les données précises des composants puisque je ne sais pas si au final je passerai par un ou des PàP ou non. Je m'intéresse à la théorie et aux possibilités offertes. Je conclue déjà que la manœuvre à la main hors tension ne sera pas résolue par l'EEPROM.
    Je fais un prototype avec des petits 28BYJ-48 et leur carte à ULN2003.

  31. #30
    mag1

    Re : Pas à pas après coupure de courant (Arduino)

    La solution avec potar n'est pas si mauvaise en tout cas, elle est simple.

    Le potar a une course utile de 270°, avec un ADC 10 bits, la résolution est 270/1023 = 0,26°. Et on peut dérégler, on retrouvera la position finale.
    Je ne pratique pas l'arduino, mais j'ai fais un truc (un peu) similaire avec un picaxe: http://electromag1.wifeo.com/le-gps-de-mazda-rx8.php

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

Page 1 sur 4 12 3 DernièreDernière

Discussions similaires

  1. [Blanc] Electroménager HS après coupure de courant
    Par invitef15af04f dans le forum Dépannage
    Réponses: 6
    Dernier message: 16/11/2018, 19h30
  2. [Blanc] Problème four après coupure de courant
    Par kalahaine dans le forum Dépannage
    Réponses: 8
    Dernier message: 02/11/2016, 12h48
  3. apres coupure de courant?
    Par invite5be2bad6 dans le forum Électronique
    Réponses: 18
    Dernier message: 05/09/2012, 05h20
  4. Probleme après une coupure de courant
    Par invitea97b4264 dans le forum Matériel - Hardware
    Réponses: 1
    Dernier message: 08/07/2011, 20h26
  5. [Thermique] Panne après coupure courant
    Par inviteda906331 dans le forum Dépannage
    Réponses: 0
    Dernier message: 12/12/2009, 20h55
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...