• Aucun résultat trouvé

2. Commande d’une LED 3. LED + bouton poussoir

N/A
N/A
Protected

Academic year: 2022

Partager "2. Commande d’une LED 3. LED + bouton poussoir"

Copied!
189
0
0

Texte intégral

(1)

Pascal MASSON Electronique avec Arduino (version projection V45) 1

École Polytechnique Universitaire de Nice Sophia-Antipolis Cycle Initial Polytechnique

1645 route des Lucioles, 06410 BIOT

Cours sponsorisé par la société

Pascal MASSON

Version projection Edition 2019-2020-V45

(pascal.masson@unice.fr)

Electronique avec Arduino

(ex ATMEL)

(2)

Sommaire

1. Généralités

2. Commande d’une LED 3. LED + bouton poussoir

7. Pulse Width Modulation (PWM) 5. Entrées analogiques

6. Ecran LCD 162

8. Mesure de distance Introduction

4. LED + bouton poussoir + mémoire

(3)

Pascal MASSON Electronique avec Arduino (version projection V45)

▪ Applications simples pour des étudiants BAC + 1 et 2

3

Introduction

Robot BAC + 1

Emetteur FM BAC + 2

▪ Objets que les étudiants manipulent au quotidien :

(4)

▪ L’émergence et succès grandissant des cartes de développement

Introduction

▪ C’est l’occasion de réaliser des projets plus ou moins complexes qui correspondent mieux à l’électronique actuelle tout en restant accessibles aux étudiants de BAC+2.

▪ Tous les acteurs du marché s’y lancent

(5)

Pascal MASSON Electronique avec Arduino (version projection V45) 5

Introduction

▪ Nous avons choisi la carte Arduino Uno (ou équivalent)

▪ Pas de système d’exploitation

▪ Mini-ordinateur qui traite des données analogiques et numériques provenant de composants et capteurs divers (capteur de température, luminosité, mouvement ou boutons-poussoirs, etc.).

▪ Elle permet aussi de contrôler des objets comme des lampes ou encore des moteurs.

▪ Une quantité « infinie » d’applications sur internet.

(ex ATMEL)

(6)

Introduction

▪ Carte qui permet de travailler sur un mélange d'électronique et de programmation embarquée (informatique embarquée)

▪ L’objectif premier du cours BAC+2 est de concevoir, manipuler et contrôler de petits circuits analogiques (…et numériques)

▪ Les programmes réalisés restent toujours assez simples mais rien n’empêche les étudiants d’en réaliser de plus complexes.

(7)

Pascal MASSON Electronique avec Arduino (version projection V45) 7

▪ Les étudiants ont la possibilité de réaliser leur projet (non noté et en plus des cours) à base d’arduino. Une aide technique et matérielle est fournie dans la mesure du possible

Alarme maison

Fusée avec électronique

embarquée Lanceur de balle de ping-pong

Barduino

Introduction

Projets personnels

(8)

▪ Les étudiants choisissent le projet qu’ils souhaitent réaliser durant les séances encadrées

Wall-E Voiture tout terrain

Drône

▪ 39 projets

Introduction

Projets école

(9)

Pascal MASSON Electronique avec Arduino (version projection V45) 9

▪ Il n’est pas possible de renouveler le matériel tous les ans.

▪ Une partie du matériel prêté doit être rendue en parfait état en fin d’année après la dernière séance de projet.

Introduction

Matériel prêté

(10)

▪ Les étudiants doivent avoir à chaque séance :

Introduction

Matériel à apporter

(11)

Pascal MASSON Electronique avec Arduino (version projection V45) 11

▪ Premier semestre :

▪ Les cours sont obligatoires donc : 1 absence enlève 0.5 point au dernier DS

✓ Prise en main avec des exemples simples – P. MASSON

▪ Deuxième semestre :

✓ AOP (fréquencemètre) – G. JACQUEMOD

✓ Prise en main du bluetooth, connexion avec téléphone portable (androïde), voiture robot – P. MASSON

✓ Projets (la suite) – P. MASSON

▪ Les cours se déroulent dans la salle de TP électronique BAC + 1 et 2

Introduction

✓ Numérique – F. MULLER

Déroulement des cours ARDUINO

✓ Projets – ???, P. MASSON

✓ Intelligence artificielle (peut être) – P. MASSON

(12)

Introduction

Dans cette salle

▪ Il est interdit de boire et/ou de manger.

(13)

Pascal MASSON Electronique avec Arduino (version projection V45) 13

1.1. Présentation de la carte ARDUINO UNO

1. Généralités

Port USB

Bouton reset

Entrées/sorties logiques

Sortie série Entrée série Régulateur

Alimentation 5V Extérieure 9V, + au centre

Sortie alimentation 3.3 V, 50 mA max

Sortie 5 V Masse Alimentation jusqu’à 12 V

Entrées analogiques Entrées/sorties logiques

+

(14)

1.1. Présentation de la carte Xplained MINI

1. Généralités

Port USB

Entrées/sorties logiques (PD2-PD7

& PB0-PB5)

Sortie série (PD1) Sortie alimentation

3.3 V, 50 mA max Sortie 5 V Masse

Entrées analogiques Entrées/sorties logiques

+

(15)

Pascal MASSON Electronique avec Arduino (version projection V45) 15

1.1. Présentation de la carte Xplained MINI

1. Généralités

▪ Pour accéder à cette carte il faut :

▪ Dans le logiciel IDE il faut sélectionner : 1. Une carte de type « Arduino Nano » 2. Un processeur de type : ATmega328

▪ Très important, un numéro de port doit apparaître dans l’arborescence Outil/Port

1. Un câble USB micro

2. Installer le logiciel « driver-atmel-bundle-7.0.712.exe » que vous trouverez sur mon site :

http://users.polytech.unice.fr/~pmasson/Enseignement-arduino.htm sous l’intitulé :

ATMEL USB driver pour pouvoir utiliser la carte Xplained mini

(16)

1.1. Présentation de la carte Xplained MINI

1. Généralités

▪ Pour accéder à cette carte il faut :

▪ Dans le logiciel IDE il faut sélectionner : 1. Une carte de type « Arduino Nano » 2. Un processeur de type : ATmega328

▪ Très important, un numéro de port doit 1. Un câble USB micro

2. Installer le logiciel « driver-atmel-bundle-7.0.712.exe » que vous trouverez sur mon site :

http://users.polytech.unice.fr/~pmasson/Enseignement-arduino.htm sous l’intitulé :

ATMEL USB driver pour pouvoir utiliser la carte Xplained mini

(17)

Pascal MASSON Electronique avec Arduino (version projection V45) 17

1.3. Présentation du logiciel

1. Généralités

http://arduino.cc/en/Main/Software

(18)

2.1. Objectifs

2. Commande d’une LED

1) Faire clignoter une LED

2) Apprendre à réaliser un montage

3) Apprendre à écrire un programme simple en langage arduino 4) Apprendre à dépanner le montage et le programme

(19)

Pascal MASSON Electronique avec Arduino (version projection V45) 19

2.2. Montage

2. Commande d’une LED

▪ Une diode ne laisse passer le courant que dans un sens. Elle peut aussi recevoir ou émettre de la lumière

Rappel sur la diode

Patte plus longue

(20)

2.2. Montage

2. Commande d’une LED

▪ Modélisation simple de la diode :

Rappel sur la diode

Diode boquée : VD < VS et ID = 0

Diode passante : VD > VS et VD = VS + RS.ID

avec : VS = 1.77 V

RS = VD/ID = 4.4 

cathode anode

VD

ID

P

▪ Vue schématique : N

▪ Exemple de courbe :

(21)

Pascal MASSON Electronique avec Arduino (version projection V45) 21

2.2. Montage

2. Commande d’une LED

▪ On constate que pour la LED rouge, que si on fait passer un courant de 20 mA la tension à ses bornes vaut typiquement 2 V

Polarisation de la LED

(22)

2.2. Montage

2. Commande d’une LED

▪ Le schéma électrique se résume à celui étudié au début du cours sur la diode en PeiP1 où EG représente une des sorties de l’arduino

Choix de la résistance

EG VD

R ID

▪ Il faut déterminer la valeur de la résistance R et pour cela on peut se placer dans les conditions typiques indiquées par le constructeur soit ID = 20 mA et VD = 2 V

− =

= 150

I V R E

D D G

▪ Pour les valeurs extrêmes on trouve que R est compris entre 140  et 160 .

5 V 2 V

20 mA

(23)

Pascal MASSON Electronique avec Arduino (version projection V45)

▪ La marge d’erreur est de 0.4 V ce qui est bien au dela de la tension aux bornes de la résistance série de la diode :

23

2.2. Montage

2. Commande d’une LED

▪ Si on branche directement la diode directement sur le 5 V elle laissera passer un courant de :

mA 4 730

. 4

77 . 1

ID = 5 − 

D S S

G V R .I E = +

▪ Ce courant grille la diode : donc on place toujours une résistance de protection en série de la diode

Choix de la résistance

mV 80 02

. 0 4 I

.

RS D =  =

(24)

2.2. Montage

2. Commande d’une LED

▪ Donc pour 150  il faut le code : marron / vert / marron

Choix de la résistance

▪ Il n’existe pas toutes les valeurs possibles de résistances et il faut en choisir une qui s’approche : 120, 150, 180, 220 

▪ Il faut aussi vérifier la puissance à dissiper

W 06 . 0 I

. R

P = D2 =

(25)

Pascal MASSON Electronique avec Arduino (version projection V45) 25

2.2. Montage

2. Commande d’une LED

▪ Les sorties numériques de l’arduino peuvent aussi être configurées comme des entrées (I/O) et cela devra être précisé lors de l’écriture du programme.

Sortie/entrée numérique de l’arduino

Arduino

I/O Générateur

de tension

Voltmètre OUTPUT

INPUT

▪ Si l’I/O est configurée comme une sortie, un « interrupteur » bascule dans l’arduino et sélectionne un générateur de tension (0 et 5 V) sinon l’interrupteur sélectionne un voltmètre qui ne lit que les tensions 0 et 5 V.

(26)

▪ Les sorties peuvent délivrer ou absorber du courant mais il est préférable de ne pas demander de courant au micro-controleur. Une I/O peut délivre 40 mA

2.2. Montage

2. Commande d’une LED

Sortie/entrée numérique de l’arduino

▪ On choisit (arbitrairement) l’I/O n°2

(27)

Pascal MASSON Electronique avec Arduino (version projection V45) 27

2.2. Montage

2. Commande d’une LED

▪ Si la sortie n°2 est à 0, alors un courant circule et la diode s’allume

Sortie/entrée numérique de l’arduino

0

ID

(28)

2.2. Montage

2. Commande d’une LED

Sortie/entrée numérique de l’arduino

1

▪ Si la sortie n°2 est à 1 (donc 5 V), alors aucun courant circule et la diode est éteinte

▪ Si la sortie n°2 est à 0, alors un courant circule et la diode s’allume

(29)

Pascal MASSON Electronique avec Arduino (version projection V45)

2.2. Montage

2. Commande d’une LED

Circuit sur la plaque de test

▪ La plaque utilisée dans ce cours comporte 830 points de connexion dans lesquels on enfiche les pattes des composants.

▪ Une partie des points de connexions sont reliés entre eux

(30)

2.2. Montage

2. Commande d’une LED

▪ La plaque utilisée dans ce cours comporte 830 points de connexion dans lesquels on enfiche les pattes des composants.

Circuit sur la plaque de test

▪ Une partie des points de connexions sont reliés entre eux

▪ Les montages que vous allez réaliser devront être soignés et sans risque de courts-circuits.

BIEN

(31)

Pascal MASSON Electronique avec Arduino (version projection V45)

2.2. Montage

2. Commande d’une LED

▪ La plaque utilisée dans ce cours comporte 830 points de connexion dans lesquels on enfiche les pattes des composants.

Circuit sur la plaque de test

▪ Une partie des points de connexions sont reliés entre eux

▪ Les montages que vous allez réaliser devront être soignés et sans risque de courts-circuits.

PAS BIEN

(32)

2.2. Montage

2. Commande d’une LED

▪ La plaque utilisée dans ce cours comporte 830 points de connexion dans lesquels on enfiche les pattes des composants.

Circuit sur la plaque de test

▪ Une partie des points de connexions sont reliés entre eux

▪ Les montages que vous allez réaliser devront être soignés et sans risque de courts-circuits.

PAS BIEN DU TOUT

(33)

Pascal MASSON Electronique avec Arduino (version projection V45) 33

2.2. Montage

2. Commande d’une LED

Montage final

(34)

2.3. Ecriture du programme

2. Commande d’une LED

// indique une ligne de commentaire

; indique la fin d’une instruction

A ne pas oublier

Structure d’un programme

// Nom du programme et description de ce qu’il fait // Déclaration des constantes et variables

void setup(){ //début du programme

} // fin de définition du début de programme avec les variables void loop() { // écriture de ce que fait le programme

(35)

Pascal MASSON Electronique avec Arduino (version projection V45)

Les nouvelles fonctions

35

2.3. Ecriture du programme

2. Commande d’une LED

const : on définit une « variable » qui est en fait « constante »

int : correspond à une variable de type « entier » dont la valeur est comprise entre −32768 et 32767

delay(X) : permet d’arrêter le déroulement du programme durant X millisecondes

(36)

Les nouvelles fonctions

2.3. Ecriture du programme

2. Commande d’une LED

pinMode (X,Y) : permet de configurer une entrée/sortie (I/O) en sortie ou en entrée. X correspond au numéro de l’I/O (2, 3, 4 ….) et Y au mode : INPUT ou OUTPUT

digitalWrite (X,Y) : permet d’affecter la valeur 0 ou 1 à la sortie numérique X, Y prend la valeur LOW ou HIGH

Arduino

I/O n°2 Générateur

de tension

OUTPUT INPUT

pinMode(2,OUTPUT) digitalWrite(2,LOW)

0 V

0 V 0 V

(37)

Pascal MASSON Electronique avec Arduino (version projection V45)

Les nouvelles fonctions

37

2.3. Ecriture du programme

2. Commande d’une LED

pinMode (X,Y) : permet de configurer une entrée/sortie (I/O) en sortie ou en entrée. X correspond au numéro de l’I/O (2, 3, 4 ….) et Y au mode : INPUT ou OUTPUT

digitalWrite (X,Y) : permet d’affecter la valeur 0 ou 1 à la sortie numérique X, Y prend la valeur LOW ou HIGH

Arduino

I/O n°2 Générateur

de tension

Voltmètre

OUTPUT INPUT

pinMode(2,OUTPUT) digitalWrite(2,HIGH)

0 V

5 V 5 V

(38)

Les nouvelles fonctions

2.3. Ecriture du programme

2. Commande d’une LED

pinMode (X,Y) : permet de configurer une entrée/sortie (I/O) en sortie ou en entrée. X correspond au numéro de l’I/O (2, 3, 4 ….) et Y au mode : INPUT ou OUTPUT

digitalWrite (X,Y) : permet d’affecter la valeur 0 ou 1 à la sortie numérique X, Y prend la valeur LOW ou HIGH

Arduino

I/O n°2 Générateur

de tension

OUTPUT INPUT

pinMode(2,INPUT)

0 ou 5 V

(39)

Pascal MASSON Electronique avec Arduino (version projection V45)

Algorithme

39

2.3. Ecriture du programme

2. Commande d’une LED

LED allumée

LED éteinte Attente

Attente

I/O n°2 : OUTPUT

Delay : 1s I/O n°2 : LOW

Delay : 0.2 s I/O n°2 : HIGH

(40)

2.3. Ecriture du programme

2. Commande d’une LED

//LED qui clignote const int led_rouge=2;

void setup(){

}

void loop() {

}

Le code

LED allumée

LED éteinte Attente

Attente

I/O n°2 : OUTPUT

Delay : 1s I/O n°2 : LOW

Delay : 0.2 s I/O n°2 : HIGH

(41)

Pascal MASSON Electronique avec Arduino (version projection V45) 41

2.3. Ecriture du programme

2. Commande d’une LED

//LED qui clignote const int led_rouge=2;

void setup(){

pinMode(led_rouge, OUTPUT);

}

void loop() {

}

Le code

LED allumée

LED éteinte Attente

Attente

I/O n°2 : OUTPUT

Delay : 1s I/O n°2 : LOW

Delay : 0.2 s I/O n°2 : HIGH

(42)

2.3. Ecriture du programme

2. Commande d’une LED

LED allumée

LED éteinte Attente

Attente

//LED qui clignote const int led_rouge=2;

void setup(){

pinMode(led_rouge, OUTPUT);

}

void loop() {

digitalWrite(led_rouge, LOW);

delay(1000);

}

Le code

I/O n°2 : OUTPUT

Delay : 1s I/O n°2 : LOW

Delay : 0.2 s I/O n°2 : HIGH

(43)

Pascal MASSON Electronique avec Arduino (version projection V45) 43

2.3. Ecriture du programme

2. Commande d’une LED

//LED qui clignote const int led_rouge=2;

void setup(){

pinMode(led_rouge, OUTPUT);

}

void loop() {

digitalWrite(led_rouge, LOW);

delay(1000);

digitalWrite(led_rouge, HIGH);

delay(200);

}

Le code

LED allumée

LED éteinte Attente

Attente

I/O n°2 : OUTPUT

Delay : 1s I/O n°2 : LOW

Delay : 0.2 s I/O n°2 : HIGH

(44)

2.3. Ecriture du programme

2. Commande d’une LED

//LED qui clignote

void setup(){

pinMode(2, OUTPUT);

}

void loop() {

digitalWrite(2, LOW);

delay(1000);

digitalWrite(2, HIGH);

delay(200);

}

▪ Il n’est pas obligatoire de définir une variable led_rouge et on peut directement écrire digitalWrite(2, LOW);

▪ Par contre si vous écrivez un programme avec plusieurs centaines de lignes et que vous décidez de changer de sortie, il faudra changer le numéro dans le programme à chaque apparition

Le code

(45)

Pascal MASSON Electronique avec Arduino (version projection V45) 45

2. Commande d’une LED

▪ L’ordinateur convertit le programme en une succession d’instructions que l’arduino peut comprendre.

0000000 313a 3030 3030 3030 3030 3943 3634 3031 0000010 3030 3943 3734 3033 3030 3943 3734 3033 0000020 3030 3943 3734 3033 4230 0d36 3a0a 3031 0000030 3030 3031 3030 4330 3439 3337 3030 4330 0000040 3439 3337 3030 4330 3439 3337 3030 4330 0000050 3439 3337 3030 3439 0a0d 313a 3030 3230 0000060 3030 3030 3943 3734 3033 3030 3943 3734 0000070 3033 3030 3943 3734 3033 3030 3943 3734 0000080 3033 3830 0d34 3a0a 3031 3030 3033 3030 0000090 4330 3439 3337 3030 4330 3439 3337 3030 00000b0 3437 0a0d 313a 3030 3430 3030 3030 3943 00000c0 3134 3037 3031 3943 3734 3033 3030 3943 00000d0 3734 3033 3030 3943 3734 3033 4230 0d46

2.4. Compilation et programmation de l’arduino

Compilation

(46)

Envoi du programme à l’arduino

2.4. Compilation et programmation de l’arduino

2. Commande d’une LED

Compilation Compilation

+ envoi à l’arduino

Rapport de fin de compilation et

(47)

Pascal MASSON Electronique avec Arduino (version projection V45) 47

2.5. Déroulement du programme

2. Commande d’une LED

▪ On voit la LED clignoter avec une période de 1.2 s.

▪ Vous pouvez modifier la durée des temps haut et bas

▪ Vous pouvez aussi changer d’I/O

▪ Le programme étant dans la mémoire ROM de l’arduino, si on débranche la carte et qu’on la rebranche, le programme recommence du début

(48)

2.6. Dépannage

2. Commande d’une LED

Les pannes fréquentes

▪ Le montage présente des coupures du circuit au niveau de la plaquette (erreur de branchement)

▪ Ce n’est pas la bonne I/O (on compte à partir de 0)

▪ La diode est court-circuitée

▪ La diode est branchée à l’envers

▪ La diode a été branchée directement sur le 5 V …. Il faut la remplacer

▪ Les pattes des composants sont coupées trop court et ne touchent pas les pistes métalliques de la plaque de test

(49)

Pascal MASSON Electronique avec Arduino (version projection V45) 49

2. Commande d’une LED

Les pannes fréquentes

▪ Le montage présente des coupures du circuit au niveau de la plaquette (erreur de branchement)

2.6. Dépannage

(50)

2. Commande d’une LED

Les pannes fréquentes

▪ Le montage présente des coupures du circuit au niveau de la plaquette (erreur de branchement)

▪ Ce n’est pas la bonne I/O (on compte à partir de 0)

2.6. Dépannage

(51)

Pascal MASSON Electronique avec Arduino (version projection V45) 51

2. Commande d’une LED

Les pannes fréquentes

▪ Le montage présente des coupures du circuit au niveau de la plaquette (erreur de branchement)

▪ Ce n’est pas la bonne I/O (on compte à partir de 0)

▪ La diode est court-circuitée

2.6. Dépannage

(52)

2. Commande d’une LED

Les pannes fréquentes

▪ Le montage présente des coupures du circuit au niveau de la plaquette (erreur de branchement)

▪ Ce n’est pas la bonne I/O (on compte à partir de 0)

▪ La diode est court-circuitée

▪ La diode est branchée à l’envers

2.6. Dépannage

(53)

Pascal MASSON Electronique avec Arduino (version projection V45) 53

2. Commande d’une LED

Les pannes fréquentes

▪ Le montage présente des coupures du circuit au niveau de la plaquette (erreur de branchement)

▪ Ce n’est pas la bonne I/O (on compte à partir de 0)

▪ La diode est court-circuitée

▪ La diode est branchée à l’envers

▪ La diode a été branchée directement sur le 5 V …. Il faut la remplacer

2.6. Dépannage

(54)

2. Commande d’une LED

Les pannes fréquentes

▪ Le montage présente des coupures du circuit au niveau de la plaquette (erreur de branchement)

▪ Ce n’est pas la bonne I/O (on compte à partir de 0)

▪ La diode est court-circuitée

▪ La diode est branchée à l’envers

▪ La diode a été branchée directement sur le 5 V …. Il faut la remplacer

▪ Les pattes des composants sont coupées trop court et ne touchent pas les pistes métalliques de la plaque de test

BIEN

PAS BIEN DU TOUT

2.6. Dépannage

(55)

Pascal MASSON Electronique avec Arduino (version projection V45) 55

2. Commande d’une LED

▪ Pour vérifier si le montage fonctionne, il faut mettre 0 V sur l’entrée 2 et le moyen le plus simple (sans passer par le programme) est de prendre le fil relié à l’entrée 2 et de le mettre à la masse (GND)

Validation du montage « sans arduino »

2.6. Dépannage

(56)

2. Commande d’une LED

▪ Le programme n’a pas été téléversé

▪ Le programme présente des erreurs et nous allons demander à l’arduino d’envoyer des informations à l’ordinateur sur les étapes qu’il effectue

Si ça ne fonctionne toujours pas

2.6. Dépannage

(57)

Pascal MASSON Electronique avec Arduino (version projection V45) 57

2.7. Communication par liaison série

▪ Il existe plusieurs moyens pour faire communiquer des systèmes électroniques entre eux et la carte arduino est équipée d’une liaison série (appelée aussi RS 232) de type full-duplex. Cela signifie que les 2 systèmes connectés peuvent parler et écouter en même temps.

masse (qui sert de référence) émission

réception

▪ La liaison série nécessite 3 fils :

▪ L’échange d’informations est géré par un protocol qui définit le langage utilisé

2. Commande d’une LED

(58)

▪ Lorsque on demande l’envoi d’une information, elle est stockée en mémoire jusqu’à ce qu’elle puisse être envoyée

▪ Lorsque la carte arduino reçoit une information, elle est stockée en mémoire (buffer de réception) jusqu’à ce qu’on l’utilise. Les informations sont stockées dans l’ordre d’arrivée et on ne peut les lire que caractère par caractère.

2.7. Communication par liaison série

2. Commande d’une LED

(59)

Pascal MASSON Electronique avec Arduino (version projection V45) 59

Nouvelles fonctions

Serial.begin(X) : définit la vitesse X (en bits par seconde) de transfert des données. Cette fonction doit apparaitre dans le setup du programme. Il existe plusieurs vitesse de transmission des données : 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 250000

Serial.print(X) : permet d’envoyer l’information X qui doit être entre   si c’est du texte

Serial.println(X) : même action que print mais avec un retour à la ligne à la fin du message

2.7. Communication par liaison série

2. Commande d’une LED

(60)

2. Commande d’une LED

Programme final //LED qui clignote

const int led_rouge=2; //constante de type entier void setup(){ //début du programme

pinMode(led_rouge, OUTPUT); // l'I/O 2 est utilisée comme une sortie Serial.begin(9600); // initialisation de la transmission série

} // fin de définition du début de programme avec les variables void loop() { // écriture de ce que fait le programme

digitalWrite(led_rouge, LOW); // mettre la sortie 2 à l'état bas

Serial.println(" LOW "); //envoi de l’état de la diode à l'ordinateur delay(1000); // ne rien faire pendant 1000 ms = 1s digitalWrite(led_rouge, HIGH); // mettre la sortie 2 à l'état haut

Serial.println(" HIGH "); //envoi de l’état de la diode à l'ordinateur delay(200); //attendre à nouveau

} // indique la fin du programme qui recommencera au début

2.7. Ecriture du programme

(61)

Pascal MASSON Electronique avec Arduino (version projection V45) 61

2.8. Déroulement du programme

2. Commande d’une LED

▪ Ouvrir le moniteur série

▪ Vous devriez voir défiler l’état de la sortie 2

▪ La LED orange nommée TX (absente sur la carte Xplained) doit clignoter à chaque envoi d’information

(62)

3.1. Objectif

3. LED + bouton poussoir

Allumer une LED lorsque l’on appuie sur un bouton et l’éteindre lorsqu’on relache le bouton

(63)

Pascal MASSON Electronique avec Arduino (version projection V45) 63

3.2. Montage

Fonctionnement du bouton poussoir

3. LED + bouton poussoir

▪ Il présente 4 pattes qui sont connectées 2 à 2. Les pattes sont électriquement reliées entre elles lorsque l’on appuie sur le bouton

Schéma équivalent

Schéma simplifié

Présence d’une encoche

(64)

3.2. Montage

Détection de l’état du bouton poussoir

5 V

3. LED + bouton poussoir

▪ L’entrée I/O de l’arduino présente une impédance de 100 M et se comporte donc comme l’entrée d’un oscilloscope mais avec une résistance plus grand (oscilloscope = 1 M)

V7

R 5 V

0 V

(65)

Pascal MASSON Electronique avec Arduino (version projection V45) 65

3.2. Montage

5 V

3. LED + bouton poussoir

▪ L’entrée I/O de l’arduino présente une impédance de 100 M et se comporte donc comme l’entrée d’un oscilloscope mais avec une résistance plus grand (oscilloscope = 1 M)

Rint = 100 M

Arduino

V7

▪ On considère ici l’I/O n°7

▪ Quelle est la valeur de la résistance ?

▪ Quand on appuie pas sur le bouton la valeur de la tension V7 s’obtient avec un simple diviseur de tension

V 5 5 R .

R V R

int

7 int 

= +

R 5 V

0 V

Détection de l’état du bouton poussoir

(66)

3.2. Montage

5 V

0 V

3. LED + bouton poussoir

▪ Quand on appuie sur le bouton poussoir, on force V7 à 0 V

Rint = 100 M

Arduino

V7

▪ Le courant qui circule dans la résistance R est donc de 0.5 mA ce qui est faible par rapport au courant que peux délivrer le régulateur de tension qui donne le 5 V

R 0 V

Détection de l’état du bouton poussoir

(67)

Pascal MASSON Electronique avec Arduino (version projection V45) 67

3.2. Montage

Montage complet avec l’arduino

3. LED + bouton poussoir

5 V 0 V

5 V

(68)

3.2. Montage

Montage complet avec l’arduino

3. LED + bouton poussoir

5 V 0 V

0 V

(69)

Pascal MASSON Electronique avec Arduino (version projection V45) 69

3.2. Montage

3. LED + bouton poussoir

Montage complet avec l’arduino

(70)

X==Y : donne la valeur HIGH si la stricte égalité est vérifiée sinon cela donne la valeur LOW

if(X) {YYYYYY} : permet d’effectuer les opérations YYYYYY si la condition X est vérifiée

else {ZZZZZZ} : sinon on effectue les opérations ZZZZZZ

3.3. Ecriture du programme

3. LED + bouton poussoir

Les nouvelles fonctions

(71)

Pascal MASSON Electronique avec Arduino (version projection V45)

digitalRead(X) : Lit l’état LOW ou HIGH de l’I/O X déclarée comme une entrée

71

3. LED + bouton poussoir

digitalRead(7) = 1 5 V

0 V

5 V

Les nouvelles fonctions

3.3. Ecriture du programme

(72)

digitalRead(X) : Lit l’état LOW ou HIGH de l’I/O X déclarée comme une entrée

3. LED + bouton poussoir

digitalRead(7) = 0 5 V

0 V

0 V

Les nouvelles fonctions

3.3. Ecriture du programme

(73)

Pascal MASSON Electronique avec Arduino (version projection V45) 73

3. LED + bouton poussoir

// déclaration d’une variable globale qui mémorise l’état du bouton

Diagramme fonctionnel

3.3. Ecriture du programme

val=0

// lecture de l’état de l’entrée 7

LED allumée LED éteinte

val=? 0 1

val=?

// condition sur la valeur de val

(74)

3. LED + bouton poussoir

val=1 val=0

// lecture de l’état de l’entrée 7

LED allumée LED éteinte

val=? 0 1

val=?

// condition sur la valeur de val

Diagramme fonctionnel

3.3. Ecriture du programme

// déclaration d’une variable globale qui mémorise l’état du bouton

(75)

Pascal MASSON Electronique avec Arduino (version projection V45) 75

3. LED + bouton poussoir

val=0 val=0

// lecture de l’état de l’entrée 7

LED allumée LED éteinte

val=? 0 1

val=?

// condition sur la valeur de val

Diagramme fonctionnel

3.3. Ecriture du programme

// déclaration d’une variable globale qui mémorise l’état du bouton

(76)

3. LED + bouton poussoir

//LED qui s’allume quand on appuie sur un bouton

const int led_rouge=2; //on définit une constante de type entier

const int bouton=7; //on définit une autre constante de type entier int val=0; // variable globale qui mémorise l’état du bouton

void setup(){ //début du setup

pinMode(led_rouge, OUTPUT); // l'I/O 2 est utilisée comme une sortie pinMode(bouton, INPUT); // l'I/O 7 est utilisée comme une entrée digitalWrite(led_rouge, LOW); // allume la LED

delay(2000); // et attendre 2 s } // fin du setup

void loop() { // début de la boucle infinie val=digitalRead(bouton); // lecture de l’état de l’entrée 7 if (val==HIGH) {digitalWrite(led_rouge, HIGH);} // éteint la LED

else {digitalWrite(led_rouge, LOW);} // allume la LED

Le code de base

3.3. Ecriture du programme

(77)

Pascal MASSON Electronique avec Arduino (version projection V45) 77

3. LED + bouton poussoir

Le code + indication de démarrage

▪ Dans le setup, on ajoute deux lignes pour allumer la LED pendant 2 s

void setup(){

pinMode(led_rouge, OUTPUT);

pinMode(bouton, INPUT);

digitalWrite(led_rouge, LOW);

delay(2000);

}

▪ Cela permettra de visualiser le démarrage du programme lorsque la carte sera branchée

▪ La LED s’éteint dès la première la boucle infinie (sauf si on appuie sur le bouton)

3.3. Ecriture du programme

(78)

Envoi la valeur de val

3. LED + bouton poussoir

Le code + moniteur série

▪ Il faut aussi penser au moniteur série et donc ajouter la communication série dans les parties setup et loop.

3.3. Ecriture du programme

Indique si on entre dans le « if »

const int led_rouge=2;

const int bouton=7;

int val=0;

void setup(){

Serial.begin(9600);

pinMode(led_rouge, OUTPUT);

pinMode(bouton, INPUT);

digitalWrite(led_rouge, LOW);

delay(2000); }

void loop() { val=digitalRead(bouton);

Serial.print(val);

Serial.print(" ");

if (val==HIGH) {

digitalWrite(led_rouge, HIGH);

Serial.println(" HIGH");}

else {

digitalWrite(led_rouge, LOW);

(79)

Pascal MASSON Electronique avec Arduino (version projection V45) 79

3. LED + bouton poussoir

Le code

▪ Il faut aussi penser au moniteur série et donc ajouter la communication série dans les parties setup et loop.

3.3. Ecriture du programme

1

const int led_rouge=2;

const int bouton=7;

int val=0;

void setup(){

Serial.begin(9600);

pinMode(led_rouge, OUTPUT);

pinMode(bouton, INPUT);

digitalWrite(led_rouge, LOW);

delay(2000); }

void loop() { val=digitalRead(bouton);

Serial.print(val);

Serial.print(" ");

if (val==HIGH) {

digitalWrite(led_rouge, HIGH);

Serial.println(" HIGH");}

else {

digitalWrite(led_rouge, LOW);

Serial.println(" LOW ");}

}

(80)

3. LED + bouton poussoir

Le code

▪ Il faut aussi penser au moniteur série et donc ajouter la communication série dans les parties setup et loop.

3.3. Ecriture du programme

1

const int led_rouge=2;

const int bouton=7;

int val=0;

void setup(){

Serial.begin(9600);

pinMode(led_rouge, OUTPUT);

pinMode(bouton, INPUT);

digitalWrite(led_rouge, LOW);

delay(2000); }

void loop() { val=digitalRead(bouton);

Serial.print(val);

Serial.print(" ");

if (val==HIGH) {

digitalWrite(led_rouge, HIGH);

Serial.println(" HIGH");}

else {

digitalWrite(led_rouge, LOW);

(81)

Pascal MASSON Electronique avec Arduino (version projection V45) 81

3. LED + bouton poussoir

Le code

▪ Il faut aussi penser au moniteur série et donc ajouter la communication série dans les parties setup et loop.

3.3. Ecriture du programme

1

const int led_rouge=2;

const int bouton=7;

int val=0;

void setup(){

Serial.begin(9600);

pinMode(led_rouge, OUTPUT);

pinMode(bouton, INPUT);

digitalWrite(led_rouge, LOW);

delay(2000); }

void loop() { val=digitalRead(bouton);

Serial.print(val);

Serial.print(" ");

if (val==HIGH) {

digitalWrite(led_rouge, HIGH);

Serial.println(" HIGH");}

else {

digitalWrite(led_rouge, LOW);

Serial.println(" LOW ");}

}

(82)

3. LED + bouton poussoir

Le code

▪ Il faut aussi penser au moniteur série et donc ajouter la communication série dans les parties setup et loop.

3.3. Ecriture du programme

1 HIGH

const int led_rouge=2;

const int bouton=7;

int val=0;

void setup(){

Serial.begin(9600);

pinMode(led_rouge, OUTPUT);

pinMode(bouton, INPUT);

digitalWrite(led_rouge, LOW);

delay(2000); }

void loop() { val=digitalRead(bouton);

Serial.print(val);

Serial.print(" ");

if (val==HIGH) {

digitalWrite(led_rouge, HIGH);

Serial.println(" HIGH");}

else {

digitalWrite(led_rouge, LOW);

(83)

Pascal MASSON Electronique avec Arduino (version projection V45) 83

3. LED + bouton poussoir

Le code

▪ Il faut aussi penser au moniteur série et donc ajouter la communication série dans les parties setup et loop.

3.3. Ecriture du programme

1 HIGH 1

const int led_rouge=2;

const int bouton=7;

int val=0;

void setup(){

Serial.begin(9600);

pinMode(led_rouge, OUTPUT);

pinMode(bouton, INPUT);

digitalWrite(led_rouge, LOW);

delay(2000); }

void loop() { val=digitalRead(bouton);

Serial.print(val);

Serial.print(" ");

if (val==HIGH) {

digitalWrite(led_rouge, HIGH);

Serial.println(" HIGH");}

else {

digitalWrite(led_rouge, LOW);

Serial.println(" LOW ");}

}

(84)

3. LED + bouton poussoir

Le code

▪ Il faut aussi penser au moniteur série et donc ajouter la communication série dans les parties setup et loop.

3.3. Ecriture du programme

1 HIGH 1 HIGH 1 HIGH 1 HIGH 0 LOW 0 LOW 0 LOW 0 LOW 1 HIGH

const int led_rouge=2;

const int bouton=7;

int val=0;

void setup(){

Serial.begin(9600);

pinMode(led_rouge, OUTPUT);

pinMode(bouton, INPUT);

digitalWrite(led_rouge, LOW);

delay(2000); }

void loop() { val=digitalRead(bouton);

Serial.print(val);

Serial.print(" ");

if (val==HIGH) {

digitalWrite(led_rouge, HIGH);

Serial.println(" HIGH");}

else {

digitalWrite(led_rouge, LOW);

(85)

Pascal MASSON Electronique avec Arduino (version projection V45) 85

4.1. Objectif

4. LED + bouton poussoir + mémoire

Ajouter une mémorisation au chapitre précédent : on appuie sur le bouton et la LED s’allume et elle reste allumée quand on relâche le bouton. Même raisonnement pour éteindre la LED.

(86)

▪ Nous allons créer une fonction qui permet de détecter quand l’utilisateur vient d’appuyer sur le bouton : détection du passage 5 V à 0 V.

t

I/O n°7

0 5

▪ Pour cela on conserve en mémoire l’état dans lequel était le bouton poussoir dans la boucle d’avant

val=1 ancien_val=1

4.2. Détection d’un front descendant

4. LED + bouton poussoir + mémoire

(87)

Pascal MASSON Electronique avec Arduino (version projection V45) 87

t

I/O n°7

0 5

▪ Pour cela on conserve en mémoire l’état dans lequel était le bouton poussoir dans la boucle d’avant

val=1 ancien_val=1

▪ Nous allons créer une fonction qui permet de détecter quand l’utilisateur vient d’appuyer sur le bouton : détection du passage 5 V à 0 V.

4.2. Détection d’un front descendant

4. LED + bouton poussoir + mémoire

(88)

t

I/O n°7

0 5

▪ Pour cela on conserve en mémoire l’état dans lequel était le bouton poussoir dans la boucle d’avant

Changement d’état

val=0 ancien_val=1

▪ Nous allons créer une fonction qui permet de détecter quand l’utilisateur vient d’appuyer sur le bouton : détection du passage 5 V à 0 V.

4.2. Détection d’un front descendant

4. LED + bouton poussoir + mémoire

(89)

Pascal MASSON Electronique avec Arduino (version projection V45) 89

t

I/O n°7

0 5

▪ Pour cela on conserve en mémoire l’état dans lequel était le bouton poussoir dans la boucle d’avant

Pas de changement d’état

val=0 ancien_val=0

▪ Nous allons créer une fonction qui permet de détecter quand l’utilisateur vient d’appuyer sur le bouton : détection du passage 5 V à 0 V.

4.2. Détection d’un front descendant

4. LED + bouton poussoir + mémoire

(90)

t

I/O n°7

0 5

▪ Pour cela on conserve en mémoire l’état dans lequel était le bouton poussoir dans la boucle d’avant

On relâche le bouton mais la transition 0 vers 1 ne changement pas l’état de la LED

val=1 ancien_val=0

▪ Nous allons créer une fonction qui permet de détecter quand l’utilisateur vient d’appuyer sur le bouton : détection du passage 5 V à 0 V.

4.2. Détection d’un front descendant

4. LED + bouton poussoir + mémoire

(91)

Pascal MASSON Electronique avec Arduino (version projection V45) 91

t

I/O n°7

0 5

▪ Pour cela on conserve en mémoire l’état dans lequel était le bouton poussoir dans la boucle d’avant

val=1 ancien_val=1

Pas de changement d’état

▪ Nous allons créer une fonction qui permet de détecter quand l’utilisateur vient d’appuyer sur le bouton : détection du passage 5 V à 0 V.

4.2. Détection d’un front descendant

4. LED + bouton poussoir + mémoire

(92)

▪ (X==Y) && (Z==W) : donne la valeur HIGH si les strictes égalités sont vérifiées sinon cela donne la valeur LOW. C’est la fonction ET.

4.3. Les nouvelles fonctions

4. LED + bouton poussoir + mémoire

(93)

Pascal MASSON Electronique avec Arduino (version projection V45) 93

// lecture de l’état de l’entrée 7

// changement de la valeur en mémoire // ancienne valeur

de l’état // entrée n°7 // sortie n°2

4. LED + bouton poussoir + mémoire

Algorithme

4.4. Ecriture du programme

val=1 etat=1

val=?

ancien_val=?

0 1

autre etat=1−etat ancien_val=1

ancien_val =val

LED allumée LED éteinte

etat=? 0 1

(94)

val=1 etat=1

val=?

ancien_val=?

0 1

autre etat=1−etat ancien_val=1

ancien_val =val etat=? 0 1

4. LED + bouton poussoir + mémoire

Algorithme

4.4. Ecriture du programme

val=1

etat=1

ancien_val=1

(95)

Pascal MASSON Electronique avec Arduino (version projection V45) 95

val=1 etat=1

val=?

ancien_val=?

0 1

autre etat=1−etat ancien_val=1

ancien_val =val

LED allumée LED éteinte

etat=? 0 1

4. LED + bouton poussoir + mémoire

Algorithme

4.4. Ecriture du programme

val=0

etat=1

ancien_val=1

(96)

val=1 etat=1

val=?

ancien_val=?

0 1

autre etat=1−etat ancien_val=1

ancien_val =val etat=? 0 1

4. LED + bouton poussoir + mémoire

Algorithme

4.4. Ecriture du programme

val=0

etat=0

ancien_val=1

(97)

Pascal MASSON Electronique avec Arduino (version projection V45) 97

val=1 etat=1

val=?

ancien_val=?

0 1

autre etat=1−etat ancien_val=1

ancien_val =val

LED allumée LED éteinte

etat=? 0 1

4. LED + bouton poussoir + mémoire

Algorithme

4.4. Ecriture du programme

val=0

etat=0

ancien_val=0

(98)

val=1 etat=1

val=?

ancien_val=?

0 1

autre etat=1−etat ancien_val=1

ancien_val =val etat=? 0 1

4. LED + bouton poussoir + mémoire

Algorithme

4.4. Ecriture du programme

val=0

etat=0

ancien_val=0

(99)

Pascal MASSON Electronique avec Arduino (version projection V45) 99

val=1 etat=1

val=?

ancien_val=?

0 1

autre etat=1−etat ancien_val=1

ancien_val =val

LED allumée LED éteinte

etat=? 0 1

4. LED + bouton poussoir + mémoire

Algorithme

4.4. Ecriture du programme

val=0

etat=0

ancien_val=0

(100)

//LED qui s’allume quand on appuie sur un bouton

const int led_rouge=2; //on définit une constante de type entier

const int bouton=7; //on définit une autre constante de type entier

int val=1; // déclaration d’une variable globale qui mémorise l’état du bouton int etat=1;

int ancien_val=1;

void setup(){

pinMode(led_rouge, OUTPUT); // l'I/O 2 est utilisée comme une sortie pinMode(bouton, INPUT); // l'I/O 7 est utilisée comme une sortie digitalWrite(led_rouge, LOW); // allume la LED durant 1 s

delay(1000);

digitalWrite(led_rouge, HIGH); // éteint la LED durant 1 s }

void loop() {

val=digitalRead(bouton); // lecture de l’état de l’entrée 7 if ((val==LOW)&&(ancien_val==HIGH)) {etat=1-etat;}

ancien_val=val;

4. LED + bouton poussoir + mémoire

Code

4.4. Ecriture du programme

(101)

Pascal MASSON Electronique avec Arduino (version projection V45) 101

Qu’est qu’un rebond ?

▪ Un bouton poussoir ne passe pas « proprement » de l’état ouvert à l’état fermé.

▪ En effet, lorsque l’on appuie sur le bouton, les fils en métal que l’on met en contact vont rebondir l’un sur l’autre avant de se stabiliser. On obtient ainsi plusieurs fois la transition ouvert/fermé.

4. LED + bouton poussoir + mémoire

4.5. Problème de rebond du bouton poussoir

t

I/O n°7

0 5

(102)

Impact sur l’état de la LED

▪ Il existe 2 méthodes pour éliminer l’influence de ces rebonds : une méthode logicielle et une méthode matérielle.

▪ L’arduino fonctionne à 16 MHz ce qui signifie que le programme peut effectuer plusieurs fois la partie void loop() durant les rebonds et donc faire comme si on avait appuyé plusieurs fois sur le bouton

4. LED + bouton poussoir + mémoire

4.5. Problème de rebond du bouton poussoir

▪ En conséquence, l’état allumé ou éteint de la LED est complètement aléatoire par rapport à l’appui sur le bouton

(103)

Pascal MASSON Electronique avec Arduino (version projection V45) 103

Solution logicielle

▪ Après avoir détecté la « première » transition du bouton poussoir, on peut demander au programme de faire une pause pour permettre au bouton de se stabiliser

t

I/O n°7

0 5

Mise en pause du programme

▪ Un delay de quelques milli-secondes est suffisant

4. LED + bouton poussoir + mémoire

4.5. Problème de rebond du bouton poussoir

if ((val==LOW)&&(ancien_val==HIGH)) { etat=1−etat;

delay(20);}

(104)

Solution matérielle

▪ On place un condensateur en parallèle avec le bouton

5 V

Arduino

V7

R 5 V

C t

I/O n°7

0 5

▪ Initialement le condensateur est chargé à la tension 5 V

4. LED + bouton poussoir + mémoire

4.5. Problème de rebond du bouton poussoir

(105)

Pascal MASSON Electronique avec Arduino (version projection V45) 105

▪ On place un condensateur en parallèle avec le bouton

5 V

Arduino

V7

R 0 V

C t

I/O n°7

0 5

▪ Initialement le condensateur est chargé à la tension 5 V

▪ Lorsque l’on appuie sur le bouton, il se décharge instantanément et la tension à ses bornes devient nulle

Solution matérielle

4. LED + bouton poussoir + mémoire

4.5. Problème de rebond du bouton poussoir

(106)

▪ Lors du premier rebond, le condensateur n’est plus court-circuité et il va se charger via la résistance de 10 k donc avec une constante de temps RC

5 V

Arduino

V7

R

C t

I/O n°7

0 5

▪ Cette constante de temps doit être très longue par rapport au temps des rebond

▪ Ainsi la tension V7 reste très proche de 0 V et elle est assimilée par l’entrée à un état LOW

HIGH RC LOW

Solution matérielle

4. LED + bouton poussoir + mémoire

4.5. Problème de rebond du bouton poussoir

(107)

Pascal MASSON Electronique avec Arduino (version projection V45) 107

▪ Si on choisit un condensateur de 10 nF, la constante de temps a pour valeur RC = 0.1 ms

5 V

Arduino

V7

R

C t

I/O n°7

0 5

HIGH RC LOW

Solution matérielle

4. LED + bouton poussoir + mémoire

4.5. Problème de rebond du bouton poussoir

(108)

5.1. Présentation des entrées analogiques

▪ L’arduino possède 6 entrées analogiques numérotées A0 à A5. Elles sont numérotées PC0 à PC5 sur la carte Xplained Mini.

5. Entrées analogiques

▪ Le fonctionnement de l’arduino étant numérique, les entrées vont convertir le signal analogique en signal numérique

▪ Il est possible de modifier la tension de référence de la conversion en appliquant sa nouvelle valeur sur l’entrée AREF

AREF

(109)

Pascal MASSON Electronique avec Arduino (version projection V45) 109

5.2. Conversion analogique/digitale

▪ Il existe plusieurs techniques plus ou moins rapides pour convertir un signal analogique en signal numérique

5. Entrées analogiques

▪ Il y a par exemple les convertisseurs à simple rampe, Sigma Delta et Flash

Echantillonnage

Méthode de conversion

0 t 5

▪ Périodiquement (notion de fréquence d’échantillonnage, FP) la tension est mesurée et convertie en mots binaires

0011 0111 0110

0001 1/Fp

(110)

5.3. Cas de l’arduino

5. Entrées analogiques

▪ La fréquence d’échantillonnage est de 10 kHz donc la tension que l’on doit convertir ne doit pas varier plus vite que cela.

▪ La conversion se fait sur 10 bits ce qui signifie qu’il y a 1024 combinaisons pour coder la tension qui doit être comprise entre 0 et 5 V (sauf si on change la référence).

Données clés

(111)

Pascal MASSON Electronique avec Arduino (version projection V45)

Plage de variation qui ne change pas la valeur numérisée

5.3. Cas de l’arduino

5. Entrées analogiques

Visualisation de la quantification

Num

V (V) 0

1 q 0

▪ Le minimum de variation (appelé quantum et noté « q ») de tension que l’on

peut détecter est : 5

V q 4.89mV

 = = 1023  q = 4.89 mV

t (s) 00

q

V (V)

(112)

Plage de variation qui ne change pas la valeur numérisée

5.3. Cas de l’arduino

5. Entrées analogiques

Visualisation de la quantification

Num

1 q 0

▪ Le minimum de variation (appelé quantum et noté « q ») de tension que l’on peut détecter est :

q = 4.89 mV

0

V (V)

V q 5 4.89mV

 = = 1023 

(113)

Pascal MASSON Electronique avec Arduino (version projection V45)

Plage de variation qui ne change pas la valeur numérisée

5.3. Cas de l’arduino

5. Entrées analogiques

Visualisation de la quantification

Num

V (V) 0

1 q 0

▪ Le minimum de variation (appelé quantum et noté « q ») de tension que l’on peut détecter est :

t (s) 00

q

V (V)

q = 4.89 mV

V q 5 4.89mV

 = = 1023 

(114)

Plage de variation qui ne change pas la valeur numérisée

5.3. Cas de l’arduino

5. Entrées analogiques

Visualisation de la quantification

Num

1 q 0

▪ Le minimum de variation (appelé quantum et noté « q ») de tension que l’on peut détecter est :

0

V (V)

q = 4.89 mV

V q 5 4.89mV

 = = 1023 

(115)

Pascal MASSON Electronique avec Arduino (version projection V45)

5.3. Cas de l’arduino

5. Entrées analogiques

Visualisation de la quantification

Num

V (V) 1 q

0

▪ Le minimum de variation (appelé quantum et noté « q ») de tension que l’on peut détecter est :

t (s) 00

0 q 2q

2 2q

V (V)

2q = 9.77 mV

V q 5 4.89mV

 = = 1023 

(116)

5.3. Cas de l’arduino

5. Entrées analogiques

Visualisation de la quantification

Num

1 q 0

▪ Le minimum de variation (appelé quantum et noté « q ») de tension que l’on peut détecter est :

0

V (V)

2 2q

3 3q

3q = 14.6 mV

V q 5 4.89mV

 = = 1023 

(117)

Pascal MASSON Electronique avec Arduino (version projection V45)

5.3. Cas de l’arduino

5. Entrées analogiques

Visualisation de la quantification

Num

V (V) 1 q

0

▪ Le minimum de variation (appelé quantum et noté « q ») de tension que l’on peut détecter est :

t (s) 00

V (V)

0 2q

2 2q

3

3q

3q

q 1023

1022

5−q 5

5 5−q

V q 5 4.89mV

 = = 1023 

(118)

5.3. Cas de l’arduino

5. Entrées analogiques

Visualisation de la quantification

Num

1 q

0 0

V (V)

2 2q

3 3q

1023 1022

5 5−q

▪ Pour une tension de 3 V, on obtient le nombre suivant : 3 V  Num = 1023  3 = 204.6  3  613

5

Références

Documents relatifs

Donner la valeur de la tension V B sur la base du transistor en considérant que la diode Zener est passante.. Donner la valeur du courant qui circule dans

Représenter le schéma petit signal du circuit avec C 1 c’est-à-dire sans considérer qu’elle est un court circuit pour les fréquences du signal E G... Représenter le

(2 pts) La mémoire PROM est constituée d’une matrice de diodes dont certaines sont détruites lors de la programmation pour stocker des 0 et des 1.. Un interrupteur

Déterminer l’expression et la valeur du courant qui circule dans la varicap ainsi que la valeur de la tension V 2 à ses bornes si le curseur est au milieu de R 2... Valeur de

Lorsqu’un objet métallique se trouve dans le champ de la bobine, sa valeur change ce qui modifie la valeur de la fréquence d’oscillation et implique l’apparition d’un

On se propose d’étudier le schéma électrique de la figure (I.1) est de déterminer la valeur de la capacité pour obtenir une fréquence d’oscillation de 800

Donc tous les éléments à gauche de la base du transistor sont court-circuités en régime de petit signal pour déterminer l’expression de F 0.. Donner la

Pascal MASSON Eléments de robotique avec Arduino : accéléromètre (V12) École Polytechnique Universitaire de Nice Sophia-Antipolis.. Parcours des écoles