Académique Documents
Professionnel Documents
Culture Documents
M. Mourad BOUAABID
Logique câblée vs Logique
programmée
Champs d’application des systèmes
programmés
• Suiveur de ligne
Champs d’application des systèmes
programmés
• Suiveur de ligne
Capteur Infrarouge
Champs d’application des systèmes
programmés
• Suiveur de soleil
Champs d’application des systèmes
programmés
• Suiveur de soleil
Asservissement de position
Champs d’application des systèmes
programmés
• Distributeur du savon automatique
Architecture de Harvard
12
Architecture de Neumann
14
Structure de Arduino uno
15
Caractéristiques d’ Arduino uno
16
Arduino nano
17
Caractéristiques de Arduino nano
18
Caractéristiques de Arduino nano -
suite
• Microprocesseur : ATMega328
• Mémoire flash : 32 ko
• Mémoire SRAM : 2 ko
• Mémoire EEPROM : 1 ko
• 20 broches d’entrées et sorties, dont 6 broches
PWM et 6 broches d’entrées analogiques 10 bits
• 2 broches uniquement d’entrée analogique 10
bits
19
Exemple d’application
Pilotage du servomoteur
Schéma sur simulateur (ISIS)
Signal Analogique vs Numérique
23
Systèmes de numérisation
Binaire
24
Systèmes de numérisation
Passage du décimal en binaire
25
Systèmes de numérisation
Passage du décimal en octal
26
Systèmes de numérisation
Passage du décimal en hexadécimal
27
Systèmes de numérisation
Exemples de cas de conversion
28
Systèmes de numérisation
Résumé des règles de passage entre
diverses bases
29
Microcontrôleurs
Un microcontrôleur noté µc, uc ou MCU est
un circuit intégré qui regroupe tous les
éléments essentiels d’une structure minimale
programmable :
Processeur
Mémoires (morte et vive)
Unités périphériques et interfaces d’ E/S.
30
Familles des microcontrôleurs
La famille Atmel AVR (utilisée par des
cartes Wiring et Arduino)
La familles PIC de Microchip (16F84, 16F628,
18F4550, …)
La famille Intel (8051, …)
La famille Motorola (68HC11, …)
La famille ARM Cortex-M et Cortex-R (STM32)
…..
31
Exemple de famille de mc
Atmel AVR : Arduino Uno
Arduino Uno est un microcontrôleur
programmable qui permet, de contrôler une
partie opérative comme:
Moteurs : CC , Pas à Pas, MS : Brushless, Servos.
Convertisseurs statiques : Hacheurs, onduleurs, ..
Il permet aussi de capter des informations via des
capteurs.
Ces informations seront exploitées pour prendre
une décision et déclencher une commande
adéquate.
32
IDE Arduino
33
Structure d’un programme
34
Paramétrage : choix de la carte
35
Paramétrage : choix du port de
communication
36
Initialisation de direction des ports
Lecture:
Variable = digitalRead(numéro pin);
38
Notion de variable
Le code exploité par IDE Arduino est C++:
Une variable est un emplacement mémoire
(RAM) dont le contenu peut être modifié.
Pour utiliser une variable on doit préciser : son
nom (identifiant) et son type, c’est la
déclaration qui est sous-forme :
Type identifiant;
Exemple : int A; ou float X,Y;
39
Types supportés par IDE Arduino
boolean
char
byte
int et unsigned int
long et unsigned long
float
double
string ou char [ ]
40
Temporisation
Par fois on veut effectuer une pause pendant une
durée bien précise:
On utilise une temporisation
La fonction delay(temps en ms);
Le temps d’attente est un entier et il peut varier de:
1 ms et 50 jours
Pendant la pause d’autre fonctionnalités
continuent à fonctionner comme les horloges les
ports de communication.
41
Temporisation - suite
Pour les temporisations en microsecondes
On utilise la fonction
delayMicroseconds(temps en µs);
Le temps d’attente est un entier et il peut varier de:
1 µs et 16 ms
Il existe deux fonctions qui retournent le nombre
de ms (unsigned int) respectivement en micro
passé depuis le démarrage du programme :
millis() et micros()
42
Première application
Clignotement de 2 LED
43
Direction des PINS et Clignotement
void setup() {
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}
void loop() {
digitalWrite(8,LOW); digitalWrite(9,LOW);
delay(1000);
digitalWrite(8,HIGH); digitalWrite(9,HIGH);
delay(1000);
}
44
PWM
45
Broches supportant PWM
46
Applications de PWM
48
Notification par LED pour indiquer la
présence d’un obstacle
49
Programme
const int IR = 8;
const int LED = 9; int val;
void setup()
{pinMode(LED,OUTPUT); pinMode(IR,INPUT);
digitalWrite(LED,LOW);}
void loop()
{ val=digitalRead(IR);
if(val==1) for(int i=0;i<4;i++){ digitalWrite(LED,0);
delay(40); digitalWrite(LED,1); delay(40);}
else
digitalWrite(LED,0);
delay(4); }
50
LCD 16X2
LCD 16X2
LCD 16X2
Schéma de test
Test de l’afficheur LCD 16X2
• Initialisation de l’afficheur:
Il faut importer la librairie du LCD:
#include<LiquidCrystal.h>
En suite, il faut déclarer un objet LCD:
LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
lcd est une variable composée on parle d’objet
Démarrer l’afficheur:
lcd.begin(16,2);
begin est une fonction appelée par l’objet lcd, on
parle d’une méthode
Test de l’afficheur LCD 16X2
• Commandes de base:
Vider l’afficheur:
lcd.clear();
Positionner le focus:
lcd.setCursor(col, row);
Afficher un message:
lcd.print(……);
Test de LCD 16X2
#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6, 8, 9, 10, 11);
void setup() {
lcd.begin(16, 2);
}
void loop() {
lcd.clear();
lcdsetCursor(0,0);
lcd.print("Informatique");
delay(50);
}
Test2 de LCD 16X2 :Compteur
#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6, 8, 9, 10, 11);
int val=0;
void setup() {
lcd.begin(16, 2);}
void loop() {
lcd.clear();
lcd.setCursor(4,0);
lcd.print(« Compteur");
lcd.setCursor(7,1);
lcd.print(val);
val++;
If(val>40) val=0;
delay(50);}
Test de LCD 16X2
#include <LiquidCrystal.h>
LiquidCrystal lcd(9,8, 8, 9, 10, 11);
//LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
Proposer un programme
Assurant ce
fonctionnement.
62
Mesure de distance
Schéma de simulation
Programme sous Arduino : En-tête
tr : déclenchement de mesure
echo : entrée indiquant l’arrivée de l’onde reçue
delai : temps max après lequel, on annule la mesure
vitesse : vitesse de l’onde ultrason mm/µs
Programme sous Arduino : setup