Et pourquoi pas essayer de se fabriquer un petit générateur de fonction à base d’Arduino ? C’est en tout cas le défi que je me suis lancé cette année ! Et ce sera bien un défi, en ce sens où il faudra bien aller au delà de quelques petites lignes de code, pour arriver à un résultat « optimal » ! Ici, je vais vous partager toutes les pistes que j’ai suivi, en partant d’un simple signal carré, jusqu’au meilleur résultat possible que j’ai pu atteindre (dans les limites de mes connaissances, bien entendu !). C’est pourquoi vous trouverez plusieurs liens ci-après, pointant chacun vers une solution spécifique, et correspondant à chacune des pistes que j’ai pu explorer.
Par contre, autant vous le dire de suite : ce projet ne sert à rien, si ce n’est apprendre à se servir d’un Arduino, en essayant au passage de le pousser au maximum. Car si vous souhaitez simplement disposer d’un générateur de signal chez vous, sachez qu’il en existe en vente à pas cher, un peu partout sur internet, à partir de quelques euros seulement ! Cela étant dit : si vous voulez créer des choses par vous-même, et au passage, en apprendre plus sur l’univers Arduino et toutes ses possibilités, alors vous êtes au bon endroit. Car c’est exactement la philosophie de ces articles !
Du coup, comme vous l’aurez compris, ce qui va suivre correspond à toutes les pistes que j’ai suivi, et solutions que j’ai pu mettre en pratique (de la plus basique, à la plus aboutie). Ainsi, si vous êtes débutant en électronique, vous pourrez découvrir comment générer un signal carré avec un Arduino, et en prendre le contrôle via le port série (via le moniteur série de l’IDE Arduino, par exemple). Ensuite, nous verrons comment optimiser le code de base, pour rendre le tout plus performant encore. Enfin, nous essayerons de créer des formes d’ondes classiques (triangulaire, sinusoïdale, …), tel un véritable générateur de fonction ! Bien évidemment, autant vous dire tout de suite que tout cela va être long à rédiger, et qu’il me faudra du temps pour tout vous remonter ici. Donc soyez patient, si jamais les articles mettent un peu de temps venir !
Enfin, gardez bien à l’esprit qu’il existe bien des façons de faire ici, pour arriver au même résultat. D’ailleurs, les approches et solutions que je vous présente dans cet série d’articles ne sont pas les seules possibles, ou les seules valables. Loin de là, d’ailleurs ! Par contre, les réflexions et cheminements que j’ai pu suivre pourraient certainement être source d’inspiration pour vos projets futurs, surtout si vous êtes débutant arduino. C’est d’ailleurs pourquoi j’ai à coeur de vous les partager ici. Au passage : n’hésitez pas à faire part de vos commentaires en retour sous chacun des articles, car ceux-ci sont les bienvenus ! De même pour toute remarque ou idée qui vous viendrait à l’esprit 😉
Bon, trêve de blabla, et place à la première solution que j’ai réalisé, à savoir : la génération d’un signal carré 0/5V avec un Arduino Uno ! C’est parti !
Essai n°1 : réalisation d’un générateur de signal carré 0-5V avec un Arduino (méthode simple)
Ici, j’ai essayé de produire un signal carré sur une broche de sortie Arduino, de fréquence ajustable manuellement. Toutes les mesures ont été faites à l’oscilloscope, ce qui m’a permis de voir la forme du signal produit (et donc, sa propreté, ainsi que son rapport cyclique).
J’ai commencé par écrire du code simple, c’est à dire ne faisant pas appel aux timer, ni aux interruptions, afin que tous les débutants puissent suivre et apprendre facilement. J’ai ensuite optimisé ce code, jusqu’à atteindre les limites du microcontrôleur ATmega328, le coeur de toute platine Arduino Uno. Une fois fait, j’ai ajouté des temporisations ajustables, permettant de pouvoir ajuster la fréquence de sortie obtenue, de 1 Hz jusqu’à la fréquence maximale atteignable, sans distorsion.
Enfin, j’ai créé une mini interface de commande, via le moniteur série de l’IDE Arduino, permettant de régler la fréquence du signal de sortie à celle demandée. Comme vous vous en doutez, toutes ces lignes supplémentaires vont impacter la vitesse de génération de signaux carrés. Bien entendu, ce n’est ici qu’une première façon de faire, que j’améliorerai ensuite ! Car, encore une fois, l’esprit de ces articles est de montrer différentes étapes, de la plus simple à la plus compliquée, pour arriver à un résultat final. Et ce, en espérant de perdre le moins de personnes possibles en chemin 😉
–> voir l’article : génération d’un signal carré 0-5V avec un Arduino Uno
Essai n°2 : amélioration du générateur de signaux carré 0-5V avec Arduino (méthode utilisant Timer et Interruptions)
Pour l’heure, je n’ai pas eu encore le temps de travailler sur cette partie. Mais je m’y remettrais, dès que je réussirai à me dégager du temps à nouveau !
[MAJ] Projet arrêté, malheureusement, faute de temps. Désolé …
Jérôme.
(*) Mis à jour le 22/12/2022
Dommage qu’il n’y ait pas la suite, mais je comprends. Merci beaucoup !
Afin de filtrer au maximum les messages de type "spam" ou "inappropriés", chaque commentaire est soumis à modération, et validé manuellement. Du coup, il se peut que certains commentaires ne soient pas publiés, ou sinon, avec un peu de retard. Par ailleurs, j'ai malheureusement plus de messages à traiter que de temps pour y répondre ; c'est pourquoi je ne pourrais pas répondre à tout le monde. Désolé …