LOCODUINO

Le microcontrôleur ATtiny45 (7)

Automatisme de passage à niveau

. Par : Christian

Article mis à jour le 30 avril 2022 pour présenter la bibliothèque Servo_ATTinyCoreLa bibliothèque Servo L’IDE d’Arduino est livré avec des bibliothèques préinstallées bien pratiques pour gérer certains périphériques ; c’est le cas de la bibliothèque Servo qui permet de relier des servomoteurs à des cartes Arduino. Cette bibliothèque est (…)

Retourner à l'article

Vous répondez à :

Le microcontrôleur ATtiny45 (7) 24 décembre 2018 23:43

Bonsoir Christian

J’ai repris toute la procédure de programmation de l’ATTINY, et nouvel échec !!
en désespoir de cause j’ai essayé un autre attiny et là miracle ! ça marche !
après vérif : attiny défectueux sortie 3 HS
merci de votre aide
cordiales salutations
PS sur la base de ce sketch peut- ton commander 2 servos pour 2 éguilles avec leds de controle de position ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

13 Messages

  • Le microcontrôleur ATtiny45 (7) 5 juin 2018 17:50, par Maire

    BOnjour,
    Je possède le passage à niveau de Faller actionné par un moteur CC de 12V
    J’aimerai savoir s’il est possible d’adapter ce que vous nous proposé dans votre article à ce moteur.
    Merci pour votre réponse
    Bien à Vous
    Daniel Maire

    Répondre

    • Le microcontrôleur ATtiny45 (7) 5 juin 2018 18:52, par Christian

      Si vous remplacez le moteur CC par un servomoteur, c’est possible puisque vous retombez dans le cas de figure de l’article. Mais je suppose que vous n’envisagiez pas cela.
      Aussi m’est-il assez difficile de répondre car je ne connais pas le PN Faller (est-ce bien un moteur lent ? a-t-il des interrupteurs de fin de course ? etc.)
      l’ATtiny45 peut tout à fait commander un moteur à courant continu, mais pour cela, il ne délivre pas assez de courant et de plus il travaille en 5 V (ici votre moteur est en 12 V). De plus, il faut pouvoir commander le moteur dans les deux sens, ce qui suppose donc d’utiliser un petit circuit intégré appelé driver (exemple L298N, L293 ou autre). Des schémas de montage sont donnés sur le site Arduino. mais dans ce cas, il faut écrire un autre programme !
      Personnellement, à votre place, je préfèrerais travailler avec un Arduino Uno et une carte shield comme l’Arduino Motor Shield. C’est ainsi que vous aurez le moins d’électronique à concevoir. Juste deux cartes à enficher l’une dans l’autre et un programme à écrire et relier le moteur et son alimentation au bornier de la carte Shield. Pour en savoir plus, je vous invite à lire cet article http://locoduino.org/spip.php?article213 . Vous trouverez également des descriptions sur le site d’Arduino concernant la mise en oeuvre de ce shield (c’est très simple).

      Répondre

  • Le microcontrôleur ATtiny45 (7) 24 décembre 2018 12:14, par guy Besseyre

    bonjour Christian

    problème avec le sketch commande PN avec ATTINY 45 ou 85

    j’ai téléversé le programme publié a l’aide d’un UNO ( orginal je précise) comfiguré en programmeur,
    le télversement est OK ,mais pas de fonctionnement du servo ,il fretille légèrement et c’est tout,la LED clignote
    normalement, essaai avec 4 servos de marques différentes, y a t’il un bug dans le programme ?
    merci por réponse et bonnes fètes

    Répondre

    • Le microcontrôleur ATtiny45 (7) 24 décembre 2018 14:26, par Christian

      Bonjour Guy,

      Non, il n’y a pas de bug dans le programme comme en témoigne la vidéo de l’article qui montre bien le fonctionnement du PN.
      D’après ce que vous écrivez, c’est peut-être la fréquence du signal qui n’est pas bonne (ce qui ferait frétiller les servos) et cela doit certainement venir de la fréquence de l’horloge interne au microcontrôleur qui n’a pas été réglée sur 8 MHz lors de l’écriture de la séquence d’initialisation. Les LED clignotent mais à quelle fréquence ?
      Ce que vous pouvez essayer de faire, c’est de reprendre la procédure de programmation en suivant à la lettre tout ce que j’ai dit à ce sujet dans le deuxième article (notamment le choix de l’horloge interne à 8 MHz lors de l’écriture de la séquence d’initialisation). L’IDE accepterait un autre choix et ne générerait aucun message d’erreur (donc le téléversement est bon) mais le programme ne réagira pas selon le bon timing : la fréquence des LED n’est pas ce qu’elle devrait, et le signal de servo ne respecte plus la fréquence nécessaire pour faire fonctionner la mécanique.
      Et bien évidemment, il faut vérifier le câblage car c’est vite fait de se brancher sur la broche d’à côté (exemple, le servo est alimenté mais ne reçoit aucun signal donc frétille) !
      Cordialement.

      Christian

      Répondre

      • Le microcontrôleur ATtiny45 (7) 24 décembre 2018 23:43

        Bonsoir Christian

        J’ai repris toute la procédure de programmation de l’ATTINY, et nouvel échec !!
        en désespoir de cause j’ai essayé un autre attiny et là miracle ! ça marche !
        après vérif : attiny défectueux sortie 3 HS
        merci de votre aide
        cordiales salutations
        PS sur la base de ce sketch peut- ton commander 2 servos pour 2 éguilles avec leds de controle de position ?

        Répondre

        • Le microcontrôleur ATtiny45 (7) 25 décembre 2018 19:47, par Christian

          Content que cela fonctionne !
          On peut tout à fait s’inspirer de ce programme pour commander deux aiguilles via deux servomoteurs, mais si on veut ajouter des LED de contrôle de position, j’ai bien peur que notre pauvre ATtiny45/85 n’ait pas assez de sorties. On peut alors utiliser l’ATtiny44/84 qui en a un peu plus.
          Faisons le compte pour une aiguille. Il faut une sortie pour le signal de servo, une entrée si on utilise un interrupteur de commande d’aiguille ou bien deux entrées si on utilise des boutons poussoirs et enfin une sortie pour les deux LED de position (voire deux si on n’est pas astucieux). Dans le meilleur des cas, cela demande trois broches de µC donc six pour deux aiguilles, ce qui ne tient pas sur un seul ATtiny45/85 qui n’a que 5 E/S (la 6ème étant utilisée pour le RESET dans la programmation).
          Attention : les LED de position donneront la position demandée et non la position réelle, mais c’est bien suffisant dans la plupart des cas. Il faut simplement en être conscient.
          Cela permet de voir que le choix du µC doit être fait en fonction du projet qu’on veut réaliser. Mais si on veut multiplier le nombre d’aiguilles, pourquoi ne pas utiliser une carte Uno ou Nano qui sera plus facile à programmer et qui permet de commander plusieurs servos en même temps ? De plus, question prix, c’est même sans doute moins cher par aiguille commandée...

          Répondre

          • Le microcontrôleur ATtiny45 (7) 26 décembre 2018 17:56, par guy Besseyre

            Bonsoir Christian

            merci pour ces conseils, en effet l’utilisation d’un UNO résoud le problème (j’utilise le NANO), mais ces modules sont trop gros pour mon application particulière, les attiny sont parfaits du fait de leur taille ;
            donc il me faut :
            1 inter
            2 servos couplés en parallèle (2 aiguilles en bretelle)
            2 leds (1 pour droit, 1 pour dévié)
            soit 5 E/S
            est-ce correct ?
            d’autre part connaissez-vous ce module ,(voir lien)

            Voir en ligne : Guy Besseyre

            Répondre

            • Le microcontrôleur ATtiny45 (7) 27 décembre 2018 09:57, par Christian

              NANO et UNO, c’est quasiment la même chose à part la taille et la présentation et un NANO n’est pas beaucoup plus gros qu’un ATtiny.
              Votre nombre de sorties est correct, mais puisque vous utilisez un interrupteur (et non des boutons poussoirs), celui-ci donne déjà la position demandée et les LED ne sont alors que décoratives.
              Vous pouvez aussi remplacer les deux servos par un seul (aiguilles de bretelle) et imaginer une transmission qui actionne les deux aiguilles à partir de ce seul servo.
              Vous pouvez aussi gagner une E/S en câblant les deux LED sur cette E/S qui a deux états : donc suffisant pour allumer l’une ou l’autre des LED (décrit dans mon cours d’électronique en chargement libre sur ce site).
              En fait, votre projet est tout à fait faisable et ce que je veux dire dans cette réponse est qu’on peut toujours simplifier un projet car plus un projet est simple et plus on arrivera au bout facilement. Et en plus, on peut économiser des E/S qui peuvent alors servir à d’autres choses.
              Ces quelques réponses vous ont permis d’avancer et je vous propose maintenant d’ouvrir un fil dans le forum afin d’expliquer votre avancement et de trouver si nécessaire de l’aide. Mais je dis bien "si nécessaire" car vous vous débrouillez très bien. Et lorsque votre montage sera opérationnel, une petite vidéo serait la bienvenue histoire d’inciter d’autres lecteurs à faire de même.
              Christian

              Répondre

  • Le microcontrôleur ATtiny45 (7) 8 février 2024 21:02, par Juan

    Bonjour,
    Articles très intéressants sur l’ATtiny. A vrai dire, depuis que j’ai découvert ce micro, j’en suis enchanté.
    Je suis en train d’adapter plusieurs décodeurs, jusqu’à présent j’ai réussi à programmer un décodeur d’accessoires, et un autre décodeur d’aiguillage avec solénoïdes. Le tout avec l’ATtiny85.

    Maintenant j’essaie de programmer un décodeur à servo, mais je n’y arrive pas. L’idéal (pour moi) serait de gérer un (ou deux) servos et deux lumières, mais je rencontre des difficultés avec le servo. Je veux dire qu’il ne fonctionne pas.

    Pouvez-vous m’aider ?
    Merci beaucoup,

    Répondre

    • Le microcontrôleur ATtiny45 (7) 9 février 2024 09:42, par Christian

      A l’époque où l’article a été écrit, il n’existait aucune bibliothèque pour gérer un servo depuis un ATtiny et c’est pourquoi nous avons reconstitué le signal.
      Je pense qu’aujourd’hui, de telles bibliothèques doivent exister et la première chose à faire serait de les chercher sur github.
      Une autre possibilité est d’utiliser le timer de l’ATtiny pour le faire travailler afin de reconstituer le signal nécessaire au servo. La série d’articles sur les timers peut vous aider, notamment ce qui concerne les timers 8 bits puisque l’ATtiny85 n’a pas de timer 16 bits (raison pour laquelle la bibliothèque Servo de l’IDE ne fonctionnait pas à l’époque).
      J’espère que cette réponse vous donne quelques axes de travail possibles.

      Répondre

      • Le microcontrôleur ATtiny45 (7) 9 février 2024 09:49, par Juan

        Merci beaucoup pour votre réponse, Christian.
        En effet, il existe déjà plusieurs librairies pour le servo avec l’ATtiny. Entre autres, le classique SoftwareServo.h est valable. J’ai essayé et je peux effectivement actionner le servo.
        Ce que je ne réussis pas, pour l’instant, c’est à regrouper le tout dans un sketch pour un décodeur d’accessoires dcc qui inclurait le servo. Mes connaissances en programmation sont très limitées.
        Je vous remercie encore.
        Cordialment,
        Juan

        Répondre

        • Le microcontrôleur ATtiny45 (7) 9 février 2024 12:18

          Ne pratiquant pas le DCC, je le connais assez mal mais je sais que Thierry de LOCODUINO a écrit des articles concernant des décodeurs d’accessoires. C’est le moment de les lire.
          Enfin, il faut aussi penser à augmenter vos connaissances en programmation et donc y consacrer le temps nécessaire en lecture d’articles ou visualisation de tutos sur YouTube. Ce n’est pas du temps perdu car vous le récupérerez pour la programmation de vos futurs projets.

          Répondre

  • Le microcontrôleur ATtiny45 (7) 9 février 2024 12:23, par Juan

    Ok, merci bien

    Répondre

Rubrique Matériel

Les derniers articles

Les articles les plus lus