LOCODUINO

Passage à niveau géré par Arduino

Passage à niveau géré par Arduino (2)

Les feux lumineux clignotants

.
Par : Christian

DIFFICULTÉ :

Dans le précédent article (Passage à niveau géré par Arduino (1)), nous avons vu comment on peut détecter qu’un train approche d’un passage à niveau. Il est temps maintenant d’agir pour protéger la circulation routière et la première chose à faire est de faire clignoter les feux rouges qui accompagnent le PN.

Le montage des feux

La figure 1 montre un exemple de feu rouge clignotant de passage à niveau en France. On remarque une cible ronde de couleur gris foncé, entourée d’un cercle blanc avec en son centre, une ampoule rouge. Une visière permet de protéger l’ampoule de l’éclairage ambiant afin de renforcer sa visibilité. Lorsque le feu clignote, l’arrêt est obligatoire tout comme le rouge d’un feu tricolore.

Figure 1
Figure 1
Un feu de passage à niveau en France

Les feux de PN étaient initialement positionnés sur le côté droit de la route comme le montre la figure 2, mais actuellement, les normes de sécurité imposent d’avoir aussi des feux de PN sur le côté gauche de la route afin de renforcer leur visibilité, ce qui est très utile si le PN est situé dans un virage ou une chicane.

Figure 2
Figure 2
Positionnement des barrières et des feux de PN

Dans le dernier article, nous verrons comment ajouter deux feux de PN supplémentaires pour reproduire un PN contemporain. Cependant, la plupart des réseaux peuvent se contenter de deux feux, soit parce que l’époque reproduite le permet, soit parce que le réseau n’est pas visible de tous les côtés ; on peut alors se contenter de mettre deux feux fonctionnels côté visible et deux feux factices de l’autre côté comme le montre la figure 3.

Figure 3
Figure 3
Feux fonctionnels et feux factices

L’ampoule peut être reproduite avec une micro-LED rouge. La tension aux bornes de la LED étant de 1,8 V à peu près, et une sortie numérique d’Arduino à l’état HIGH étant à 5 V, on voit qu’on peut mettre deux LED en série avec une résistance de 470 Ω limitant le courant à quelques milliampères.

Afin de reproduire l’inertie thermique des filaments des ampoules, nous utiliserons la bibliothèque LightDimmer créée par un membre du groupe Locoduino. Les LED doivent être sur une sortie numérique délivrant de la PWM. Réservons l’entrée-sortie 3 au cas où nous aurions besoin d’une entrée générant une interruption, nous avons alors la possibilité d’utiliser les sorties 5, 6, 9, 10 et 11. La figure 4 montre le schéma de montage de nos deux LED sur la sortie 6.

Figure 4
Figure 4
Montage d’un ensemble de deux LED sur la carte Arduino Uno

La bibliothèque LightDimmer

Cette bibliothèque est décrite dans le fichier README à cette adresse : https://github.com/Locoduino/LightDimmer. L’installer est très simple : il suffit d’aller dans le menu Croquis de l’IDE, puis Inclure une bibliothèque > Gérer les bibliothèques. On arrive alors dans une fenêtre "Gestionnaire de bibliothèque" et il suffit alors de taper LightDimmer dans la case "Filtrez votre recherche" puis d’installer.

Il faut bien évidemment inclure cette bibliothèque au programme avec un ordre #include, puis il faut instancier un objet de type LightDimmer en lui donnant un nom (par exemple feuPN).

La fonction principale de LightDimmer est LightDimmer::update() appelée dans la loop du programme. La méthode begin(pin, level) permet de définir dans le setup à quelles sorties les LED sont reliées.

Les méthodes utilisées dans la loop parlent d’elles-mêmes :

  • startBlink() permet de démarrer le clignotement.
  • stopBlink() permet d’arrêter le clignotement.
  • off() permet d’éteindre les LED de façon progressive (afin de ne pas les laisser allumées quand on arrête le clignotement).

Le programme

Le programme ci-dessous gère deux feux de PN branchés sur la sortie 6 de la carte Arduino Uno. Il complète le programme donné dans l’article précédent Passage à niveau géré par Arduino (1). Voici ce que nous avons ajouté :

  • inclusion de la bibliothèque LightDimmer (ligne 11)
  • déclaration de la sortie pour les LED (ligne 14)
  • instanciation d’un objet appelé feuPN (ligne 17)
  • dans le setup : feuPN.begin (LED, HIGH); permet d’initialiser LightDimmer (ligne 41)
  • dans loop : arrêt du clignotement et extinction des feux (lignes 48-49) si etatZonePN est égal à false, ou bien commencement du clignotement (ligne 53) si etatZonePN est égal à true. Enfin, mise à jour de l’état des feux du PN par LightDimmer::update(); (ligne 55)
/* PN_TIB_blinkFeuPN.ino
   -----------------------------------------------------------------
   Fait clignoter un ensemble de deux feux de PN branches sur une
   meme sortie avec la bibliothèque LightDimmer lorsque la zone PN
   est occupee
   -----------------------------------------------------------------
   C BEZANGER - 2018 - 2020 Domaine public
   Derniere mise a jour : 28 mai 2020
*/

#include <LightDimmer.h>

const byte ILS=2; // entree commune a tous les ILS
const byte LED=6; // sortie pour deux feux de PN
unsigned int compteur = 1;  // compteur d evenements (survol ILS)

LightDimmer feuPN;

volatile static boolean etatZonePN = true; // Initialiser avec train en gare sur TIB
volatile static unsigned long old_top_debutISR;  // Date anterieure d appel ISR
unsigned long old_top = 0;  // variable pour afficher donnees utiles

void changeEtat() { // routine d'interruption (ISR)
  unsigned long top_debutISR = millis();  // date appel ISR
  if((top_debutISR - old_top_debutISR) > 2000) {
    // 2 secondes au moins entre execution ISR
    etatZonePN = !etatZonePN; // etat passe a etat oppose
    old_top_debutISR = top_debutISR;  // initialisation date anterieure d appel ISR
  }
} // fin de ISR

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200); // Communication avec le moniteur  
  pinMode (ILS, INPUT_PULLUP);
  pinMode (LED_BUILTIN, OUTPUT);
  // changeEtat est la routine d'interruption sur l'entree ILS
  // elle est declenchee par un front descendant
  attachInterrupt (digitalPinToInterrupt(ILS), changeEtat, FALLING);
  digitalWrite (LED_BUILTIN, LOW);
  feuPN.begin(LED, HIGH); // LED s allume avec etat haut
} // fin de setup

void loop() {
  // put your main code here, to run repeatedly:
  if(etatZonePN == false) {
    digitalWrite (LED_BUILTIN, LOW); // eteint LED de controle de la section
    feuPN.stopBlink();  // arrete le clignotement des feux de PN
    feuPN.off();        // eteint les feux de PN
  }
  if(etatZonePN == true) {
    digitalWrite (LED_BUILTIN, HIGH); // allume LED de controle de la section
    feuPN.startBlink(); // commence le clignotement des feux de PN
  }
  LightDimmer::update();
  if(old_top_debutISR != old_top) { // Affichage pour chaque nouveau survol ILS
    Serial.print(compteur);
    Serial.print("     ");
    Serial.print(old_top_debutISR);
    Serial.print("     ");
    Serial.println(old_top_debutISR - old_top);
    old_top = old_top_debutISR; 
    compteur = compteur + 1;   
  }
} // fin de loop

Arrivé à ce stade, vous disposez déjà d’une animation sympathique pour un passage à niveau de type SAL 0 (Signalisation Automatique Lumineuse sans barrière, type interdit en France depuis 1973). Dans le prochain article, nous verrons comment motoriser les barrières de notre PN afin d’en faire un PN gardé automatique de type SAL 2 (Signalisation Automatique Lumineuse à 2 demi-barrières). Comme vous le voyez, nous concevons notre projet par étapes et tout doit fonctionner parfaitement avant de passer à l’étape suivante. La mise au point est ainsi plus facile.

34 Messages

  • Passage à niveau géré par Arduino (2) 21 avril 2022 08:10, par Philippe GUENET

    Bonjour,
    D’abord, merci pour vos articles qui sont très utiles et bien faits.
    Dans le but de migrer ce montage vers un ATtiny (85 ou 84) pouvez-vous me dire si la bibliothèque "LightDimmer.h" est compatible avec ces puces.
    Pouvez-vous me conseiller une bibliothèque pour gérer les servomoteurs également sur ce type de puces (en remplacement de la bibliotèque "servo.h").
    J’espère que vous pourrez répondre à mon questionnement.
    Bien cordialement.

    Voir en ligne : Passage à niveau géré par Arduino (2)

    Répondre

    • Passage à niveau géré par Arduino (2) 21 avril 2022 09:53, par Christian

      Concernant la bibliothèque LightDimmer, je vais poser la question directement au concepteur et je reviendrai vers vous dès que possible.
      Par contre, dans ce projet de migrer vers un ATtiny, le gros problème sera de commander les servos car ces µC ne peuvent utiliser la bibliothèque Servo d’Arduino. Je l’explique dans cet article :
      https://locoduino.org/spip.php?arti...
      En conséquence, il faudra chercher si une bibliothèque a été conçue pour ces puces ou bien reconstituer un signal capable de s’appliquer à un servo comme je le faisais dans l’article précité.
      Quel est l’intérêt de faire appel à des ATtiny alors qu’on peut utiliser une carte Nano qui ne coûte pas beaucoup plus cher sur le marché asiatique ? En échange de la différence de prix, on se simplifie grandement la vie, mais ce n’est qu’une suggestion.
      A bientôt pour la réponse à la première question.

      Répondre

      • Passage à niveau géré par Arduino (2) 21 avril 2022 11:03, par Jean-Luc

        Le COVID est passé par là (et surtout la récupération de TVA ☺️). Un Nano sur le marché asiatique coûte désormais dans 6€ plus le port alors que par le passé, on en trouvait à 2€50, port gratuit. Alors qu’un ATTiny chez, par exemple, RS est à 2€50 en moyenne.

        Répondre

        • Passage à niveau géré par Arduino (2) 21 avril 2022 11:47, par Philippe GUENET

          Oui Jean-Luc ... sans parler de la place... d’autant qu’avec les frais de port c’est plutôt autour de 10-12 euros qu’on peut avoir un nano ou un mini. Même si les ATtiny ont également augmentés, ca reste plus raisonnable.
          J’ai acheté un tas de ATtiny88 (autour de 1.50 pièce hors frais de transport) mais je n’ai pas encore testé ... il me faudrait des journées de 48 heures ... l’emploi du temps d’un retraité est dingue !! (lol)

          Répondre

      • Passage à niveau géré par Arduino (2) 21 avril 2022 11:48, par Philippe GUENET

        Merci Christian.

        Répondre

    • Passage à niveau géré par Arduino (2) 21 avril 2022 10:55, par Jean-Luc

      Bonjour,
       
      LightDimmer ne réclame que les fonctions de base, pinMode, digitalWrite et millis(), pour fonctionner. Donc ça ne devrait pas poser de problème.
       
      En ce qui concerne la bibliothèque Servo, elle nécessite un timer 16 bits. Les ATTiny 24/44/84 ont un timer 16 bits et la bibliothèque Servo fonctionnera (des exemples sont dans le package de Spence Konde). Les ATTiny 25/45/85 n’ont pas de timer 16 bits et la bibliothèque Servo ne fonctionnait pas ; Toutefois, il semble que ça ait changé puisque les exemples de Servo compilent maintenant avec succès.

      Répondre

      • Passage à niveau géré par Arduino (2) 21 avril 2022 11:52, par Philippe GUENET

        OK ....merci bien Jean-Luc .... le mieux est de tester mais comme je ne maitrise pas trop Arduino ... j’ai toujours peur de faire cramer quelque chose. Mes premiers pas en électronique ont eté fatals à un bon nombre de NE555.

        encore merci pour cette aide très rapide. Bonne journée à tous.

        Répondre

        • Passage à niveau géré par Arduino (2) 21 avril 2022 11:59, par Philippe GUENET

          Je sais qu’il existe une bibliothèque Servo 8 bits mais des retours d’expérience avec celle-ci me seraient utiles.

          Répondre

          • Passage à niveau géré par Arduino (2) 21 avril 2022 13:31, par Jean-Luc

            Servo compile sur ATTiny x5. Il semblerait donc qu’elle ait été adaptée pour utiliser un timer 8 bits quand le 16 bits n’est pas présent. À vérifier.

            Répondre

            • Passage à niveau géré par Arduino (2) 21 avril 2022 17:18, par Philippe GUENET

              Merci beaucoup Jean-Luc, je vais essayer de trouver le temps de procéder à des tests.
              Je ferai une petite remontée ici dès que possible.

              Merci à toute l’équipe

              Répondre

              • Passage à niveau géré par Arduino (2) 22 avril 2022 09:44, par Christian

                Bonjour Philippe,
                Je suis très intéressé des tests que vous pourrez faire car je réfléchis depuis hier à la mise à jour que je vais devoir faire sur l’article ATtiny et servomoteurs. Plus j’aurais de billes et mieux ce sera.
                Dans le domaine d’Arduino, les choses évoluent très vite et c’est pourquoi nous avons défini dans nos normes de rédaction comment faire des mises à jour d’articles ; cela nous permet de proposer à nos lecteurs des informations qui restent valides. Et l’exemple de cet échange montre que chacun peut jouer son rôle. D’ailleurs, cet espace d’échanges à la suite de nos articles est surtout fait pour cela.
                Encore merci d’avoir soulevé ce point avec nous.

                Répondre

                • Passage à niveau géré par Arduino (2) 22 avril 2022 12:48, par Philippe GUENET

                  Avec plaisir. Je vais essayer de regarder cet après-midi ... au pire pendant le week-end. J’ai déjà vérifié que j’avais la bonne bibliothèque (la 1.1.8).
                  à bientôt ici.

                  Répondre

                  • Passage à niveau géré par Arduino (2) 22 avril 2022 15:30, par Philippe GUENET

                    Bon ... pas cool chez moi.
                    _"erreur de compilation pour la carte ATtiny25/45/85".

                    Pour être certain de moi, j’ai totalement désinstallé Arduino et effacé manuellement tous les résidus sur le HD (bien évidement, j’ai sauvegardé tous mes fichiers ino ... mais il faudra que je réinstalle les bibliothèques utilisées)
                    J’ai réinstallé Arduino (1.8.19) qui contient déjà la 1.1.8 de Servo. J’ai réinstallé les cartes.
                    Chargement de l’exemple "sweep" et donc erreur de compilation sur une carte 85 (ca fonctionne semble-t-il pour les 84)

                    je ne sais pas comment joindre des pièces jointes ni comment pouvoir échanger sans encombrer ici.
                    Pour l’instant, je vais continuer de réinstaller les bibliothèques

                    Répondre

                    • Passage à niveau géré par Arduino (2) 23 avril 2022 00:40, par Christian

                      As-tu vérifié que c’est bien la version 1.1.8 ? En effet, j’avais l’IDE 1.8.19 et pourtant ma bibliothèque Servo était la 1.1.7. Donc pour être certain, tu vas dans le gestionnaire de bibliothèques, tu recherches Servo et ensuite, tu pourras voir ton numéro de version et installer la 1.1.8 (au cas où tu n’aurais pas la bonne version).
                      Pour ma part, avec l’IDE 1.8.19 et après avoir installé Servo 1.1.8, l’exemple Sweep a compilé (il faut aussi penser à modifier le numéro de broche car l’ATtiny n’a pas toutes les connexions de la carte Uno).

                      Répondre

                      • Passage à niveau géré par Arduino (2) 23 avril 2022 06:46, par Philippe GUENET

                        Bonjour Christian,
                        Oui c’est bien la 1.1.8 qui est installée. Je viens même de la recharger à partir du site arduino.cc..

                        Oui, j’ai bien changé le pin

                        J’avais oublié de vous dire que la loi de Murphy a spécialement été concue pour moi.

                        J’ai un autre ordi sur lequel j’avais une installation de l’ide. Je vais tester dans l’après-midi car depuis la nouvelle installation de l’IDE arduino j’ai tout un tas de bizareries que je n’avais pas avant (par exemple des erreurs de compilation si mes procédures sont écrites après le loop. Il faut qu’elles soient impérativement avant le setup pour ne plus générer d’erreurs).

                        je reviens vers vous dans la journée.

                        Bon We à tous

                        Répondre

                        • Passage à niveau géré par Arduino (2) 23 avril 2022 06:59, par Philippe GUENET

                          voici le message d’erreur complet

                          Arduino : 1.8.19 (Windows 10), Carte : "ATtiny25/45/85, ATtiny85, Internal 1 MHz"

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp : In function ’void __vector_3()’ :

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:82:44 : error : cannot convert ’volatile uint8_t* aka volatile unsigned char*’ to ’volatile uint16_t* aka volatile unsigned int*’ for argument ’2’ to ’void handle_interrupts(timer16_Sequence_t, volatile uint16_t*, volatile uint16_t*)’

                          handle_interrupts(_timer1, &TCNT1, &OCR1A) ;

                          ^

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp : In function ’void initISR(timer16_Sequence_t)’ :

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:129:5 : error : ’TCCR1B’ was not declared in this scope

                          TCCR1B = _BV(CS11) ; // set prescaler of 8

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:129:5 : note : suggested alternative : ’TCCR0B’

                          TCCR1B = _BV(CS11) ; // set prescaler of 8

                          TCCR0B

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:136:5 : error : ’TIFR1’ was not declared in this scope

                          TIFR1 |= _BV(OCF1A) ; // clear any pending interrupts

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:136:5 : note : suggested alternative : ’TIFR’

                          TIFR1 |= _BV(OCF1A) ; // clear any pending interrupts

                          TIFR

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:137:5 : error : ’TIMSK1’ was not declared in this scope

                          TIMSK1 |= _BV(OCIE1A) ; // enable the output compare interrupt

                          C :\Users\phili\OneDrive\Programmes\Arduino\libraries\Servo\src\avr\Servo.cpp:137:5 : note : suggested alternative : ’TIMSK’

                          TIMSK1 |= _BV(OCIE1A) ; // enable the output compare interrupt

                          TIMSK

                          exit status 1

                          Erreur de compilation pour la carte ATtiny25/45/85

                          Ce rapport pourrait être plus détaillé avec
                          l’option "Afficher les résultats détaillés de la compilation"
                          activée dans Fichier -> Préférences.

                          Répondre

            • Passage à niveau géré par Arduino (2) 21 avril 2022 19:02, par Christian

              Est-ce que tu pourrais m’en dire plus, car je viens d’essayer l’exemple Sweep sur ATtiny25/45/85 et cela ne compile pas. Bibliothèque Servo version 1.1.7.
              Par contre, je confirme qu’il compile bien pour l’ATtiny24/44/84.
              Ce résultat tendrait à confirmer qu’un timer 16 bits est bien requis.

              Répondre

              • Passage à niveau géré par Arduino (2) 21 avril 2022 19:09, par Christian

                J’ai été trop rapide car effectivement, il existe une version 1.1.8 de la bibliothèque Servo et avec celle-ci, le programme Sweep compile sur ATtiny25/45/85.
                On croit toujours être à jour ... ;-)
                Bon, c’est vrai que cela fait longtemps que je ne me suis pas servi de servomoteur ! J’avance pas à pas ! LOL

                Répondre

  • Passage à niveau géré par Arduino (2) 23 avril 2022 09:46, par Christian

    Réponse au message plus haut (car l’indentation des réponses commence à laisser peu de place).
    A priori, tout se passe comme si la version 1.1.8 de la bibliothèque n’était pas prise en compte. Dans ce cas, la version 1.1.7 opère et elle est prévue pour un timer 16 bits que n’ont pas les ATtiny25/45/85.
    Ce n’est bien sûr qu’une hypothèse de ma part ; il faudrait regarder tout cela dans le détail et aussi faire quelques essais. Hélas, je pars la semaine prochaine et je n’aurai pas le temps de m’y atteler avant mon retour prévu jeudi soir.
    D’ici là, une solution aura sans doute été trouvée...

    Répondre

    • Passage à niveau géré par Arduino (2) 23 avril 2022 12:35, par Philippe GUENET

      Bonjour Christian,

      C’est la raison pour laquelle j’ai tout "viré" et réinstallé (IDE et bibliothèques) ... sans succès.

      De toutes façons, rien ne presse.

      Bon séjour

      Répondre

    • Passage à niveau géré par Arduino (2) 23 avril 2022 12:43, par Philippe GUENET

      bonjour Christian,

      effectivement et c’est la raison pour laquelle j’ai tout "viré" et réinstallé proprement... sans plus de succès.

      Rien ne presse sur ce sujet .... bon séjour .. en attendant je vais faire d’autres tests dont une installation sur un ordinateur sur lequel arduino n’a jamais été installé.

      Bon WE à tous

      Répondre

    • Passage à niveau géré par Arduino (2) 23 avril 2022 13:30, par Jean-Luc

      Bonjour Christian.

      Quand je compile Sweep pour ATTiny 25/45/85, j’ai ceci

      Plusieurs bibliothèque trouvées pour "Servo.h"
      Utilisé : /Users/jlb/Library/Arduino15/packages/ATTinyCore/hardware/avr/1.5.2/libraries/Servo

      Par conséquent, c’est une bibliothèque Servo spécifique qui est prise en comptes pas la 1.1.8 ou une autre version installé avec l’IDE.

      Avez vous le dernier ATTiny Core installé ?

      Répondre

      • Passage à niveau géré par Arduino (2) 23 avril 2022 14:52, par Philippe GUENET

        bonjour Jean-luc,

        comme promis à Christian, je viens d’installer arduino sur une machine vierge de toute installation précédente de ce programme. Donc, même soucis, mais effectivement j’y ai installé toujours le même lien pour ajouter les cartes attiny (https://raw.githubusercontent.com/d...)
        Y en aurait-il un autre ?

        Est-ce bien de ca dont vous parler qaund vous mentionnez attiny core ?

        Répondre

      • Passage à niveau géré par Arduino (2) 23 avril 2022 16:26, par Christian

        Bonjour Jean-Luc,

        J’ai le même message que toi. J’ai installé l’ATtiny Core de Spence Konde comme je viens de le conseiller à Philippe (voir plus bas) et donc cela compile.
        Mais je manque de temps pour essayer le programme avec un ATtiny et un servomoteur.

        Répondre

  • Passage à niveau géré par Arduino (2) 2 mai 2022 17:47, par Fantasio

    Si j’ai bien tout compris, la bibliothèque Servo est (enfin)compatible avec les ATtiny85 si et seulement si :

    • IDE 1.8.19
    • bibliothèque Servo version 1.1.8
    • ATtiny Core de Spence Konde
      Ai je bien résumé ?
      Deux petites questions :
    • ma version de l’IDE est 1.8.10, elle serait donc obsolète et nécessiterait obligatoirement d’être mise à jour ?
    • la bibliothèque SlowMotionServo serait de facto (enfin) compatible avec l’ATtiny85 ?
      Merci pour vos confirmations et/ou corrections et bravo pour ce site !

    Répondre

    • Passage à niveau géré par Arduino (2) 3 mai 2022 10:03, par Christian

      Il y a toujours intérêt à faire des mises à jour des logiciels qu’on utilise (Windows, Mac OS, IDE, libraries, etc.). On accède ainsi à des nouvelles fonctionnalités et de plus, la sécurité du système est renforcée.
      Ainsi, il est recommandé d’utiliser maintenant la distribution de Spence Konde pour les ATtiny car celle de David Mellis n’a pas été mise à jour depuis longtemps. De même, l’IDE en est à sa version 1.8.19 et il est donc préférable de travailler avec cette version plutôt qu’une plus ancienne.
      L’exemple Sweep avec l’IDE 1.8.19 et la version 1.1.8 de Servo ne fonctionnera pas avec la distribution de David Mellis (je viens de le vérifier), mais compilera avec la distribution de Spence Konde. Ceux qui veulent travailler avec des microcontrôleurs ATtiny ont donc intérêt à migrer vers la distribution de Spence Konde comme indiqué dans l’article 2 de la série sur les ATtiny. Ils pourront, entre autre, utiliser un servomoteur sans avoir à se préoccuper de générer le signal de commande.
      Merci pour votre appréciation de notre site ; cela nous encourage à rester sur le pont pour vous faire profiter de ce qu’on découvre, bien souvent grâce à des lecteurs qui font part eux-mêmes de leurs problèmes ou de leurs découvertes.

      Répondre

      • Passage à niveau géré par Arduino (2) 3 mai 2022 10:17, par Fantasio

        Merci Christian pour cette confirmation.
        Je vais donc opérer la mise à jour de l’IDE et remplacer le Core de David Mellis par celui de Spence Konde.
        Bonne continuation à toute l’équipe !

        Répondre

Réagissez à « Passage à niveau géré par Arduino (2) »

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.)

Rubrique « Projets »

Les derniers articles

Les articles les plus lus