Tutoriel de programmation Arduino mega 2560
Tutoriel de programmation Arduino mega 2560
...
Introduction
Aujourd’hui, l'électronique est de plus en plus remplacée par de l'électronique programmée. On parle de système embarqué ou d'informatique embarquée. Son but est de simplifier les schémas électroniques et par conséquent de réduire l’utilisation de composants électroniques, réduisant ainsi le coût de fabrication d’un produit. Il en résulte des systèmes plus complexes et performants pour un espace réduit. Depuis que l’électronique existe, sa croissance est fulgurante et continue encore aujourd’hui. L’électronique est devenue accessible à toutes personnes ayant l’envie d’y accéder. Ce que nous allons apprendre dans ce travail est un mélange d'électronique et de programmation. Nous allons en effet parler d'électronique embarquée qui est un sous domaine de l'électronique et qui a l'habileté d'unir la puissance de la programmation à la puissance de l'électronique.
I.1. Définition du module Arduino
Le module Arduino est un circuit imprimé en matériel libre, issu du travail d’une équipe d’enseignants et d’étudiants de l’école de Désigne d’interaction d’ivrea, les plans de la carte elle-même sont publiés en licence libre dont certains composants de la carte, comme le microcontrôleur et les composants complémentaires qui ne sont pas en licence libre. Un microcontrôleur programmé peut analyser et produire des signaux électriques de manière à effectuer des tâches très diverses. Arduino est utilisé dans beaucoup d'applications comme l'électrotechnique industrielle et embarquée; le modélisme, la domotique mais aussi dans des domaines différents comme l'art contemporain et le pilotage d'un robot, commande des moteurs et faire des jeux de lumières, communiquer avec l'ordinateur, commander des appareils mobiles (modélisme). Chaque module d’Arduino possède un régulateur de tension +5 V et un oscillateur à quartez 16 MHz (ou un résonateur céramique dans certains modèles). Pour programmer cette carte, on utilise l’logiciel IDE Arduino.
Les projets Arduino peuvent être autonomes, comme ils peuvent communiquer avec d’autres logiciels installés sur l’ordinateur tel que Flash, processing ou MaxMPS, Matlab. Ces cartes sont faites à base d’une interface entrée/sortie simple et d’un environnement de développement proche du langage [7][8].
I.2. Les gammes de la carte Arduino
Actuellement, il existe plus de 20 versions de module Arduino, nous citons quelques-unes afin d’éclaircir l’évaluation de ce produit scientifique et académique:
- Le NG d'Arduino, avec une interface d'USB pour programmer et usage d'un ATmega8.
- L'extrémité d'Arduino, avec une interface d'USB pour programmer et usage d'un Microcontrôleur ATmega8.
- L'Arduino Mini, une version miniature de l'Arduino en utilisant un microcontrôleur ATmega168.
- L'Arduino Nano, une petite carte programme à l’aide porte USB cette version utilisant un microcontrôleur ATmega168 (ATmega328 pour une plus nouvelle version).
- Le LilyPad Arduino, une conception de minimaliste pour l'application wearable en utilisant un microcontrôleur ATmega168.
- Le NG d'Arduino plus, avec une interface d'USB pour programmer et usage d'un ATmega168.
- L'Arduino Bluetooth, avec une interface de Bluetooth pour programmer en utilisant un microcontrôleur ATmega168.
- L'Arduino Diecimila, avec une interface d'USB et utilise un microcontrôleur ATmega168.
- L’Arduino Duemilanove ("2009"), en utilisant un microcontrôleur l'ATmega168 (ATmega328 pour une plus nouvelle version) et actionné par l'intermédiaire de la puissance d'USB/DC.
- L'Arduino Mega, en utilisant un microcontrôleur ATmega1280 pour I/O additionnel et mémoire.
- L'Arduino UNO, utilisations microcontrôleur ATmega328.
- L'Arduino Mega2560, utilisations un microcontrôleur ATmega2560, et possède toute la mémoire à 256 KBS. Elle incorpore également le nouvel ATmega8U2 (ATmega16U2 dans le jeu de puces d'USB de révision 3).
- L'Arduino Leonardo, avec un morceau ATmega3Ù4 qui élimine le besoin de raccordement d'USB et peut être employé comme clavier [9].
Parmi ces types, nous avons choisi une carte Arduino Mega. L'intérêt principal de cette carte est de faciliter la mise en œuvre d’une telle commande qui sera détaillée par la suite.
I.3.La carte Arduino Mega 2560
La carte Arduino Mega 2560 est une carte à microcontrôleur basée sur un ATmega2560. Cette carte dispose :
- de 54 broches numériques d'entrées/sorties (dont 14 peuvent être utilisées en sorties PWM (MLI : Modulation de largeur d’impulsion).
- de 16 entrées analogiques (qui peuvent être utilisées en broches entrées/sorties numériques).
- de 4 UART (port série matériel).
- d'un quartz de 16Mhz.
- d'une connexion USB.
- d'un connecteur d'alimentation jack.
- d'un connecteur ICSP (programmation "in-circuit").
- d'un bouton de réinitialisation (reset).
Elle contient tout ce qui est nécessaire pour le fonctionnement du microcontrôleur ; Pour pouvoir l'utiliser, il suffit simplement de la connecter à un ordinateur à l'aide d'un câble USB (ou de l'alimenter avec un adaptateur secteur ou une pile, mais ceci n'est pas indispensable, l'alimentation étant fournie par le port USB). La carte Arduino Mega 2560 est compatible avec les circuits imprimés prévus pour les cartes Arduino Uno, Duemilanove ou Diecimila.
I.4.Caractéristique technique de la carte Arduino Mega 2560
Un module Arduino est généralement construit autour d’un microcontrôleur ATMEL AVR, et de composants complémentaires qui facilitent la programmation et l’interfaçage avec d’autres circuits. Chaque module possède au moins un régulateur linéaire 5V et un oscillateur à quartz 16 MHz (ou un résonateur céramique dans certains modèles). Le microcontrôleur est préprogrammé avec un bootloader de façon à ce qu’un programmateur dédié ne soit pas nécessaire.
I.4.1 Partie matérielle
Généralement tout module électronique qui possède une interface de programmation est basé toujours dans sa construction sur un circuit programmable ou plus.
Microcontrôleur ATMEGA2560
Tension de fonctionnement 5V
Tension d’alimentation 7 à 12V
Broches E/S numérique 54 (dont 14 disposent de sortie PWM)
Broches d’entrées analogiques 16
Vitesse d’horloge 16 MHz
Mémoire programme Flash 25 6KB dont 8 KB utilisés en bootloader
Mémoire SRAM 8 KB
Mémoire EEPROM 4 KB
Tableau 4: Constitution de la carte Arduino Mega 2560
I.4.1.1.Le Microcontrôleur ATMega2560
Un microcontrôleur ATMega2560 est un circuit intégré qui rassemble sur une puce plusieurs éléments complexes dans un espace réduit, c’est le processeur de la carte, s’occupe de tout ce qui est calculs, exécution des instructions du programme et gestion des ports d’entrée/sortie [10].
I.4.1.2.Les mémoires
L'ATmega 2560 à 256Ko de mémoire FLASH pour stocker le programme (dont 8Ko également utilisés par le bootloader), également 8 ko de mémoire SRAM (volatile) et 4Ko d'EEPROM (non volatile - mémoire qui peut être lue à l'aide de la librairie EEPROM).
I.4.1.3. Les sources de l'alimentation de la carte
La carte Arduino Mega 2560 peut être alimentée soit via la connexion USB (qui fournit 5V jusqu'à 500mA) ou à l'aide d'une alimentation externe. La source d'alimentation est sélectionnée automatiquement par la carte. La carte peut fonctionner avec une alimentation externe de 6 à 20 volts. Cependant, si la carte est alimentée avec moins de 7V, la broche 5V pourrait fournir moins de 5V, et la carte pourrait être instable. Si on utilise plus de 12V, le régulateur de tension de la carte pourrait chauffer ce dernier. Les broches d'alimentation sont les suivantes :
- VIN : La tension d'entrée positive lorsque la carte Arduino est utilisée avec une source de tension externe (à distinguer du 5V de la connexion USB ou autre source 5V régulée).
- 5V. La tension régulée utilisée pour faire fonctionner le microcontrôleur et les autres composants de la carte. Le 5V régulé fourni par cette broche peut donc provenir soit de la tension d'alimentation VIN via le régulateur de la carte, ou bien de la connexion USB ou de tout autre source d'alimentation régulée.
- 3.3V : Une alimentation de 3.3V fournie par le circuit intégré FTDI (circuit intégré faisant l'adaptation du signal entre le port USB de votre ordinateur et le port série de l'ATmega) de la carte. L'intensité maximale disponible sur cette broche est de 50mA
- GND : Broche de masse (0V).
I.4.1.4.Entrées et sorties numériques
Chacune des 54 broches numériques de la carte Mega peut être utilisée soit comme une entrée numérique, soit comme une sortie numérique. Ces broches fonctionnent en 5V. Chaque broche peut fournir ou recevoir un maximum de 40mA d'intensité et dispose d'une résistance interne de "rappel au plus" (pull-up) (déconnectée par défaut) de 20-50 KOhms. Cette résistance interne s'active sur une broche en entrée à l'aide de l'instruction digitalWrite(broche, HIGH).
De plus, certaines broches ont des fonctions spécialisées :
- Communication Série: Port Série Serial : 0 (RX) et 1 (TX); Port Série Serial 1: 19 (RX) and 18 (TX); Port Série Serial 2: 17 (RX) and 16 (TX); Port Série Serial 3: 15 (RX) and 14 (TX).
- Interruptions Externes: Broches 2 (interrupt 0), 3 (interrupt 1), 18 (interrupt 5), 19 (interrupt 4),
- 20 (interrupt 3), et 21 (interrupt 2).Ces broches peuvent être configurées pour déclencher une interruption sur une valeur basse, sur un front montant ou descendant, ou sur un changement de valeur.
- Impulsion PWM (largeur d'impulsion modulée): Broches 0 à 13. Fournissent une impulsion PWM 8-bits à l'aide de l'instruction analogWrite().
- SPI (Interface Série Périphérique): Broches 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). Ces broches supportent la communication SPI (Interface Série Périphérique).
- I2C: Broches 20 (SDA) et 21 (SCL). Supportent les communications de protocole I2C.
- LED: Broche 13. Il y a une LED incluse dans la carte connectée à la broche 13.
I.4.1.5.Broches analogiques
La carte Mega2560 dispose de 16 entrées analogiques, chacune pouvant fournir une mesure d'une résolution de 10 bits (1024 niveaux soit de 0 à 1023) à l'aide de la très utile fonction analogRead() du langage Arduino. Par défaut, ces broches mesurent entre le 0V (valeur 0) et le 5V (valeur 1023). Les broches analogiques peuvent être utilisées en tant que broches numériques.
I.4.1.6. Autres broches
Il y a deux autres broches disponibles sur la carte :
- AREF : Tension de référence pour les entrées analogiques (si différent du 5V). Utilisée avec l'instruction analogReference().
- Reset : Mettre cette broche au niveau BAS entraîne la réinitialisation du microcontrôleur. Comme un port de communication virtuel pour le logiciel sur l’ordinateur, La connexion série de l'Arduino est très pratique pour communiquer avec un PC, mais son inconvénient est le câble USB, pour éviter cela, il existe différentes méthodes pour utiliser ce dernier sans fil.
I.5. Les Accessoires de la carte Arduino
La carte Arduino généralement est associée aux accessoires qui simplifient les réalisations.
I.5.1. Communication
Le constructeur a suggéré qu’une telle carte doit être dotée de plusieurs ports de communications ; on peut éclaircir actuellement quelques types.
I.5.1.1. Le module Arduino Bluetooth
Le Module Microcontrôleur Arduino Bluetooth est la plateforme populaire Arduino avec une connexion sérielle Bluetooth à la place d'une connexion USB, très faible consommation d'énergie mais aussi très faible portée (sur un rayon de l'ordre d'une dizaine de mètres), faible débit, très bon marché et peu encombrant.
I.5.1.2. Le module shield Arduino Wifi
Le module Shield Arduino Wifi permet de connecter une carte Arduino à un réseau internet sans fil Wifi.
I.5.1.3. Le Module XBee
Ce module permet de faire de la transmission sans fil, faible distance /consommation /débit/ prix.
I.5.2. Les drivers
Il existe plusieurs drivers comme des cartes auxiliaires qui peuvent être attachées avec l’Arduino afin de faciliter la commande ; on peut citer quelques types.
I.5.2.1. Les afficheurs LCD
Les afficheurs LCD sont devenus indispensables dans les systèmes techniques qui nécessitent l’affichage des paramètres de fonctionnement. Ces Afficheurs permettent d'afficher des lettres, des chiffres et quelques caractères spéciaux. Les caractères sont prédéfinis.
I.5.2.2. Le relais
C’est un composant qui possède une bobine (électro-aimant) qui est parcourue par un courant électrique agissant sur un ou plusieurs contacts. Le relais est une solution à la commande en puissance. Il assure en outre une isolation galvanique en mettant en œuvre un mouvement mécanique [12].
- Les capteurs
Un capteur est une interface entre un processus physique et une information manipulable. Il ne mesure rien, mais fournit une information en fonction de la sollicitation à laquelle il est soumis. Il fournit cette information grâce à une électronique à laquelle il est associé, il existe trois familles de capteurs : [11] [13]
- Capteurs TOR : Permettent de détecter un événement ou un objet, le signal électrique en sortie est de type logique (2niveaux logiques 0 ou 1).
- Capteurs Numériques : La sortie est une séquence d’états logiques, elle peut prendre une infinité de valeurs discrètes.
- Capteurs Analogiques : La sortie est une grandeur électrique dont la valeur est une fonction de la grandeur physique mesurée par le capteur, elle peut prendre une infinité de valeurs continues
II.1. Capteur de température et d’humidité DHT11
Ce capteur combiné d'humidité relative et de température DHT11 est un appareil de mesure facile à utiliser avec un prix abordable, des températures de 0 à +50°C avec une précision de +/- 2°C et des taux d'humidité relative de 20 à 80% avec une précision de +/- 5% avec une mesure toute les deux secondes. Le DHT11 et ses quatre broches à dimensions standard le rendent à la fois soudable et enfichable. On peut rencontrer deux types différents du DHT11, un type à quatre broches et l'autre type a trois broches monté sur une petite PCB. La version montée sur PCB est plus pratique car elle comprend une résistance « pull-up » de 10K Ohm montée en surface pour la ligne de signal. Voici les sorties pour les deux versions:
...
- 2. Capteur de mouvement PIR
Les capteurs PIR (capteur infrarouge passif) permettent de détecter la présence d’humains mobiles dans le champ du capteur. Ils sont utilisés dans divers systèmes de sécurité et détecteurs de mouvements. On en trouve à bas coût, et ils sont très simples à utiliser. Ces capteurs n’émettent rien, mais au contraire captent les rayonnements infrarouges émis, les êtres vivants à sang chaud passant dans le champ de détection du capteur. Pour élargir la zone de détection, ceux-ci sont souvent recouverts d’une lentille de Frensel. Des composants électroniques divers traitent la sortie brute du capteur en lui-même et permettent d’obtenir une sortie numérique en fonction du mouvement détecté.
Pour ce qui est du brochage, ce capteur est composé de trois broches :
- 5V.
- GND.
- DATA.
II.3. Capteur de GAZ MQ2
Le MQ2 est un capteur qui permet de détecter du gaz ou de la fumée à des concentrations de 300 ppm à 10000 ppm. Après calibration, le MQ-2 peut détecter différents gaz comme le GPL (LPG), l’i-butane, le propane, le monoxyde de carbone, le méthane, l’alcool, l’hydrogène ainsi que les fumées. Il est conçu pour un usage intérieur à température ambiante. Le MQ2 doit être alimenté en 5V pour le capteur physico-chimique puisse atteindre sa température de fonctionnement. Il dispose d’une sortie analogique et d’un réglage de la sensibilité par potentiomètre