LOCODUINO

Forum de discussion
Dépôt GIT Locoduino
Flux RSS

mardi 26 octobre 2021

61 visiteurs en ce moment

Rubrique « Programmation », 60 articles

0 | 10 | 20 | 30 | 40 | 50 | Tout afficher

Comment gérer le temps dans un programme ?

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

La programmation, qu’est ce que c’est

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, peut-être, une (...)

Types, constantes et variables

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

Installation de l’IDE Arduino

Il est recommandé de faire l’installation de l’IDE avant de connecter pour la première fois une carte Arduino en USB ; ainsi les pilotes nécessaires seront déjà installés. Le logiciel est écrit en Java. (...)

Répéter des instructions : les boucles

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

Les interruptions (1)

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

Instructions conditionnelles : le if … else

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

Instructions conditionnelles : le switch … case

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

Comment concevoir rationnellement votre système

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

Comment gérer l’aléatoire ?

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 façon (...)

Calculer avec l’Arduino (1)

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

Calculer avec l’Arduino (2)

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

La compilation d’un projet Arduino

Un peu d’histoire… Dans l’ordre, on a eu le Big Bang, les dinosaures, Jésus, Mahomet, la cocotte minute, et le BASIC ! Pour être sérieux, rappelons nous que les premiers ordinateurs, pendant la (...)

Les structures

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 l’Arduino (...)

Systèmes de numération

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

Les fonctions

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

Trois façons de déclarer des constantes

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 est le type (...)

Transcription d’un programme simple en programmation objet

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, poser (...)

Ces tableaux qui peuvent nous simplifier le développement Arduino

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

Les chaînes de caractères

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). Comment à (...)

Trucs, astuces et choses à ne pas faire !

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

Processing pour nos trains

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 complémentaires (...)

Arduino : toute première fois !

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 ; à ce (...)

Démarrer en Processing (1)

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

TCOs en Processing (1)

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 proprement, (...)

TCOs en Processing (2)

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 formes sont (...)

Comment réussir son projet Arduino

1- Savoir évaluer son savoir-faire Un projet Arduino ne requiert pas de compétences extrêmement poussées en électronique et en programmation, mais il faut avoir acquis les bases. Heureusement, cela (...)

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

Locoduino a déjà présenté des projets de passage à niveau dans les articles Un automatisme de Passage à Niveau et Etude d’un passage à niveau universel ainsi que dans l’article Comment concevoir (...)

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

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

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

Montage des barrières La figure 1 montre un passage à niveau automatique de type SAL 2 (pour plus de détails sur les passages à niveau, consulter le Hors-Série Loco-Revue N° 60). Nous voyons deux (...)

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

Nous vous renvoyons donc vers cet article pour plus de détails sur le lecteur et la façon de le mettre en œuvre puisque nous nous sommes inspirés du montage de cet article pour réaliser la partie son (...)

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

Article mis à jour le 17 octobre 2021 pour préciser que l’emploi de détecteurs d’occupation par consommation de courant simplifie grandement le programme pour déterminer l’état d’occupation de la zone (...)

Du sketch à l’exécutable

Comme vous le savez, un programme écrit pour une carte Arduino avec l’IDE s’appelle un sketch, ce qui signifie en anglais croquis ou esquisse. Cette tradition est héritée de Processing qui a été conçu (...)

Programmer vos Arduino avec un fichier hexadécimal

On s’est tellement habitué à la convivialité de l’IDE d’Arduino qu’on peut se demander pourquoi revenir aux ordres en ligne du mode console de l’ordinateur. Il faut savoir qu’avrdude s’utilise avec des (...)

L’assembleur (1)

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

L’assembleur (2)

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

L’assembleur (3)

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

L’assembleur (4)

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

L’assembleur (5)

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

L’assembleur (6)

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

L’assembleur (7)

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

L’assembleur (8)

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

L’assembleur (9)

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 différentes (...)

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

Le monde des objets (2)

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

Le monde des objets (3)

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 dotée (...)

Le monde des objets (4)

’Vis’ ? Non ! ’this’ . Reprenons ma version du constructeur Led() de Led pour illustrer un aspect parfois difficile à expliquer… Led(int pin){

Les pointeurs (1)

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… Comment ça (...)

Les pointeurs (2)

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

Les Timers (I)

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 passer à (...)

Les Timers (II)

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

Les Timers (III)

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), cela (...)

Les Timers (IV)

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

Les Timers (V)

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

Bien utiliser l’IDE d’Arduino (1)

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

Bien utiliser l’IDE d’Arduino (2)

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 aider, (...)

Piloter son Arduino avec son navigateur web et Node.js (1)

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

Piloter son Arduino avec son navigateur web et Node.js (2)

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 répertoire "user". REGLER (...)

Piloter son Arduino avec son navigateur web et Node.js (3)

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. PILOTER UN (...)

Piloter son Arduino avec son navigateur web et Node.js (4)

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 première (...)

0 | 10 | 20 | 30 | 40 | 50 | Tout afficher

Les derniers articles dans « Programmation »

L’assembleur (9)

. Christian

L’assembleur (8)

. Christian

L’assembleur (7)

. Christian

L’assembleur (6)

. Christian

L’assembleur (5)

. Christian

Les articles les plus lus

Les interruptions (1)

Les Timers (I)

Instructions conditionnelles : le if … else

Ces tableaux qui peuvent nous simplifier le développement Arduino

Répéter des instructions : les boucles

Instructions conditionnelles : le switch … case

Les derniers commentaires

– Bonjour. Je ne vous suis pas. HardwareSerial dispose d’un tampon en mémoire (...)

– Chaque relais dispose d’un bornier de 3 plots, une arrivée C et deux sorties (...)

– Bonjour, je vous remercie pour vos explications ; mais, je galère toujours (...)

– Le branchement des ILS n’est pas différent de ce qui est écrit dans l’article (...)

– J’ai mis dans la série d’articles tout ce que j’utilise moi-même pour (...)

– Bonjour, quelqu’un peut-il m’envoyer ou m’indiquer les divers branchements à (...)