Vous êtes sur la page 1sur 10

-ARDUINO:

-Définition du module Arduino: Le module Arduino est un circuit imprimé en


matériel libre (plateforme de contrôle) dont les plans de la carte elle-même
sont publiés en licence libre dont certains composants de la carte ne le sont
pas : comme le microcontrôleur et les composants complémentaires.
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 (la domotique, le pilotage d'un robot, commande des moteurs et faire
des jeux de lumières, communiquer avec l'ordinateur, commander des appareils
mobiles).
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 [01].
-Les gammes de la carte Arduino : Actuellement, il existe plus de 20 versions
de module Arduino, nous citons quelques un afin d’éclaircir l’évaluation de ce
produit scientifique et académique [01]:
 Le NG d'Arduino, avec une interface d'USB pour programmer et usage d'un
Microcontrôleur ATmega8.
 Le NG d'Arduino plus, avec une interface d’USB pour programmer et usage d'un
ATmega168.
 L'Arduino Mini, une version miniature de l'Arduino en utilisant un
microcontrôleur ATmega168. Actuellement, il existe plus de 20 versions de
module Arduino, nous citons quelques un afin d’éclaircir l’évaluation de ce
produit scientifique et académique [01]:
 Le NG d'Arduino, avec une interface d'USB pour programmer et usage d'un
Microcontrôleur ATmega8.
 Le NG d'Arduino plus, avec une interface d’USB pour programmer et usage d'un
ATmega168.
 L'Arduino Mini, une version miniature de l'Arduino en utilisant un
microcontrôleur ATmega168.

 L'Arduino Nano, une petite carte programmable à l’aide d’un porte USB, cette
version utilisant un microcontrôleur ATmega168 (ATmega328 pour une plus
nouvelle version).
 Le Lily Pad Arduino, une conception de minimaliste pour l'application wear
able en utilisant un microcontrôleur 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 Mega2560, utilisations un microcontrôleur ATmega2560, et possède
toute la mémoire à 256 KBS. Elle incorpore également le nouvel ATmega8U2.
 L'Arduino UNO, utilisations microcontrôleur ATmega328.
 L'Arduino Leonardo, avec un morceau ATmega3Ù4 qui élimine le besoin de
raccordement d'USB et peut être employé comme clavier.
 L'Arduino Explora : ressemblant à un contrôleur visuel de jeu, avec un
manche et des sondes intégrées pour le bruit, la lumière, la température, et
l'accélération [01].
Parmi ces types, nous avons choisi une carte Arduino UNO, carte simple à
manipuler, pratique et qui a un prix raisonnable
-Une carte Arduino : est une petite carte électronique (5,33 x 6,85 cm)
équipée d'un microcontrôleur, ce dernier permet, à partir d'événements
détectés par des capteurs, de programmer et commander des actionneurs; la
carte Arduino est donc une interface programmable [02].

Figure I.1 : La carte Arduino UNO

Le modèle UNO de la société ARDUINO est une carte électronique dont le cœur
est un microcontrôleur ATMEL de référence ATMega328. Le microcontrôleur
ATMega328 est un microcontrôleur 8bits de la famille AVR dont la programmation
peut être réalisée en langage C [03].

Figure I.2 : carte Arduino UNO

1) Caractéristiques techniques de la carte Arduino UNO :


 Micro contrôleur : ATmega328.
 Fréquence horloge : 16 MHz.
 Tension d’alimentation interne : 5 Vcc.
 Tension d’alimentation externe recommandée : 7-12 Vcc. (Limites : 6-20
Vcc)
 Courant max sur la sortie 3,3 V généré par le régulateur interne :50mA.
 Entrées/sorties binaires : 14 broches.
 Courant MAX par broches en sortie : 40 mA. (85 mA en court circuit)
 Courant MAX cumulé par les broches en sorties : 200 mA. (Soit 14 mA en
moyenne)
 Les E/S binaires 0 et 1 sont mobilisées par le dialogue sur la ligne
série.
 S0 pour RX et S1 pour TX. Chaque broche est reliée à une LED via R =
1kΩ.
 Les E/S binaires 3, 5, 6, 9, 10, et 11 sont dédiées au mode PWM.
 L'E/S 13 est reliée sur la carte à la LED de test via une résistance de
1kΩ.
 Entrées analogiques : 6, le niveau logique maximal doit être de +5Vcc.
 Mémoire Flash 32 KB dont 0.5 KB utilisée par le Boot loader.
 Mémoire SRAM 2 KB, Mémoire EEPROM 1 KB.
 La carte s’interface au PC par l’intermédiaire de sa prise USB.
 La carte s’alimente par le jack d’alimentation [04].

Figure I.3 : E/S d’une carte Arduino UNO

2) Schéma simplifié de la carte Arduino UNO :


Le microcontrôleur utilisé sur la carte Arduino UNO est un
microcontrôleur ATMega328 [05], ce dernier est un circuit intégré qui
rassemble sur une puce plusieurs éléments complexes dans un espace réduit
dont la programmation peut être réalisée en langage C.
Figure I.4 : Schéma simplifié de la carte Arduino UNO

Le ATMEL ATMega328 est un microcontrôleur ATMEL de la famille AVR 8bits [05],


il se caractérise par :
 FLASH : mémoire programme de 32 Ko
 SRAM : données (volatiles) de 2 Ko
 EEPROM : données (non volatiles) de 1 Ko
 Digital I/O (entrées-sorties Tout Ou Rien) : 3 ports PortB, PortC, PortD
(soit 23 broches en tout I/O)
 Timers/Counters : Timer 0 et Timer 2 (comptage 8 bits), Timer1 (comptage 16
bits)
Chaque timer peut être utilisé pour générer deux signaux PWM. (6 broches
OCxA/OCxB)
 Plusieurs broches multi-fonctions : certaines broches peuvent avoir
plusieurs fonctions différentes choisies par programmation.
 PWM : 6 broches OC0A(PD6), OC0B(PD5), 0C1A(PB1), OC1B(PB3), OC2A(PB3),
OC2B(PD3)
 Convertisseur analogique-numérique (résolution 10 bits) : 6 entrées
multiplexées ADC0(PC0) à ADC5(PC5)
 Gestion bus I2C (TWI Two Wire Interface) : le bus est exploité via les
broches
SDA(PC5)/SCL(PC4). Port série (USART) : émission/réception série via les
broches TXD(PD1)/RXD(PD0)
 Comparateur Analogique : broches AIN0(PD6) et AIN1 (PD7) peut déclencher
interruption Watch dog Timer programmable.
 Gestion d'interruptions (24 sources possibles (cf interrupt vectors)) : en
résumé
– Interruptions liées aux entrées INT0 (PD2) et INT1 (PD3)
– Interruptions sur changement d'état des broches PCINT0 à PCINT23
– Interruptions liées aux Timers 0, 1 et 2 (plusieurs causes configurables)
– Interruption liée au comparateur analogique
– Interruption de fin de conversion ADC
– Interruptions du port série USART
– Interruption du bus TWI (I2C) [05].

Figure I. 5 : Brochage de Microcontrôleur ATMega328

3) Alimentation de la carte ARDUINO UNO :La carte Arduino UNO peut être
alimentée via la connexion USB ou avec une alimentation externe. La
source d'alimentation est automatiquement sélectionnée.
Une alimentation externe peut provenir soit d'un adaptateur AC-DC ou
d’une batterie.
L'adaptateur peut être connecté en branchant une prise 2.1 mm dans la
prise d'alimentation de la carte ou à partir d'une batterie connectée
dans le pin (ou broche) GND et V-in (alimentation externe) [01].
Le processeur peut fonctionner sur une alimentation externe de 6 à 20
volts. Cependant, si la tension est inférieure à 7V, le pin 5V peut
fournir moins de cinq volts et le processeur peut devenir instable. Si la
tension est supérieure à 12V, le régulateur de tension peut surchauffer
et endommager la carte. La plage recommandée est de 7 à 12 volts [06].
-Le logiciel arduino:
1) Description du logiciel:Après avoir terminé le téléchargement et
l’installation, nous faisons le lancement du logiciel en double-cliquant
sur l’icône avec le symbole "infinie" en vert. C’est l’exécutable du
logiciel. Après un léger temps de réflexion une image s’affiche(voir
figure I. 6).
Figure I.6: Interface d’arduino IDE

Figure I.7: Interface du logiciel en détail


Le cadre numéro 1:Ce sont les options de configuration du logiciel.
Le cadre numéro 2: Il contient les boutons qui vont nous servir lorsque
nous allons programmer nos cartes.
Le cadre numéro 3: Ce bloc va contenir le programme que nous allons
créer.
Le cadre numéro 4 : Celui-ci est important, car il va nous aider à
corriger les fautes dans notre programme. [07]

Figure I.8: La barre d’outils.


Bouton 1 : Ce bouton permet de vérifier le programme, il actionne un module qui
cherche les erreurs dans votre programme.
Bouton 2 : Charge (téléverse) le programme dans la carte Arduino.
Bouton 3 : Crée un nouveau fichier.
Bouton 4 : Ouvre un fichier.
Bouton 5 : Enregistre le fichier.
Bouton 6 : Ouvre le moniteur série.
Carnet de croquis : Ce menu regroupe les fichiers que vous avez pu faire
jusqu’à maintenant (et s’ils sont enregistrés dans le dossier par défaut du
logiciel).
Exemples (exemples) : Cela est important, toute une liste se déroule pour
afficher les noms d’exemples de programmes existants ; avec cela, vous pourrez
vous aider/inspirer pour créer vos propres programmes ou tester de nouveaux
composants.
Téléverser :Permet d’envoyer le programme sur la carte Arduino.
Téléverser avec un programmateur : Idem que ci-dessus, mais avec l’utilisation
d’un programmateur (vous n’en n’aurez que très rarement besoin).
Préférences : Vous pourrez régler ici quelques paramètres du logiciel. [07]

-Le langage arduino:


Le langage Arduino est inspiré de plusieurs langages. Nous retrouvons
notamment des similarités avec le C, le C++, le Java et le Processing. Le
langage impose une structure particulière typique de l’informatique embarquée.
La fonction setup contiendra toutes les opérations nécessaires à la
configuration de la carte (directions des entrées sorties, débits de
communications série, etc.). La fonction loop est exécutée en boucle après
l’exécution de la fonction setup. Elle continuera de boucler tant que la carte
n’est pas mise hors tension, redémarrée (par le bouton reset). Cette boucle
est absolument nécessaire sur les microcontrôleurs étant donné qu’ils n’ont
pas de système d’exploitation. En effet, si nous omettions cette boucle, à la
fin du code produit, il sera impossible de reprendre la main sur la carte
Arduino qui exécuterait alors du code aléatoire. [08] Au niveau de la syntaxe,
nous retrouvons des similarités avec les langages précédemment cités (voir
annexe 1).

-Conclusion:
Le système Arduino nous donne la possibilité d'allier les performances de la
programmation à celles de l'électronique. Plus précisément, il nous permet de
programmer des systèmes électroniques. Le gros avantage de l'électronique
programmée c'est qu'elle simplifie grandement les schémas électroniques et par
conséquent, le coût de la réalisation, mais aussi la charge de travail à la
conception d'une carte électronique.
Annexe 1
Structure du language ARDUINO:
FONCTIONS DE BASE
Ces deux fonctions sont
obligatoires dans tout Variables et constantes
programme en langage Fonctions
Les variables sont des
Arduino : expressions que vous pouvez
ENTRÉES/SORTIES
 void setup() utilisez dans les NUMÉRIQUES
 void loop() programmes pour stocker  pinMode(broche, mode)
STRUCTURES DE CONTRÔLE des valeurs, telles que la  digitalWrite(broche,valeur)
tension de sortie d'un
 if
capteur présente sur une  int digitalRead(broche)
 if...else broche analogique. ENTRÉES ANALOGIQUES
 for CONSTANTES PRÉDÉFINIES  int analogRead(broche)
 switch case Les constantes prédéfinies SORTIES
 while du langage Arduino sont des "ANALOGIQUES"
valeurs particulières ayant (GÉNÉRATION
 do... while une signification spécifique.
 break D'IMPULSION)
 HIGH | LOW
 continue  analogWrite(broche,valeur) - PWM
 INPUT | OUTPUT
 return ENTRÉES/SORTIES AVANCÉES
 true | false
SYNTAXE DE BASE A ajouter : constantes  tone()
 ; (point virgule) décimales prédéfinies  noTone()
 {} (accolades) EXPRESSIONS  shiftOut(broche, BrocheHorloge,
 // (commentaire sur NUMÉRIQUES OrdreBit, valeur)
une ligne)  Expressions numériques  unsigned
 /* */ (commentaire sur entières long pulseIn(broche,valeur)
plusieurs lignes) TYPES DES DONNÉES TEMPS
OPÉRATEURS Les variables peuvent être  unsigned long millis()
ARITHMÉTIQUES de type variés qui sont  unsigned long micros()
décrits ci-dessous.
 = (égalité)  delay(ms)
Synthèse des types de données
 + (addition) Arduino  delayMicroseconds(us)
 - (soustraction)  boolean MATH
 * (multiplication)  char  min(x, y)
 / (division)  byte  max(x, y)
 % (modulo)  int  abs(x)
OPÉRATEURS DE  unsigned int  constrain(x, a, b)
COMPARAISON  long  map(valeur, toLow,
 == (égal à)
 != (différent de)
-fromHigh, toLow,toHigh)
 unsigned long
 < (inférieur à)  float (nombres à  pow(base, exposant)
 > (supérieur à) virgules)  sq(x)
 <= (inférieur ou égal à)  double (nombres à  sqrt(x)
 >= (supérieur ou égal à) virgules) -TRIGONOMÉTRIE
OPÉRATEURS BOOLÉENS  Les chaînes de  sin(rad)
 && (ET booléen) caractères  cos(rad)
 || (OU booléen)  Les tableaux de
 ! (NON booléen)  tan(rad)
variables
OPÉRATEURS COMPOSÉS
 void (fonctions)  degrees(rad)
 ++ (incrémentation) -CONVERSION DES TYPES DE  radians(deg)
 -- (décrémentation) (à DONNÉES  PI
revoir)
 char() -NOMBRES RANDOMISÉS
 += (addition composée)
 -= (soustraction
 byte() (HASARD)
composée)  int()  randomSeed(seed)
 *= (multiplication  long()  long random(max)
composée)  float()  long random(min, max)
 /= (division composée) -Référence -COMMUNICATION
 Code ASCII (à finir)  Serial
BIBLIOGRAPHIE
Site web :
[01]. KRAMA A., GOUGUI A., 2015. «Etude et réalisation d’une carte de
contrôle par Arduino via le système Androide », mémoire Master Académique,
Université Kasdi Merbah Ouargla.
[02]. http://www.techmania.fr/arduino/Decouverte_arduino.pdf Consulté le
22/04/2017.
[03]. //perso-laris.univ-angers.fr/~cottenceau/ArduinoCottenceau1112.pdf.
Consulté le 15/03/2017.
[04]. ARDUINO1.pdf Consulté le 15/03/2017.
[05]. http://perso-laris.univ-angers.fr/~cottenceau/ArduinoCottenceau1112.pdf
Consulté le 15/05/2017.
[06]. Nicolas G., Goeffrey L., 2015. Arduino Apprendre à développer pour créer
des objets intelligents.
[07]: https://zestedesavoir.com/tutoriels/686/arduino-premiers-pas-en-
informatiqueembarquee/742_decouverte-de-larduino/3416_le-logiciel/
[08]: https://fablab.univ-tlse3.fr/wiki/images/9/92/Cours_arduino_v0.2.pdf