0% ont trouvé ce document utile (0 vote)
13 vues66 pages

Cours Lab View 12

Le document traite des concepts fondamentaux de la programmation informatique, y compris les langages de programmation, la compilation et les algorithmes. Il aborde également la structure des programmes, les types de données, la mémoire et les tableaux dans LabVIEW. Enfin, il explique les structures conditionnelles et les boucles, ainsi que leur utilisation dans le développement d'applications logicielles.

Transféré par

Guesmi Zina
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
13 vues66 pages

Cours Lab View 12

Le document traite des concepts fondamentaux de la programmation informatique, y compris les langages de programmation, la compilation et les algorithmes. Il aborde également la structure des programmes, les types de données, la mémoire et les tableaux dans LabVIEW. Enfin, il explique les structures conditionnelles et les boucles, ainsi que leur utilisation dans le développement d'applications logicielles.

Transféré par

Guesmi Zina
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

!

Traitement
Informatique
Texte Texte
Son Son
Images Données Résultats Images
mesures mesures
Entrées Sorties

" # $
!

Texte Application
=> Fichier source COMPILATEUR autonome
Fichier
exécutable

Langage de Écrire en respectant la syntaxe


programmation d'un langage, la suite des
tâches devant être exécutées
par l'ordinateur, de façon
logique et structurée
Logiciel
installé dans
l'ordinateur

$ %

Langage Evolués :
C, Pascal, Fortran, Basic
Visual Basic, LabVIEW

Compilation = Traduction
Assembleur

Langage Machine Le seul compréhensible


par l'ordinateur
& " ' # $ ( " ) *
$ ( " + !

, ) - " , +
!

A lg o r it h m e
S u it e d 'in s t r u c t io n s q u i u n e
f o is e x é c u t é e s c o r r e c t e m e n t
c o n d u it à u n r é s u lt a t d o n n é

A lg o r ith m iq u e
S c ie n c e q u i é t u d ie la
s t r u c t u r e lo g iq u e d e s
p ro g ra m m e s

' %

Pascal
C

Fortran
Algorithme Basic

LabVIEW Visual Basic

( - , . ( %
/0 )
/
/1
/2

3456! ' ) '


' - , ' ,
!
!

7 1 8& , 8 3446!
) 1& ) 9!3 $ :!
!
- , ' " ;
%

) %
La face avant est
l’interface avec
l’utilisateur.

% Le diagramme
correspond aux circuits
internes de l’appareil et
constitue le cœur du
programme

"# $

' ) $ %

- ) '
- 0 ' < 1 $ =
- 7 ) < - ") =
- 1 '
- >

) ' !

< $ % " # >= ,


< ' ' ) =
) ' < ' * =!

) !

Variables Variables de
Programme
d’entrées sortie

' ' ? !
%"#

) ' @ %

o
o
entrées o - , -
o 0 !
o >

o '
o 0 < =
sorties
o / -
o >

@ ; ) !
A B!

$- * A B
) !

$!

!
FACE ARRIERE : DIAGRAMME

1ère variable

FACE AVANT

2ème variable

' , $ $ ' %

o
o
o *
o < " >=

!
, ' '
C * ? ' < :? =!

La palette d'outils (Tool Palette)

Bouger
Pour agir sur les l'ensemble
commandes Texte
(diag ou FA)

Pipette (copier
une couleur)

Pour câbler Colorer un objet

Placer un point d'arrêt Poser une sonde


(probe)

' ) D <
=!

* A B ' , ; ' E
" ) * !

"
% !

!
) ) !
0 ) "
) ) ' $ !

LA MEMOIRE :

Empilement
d'octets

Un contenu
(valeur) variable
Une adresse fixe

' ) ' ) ' " %

o ) %
o # ) % )
!

PALETTE DE COMMANDES

Les commandes (sauf tableaux)

Palette complète : il suffit de la


parcourir pour tout comprendre
(ou presque)

#
PALETTE DE COMMANDES

Les indicateurs (sauf tableaux)

Palette complète : On retrouve


les commandes et les
indicateurs

) " ' ) ' - !


& ' @ " ) !

$
& !

"# !

'( ) *+ +, '-

CODAGE SUR UN OCTET

de 00000000 à 11111111
Sans bit de signe

Valeurs décimales possibles de 0 à 28 -1 = 255

Type unsigned char (langage C) Type U8 en LabVIEW

Avec bit de signe de 00000000 à 01111111

positif
de 0 à 27 -1 = 127
Type char (langage C)
Type I8 en LabVIEW de 11111111 à 10000000
f
négati
Complément à deux de -1 à - 27 = -128

. '// , - ,) 0 1* , ', ( ,*
- '( ) *+ % '- *

CO DAG E S UR DE UX O CTE TS

S ans b i t d e si gne

V aleurs décim ales possibles de 0 à 2 16 -1 = 65535

Type unsigned int (langage C ) Type U 16 en LabV IE W

A vec b i t d e si gne
f
p o s it i
de 0 à 2 15 -1 = 32767
Type int (langage C)
Type I16 en LabV IE W
if
n ég at
de -1 à - 2 15 = -32768
Com plém ent à deux

%"# ! $

Un nombre à virgule flottante peut toujours s'écrire :

+ 0,662 * 2 - 26

Signe : 1 bit Mantisse : 23 bits


Exposant :8 bits

Valeurs extrêmes possibles :


Nombre nul : 0
Nombre positifs de : 1,21 10 -38 à 3,40 10 38
Nombres négatifs de : - 1,21 10 -38 à - 3,40 10 38

Type : Float en C, Type SGL en LabVIEW

SIMPLE PRECISION : 4 octets

1 bit 8 bits 23 bits

DOUBLE PRECISION : 8 octets

1 bit 11 bits 52 bits

PRECISION ETENDUE : 10 octets

1 bit 15 bits 64 bits


2"# ! !

Vraie : True
Variable Booléenne

Fausse : False

Codage sur 1 seul bit


N'existe pas dans tous les langages :

OK en labVIEW mais pas en C !

$ $$
$ ' %
2
$

) ' " '

OUI NO
TEST

Instructions 1 Instructions 2

Suite

80 F %

- & - $ E G G!
- 3 H * ) < =!
; !

' !

I ) J" K" L" M" N" O!


* ' ) ' ) < '
=

% H) % G G!
* # J $ %< J = 1< J =
%
1" " G G 1" G G " $ " >

G ) !
0 ; - A ' B G M 3H
0 A ' P B 4 L G J 3H
0 A ' B GJ4

G1 1 %

- G # !
- ; - !

Q0G Q 088 %
Début

Saisir N

OUI NO
N M 3H

OUI NO
NJ4
C = « c’est bien »

C = « c’est insuffisant » C = « c’est assez bien »

Fin

) * !

!
' ) !
' E E ' $ ! ) !

' ) !

, '
0 ; !

G G , '
C0 R ; !
) " ' ,
' !

Cliquer pour visualiser le diagramme réalisé si


condition fausse
Diagramme
délimité, exécuté si
condition vraie
Un seul diag
Condition à écrire visible à la fois

R 8& %
.

La transmission des
données se fait via un
« tunnel » d'entrée ou de
sortie.

La condition : Les tunnels de sortie


doivent être reliés dans les deux
met en jeux diagrammes conditionnels
un opérateur Le résultat booléen de la
de Le diagramme
condition est connecté au caché
comparaison sélecteur « ? »

"
La comparaison peut être simple : elle met en oeuvre un opérateur de
comparaison (>, <, etc ... ou d'égalité) comme dans l'exemple précédent.

Elle peut être plus complexe et mettre en oeuvre également des opérateurs
logiques.

Les structures
conditionnelles
peuvent être
imbriquées

Diagramme caché

#
5 !

' '
!

A S!

- , ' , , !

7 " 0 C0 R
!

& ' C0 R !

Instructions
à
répéter

NO
TEST
OUI

On peut permuter
dans LabVIEW
Suite

$
%

! ) -
!

I ) J" K" L" M" N" O!


* ' ) ' ) < '
=

% H) %
G G!

* # J $ %< J = 1< J =

% 1" " G G 1" G G " $ " >

80 F %

, ! ,
' !

%
' , !

"# !

0 ' 2& !

G1 1 %

/ % 2&! 0 % 2&
) !

/ % !
Q0G Q 088 %
Début

L = FAUX

!'+-0
( ,
BP NON
appuyé

On ne fait rien
tant que l’on
L = VRAI
n’appuie pas
sur le BP !

Fin

Diagramme répété

Terminal conditionnel

Terminal d'itération :
compte les répétitions
$ % ,

Pseudo :code correspondant :


Exercice
Variable N type entier
Dessiner
Variable l’organigramme
compt type entier
correspondant
N 100 à ce diagramme
Faire
compt N-1
afficher compt
attendre 1s
tant que N >0
Fin

Attente (configurée à 1s)

2 possibilités
6. ! $

' +, ,'/ 1(1 / ,1 (


7' *8

0) " ; , ' ) '


!

& " ' !


' ) - ) T , G/3 - G !

) G -
!

i=0

Ces instructions sont


Instructions i= i+1
répétées N fois pour
à
i variant de 0 à N-1
répéter

OUI Incrémente le
i<N
compteur
d’itérations

Suite
. $$

' NT ' TN !
' ' !
% ) T, ) !
' @ ) !

7 * ' N D 3 '
!
,TN3UUUU

' % ) ) "
@ 3! ) ) , * ) !

! $

& " %

Pour i = 0 à N-1

Instructions à répéter

Suite
VI - EXEMPLE

$ 6 6@ ', 6T"
!

G1 1 %

- & '
- " !

Q0G Q 088

Début

i varie de 0 à 10
Il y aura donc 11
Pour i = 0 à 10 itérations.

S=5*i

Attendre 2s

Fin

!
! $

" ! 0
!

7 %
80 F %

Avec 10 tours de boucle, i évoluera de 0 à 9

Diagramme répété

Nombre de tours de
boucle
Terminal d'itération :
compte les répétitions

Modifications par l'utilisateur


prises en compte

Valeur transmise au premier


tour de boucle.
Toute intervention de l'utilisateur
devient inutile

Valeur obtenue
au dernier tour
de boucle

"
9 ! 4
$

Un tableau permet de regrouper plusieurs variables numériques de même type sous une même
appellation.
Les différents éléments du tableau (array) sont alors repérés par un indice (index).
Le nombre N d’éléments du tableau constitue sa taille (array size)

Exemple : Tableau nommé Tab de 3 entiers LA MEMOIRE :


type U8
Empilement
d'octets
Chaque élément du
tableau est repéré par
un indice i allant de 0 Tab[0]
à N-1
Tab[1]
Tab[2]

Les trois éléments se


retrouvent à trois adresses
différentes qui se suivent

II – TABLEAUX DANS LabVIEW

Quand on
dépose le
Clic droit sur la tableau sur la
face avant face avant, il
est vide.
Il convient
donc de le
remplir à
l’aide du type
de variable
Tableau vide choisi :
tableau de
variables
numériques,
tableau de
Tableau de variables booléens,
numériques tableaux de
Indice du 1er chaînes de
élément visible caractères
etc…

#
Tableau vide

Tableau de variables
numériques

! 4
" $ %

Les fils de
liaisons des
données
tableaux sont
en traits épais
de la couleur
du type de la
variable : ici,
on a des
tableaux de
variables
numériques à
virgule
flottante, les
connexions
sont donc de
couleur
orange. Indice
et taille du
tableau sont
des entiers
donc couleur
bleue.

$
4
"# , , 1

Indexation : Au ième tour de boucle,


le ième élément du tableau
est transmis par le tunnel d'entrée.

Lors du câblage, l'indexation se


réalise automatiquement.

Tous les éléments du tableau


sont multipliés par i
à chaque tour de boucle

Pas d'indexation : le tableau est transmis


à chaque tour de boucle dans son intégralité
par le tunnel d'entrée.
%"# , *'

Pas d'indexation :
la dernière valeur
calculée au dernier tour
de boucle est transmise
via le tunnel de sortie

indexation : un tableau des valeurs


calculées à chaque tour de boucle
est transmis via le tunnel de sortie
quand la boucle est terminée #Page 124
:.

"#

N+1 points régulièrement espacés


ième point

a i+1 ème point


b

& % $ ! % *;< =#

& ( , ( % $ N$ /3 D

0 % $N D !

, +, *+ /1 >+ ( / / ?@ ; ( *', > ; *

%"#

N+1 points régulièrement espacés

ième point

log a i+1 ème point log b

& % $ ! % N< V =?GN < ? =3?G

& ( , ( % $N $ /3 D

0 % $ N D ! N D < ? =3?G N D < ? = ?G

N W ! < ? = ?G X

7 % $ N ! < ? = ?G JNK $ N ! < ? = /3?G ! < ? =3?G

$ N $ /3 ! < ? =3?G $ N ! W< ? =3?G X

, +, *+ )1'/1 >+ ( / / ?@ ; ( *', > ; < # = #


$$

Graphes Graphes Graphes


déroulants XY

!'+-0 0 !'+-0 $' !'+-0 $'

Terminal graphe Terminal graphe Terminal graphe XY


déroulant équivalent à équivalent à un tableau reçoit 2 tableaux
un indicateur numérique

Graphe dans la boucle Graphe hors de la Graphe hors de la


boucle boucle

! !

" "
# #
%
-
$ -
% &" '" ("
) *
.

F " $
' ! 7 ' "
' !

, ( * '* ( A , ( * '* ( A
/ 4/ ? 4/ , . 1 '( / , / 0
- (+ ,'/ ( ', 8 <7 1>+ ,- / ? =

%
UUU
∆x = [ Xmax – Xmin ] / (N-1)
∆1 N 1 N 1?G

% ; %

∆x = [ Xmax/Xmin] 1/ (N-1) 1 JJ 1 C KK C

Boucle While Graphe


déroulant l’intérieur.
Boucle cadencée par
)
Te. Déroulement en %
temps réel si Te pas +
trop faible (Pb de
windows)

∆1 N 1 N Y1?G ∆1 N 1?G YG

, B 00 , C - >+
DD E

Boucle For
Graphe XY à
l’extérieur
% N ∆1 Gradué en temps :
$NR D ∆$ simulation
temporelle, pas de
temps réel
%
$NR ! <∆$= ?G Boucle For, Graphe
ou Graphe XY à
l’extérieur
Début
"#

Saisir Te

i=0
Déroulement en
temps ≈ réel
Calculer y(iTe)
Afficher y(iTe) i = i+1

Attente Te

OUI STOP = Vrai NON

Fin

%"# 2"# 4&

Début
Début Début

Saisir Xmax,
Xmin, N Saisir T, N, k Saisir xmin, xmax et N

Pour i = 0 à N
Pour i = 0 à N Pour i = 0 à N
∆x = (Xmax – Xmin) / N
∆x = (Xmax – Xmin) / N
Calculer yi (i∆x) Te = kT/N
xi = i ∆x
Calculer yi (iTe)
Calculer yi (xi)

Afficher yi
Afficher Afficher yi (xi)
yi(iTe)

Fin
Fin
Fin

!
F !
A B 7' /

Le rôle du graphe déroulant : Waveform Chart est d'afficher


l'évolution temporelle d'une donnée variable dans le temps.

Données
perdues

historique Partie visible

A chaque instant le graphe ne reçoit qu'une donnée à la fois :


Ce n'est pas un tableau de valeurs.

Par programmation, il faut donc répéter l'envoi


des données au graphe, le terminal graphe
doit donc être dans une boucle while.

? / 0 ( ,* A

Génération d'un
nombre aléatoire

Le Graphe déroulant est un indicateur.


Par défaut son type est DBL.

Ce n'est pas un tableau de valeur (trait fin):


Cet indicateur ne reçoit qu'une valeur à la fois,
il doit être dans la boucle.
- ) * @ % ' @ ) !

LE FORMATAGE DU GRAPHE

A B 7' /

Le rôle du graphe est de représenter graphiquement un tableau de


données.
donnée Le graphe reçoit simultanément
0 5 l'ensemble des données
1 10 sous forme d'un tableau de valeurs.
2 15
3 20
4 25
Les données sont généralement
5 30
calculées dans une boucle
6 35
7 40

Par programmation, il ne faut envoyer


les données au graphe qu'une seule fois,
le terminal graphe doit donc être hors de la boucle.

Le tableau peut être obtenu par indexation


du tunnel de sortie de la boucle

"
? / 0 ( ,* A

L'indice du point
(n° ligne du tableau)

Le Graphe est un indicateur


de type tableau.
Par défaut son type est DBL.

Cet indicateur reçoit toutes les valeurs à la fois,


il doit être hors de la boucle.

4&

Le rôle du graphe XY est de représenter graphiquement un tableau


de données Y en fonction d'un tableau de données X
Donnée X Donnée Y Le graphe reçoit simultanément
0,1 5 l'ensemble des données
0,2 10 sous forme de 2 tableaux de valeurs.
0,3 15
0,4 20
0,5 25
0,6 30 Les données sont généralement
0,7 35 calculées dans une boucle
0,8 40

Par programmation, il ne faut envoyer


les données au graphe qu'une seule fois,
le terminal graphe XY doit donc être hors de la boucle.

Les 2 tableaux sont obtenus directement


au niveau des 2 tunnels de sortie de la boucle.
Ils sont assemblés pour former un cluster.

#
0* ', ( ,* A

Connecter le tableau
des abscisses ici

Connecter le tableau
des ordonnées ici

? / 0 ( ,* A

Tracé de courbe,
échelle linéaire :
xi = xd + i * (xf-xd)/N

apparaît
automatiquement

On dispose ici
d'un cluster
(assemblage)
de 2 tableaux.

$
G
H

EXEMPLE : Programmer n!

On sait que n! = (n-1)! . n

Pour calculer n!, il faut avoir d'abord calculé (n-1)!


Pour calculer (n-1)!, il faut avoir d'abord calculé (n-2) !
Pour calculer (n-2)!, il faut avoir calculé (n-3)!

Etc ....
Structure itérative
boucle for
A la ième itération,
Variable facto type entier on utilise le résultat
Variable i type entier calculé à l'itération
facto 1 précédente
Pour i = 1 à N faire
facto facto.i
En Labview cela se fait
i i+1
grâce au registre à décalage
afficher facto
fin

On utilise des registres à décalage dans les boucles For et dans les
boucles While pour transmettre des valeurs d'une itération à l'itération
suivante.
Au ième tour de boucle, la valeur
calculée est fonction
de la valeur calculée au tour précédent

Calcul

i = N-1 Calcul

i=N Calcul

i = N+1
Exemple : factorielle n avec registre à décalage :

Factorielle n

Valeurs au dernier tour de boucle

La valeur calculée à la
dernière itération sort par
Clic droit sur le bord de la boucle le tunnel du registre

III – DECALAGES MULTIPLES

1°/ EXEMPLE

$ % ,@ # 8 Z -

8 N< D D = ?Z
/3 VH
On répète la mesure périodiquement => boucle while

Pour calculer Mi, on a besoin des valeurs mesurées dans les deux
itérations précédentes.

Acquisition

Calcul Affichage
i = N-1 Acquisition

Calcul Affichage
Acquisition
i=N
Calcul Affichage
i = N+1

La mesure est simulée


par la génération d'un
nombre aléatoire

Affichage sur un
graphe déroulant de
la moyenne des trois
derniers nombres
Tirer avec la aléatoires générés
souris pour
disposer de la mi
donnée
transmise par mi-1
la i-2ème
mi-2
itération
Dans une boucle, si on retourne
la valeur calculée sur l'entrée
d'un opérateur, il apparaît un
noeud de rétroaction,
fonctionnant comme le registre à
décalage.

Noeud de rétroaction

Initialisation du noeud
de rétroaction pour
le 1er tour de boucle

& , " I ;
' !
@

Langage classique : Langage LabVIEW :

Flot d'instructions Flot de données

La structure séquence
permet de reprendre le
contrôle de l’ordre
On ne maîtrise pas d’exécution du
Les instructions écrites programme
l'ordre d'exécution
s'exécutent séquentiellement
des « instructions »

La structure séquence dans LabVIEW :

La structure séquence se présente comme


une succession d'étapes
semblable à la pellicule d'un film

Dans chaque étape (frame) : un diagramme.


Les étapes successives sont exécutées dans l'ordre.

Étape 1 Étape 2 Étape 3


diag 1 diag 2 diag 3
Etc ...

Comme pour la structure condition, un seul diagramme n'est visible.


Comme pour une boucle, on peut passer des valeurs d'une étape à
l'autre.

) * < ) , = !

) " E ' $ !
@ !

!
4

Etape 0 : Acquisition du temps


Génération du nombre aléatoire
tant qu'il est différent du nombre à atteindre

Etape 1 : Acquisition du temps


Calcul et affichage de la durée

Cette structure est souvent utilisée


en informatique d'instrumentation

Étape 1 Étape 2
Étape 3
Configuration Acquisition
RAZ carte daq
carte d'acquisition Sortie Commande

Cette structure peut également être utilisée également pour


commander un système séquentiel (feux de carrefour)
) ' , ' ' #
' !

Par contre dans une séquence empilée, il faut utiliser variable locale de séquence : clic droit sur le
bord de la séquence. On dispose alors d’une flèche entrante distribuant la donnée dans les autres
étapes de la séquence.

"
#
@
!
& < =" ) ,
) ! ) ) ' " *
" + , ) !

7 ' $ / " ) <) ' = ;


! <3TD =[ !

$
7 ' $ " ) ! ) 3
" 33 *!

G "
' !
, ' E ' ) / !
!

) ' "
! * ! ) ' ,
) ' ! & , ' '
" ' ' @ ) , ) " ' E !

!
" ' E , % ' E
!

; * /
" , "
' ' E !

!
) ) , ' !

0 %
7 " %

Sélectionner cette case


de la palette de fonction

; ) , ) !
' E * '
!< / =!

!
," % I < %=

4 8

H) ) !
0 . % 3N D " HN V " ZN [ .N ?

4 8%

) ' # !
" " $ !< 3H=

% 5" 5" 3\" 3\ ) ) $ *


!< 3T=

4 82

7 ' $ " @ $- ) - ' D !


7 ) 5" 5" 3\" 3\!
F / ) $ * ]

4 85 1 0* ', ( +, - 0-+0

3^? '

2 ' Q N HT W 3?√<3 D < Hπ =H = X


0 Q ) "
E ) !

$ ) % N ."9 YΩ" N 3T C" ≈ 3TTT _P!

H^? '

8* < $ ? =

Z^? '

8* < ? ; =

!
4 86

) %ϕN/ < Hπ =

3^? 8 ' $ . 3^?

H^? )

Z^? ) !

4 89 1 + * ''01 ,*

/ 3 $ `3 `H !
/ H $ `3 `H !
/ Z $ `3 `H " $!

4 8: '/ * -'/ 0 ? *

' < $HD $D N T=


$ $ < 72=!
" E ) " ,
) <72 =!

4 8F 1 + ( B * ', +-0 ( ,,

3^? ) " @ " ' "


!

H^? ) "@ " "


!

4 8G J, * ( - -K *

; - $
; - !

!
,"2 < 2=

4 28

H - , - ) !
K " ≤

4 28%

H - , - )

K N D < / =?H
≤ N D < V =?H

3^? 7 ' !
H^? 7
Z^?

4 282 . 1

' 3H - , - ) !
Z !

, '& - - '( ./ 0
, 1 - - '& ./ 2
, & - - 1 ./ 3

3^? 7 ' !
H^? 7
Z^?

!!
,"5 ! < 5=

4 58 !'+-0 ( ,

' ) ' D !
G! 2 % ' $ ) ' $ U

3^? 7 ' !
H^? 7
Z^?

4 58% -+ +, ' ,

- )
- ) ! ' *
) ! ' $ ) ' $ U
) G <G ) =

3^? 7 ' !
H^? 7
Z^?

4 582 . + /1 >+

) )
T ! ' *
! 3 % . & 4
T E ) !

3^? 7 ' !
H^? 7
Z^?
.^? $ ' $ T !
F ]

4 585 '/ 01 '

T
HT T"6 ! ' * !

3^? 7 ' !
H^? 7
Z^?

.^? ) ' $ + , %

= ^ ' < ^ =!
= ' - !

!
,"6 ! $ < 6=

4 68 '/ 01 '

T HT T"6 !

3^? 7 ' !
H^? 7
Z^?

4 68% . + )1'/1 >+

) HT - )
T ! 3 % . & 5
T E ) !

3^? 7 ' !
H^? 7
Z^?
.^? $ ' $ T !
F ]

,"9 ! 4< 9=

4 98

- 3T
T HT!

8 )
!

4 98%

- 3T
T HT! < 3- ' $ =!

" 6 "
# !
= 0 - )
= '

!"
4 982 ,( ? ', , *'

- T 3TT T"6
' * !

0 H $ !

4 985 0 +? '+-0 * / >+1 *

Q 36 3T , ' V
3T D3T!
8 T!

3^? 7 ' !
H^? 7
Z^?

,": ! 4 < 9I :I F=

4 :8 *- ** * ( +, 1- 00 0 ,1 < 7 2%.26=

Q GD3 ' $ ' !


G" ' !

4 :8% (1 '+0 ,

- ) a ' 3T
) " 3 _P ) !
' < ) ) , = )
a ) !
a !
!

3^? 7 ' !
H^? 7
Z^?
.^? / ' ]

4 :82 .

- G) #< = N 3T <H π =!
) *
!
$ ) G !

!#
G ) * ' #
U

3^? 7 ' !
H^? 7
Z^?
.^? 7 / ]

4 :85 4&

8 ) ' +
, #< = Rb !

4 :86 . *- ** * ( +, 1- 00 0') / >+ < 7 2%.26=

Q GD3 ' $ ' !


G" ' !

4 :89 . 4& 1- 00 0') / >+

' '
%
Q < = N HT W3?√<3D< !Hπ = H = X

, !
G ) !
N 3T _P , N 3TTTTT _P

N .9TT Ω" N 3T C!

< - =
_P!

3^? 7 ' !
H^? 7
Z^?

!$
,"F G ! < FI G=

4 F8

) HT - )
T )
! % N /3 [

3^? 7 ' !
H^? 7
Z^?

4 F8%

1 3T - ) %

T N /T"6 D3 N√< D 3=

3^? 7 ' !
H^? 7
Z^?

4 F82

xn Filtre yn
numérique

#< = N < = / 3"\35T < / 3= D < / H= D 3"63\3#< / 3= / T"595T#< / H=

% # /3 N T # VH N T

1 ) # ,
' % $ N c3"3"3 >! d K T! $ N T JT!

x
1
n

3^? 7 ' !
H^? 7
Z^?
," @ < @=
4L @8
DCy
BP1
Led2 Led1

BP2
Capteur position initiale

) ' ' ) < 3= -


' ' < H=!
: " ' 7 #< # = ) !
) 2&3

' 7 # )
- 2&3 !
2&H!

3^? 7 ' !
H^? 7
Z^? ) !

G! 2 % ' $ ) ' $ U

4 @8%
Début

OUI NON
BP1 = Vrai

Pour i = 0 à 9
Led 1 = Vrai
Attente 3s
Led 1 = Faux

Fin

3^? F ) ' ]
H^? $
Z^? 1 !
4 @82

8* ! ' 7 # )
3T / 2&!
2&H ) !

3^? 7 ' !
H^? 7
Z^? ) !

4 @8 5 M + ( 0+/ K *

' 3T !

7 " ' ) ! #
) !

7 $- 3T . < e =!

7 - " e ^ ^
) e " # + Z !

) @ ', ' * !

4 @8 6 *+ ( +, / * ( ?1-+ ',

' $ ' 3TTT


' !
!

3^? 7 ' !
H^? 7
Z^? ) !
4 @8 9 $ +? ( - 7'+

" $
!

& * ) ' " )


< 4 =!
," 4 $ !

4 8

, H 6TT
) %

% W T " 3T τ X

<3V $ </ ?τ==

τ ) !

0@ % ' !
' ) !

3^? Rb!

H^? & " $ !

Z^? ) ) Rb!

.^? , - !

4 8%

' ) ' ) )
) ) !

!< =!
<) =
Y ? 120

100
90
60
50

3 5 6 7 8 8,5 9 9,5 10,5 11

1 $ !
4 82 '* / , ( * (',,1 *

) !

+ , %

7 ' ) !
7
1 $ !

7 f !

) - !

$ ) !

4 85

' $ H @ ' ) !

' $ Z !

4 86 'N ,, )0 ** ,

# # # # #
" ) "
+ , , ! #
( + " , /
( ) ( @ /
!

# # ) "
( # !

/ " ' , 8
) ! ' &83T < - 3T g = .5
8 !
%??:::! / / ! ? ? ? 3? h h h h6T!

! ! % , ,
!
' ' ) !& !
1 !
1 * # 5 !
F # # ]

!
," % 4

4 %8 A '/ + C N* 1 1* *

# $ )
' !

< = / !
s

+10 Quand e(t) augmente, s bascule à –10


quand e > 5.
e
-1 5 Quand e(t) diminue, s bascule à +10
quand e < -1
-10

3^? <: ) = <=


< 1 $ HT = ' ' #
!

e(t)
+8
t
-8
H^? C ; < = Rb!

4 %8%

%
<=N <Hπ = <Hπ =

%
JJ !

) ) ! ,
N T"3 _P N 3 _P!

HT ) ' $
!

Vous aimerez peut-être aussi