Vous êtes sur la page 1sur 8

La carte Arduino Mega 2560

La carte Mega est "LA" carte qu'il vous faut si vous manquez de broches E/S et de mémoire avec votre Uno ou
Duemilanove

Vue d'ensemble
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 (largeur d'impulsion modulée)),
 de 16 entrées analogiques (qui peuvent également être utilisées en broches
entrées/sorties numériques),
 de 4 UART (port série matériel),
 d'un quartz 16Mhz,
 d'une connexion USB,
 d'un connecteur d'alimentation jack,
 d'un connecteur ICSP (programmation "in-circuit"),
 et 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 et se lancer, 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.
Schéma et typon de référence
Brochage de la carte Mega 2560

Synthèse des caractéristiques


Microcontrôleur ATmega2560

Tension de fonctionnement 5V

Tension d'alimentation
7-12V
(recommandée)

Tension d'alimentation (limites) 6-20V

Broches E/S numériques 54 (dont 14 disposent d'une sortie PWM)

Broches d'entrées analogiques 16 (utilisables en broches E/S numériques)

Intensité maxi disponible par broche 40 mA (ATTENTION : 200mA cumulé pour l'ensemble des
E/S (5V) broches E/S)
Intensité maxi disponible pour la
50 mA
sortie 3.3V
Intensité maxi disponible pour la Fonction de l'alimentation utilisée - 500 mA max si port
sortie 5V USB utilisé seul

Mémoire Programme Flash 256 KB dont 8 KB sont utilisés par le bootloader

Mémoire SRAM (mémoire volatile) 8 KB

Mémoire EEPROM (mémoire non


4 KB
volatile)

Vitesse d'horloge 16 MHz

Alimentation
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.
L'alimentation externe (non-USB) peut être soit un adapteur secteur (pouvant
fournir typiquement de 3V à 12V sous 500mA) ou des piles (ou des accus).
L'adaptateur secteur peut être connecté en branchant une prise 2.1mm positif
au centre dans le connecteur jack de la carte. Les fils en provenance d'un bloc
de piles ou d'accus peuvent être insérés dans les connecteurs des broches de la
carte appelées Gnd (masse ou 0V) et Vin (Tension positive en entrée) du
connecteur d'alimentation.
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 et endommager la
carte. Aussi, la plage idéale recommandée pour alimenter la carte Uno est entre
7V et 12V.
La carte Arduino Mega2560 diffère de toutes les cartes précédentes car elle
n'utilise par le circuit intégré FTDI usb-vers-série. A la place, elle utilise un
Atmega8U2 programmé en convertisseur USB-vers-série.
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). Vous pouvez alimenter la carte à l'aide de cette
broche, ou, si l'alimentation est fournie par le jack d'alimentation, accéder
à la tension d'alimentation sur cette broche.
 5V. La tension régulée utilisée pour faire fonctionner le microcontrôleur et
les autres composants de la carte (pour info : les circuits électroniques
numériques nécessitent une tension d'alimentation parfaitement stable dite
"tension régulée" obtenue à l'aide d'un composant appelé un régulateur et
qui est intégré à la carte Arduino). 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 (qui fournit du 5V régulé) ou de tout
autre source d'alimentation régulée.
 3V3. 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 est disponible : ceci est intéressant
pour certains circuits externes nécessitant cette tension au lieu du 5V).
L'intensité maximale disponible sur cette broche est de 50mA
 GND. Broche de masse (ou 0V).The power pins are as follows:
Mémoire
L'ATmega 2560 a 256Ko de mémoire FLASH pour stocker le programme (dont 8Ko
également utilisés par le bootloader). L'ATmega 2560 a é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) .
Pour info : Le bootloader est un programme préprogrammé une fois pour toute
dans l'ATméga et qui permet la communication entre l'ATmega et le logiciel
Arduino via le port USB, notamment lors de chaque programmation de la carte.

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, en utilisant
les instructions pinMode(), digitalWrite() et digitalRead() du langage Arduino.
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 Serie: Port Serie Serial : 0 (RX) and 1 (TX); Port Serie
Serial 1: 19 (RX) and 18 (TX); Port Serie Serial 2: 17 (RX) and 16 (TX);
Port Serie Serial 3: 15 (RX) and 14 (TX). Utilisées pour recevoir (RX) et
transmettre (TX) les données séries de niveau TTL. Les broches 0 (RX)
and 1 (TX) sont connectées aux broches correspondantes du circuit
intégré ATmega8U2 programmé en convertisseur USB-vers-série de la
carte, composant qui assure l'interface entre les niveaux TTL et le port
USB de l'ordinateur.
 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. Voir l'instruction attachInterrupt() pour plus de
détails.
 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) disponible avec la librairie pour communication SPI.
Les broches SPI sont également connectées sur le connecteur ICSP qui
est mécaniquement compatible avec les cartes Uno, Duemilanove et
Diecimila.
 I2C: Broches 20 (SDA) et 21 (SCL). Supportent les communications de
protocole I2C (ou interface TWI (Two Wire Interface - Interface "2 fils"),
disponible en utilisant la librairie Wire/I2C (ou TWI - Two-Wire interface
- interface "2 fils") . Noter que ces broches n'ont pas le même
emplacement que sur les cartes Uno, Duemilanove ou Diecimila.
 LED: Broche 13. Il y a une LED incluse dans la carte connectée à la broche
13. Lorsque la broche est au niveau HAUT, la LED est allumée, lorsque
la broche est au niveau BAS, la LED est éteinte.
Broches analogiques
La carte Mega2560 dispose de 16 entrées analogiques, chacune pouvant fournir
une mesure d'une résolution de 10 bits (càd sur 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), mais il est
possible de modifier la référence supérieure de la plage de mesure en utilisant
la broche AREF et l'instruction analogReference() du langage Arduino.
Note : les broches analogiques peuvent être utilisées en tant que broches
numériques.
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 (=
le redémarrage) du microcontrôleur. Typiquement, cette broche est
utilisée pour ajouter un bouton de réinitialisation sur le circuit qui
bloque celui présent sur la carte.
Communications
La carte Arduino Mega2560 dispose de toute une série de facilités pour
communiquer avec un ordinateur, une autre carte Arduino, ou avec d'autres
microcontrôleurs. L'ATmega2560 dispose de quatre UARTs (Universal
Asynchronous Receiver Transmitter ou émetteur-récepteur asynchrone universel
en français) pour communication série de niveau TTL (5V) et qui est disponible
sur les broches 0 (RX) et 1 (TX). Un circuit intégré ATmega8U2 sur la carte assure
la connexion entre cette communication série de l'un des ports série de l'ATmega
2560 vers le port USB de l'ordinateur qui apparaît comme un port COM virtuel
pour les logiciels de l'ordinateur. Le code utilisé pour programmer l'ATmega8U2
utilise le driver standard USB COM, et aucun autre driver externe n'est
nécessaire. Cependant, sous Windows, un fichier .inf est requis.
Le logiciel Arduino inclut une fenêtre terminal série (ou moniteur série) sur
l'ordinateur et qui permet d'envoyer des textes simples depuis et vers la carte
Arduino. Les LEDs RX et TX sur la carte clignote lorsque les données sont
transmises via le circuit intégré ATmega8U2 utilisé en convertisseur USB-vers-
série et la connexion USB vers l'ordinateur (mais pas pour les communications
série sur les broches 0 et 1).
Une librairie Série Logicielle permet également la communication série (limitée
cependant) sur n'importe quelle broche numérique de la carte UNO.
L' ATmega2560 supporte également la communication par protocole I2C (ou
interface TWI (Two Wire Interface - Interface "2 fils") et SPI :
 Le logiciel Arduino inclut la librairie Wire qui simplifie l'utilisation du bus
I2C. Voir la documentation pour les détails
 Pour utiliser la communication SPI (Interface Série Périphérique), la librairie
pour communication SPI est disponible.
Programming
La carte Mega2560 peut être programmée avec le logiciel Arduino (à télécharger
ici). Il suffit de sélectionner "Arduino Mega" dans le menu Tools > Board. Pour
plus de détails sur le langage Arduino, voir la référence du langage Arduino et
pour apprendre à programmer en langage Arduino voir la page Apprendre.
Le microcontrôleur ATmega2560 présent sur la carte Arduino Mega2560 est livré
avec un bootloader (petit programme de démarrage) préprogrammé qui vous
permet de transférer le nouveau programme dans le microcontrôleur sans avoir
à utiliser un matériel de programmation externe. Ce bootloader communique
avec le microcontrôleur en utilisant le protocol original STK500.
Vous pouvez bien sûr passer outre le bootloader et programmer le
microcontrôleur via le connecteur ICSP ( In-Circuit Serial Programming -
"Programmation Série Dans le circuit" en français); voir ces instructions (en
anglais) pour plus de détails.
Le source du code pour le circuit intégré ATmega8U2 est disponible.
L'ATmega8U2 est chargé avec un bootloader DFU qui peut être activé en
connectant le cavalier au dos de la carte (près de la carte de l'Italie) et en
réinitialisant le 8U2. Vous pouvez alors utiliser le logiciel FLIP de chez
Atmel (Windows) ou le programmeur DFU (Mac OS X et Linux) pour charger le
nouveau code. Ou bien vous pouvez utiliser le connecteur ICSP avec un
programmateur externe (pour réécrire le bootloader DFU).
Réinitialisation (logicielle) automatique
Plutôt que de nécessiter un appui sur le bouton poussoir de réinitialisation avant
un transfert de programme, la carte Arduino Mega2560 a été conçue de telle
façon qu'elle puisse être réinitialisée par un logiciel tournant sur l'ordinateur.
Une des broches matérielles de contrôle du flux (DTR) du circuit intégré
ATmega8U2 est connecté à la ligne de réinitialisation de l'ATmega2560 via un
condensateur de 100 nanofarads. Lorsque cette broche est mise au niveau BAS,
la broche de réinitialisation s'abaisse suffisamment longtemps pour réinitialiser
le microcontrôleur. Le logiciel Arduino utilise cette possibilité pour vous
permettre de transférer votre programme dans la carte par un simple clic sur le
bouton de transfert de la barre de boutons de l'environnement Arduino. Cela
signifie que le bootloader peut avoir un temps mort plus court, la mise au niveau
bas de la broche DTR étant bien coordonnée avec le début du transfert du
programme.
Ce fonctionnement a d'autres implications. Quand la carte Mega2560 est
connectée à un ordinateur fonctionnant soit sous Mac Os X ou Linux, la carte se
réinitialise à chaque fois qu'une connexion se fait entre elle et le logiciel (via le
port USB). Pendant la demi-seconde suivante, le bootloader s'exécute sur la
carte Mega2560. Puisqu'il est programmé pour ignorer les données mal formatées
(càd toute donnée en plus du transfert d'un nouveau programme), il interceptera
les quelques premiers octets de donnée envoyé à la carte après qu'une connexion
soit établie. Si un programme s'exécutant sur la carte reçoit une configuration
initiale ou d'autres données quand il démarre, assurez-vous que le logiciel avec
lequel il communique attend une seconde après l'ouverture de la connexion
avant d'envoyer ces données.
La carte Mega2560 comporte une piste (du circuit imprimé) que vous pouvez
couper pour désactiver la réinitialisation automatique. Les bords de chaque côté
de la piste peuvent solidarisés ensemble pour la réactiver. Vous pouvez
également désactiver la réinitialisation automatique en connectant une
résistance de 110 Ohms entre le +5V et la ligne de réinitialisation (reset); voir ce
fil du forum (en anglais) pour plus de détails.

Protection du port USB contre la surcharge en intensité


La carte Arduino Mega2560 intègre un polyfusible réinitialisable qui protège le
port USB de votre ordinateur contre les surcharges en intensité (le port USB est
généralement limité à 500mA en intensité). Bien que la plupart des ordinateurs
aient leur propre protection interne, le fusible de la carte fournit une couche
supplémentaire de protection. Si plus de 500mA sont appliqués au port USB, le
fusible de la carte coupera automatiquement la connexion jusqu'à ce que le
court-circuit ou la surcharge soit stoppé.

Caractéristiques Mécaniques
Les longueurs et largeurs maximales du circuit imprimé de la carte Mega2560
sont respectivement 10.16 cm et 5.33 cm, avec le connecteur USB et le
connecteur d'alimentation Jack s'étendant au-delà des dimensions de la carte.
Plusieurs trous de vis permettent à la carte d'être fixée sur une surface ou dans
un boîtier. Noter que la distance entre les broches 7 et 8 est de 0.16 pouces, et
non un multiple des 0.1 pouces séparant les autres broches.
La carte Mega2560 a été conçue pour être compatible avec la plupart des circuits
imprimés des modules prévus pour les cartes Uno, Diecimila ou Duelmilanove.
Les broches numériques 0 à 13 (et les broches adjacentes AREF et GND), les
entrées analogiques 0 à 5, le connecteur de tension et le connecteur ICSP ont
des emplacements identiques pour toutes ces cartes. De la même façon, l'UART
principale (port série) est connectée sur les mêmes broches (0 et 1), ainsi que
les interruptions externes 0 et 1 (respectivement sur les broches 2 et 3). La
communication SPI est disponible via le connecteur ICSP à la fois pour les cartes
Mega2560 et Uno, Duemilanove, Diecimila. Noter cependant que la connexion
I2C n'est pas disponible sur les mêmes broches pour la Mega (broches 20 et 21)
que pour les cartes Uno / Duemilanove / Diecimila (broches analogiques 4 et 5).

Vous aimerez peut-être aussi