Vous êtes sur la page 1sur 22

Les microcontrôleurs

Arduino
CESI
14 février 2023
Aix-en-Provence
Intervenant : Guy SINNIG

Février 2023
Objectif général de la présentation

Présenter les principes des microcontrôleurs.

Mettre en œuvre un microcontrôleur.

Février 2023
2
Thèmes abordés :
Les Microcontrôleurs – systèmes embarqués
Le système Arduino
Le matériel Arduino Uno
L’IDE Arduino
Quelques fonctions de base (E/S)
Les variables
Les opérateurs
Les principales structures de contrôle
Les fonctions
Février 2023
3
Domaines d’utilisation des systèmes embarqués :
Industrie – process de fabrication, …
Médical – imagerie – assistance – télémédecine, …
Banque – guichet automatique, …
Astronautique – fusée, satellites, sondes, …
Aéronautique, Drones, …
Transport, Automobile, Nautisme, …
Domotique, Immotique, …
Informatique, IOT (internet des objets), …
Réalité virtuelle, …
Robotique, …

Février 2023
4
Architecture d’un système embarqué

Mémoire Mémoire
programme de travail

Processeur

Capteurs Actionneurs
Adaptateurs
et ports E/S
IHM Communications
Microcontrôleur

Février 2023
5
Architecture d’un système embarqué
Moteurs
Température
Servos
Humidité
Electrovannes
Pression
Pompes
Présence Système
Embarqué Verins
Distance
Résistances
Position chauffantes
Luminosité Eclairages
...
...

Interagir avec le monde réel


Février 2023
6
Architecture d’un système embarqué

Les processeurs :
Usages généraux (CPU) actuellement 32 ou 64bits .
Usages spécialisés :
Arithmétiques.
Graphiques (GPU).
Temps réels (digital signal processing (DSP) ).
Microcontrôleurs.

Février 2023
7
Architecture d’un système embarqué

Microcontrôleur 8bits
Intel Core i9

Février 2023
8
Architecture d’un système embarqué
La gamme des Microcontrôleurs :

32 bits
16 bits
8 bits
4 bits

Février 2023
9
ATMega 328 (Arduino Uno)

E/S

Mémoires
Ports
série
Unité
arithmétique
et logique

Février 2023
10
Carte Arduino Uno
microcontrôleur ATMega 328

ATMega 328 DIL ATMega 328 CMS

Février 2023
11
Carte Arduino Uno

1 : LEDs indiquant la transmission et la


réception de données lors d'une
communication série.
2 : Entrées/Sorties numériques
3 : Indicateur d'alimentation LED
4 : Microcontrôleur
5 : Entrées analogiques
6 : Broches d'alimentation
7 : Connecteur d'alimentation (7 à 12V)
8 : Connecteur USB
9 : Bouton de réinitialisation (Reset)

Février 2023
12
Microcontrôleur ATMega 328
(Arduino Uno)

ATMega 328

Données 8 bits
Fréquence 16 MHz
Alimentation 5V
RAM 2 ko
Flash 32 ko
E/S 14 dig. + 6 Analog.

Février 2023
13
IDE Arduino

#define LED 12

int tempo = 500;

void setup() {
pinMode(LED, OUTPUT) ; 01011101100
}
void loop() {
digitalWrite(LED, LOW) ;
delay(tempo) ;
USB
digitalWrite(LED, HIGH) ;
delay(tempo) ;
}

PC
Février 2023
14
Programmation Arduino

La référence pour le langage C++ arduino :


https://www.arduino.cc/reference/en/

Février 2023
Programmation Arduino
Les E/S (Entrées – Sorties)
Configuration des E/S numériques :
pinMode (Port, mode) ;
mode = INPUT ; INPUT_PULLUP ; OUTPUT
Ecriture / Lecture des E/S numériques :
digitalWrite (Port, Valeur) ;
Valeur = LOW (0) ; HIGH (1)
int Var = digitalRead (Port) ;
Ecriture sorties PWM (~) :
analogWrite (Port, Valeur) ;
Valeur = 0 à 255
Lecture des E/S analogiques :
int Var = analogRead (Port) ;
(les valeurs lues seront comprises entre 0 et 1023)

Février 2023
16
PWM (Pulse Width Modulation) :

Signal PWM intégré

Février 2023
17
Programmation Arduino
Les principaux types de variables
Nombres et caractères :

octets et booléens :

les valeurs d’une variable booléenne sont : true (1) et false (0)
Février 2023
18
Programmation Arduino
Les principaux opérateurs
Opérateurs arithmétiques Opérateurs de comparaison
= (égalité) == (égal à)
+ (addition) != (différent de)
- (soustraction) < (inférieur à)
* (multiplication) > (supérieur à)
/ (division) <= (inférieur ou égal à)
% (modulo) >= (supérieur ou égal à)

Opérateurs booléens
&& (ET booléen)
|| (OU booléen)
! (NON booléen)

Février 2023
19
Programmation Arduino
Les principales structures de contrôle
Condition
if (condition) { instructions }
else { instructions } (facultatif)

Boucles
for (variable initialisation, condition, incrémentation) { instructions }

while (expression) { instructions }


on exécute les instructions tant que l’expression est vraie

do { instructions } while (expression)


on exécute les instructions une fois, puis tant que l’expression est vraie

Février 2023
20
Programmation Arduino
Les principales fonctions
Mathématiques Trigonométrie
min(x, y) sin(rad)
max(x, y) cos(rad)
abs(x) tan(rad)
constrain(x, a, b) degrees(rad)
map(valeur, fromLow, fromHigh, toLow, toHigh) radians(deg)
pow(base, exposant) PI
sq(x)
sqrt(x) Nombres randomisés
(hasard)
Temps
randomSeed(seed)
unsigned long millis() long random(max)
unsigned long micros() long random(min, max)
delay(ms)
delayMicroseconds(us) Communication
Février 2023 Serial
21
Programmation Arduino
Les fonctions
type nom_de_la_fonction(paramètres) { instructions }
si la fonction ne renvoie rien (pas de return) elle sera de type void
il n’y a pas toujours de paramètres transmis.

Exemples :

Février 2023
22

Vous aimerez peut-être aussi