Le monde des objets (1)
Un peu d’histoire Le C est un vieux langage des années 1970 qui a évolué lentement dans sa syntaxe et ses possibilités. Au départ, proche du matériel qu’il est chargé de faire fonctionner, son (…)
Un peu d’histoire Le C est un vieux langage des années 1970 qui a évolué lentement dans sa syntaxe et ses possibilités. Au départ, proche du matériel qu’il est chargé de faire fonctionner, son (…)
Visibilité, encapsulation Nous allons maintenant développer une petite classe qui va nous servir d’exemple très simple à comprendre, mais qui fera partie d’un ensemble plus ambitieux dans les (…)
L’héritage sans soucis Depuis le deuxième article, nous avons vu une jolie classe Led. Mais comment ferions nous pour coder une classe LedBicouleur qui s’occuperait d’une diode à deux couleurs (…)
’Vis’ ? Non ! ’this’ . Reprenons ma version du constructeur Led() de Led pour illustrer un aspect parfois difficile à expliquer... Led(int pin) pin = pin; // ??? pinMode(pin, OUTPUT); (…)
Les pointeurs permettent de manipuler ce que tout langage évolué tente de masquer : l’organisation interne de la machine. Avant de voir la syntaxe de ces pointeurs, un peu de géographie... (…)
Les poupées Russes : les pointeurs de pointeur. Un pointeur est en réalité un entier qui représente une adresse, mais c’est avant tout un entier. Et la conséquence immédiate de cette observation, (…)
Si le registre du timer comporte 8 bits, il est alors capable de compter de 0 à 255 (en hexadécimal, de 00 à FF). Lorsqu’il arrive à 255 (FF), un coup d’horloge supplémentaire devrait le faire (…)
Qu’est-ce qu’une interruption ? C’est ce qui nous arrive à tous dans notre vie de tous les jours. Imaginez que vous soyez au téléphone et que l’on sonne à votre porte. Vous demandez à votre (…)
Rôle d’un registre OCR On peut charger un nombre dans le registre OCR2A ; lorsque le timer 2, en comptant, devient égal à OCR2A (les deux valeurs correspondent, ce qui se dit Match en anglais), (…)
PWM et broches de sortie Le module Arduino Uno est capable de générer de la PWM sur 6 broches de sorties grâce à la fonction analogWrite. D’une manière transparente pour l’utilisateur, cette (…)
Structure du timer1 La figure 1 montre le schéma synoptique du timer1 ; dans cette figure, la lettre n qui est le numéro du timer vaut 1. On remarque tout d’abord une grande ressemblance avec la (…)
Présentation de l’IDE Les différences entre les différents systèmes d’exploitation dans la présentation de l’IDE Arduino sont présentées en texte italique. Nous n’avons pas trouvé de différences (…)
A quoi ça sert ? Votre but est de faire fonctionner l’Arduino comme vous le voulez. Pour y arriver, vous devrez taper du texte ésotérique, puis demander à l’Arduino de l’exécuter. Pour vous (…)
Processing est l’une des alternatives pour réaliser des interfaces graphiques dont la programmation s’apparente à celle de l’Arduino. Son utilisation se fait en lignes de code et repose sur Java. (…)
Tous les fichiers que nous allons utiliser pour ce deuxième article sont téléchargeables ici : Archive2 Comme pour l’article précédent, vous devez les déposer dans votre (…)
Tous les fichiers utilisés dans cet article sont téléchargeables ici : Archive3 Ces dossiers et fichiers sont à placer dans le même répertoire que pour les articles précédents.
Un contrôleur USB/série, Ethernet et WiFi pour DCC++ Dans un premier temps, nous allons voir comment piloter notre Arduino directement relié au port USB/Série de notre ordinateur. C’est la (…)
Vous avez déjà vu des programmes en Processing sur le site Locoduino : Des articles de Pierre59 sur la programmation : Un gestionnaire en C++ pour votre réseau (1) Un gestionnaire en C++ pour (…)
Cette série d’articles avait vocation à s’appliquer à tous les microcontrôleurs de la gamme AVR. Cependant, nous avons insisté un peu plus sur l’ATmega328P qui équipe les cartes Uno et les (…)
Dès vos premières applications, vous avez pu constater que la gestion du temps revient très fréquemment dans la programmation des diverses applications qui nous concernent. Cela va de choses (…)
Avant de vous plonger dans la lecture de cet article, il est nécessaire d’avoir bien assimilé les différents modes d’adressage des microcontrôleurs AVR que nous avons décrits dans l’article (…)
Processing est très semblable à l’Arduino, c’est normal car Arduino s’est fortement inspiré de Processing. Les deux sont en fait très différents vis à vis de leur utilisation, mais très (…)
Un programme ne fait rien d’autre que manipuler des informations, elles-mêmes représentées par des variables plus ou moins complexes. Avec le langage C/C++, il suffit de donner un nom à cette (…)
Un exemple simple Le programme que nous allons écrire envoie un certain nombre de flashes sur la LED_BUILTIN d’une carte Uno et le certain nombre constitue un argument qu’il faut passer à la (…)
Prérequis pour la lecture de cet article Cet article s’adresse à ceux qui débutent vraiment. Présenté comme un tutoriel, il vous guide pas à pas pour découvrir et programmer un module Arduino ; à (…)
Dans l’article Processing pour nos trains on a vu comment faire des pavés pour TCO en Processing. On va généraliser ici cette méthode pour réaliser (à la demande) des TCOs. Pour faire cela (…)
Qu’est-ce qu’un chenillard ? Ne cherchez pas ce terme dans un dictionnaire car il n’existe pas ! Pourtant, il est couramment utilisé en électronique pour désigner un dispositif qui fait cheminer (…)
Programme d’assemblage Il n’y a pas de bons ouvriers sans de bons outils ; l’IDE d’Arduino est un petit programme qui joue très bien son rôle et qui a contribué au succès des cartes Arduino. Son (…)
Avant d’entrer dans le vif du sujet, voici la réponse à la petite question posée en fin de l’article 2. Le PC doit être capable d’adresser l’ensemble de la mémoire flash de programme. Sur un MCU (…)
Relation entre matériel et logiciel Programmer en assembleur demande d’avoir une très bonne connaissance des possibilités matérielles du microcontrôleur cible (encore appelées ressources). Il est (…)
Disons-le une bonne fois pour toutes, cette série d’articles n’est pas écrite pour vous inciter à programmer en assembleur mais nous allons voir que dans certains cas, l’assembleur est la seule (…)
Pavés divers Commençons par quelques pavés utiles, des butoirs et des sens de circulation : Ces pavés vont nécessiter des formes qui ne seront utilisées que par un pavé, de plus ces (…)
Nous avons déjà rencontré les opérateurs de comparaison dans « Instructions conditionnelles : le if ... else ». Nous n’allons pas revenir dessus mais ce que nous allons voir s’applique également a (…)
Cet article est le premier d’une série visant à vous apprendre la programmation en général et la programmation sur un Arduino en particulier. Il n’y a pas de pré-requis particulier, sauf, (…)
Un chiffre binaire est communément appelé un bit, contraction de l’anglais Binary digIT. Comme en base 10, on va utiliser plusieurs chiffres pour représenter des grands nombres. Les bits ne sont (…)
Dernière mise à jour : 15 avril 2025. Dernière version de l’IDE 2 : 2.3.6, de l’IDE 1 : 1.8.19.L’article, écrit en 2014, décrit l’installation de l’IDE dans sa version 1. Depuis, une version 2 de (…)
Le langage permettant de programmer l’Arduino offre 3 types de boucles qui ont chacune un usage. La boucle while ( ... ) ... La boucle permet de répéter des instructions tant qu’une condition (…)
Article mis à jour le 18 septembre 2021 pour prendre en compte les évolutions de l’API du logiciel Arduino.Principe de fonctionnement des interruptions On a vu dans « La programmation, qu’est ce (…)
Un premier exemple simple d’utilisation du if Pour prendre un exemple concret, supposons que vous vouliez que l’Arduino signale sur une DEL la présence d’un train dans une gare cachée. Les (…)
La condition qui est évaluée par un if ... else est de nature booléenne, elle ne peut être que vraie ou fausse, ce qui correspond à l’exécution des instructions du if ou bien à l’exécution des (…)
Avant de se lancer dans une programmation spaghetti sans savoir exactement où l’on va, il est nécessaire de modéliser le système que l’on veut mettre en œuvre. La modélisation consiste à poser (…)
En programmation, nous souhaitons habituellement que les choses soient déterministes, c’est à dire que les mêmes causes produisent les mêmes effets et que le programme se comporte toujours d’une (…)
Nous allons présenter 2 parties : les erreurs classiques à éviter les trucs et astuces à utiliser Les erreurs classiques à éviter absolument Lorsqu’on clique sur le bouton "vérifier", le (…)
Dans ce qui suit, les bits sont numérotés comme montré dans la figure ci-dessous. Chaque case peut contenir un bit, au dessus on a le numéro du bit. Le bit 0 est le bit le plus à droite, le bit 7 (…)
Nous avons vu dans « Types, constantes et variables » comment déclarer des données, variables et constantes, et comment les utiliser dans « Calculer avec l’Arduino (1) » et « Calculer avec (…)
Dans l’article Types, constantes et variables, on a vu que les octets sont constitués de 8 bits et peuvent constituer des nombres. Dans les programmes, on peut représenter ces nombres soit en (…)
Nous avons déjà rencontré les fonctions de nombreuses fois. Tout d’abord, dans « La programmation, qu’est ce que c’est », nous avons vu les fonctions setup() et loop(). Ces deux fonctions sont (…)
Déclaration avec le mot-clé const Nous y avons vu la déclaration d’une constante sous cette forme : const byte pinDEL = 10; Où const indique qu’il s’agit d’une constante, byte
Pourquoi parler de codage avant d’avoir spécifié les besoins d’un réseau ? Quand nous concevons un réseau, en tout cas pour ma part, mon souhait est de diversifier les tâches. En effet, coder, (…)
Il est par exemple assez fréquent de voir des programmes où la déclaration et l’initialisation des broches sont faites de la manière suivante : const int Pin23 = 23; const int Pin24 = 24; const (…)
Un peu d’histoire... Depuis toujours, les processeurs, qu’ils soient simples comme les Atmel, ou complexes comme ceux de nos ordinateurs reposent tous sur des octets (des bytes en Anglais). (…)
.
.
.
.
.
– Bonjour a la place des servos je dois alimenter des barrières solénoïde (…)
– Normalement il y a un fichier par onglet Le premier onglet doit avoir le (…)
– Bonjour Pierre Je découvre processing et les nombreuses possibilités (…)
– J’ai quand meme fait un test compter de 1 à 2000 en mesurant tps départ, tps (…)
– Et après une petite réflexion, gestion bas de gamme lecture éléments (…)
– Je viens d’imprimer la doc structure , instructions du proc concerné , 50 (…)