Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
electronique:arduino:100-presentation-et-principe-de-l-arduino [2020/11/08 19:10] – [3. Présentation de l'Arduino Uno] Cédric ABONNEL | electronique:arduino:100-presentation-et-principe-de-l-arduino [2022/01/28 09:51] (Version actuelle) – [3. Présentation de l'Arduino Uno] Cédric ABONNEL | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Présentation et principe de l' | ||
+ | ===== - Généralités ===== | ||
+ | Un Arduino représente des cartes électroniques regroupant plusieurs composants électroniques afin de réaliser des objets électroniques interactifs. Il peut être vu comme un ordinateur. | ||
+ | |||
+ | On retrouve de la **mémoire** sous deux types : | ||
+ | * la mémoire morte, qui contiendra les instructions que l' | ||
+ | * la mémoire vive, contenant les informations qui changent : les variables | ||
+ | |||
+ | On aura également un **calculateur** qui traitera et exécutera les instructions. | ||
+ | |||
+ | Tous ces éléments sont contenu dans un micro contrôleur. Il est d' | ||
+ | |||
+ | Les cartes Arduino sont construits autour d'un microcontrôleur **Atmel AVR** pour les modèles : | ||
+ | * ATmega328, | ||
+ | * ATmega32u4, | ||
+ | * ATmega2560, | ||
+ | * ATmega168, | ||
+ | * ATmega1280 | ||
+ | * ATmega8 | ||
+ | |||
+ | |||
+ | D' | ||
+ | |||
+ | |||
+ | |||
+ | Les schémas des cartes électroniques Arduino sont publiés en licence libre. Le microcontrôleur peut analyser et produire des signaux électriques de format analogique ou de format numérique. On utilisera les entrées sortie de la carte électronique. | ||
+ | |||
+ | Pour le programmer, il faut utiliser la prise USB qui permettra de le relier à l' | ||
+ | |||
+ | Une fois programmé, l' | ||
+ | |||
+ | Les broches sont des entrées/ | ||
+ | |||
+ | Les cartes Arduino et les schémas de ces cartes sont publiés en licence libre. | ||
+ | |||
+ | ===== - Principe général ===== | ||
+ | |||
+ | Les différentes versions des Arduino fonctionnent sous le même principe général : | ||
+ | |||
+ | {{ electronique: | ||
+ | |||
+ | Les broches de **1** à **13**, ce sont les broches dites numériques (**0** ou **1**) ou « tout ou rien » ; elles offrent en sortie du 5 V et acceptent en entrée du 5 V sur le même principe. | ||
+ | Dans le code, on utilise les fonctions '' | ||
+ | |||
+ | Les broches de **14** à **19**, ce sont les broches dites analogiques, | ||
+ | Dans le code, on utilise les fonctions '' | ||
+ | |||
+ | Enfin, on y trouve également les différentes broches d' | ||
+ | * Rouge : sortie 5 V (+5V) | ||
+ | * Orange : sortie 3,3 V (+3V3) | ||
+ | * Bleue : les masses (0V) | ||
+ | * Saumon : entrée reliée à l' | ||
+ | |||
+ | Il y a des variations entre les différentes cartes (par exemple : UNO, la patte 13 est équipée d'une résistance). | ||
+ | |||
+ | Les tensions admises des entrées/ | ||
+ | |||
+ | |||
+ | Il existe plein de variantes de cartes Arduino : | ||
+ | |||
+ | * Arduino Nano | ||
+ | * Arduino NanoPro | ||
+ | * Arduino NanoPro mini | ||
+ | * Arduino NanoMega | ||
+ | * Arduino NanoDiecimila | ||
+ | * Arduino NanoDuemilanove | ||
+ | * Arduino NanoLeonardo | ||
+ | * Arduino NanoDue | ||
+ | * Arduino NanoFio | ||
+ | |||
+ | ===== - Présentation de l' | ||
+ | |||
+ | L' | ||
+ | |||
+ | {{ electronique: | ||
+ | //Crédit image : Mines Telecom - Programmer un objet avec Arduino, cours 04017 // | ||
+ | |||
+ | L' | ||
+ | * 14 entrées numériques | ||
+ | * 6 entrées analogiques | ||
+ | * 1 sortie 5 V à 500 mA | ||
+ | * 1 sortie 3,3 V à 50 mA | ||
+ | * 1 ports série Rx/Tx avec Led indépendantes | ||
+ | * 1 port USB, qui sert également d' | ||
+ | * 1 alimentation complémentaire (Vin 7 à 12 V) | ||
+ | |||
+ | On notera la présence d'une LED connectée sur la broche 13. | ||
+ | |||
+ | Les broches **Rx** et **Tx** de l' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | ===== - Utiliser une plaque de prototypage ===== | ||
+ | |||
+ | Pour tester ses branchements directement sur l' | ||
+ | |||
+ | La platine d' | ||
+ | |||
+ | {{ electronique: | ||
+ | |||
+ | En position portrait (comme sur la photo), la plaque est divisée à la verticale en 2 parties égales. Les 5 trous d'une ligne, d'une partie sont interconnectés. C' | ||
+ | |||
+ | Sur notre plaque d' | ||
+ | |||
+ | Enfin, tous les trous de la colonne '' | ||
+ | |||
+ | Sur la partie gauche de la photo: | ||
+ | |||
+ | * (trait rouge) à gauche, tous les trous de la colonne **+** sont reliés entre eux | ||
+ | * (trait bleu) tous les trous de la colonne **-**, sont reliés entre eux | ||
+ | * (trait jaune) tous les trous de la ligne 1 sont reliés entre eux, sur 5 colonnes (a, b, c, d et e). On peut reproduire ce schéma sur les 29 autres lignes. | ||
+ | * la partie de droite, reproduit le même schéma par effet mirroir, avec un axe de symétrie vertical coupant la plaque en deux moitié égale. | ||
+ | |||
+ | Par convention, je branche l' | ||
+ | |||
+ | ===== - Logiciel de programmation d'un Arduino ===== | ||
+ | |||
+ | |||
+ | Pour programmer un **Arduino** ou une carte programmable, | ||
+ | |||
+ | Le programme libre de droit **Arduino Software (IDE)** permet d' | ||
+ | |||
+ | Il existe également un simulateur appelé **Tinkercad circuits** qui permet de tester votre code et les montages électroniques virtuellement. | ||
+ | |||
+ | |||
+ | ===== - Principe de programmation Arduino ===== | ||
+ | |||
+ | Le langage Arduino est basé sur les langages C et C++. Les programmes Arduino sont intégrés dans un schéma (scketch) **setup** / **loop**. Il s'agit de deux blocs de fonctions obligatoirement présents dans tous programmes Arduino. | ||
+ | |||
+ | Un bloc commence par le symbole '' | ||
+ | |||
+ | La fonction **setup()** est appelée systématiquement au démarrage de l' | ||
+ | |||
+ | Après avoir utilisé la fonction **setup()**, | ||
+ | |||
+ | Afin de rendre plus intelligible le code écrit, il est possible d' | ||
+ | |||
+ | Par exemple : | ||
+ | <code C> | ||
+ | void setup() { | ||
+ | // Ceci est une ligne de commentaire | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | /* | ||
+ | Voici un bloc | ||
+ | de commentaire | ||
+ | sur plusieurs lignes | ||
+ | */ | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | On peut utiliser d' | ||
+ | * un nom représentant l' | ||
+ | * une ou plusieurs entrées. Il s'agit de paramètres ou arguments placés entre parenthèses. | ||
+ | * une sortie qui est le résultat de la fonction. | ||
+ | |||
+ | Par exemple, prenons le code suivant '' | ||
+ | |||
+ | <code C> | ||
+ | int buttonPin = 3; | ||
+ | |||
+ | void setup() { | ||
+ | Serial.begin(9600); | ||
+ | pinMode(buttonPin, | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // ... | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== - Référentiel des fonctions, variables et structures du Langage Arduino ===== | ||
+ | |||
+ | > https:// |