Title: Stage
1Stage
Système complet d'acquisition de données
- Lycée Clos Banet Perpignan ( 2 et 9 février
2005 ) - Lycée Joffre Montpellier (SAMS) ( 6 et 7 avril
2005 )
Animateur Christian BISSIERES ( Professeur de
Physique Appliquée )Responsable pédagogique
Jean-Claude REBEYROLE ( IA IPR )
2Utilisation d'une chaîne complète d'acquisition
de données"du capteur à l'ordinateur"
- Pilotage de la carte directement avec Excel
Visual Basic (VBA)
3Mini-carte dacquisitionautoalimentée par le
port série RS232(version 2003)
4Système complet dacquisitionpilotable par le
port série RS232(version 2004)
5Programme "voltmètre"
6Objectifs du stage
- 1- Utilisation du port série RS232 pour
communiquer avec des montages électroniques à
l'aide d'Excel (Visual basic). - 2- Pilotage de la mini-carte dacquisition
(version 2003). - 3- Utilisation du système complet d'acquisition
pour mesurer des températures avec une simple
diode mais aussi avec un LM335.
7Déroulement du stage
1. Utilisation du port série RS 232 à l'aide
d'Excel (Visual Basic)
- 1. 1. Utiliser Visual Basic (présent avec Excel)
pour faire de la programmation sous Windows. - 1. 2. Savoir déclarer et utiliser, avec Visual
Basic, les fonctions et procédures dune DLL
donnée. - 1. 3. Utiliser les fonctions de pilotage du port
série avec la DLL port.dll pour piloter une
maquette de feux tricolores.
8 1.1. Utilisation de Visual Basic (VBA)
- 1- Basculer vers la fenêtre Visual Basic Editor
- Le travail à faire est indiqué par ?.
- Le code à écrire ou déjà écrit est indiqué en
vert et les commentaire sont précédés par le
caractère ' . - Pour basculer entre la feuille Excel et la
fenêtre Visual Basic il faut faire Alt F11. - Pour se placer dans la fenêtre Visual Basic
Editor, effectuer les manipulations ci-dessous - ?? Démarrer Excel.
- ?? Sélectionner le menu Outils / Macro / Visual
Basic Editor. - ?? Dans la fenêtre Projet VBA Project, faire un
double-clic sur Feuil1. - La fenêtre où sera inséré le code du programme
relatif à la feuille 1 apparaît sur la droite de
lécran
9 1.1. Utilisation de Visual Basic (VBA)
- 2- Remplir des cellules directement depuis VBA
- Il faut tout dabord donner un nom au programme
- ?? Dans la fenêtre relative aux programmes de la
feuille 1, insérer le code Sub
sinusoide() 'début et nom du programme End
Sub 'fin du programme - ?? Entre Sub et End Sub, insérer le code
suivantCells(2, 2) "Tension(Volts)" 'texte
dans cellule B2 - Cells(4, 2) 12 'valeur 12 dans cellule B4
- Cells(5, 2) 5 'valeur 5 dans cellule B5
- ?? Appuyer sur le bouton Exécuter, sélectionner
le programme "Sub sinusoide()" (macro) à exécuter
et le résultat sera visible dans la feuille Excel
(Faire Alt F11 pour basculer de Excel vers
Visual Basic).
Résultat
10 1.1. Utilisation de Visual Basic (VBA)
- 3- Tracer une sinusoïde réglable en amplitude et
en fréquence - Nous allons remplir automatiquement 101 points
(temps et valeur) d'un sinusoïde d'amplitude et
defréquence déterminée. - ?? Modifier le code relatif à Sub sinusoide() de
la façon suivante Sub sinusoide() 'début et
nom du programmeCells(1, 1)"t
(ms)" 'préparation du tableauCells(1, 2)
"sinus (volt)"pi 3.14159 'définition des
constantestmax 0.001amplitude 5frequence
2000For n 0 To 100 'debut de la boucle des
101 points t tmax / 100 n 'découpage du
temps entre 0 et tmax Cells(n 2 , 1) t
1000 'affichage du temps sinus amplitude
Sin(2 pi frequence t) 'création et
affectation de la variable sinus Cells(n 2, 2)
sinus 'affichage des valeurs de la variable
sinusNext n 'retour ou fin de la
boucle End Sub 'fin du programme - ?? Exécuter le programme Sub sinusoïde et
vérifier le résultats dans Excel
11- 3- Tracer une sinusoïde réglable en amplitude et
en fréquence (suite et fin) - Nous allons améliorer le programme en offrant la
possibilité de régler l'amplitude et la
fréquence à l'aide de barres de défilement. - ?? Revenir à Excel et faire Affichage / Barres
doutils / Boite à outils contrôles. - ?? Sélectionner le contrôle Barre de défilement
et le dessiner horizontalement sur la feuille
(amplitude). - ?? Faire un clic droit sur la barre pour
afficher la fenêtre propriétés et les modifier
(Min 0 Max 12). - ?? Dessiner aussi la barre de défilement
relative à la fréquence (Min 500 Max 5000). - ?? Faire un double clic sur la 1 barre de
défilement on doit maintenant se retrouver dans
VBA avec un nouveau programme Scrollbar1_Change.
Ecrire simplement le code sinusoide à lintérieur
du programme pour appeler la programme sinusoide
à chaque changement de position du
curseur.?? Refaire le ?? pour la 2 barre de
défilement. - ?? Il faut modifier légèrement le code du
programme sinusoïde. - ?? Pour tester le programme, il faut désactiver
le mode "création" qui a été activé pour créer
les contrôles.
12 1.2. Déclaration et utilisation d'une DLL
- 1- Pourquoi utiliser une DLL ?
- Pour piloter les montages proposés, il nous faut
des fonctions qui exécutent les tâches suivantes
- Ouvrir le port "COM" ( COM1 , COM2 , au choix
). - Refermer le port "COM" après usage.
- Commander les 3 lignes de sorties du port série (
0 logique ? -11V et 1 logique ? 11V ). - Lire létat des 4 lignes dentrée du port série (
tension lt 1V ? 0 logique et tension gt 2V ? 1
logique ). - Générer des fonctions temporelles ( compteurs et
temporisations ). - Ces fonctions ne sont pas disponibles dans VBA,
nous allons donc utiliser les fonctions
suivantesproposées par "port.dll" - ? OPENCOM Exemple OPENCOM(" COM2 , 1200 ,N , 8
,1 ") permet d'ouvrir "COM2" avec 1200
bauds, pas de bit de parité, 8 bits de
données et 1 bit de stop. - ? CLOSECOM permet de refermer le dernier port
ouvert. - ? DTR, RTS et TXD commande des lignes de
sortie Exemple DTR 1 permet de mettre à "1"
la ligne de sortie DTR (11V). - ? CTS, DSR, RI, DCD Exemple lecture DSR place
la valeur DSR (0 ou 1) dans la variable
lecture. - ? DELAY Exemple DELAY 100 introduit une pause
de 100ms dans le programme. - ? DELAYUS même fonction que DELAY mais en
microsecondes.
13- 1- Pourquoi utiliser une DLL ? (suite et fin)
- ? TIMEINIT Mise à zéro et démarrage du compteur
des millisecondes. - ? TIMEREAD Lecture du compteur des
millisecondes. Exemple 1 While TIMEREAD lt
1000 Wend la boucle WHILE .. WHEND reste
"bloquée" tant que le compteur n'a pas
dépassé 1000 ms. Exemple 2 For n 1 to
10 WHILE TIMEREAD lt n100 Wend Cell
s ( n , 1 ) Mesure Next n on mesure 10
points avec un intervalle de 100ms et on place
les points dans le tableur. - ? TIMEINITUS et TIMEREADUS Mêmes fonctions que
TIMEINIT et TIMEREAD mais en microsecondes. - Remarques Pour des déclenchements temporels
(acquisitions), il ne faut pas utiliser les
fonctions DELAY ou DELAYUS car elles ne
dépendent pas d'un compteur, elles
introduisent uniquement des "pauses". Le
compteur continue à "compter" même après une
instruction TIMEREAD. - ? REALTIME Cette fonction rend le programme
prioritaire par rapport à toutes les tâches
que gère Windows. - Exemple REALTIME True activation de la
priorité temporelle.
14 1.2. Déclaration et utilisation d'une DLL
- 2- Déclaration des fonctions de la DDL (port.dll)
- Important La DLL devra être placée dans le
répertoire du programme ou dans le dossier
Windows\System. - Avant de faire appel aux fonctions proposées par
la DLL, il faut indiquer à notre programme que
l'on va - utiliser ces fonction.
- Voici le code qu'il faudra inscrire au début du
programme pour déclarer les fonctions de la DLL
qu'on vient - de décrire
- Declare Function OPENCOM Lib "Port" (ByVal A) As
Integer - Declare Sub CLOSECOM Lib "Port" ()
- Declare Sub DTR Lib "Port" (ByVal b)
- Declare Sub RTS Lib "Port" (ByVal b)
- Declare Sub TXD Lib "Port" (ByVal b)
- Declare Function CTS Lib "Port" () As Integer
- Declare Function DSR Lib "Port" () As Integer
- Declare Function RI Lib "Port" () As Integer
- Declare Function DCD Lib "Port" () As Integer
- Declare Sub DELAY Lib "Port" (ByVal b)
- Declare Sub TIMEINIT Lib "Port" ()
15 1.2. Déclaration et utilisation d'une DLL
- 3- Réalisation d'un programme de feux tricolores
- On va utiliser une petite plaque de test pour
connecter une LED rouge sur RTS, une LED orange
sur DTR et - une LED verte sur TXD.
- Remarque on peut brancher directement une LED
entre une sortie du port série et la masse car
les sorties possèdent une résistance interne de
450 ? environ ( ce qui donnera 20mA pour la diode
). - La déclaration des fonctions peut se faire "une
fois pour toutes" en chargeant un module qui
contient le - Code relatif aux déclarations.
- ?? Ouvrir un nouveau fichier Excel.
- ?? Faire un clic droit dans la fenêtre project
VBAProject et sélectionner Importer un fichier .
Le fichier se nomme port_dll.bas et est placé
dans le répertoire de travail du stage. - ?? Une fois le fichier importé, faire un double
clic dessus et constater qu'il contient le code
relatif aux déclarations.
Résultat
Clic droit
16- 3- Réalisation d'un programme de feux tricolores
(suite) - ?? Revenir au classeur Excel (AltF11) et faire
Affichage / Barre d'outils / boite à outils
Contrôles. - ?? Placer le Bouton de commande et la Barre de
défilement (min1 et max10) comme indiqué
ci-dessous (les autres composants ne sont que des
"dessins")
Barre de défilement
Bouton de commande
17- 3- Réalisation d'un programme de feux tricolores
(suite) - ?? Faire un double clic sur le bouton de
commande, on se retrouve alors dans VBA avec le
programme vide CommandButton1_Click (vide) à
compléter entre Private Sub et End Sub - Private Sub CommandButton1_Click()OPENCOM
("COM2,1200,N,8,1")
'Initialisation port comRTS 1
'allumage du rougeDTR
0TXD 0tempo ScrollBar1.Value 100
'tempo en 10 de secondes -gt msTIMEINITFor n
1 To 5 '5 cycles
d'allumage des feux tricolores While TIMEREAD lt
(10 n - 5) tempo 'attente
5tempo Wend RTS 0 DTR 0 TXD 1
'vert While TIMEREAD lt (10
n - 1) tempo 'attente 4tempo Wend RTS
0 DTR 1
'orange TXD 0 While TIMEREAD lt (10 n)
tempo 'attente 1tempo Wend RTS 1
'rouge DTR 0 TXD
0 Next n CLOSECOMEnd Sub
18- 3- Réalisation d'un programme de feux tricolores
(suite) - ?? Revenir à Excel, désactiver le mode création,
brancher la maquette et tester le programme.
192. Pilotage de la mini-carte d'acquisition
- 2. 1. Présentation de la carte.
- 2. 2. Programme "voltmètre".
- 2. 3. Programme "acquisition lente".
- 2. 3. Programme "acquisition rapide".
202.1. Présentation de la carte
- 1- Le composant TLC549
- Le TLC549 est un convertisseur 8 bits à sortie
série. - Le schéma ci-dessus représente son boîtier DIL08
avec les broches suivantes - ? REF et REF- tensions de référence du CAN
- ? ANALOG IN entrée analogique (mesure)
- ? VCC et GND alimentation et masse
- ? lorsque cette ligne passe du niveau "1" au
niveau "0", le bit de poids fort B7 est
envoyé sur la ligne DATA OUT - ? I/O CLOCK lorsque cette ligne passe du
niveau "1" au niveau "0", le bit suivant B6 est
envoyé sur la ligne DATA OUT et ainsi de
suite jusqu'au bit B0 - ? DATA OUT sortie numérique "bit par bit".
- La figure ci-contre résume le protocole de
communication
212.1. Présentation de la carte
- 2- Liaison avec le port série RS232
- Le TLC549 est directement relié au port série
(seules des résistances et diodes "zener"
adaptent les - niveaux de tensions).
- Les liaisons sont les suivantes
- ? La sortie TXD est reliée à VCC à travers un
régulateur "5V" - ? La sortie RTS est reliée à
- ? La sortie DTR est reliée à I/O CLOCK
- ? L'entrée DSR est reliée à DATA OUT.
- 3- Relation donnant Ve en fonction de N(10)
- La broche REF est reliée à VCC (5V) et la broche
REF- est reliée à la masse (0V). - Le TLC549 donne le tableau ci-contre
Ve N(10)
REF- 0
REF 255
222.1. Présentation de la carte
232.1. Présentation de la carte
242-2- Programme "voltmètre"
- 1- Présentation
- L'utilisateur du programme devra d'abord activer
le Port COM avant de faire les mesures
successives. - Un clic sur le bouton "mesurer" lancera la mesure
et l'affichera dans une étiquette puis dans la
cellule active du tableur. Après chaque mesure,
la cellule active se décale vers le bas. - Pour réaliser cette interface "Voltmètre", on
utilisera un contrôle "Bouton bascule" pour
activer le Port COM, un contrôle "Bouton de
commande" pour lancer la mesure et une
"Etiquette" pour l'affichage de la mesure.
Bouton de commande
Bouton bascule
Intitulé (Label)
252-2- Programme "voltmètre"
- 2- Réalisation du programme
- Le travail à faire est indiqué par ?.
- Le code à écrire ou déjà écrit est indiqué en
vert et les commentaire sont précédés par le
caractère ' . - Pour basculer entre la feuille Excel et la
fenêtre Visual Basic il faut faire Alt F11. - ? Préparation du fichier Excel
- ?? Ouvrir un nouveau fichier Excel, se placer
dans la fenêtre Visual Basic et importer le
module Port_dll.bas. - ?? Revenir dans Excel et placer les 3
contrôles.Faire un double clic sur le bouton
bascule pour se retrouver dans la fenêtre
VisualBasic. - ? Procédure ToggleButton1_Click()
- Le programme relatif au clic sur le bouton
bascule apparaître vide comme indiqué ci-dessous
- Private Sub CommandButton1_Click()
- End Sub
26- 2- Réalisation du programme (suite)
- ? Procédure ToggleButton1_Click() (suite et fin)
- ?? Compléter la procédure ToggleButton1_Click()
avec les indications ci-dessous - Private Sub ToggleButton1_Click()
- If ToggleButton1.Value True Then
' Test Bouton "enfoncé" - . . . à deviner . . . 'Ouverture du Port
COM2 - . . . à deviner . . . 'Alimentation carte
par TXD - CommandButton1.Enabled True
'Activation du Bouton de mesure - ToggleButton1.Caption "Désactiver Port COM"
'Changement texte dans bouton - ToggleButton1.BackColor HFF
'Changement couleur de bouton - Else ' Test Bouton "tiré"
- . . . à deviner . . . 'Fermeture du Port
COM - CommandButton1.Enabled False
'Désactivation du Bouton de mesure - ToggleButton1.Caption "Activer Port COM"
'Changement texte dans bouton - ToggleButton1.BackColor HC000
'Changement couleur de bouton
27- 2- Réalisation du programme (suite)
- ? Procédure CommandButton1_Click()
- ?? Revenir dans Excel, faire un double clic sur
le bouton de commande (on se retrouve dans
VisualBasic) et compléter la procédure
CommandButton1_Click() avec les indications
ci-dessous - Private Sub CommandButton1_Click()
- Lecture 0
'initialisation variable lecture - . . . à deviner . . . 'priorité
temporelle maximum - . . . à deviner . . . 'CS"barre" à 1
- . . . à deviner . . . 'attente de 20
microsecondes - . . . à deviner . . . 'CS"barre" à 0
- . . . à deviner . . . 'attente de 2
mirosecondes - Lecture Lecture 128 DSR
'récupération du bit de poids "7" - . . . à deviner . . . 'Clock à 1
- . . . à deviner . . . 'Clock à 0
- . . . à deviner . . . 'récupération du
bit de poids "6" - . . . plusieurs lignes à deviner . . .
'récupération bits de poids "5" à "1" - Lecture Lecture 1 DSR
'récupération du bit de poids "0" - . . . à deviner . . . 'Clock à 1
28- 2- Réalisation du programme (suite et fin)
- ? Connexion de la carte au port série et essai du
programme - ?? Connecter la carte électronique au port série
COM2.Se placer dans le classeur (Alt F11),
désactiver le mode création et tester le
programme avec une source de tension et un
voltmètre précis pour vérifier les mesures. - ?? Si ça fonctionne (cela serait étonnant du 1
coup), plus rien à faire.... Si ce n'est pas le
cas il faut voir pourquoi ? (erreur de frappe,
protocole de travail mal suivi, le TP est mal
expliqué ...). - ?? Amélioration de l'aspect Il ne reste plus
qu'à afficher le bon texte dans le bouton de
commande.Dans VisualBasic, faire un clic droit
sur le contrôle CommandBUtton1 pour afficher
ses propriétés.Changer la propriété Caption
(texte affiché).D'autres propriétés sont
modifiables (Font, BackColor ...). - Fin de la manipulation sur le programme
"voltmètre".
292-3- Programme "acquisition lente"
- 1- Présentation
- Le programme devra lancer des mesures de façon
automatique avec déclenchement par l'utilisateur - ? Réglage de la durée entre deux points
d'acquisition (en secondes entières). - ? Choix du nombre de points à mesurer.
- Un bouton de commande permettra d'afficher la
fenêtre "Acquisition lente"
30 2-3- Programme "acquisition lente"
- 2- Réalisation du programme "acquisition lente"
- ? Préparation du fichier Excel
- Le travail à faire est indiqué par ?.
- Le code à écrire ou déjà écrit est indiqué en
vert et les commentaire sont précédés par le
caractère ' . - Pour basculer entre la feuille Excel et la
fenêtre Visual Basic il faut faire Alt F11. - ?? Rester dans le même fichier Excel "carte
TLC549.xls " , se placer sur la feuille 2, faire
afficher la "boite à outils contrôles" et placer
un "bouton de commande" sur la feuille.Faire un
double clic sur le bouton pour se retrouver dans
la fenêtre VisualBasic. - ?? Le programme relatif au clic sur le bouton
doit être complété et apparaître ainsi Private
Sub CommandButton1_Click()UserForm1.Show 'affich
age de la fenêtreEnd Sub - ?? Il faut maintenant créer la fenêtre UserForm1
en faisant un clic droit dans cette zone et
sélectionner Insersion / UserForm.Revenir dans
Excel et tester l'affichage de la fenêtre en
cliquant sur le bouton (il faut d'abord
désactiver le mode création).
31- 2- Réalisation du programme "acquisition lente"
(suite) - ? Préparation de la fenêtre UserForm1
- Il faut maintenant ajouter des contrôles à la
fenêtre UserForm1. - ?? Faire un double clic sur UserForm1 icipour
afficher la fenêtre (vide). - ?? Placer les contrôles dans le fenêtre comme
indiquéci-dessous (les textes dans les contrôles
seront ajoutés plus tard)
à placer en 1
Intitulé (affichage de texte uniquement)
Zone de texte (texte modifiable par l'utilisateur)
en 2
Bouton de commande
32- 2- Réalisation du programme "acquisition lente"
(suite) - ? Programmation des procédures et de la fonction
MesurePoint - Plusieurs procédures doivent être créées pour
dialoguer avec le composant. - ?? Faire un clic droit sur UserForm1 iciet
sélectionner Code, on se retrouve alors dansla
fenêtre de programme (vide) relative à UserForm1 - ?? Ecrire le code de la procédure
UserForm_InitializePrivate Sub
UserForm_Initialize(). . . à deviner . .
. 'Ouverture du Port COM2. . . à deviner .
. . 'Alimentation de la carte par la ligne
TXD. . . à deviner . . . 'CS"barre" à 1
(repos). . . à deviner . . . 'attente de
20µs (conversion)End Sub - ?? Ecrire le code de la procédure
UserForm_DeactivatePrivate Sub
UserForm_Deactivate(). . . à deviner . .
. 'Fermeture du Port
COMEnd Sub
33- 2- Réalisation du programme "acquisition lente"
(suite) - ? Programmation des procédures et de la fonction
MesurePoint (suite) - ?? Ecrire le code de la fonction MesurePoint qui
sera appelée par la procédure CommandButton1.Click
- Function MesurePoint() As Single
- Lecture 0 'initialisation variable lecture
- . . . à deviner . . . 'CS"barre" à 0
- . . . à deviner . . . 'attente de 2
mirosecondes - Lecture Lecture 128 DSR
'récupération du bit de poids "7" - . . . à deviner . . . 'Clock à 1
- . . . à deviner . . . 'Clock à 0
- . . . à deviner . . . 'récupération du
bit de poids "6" - . . . plusieurs lignes à deviner . . .
'récupération bits de poids "5" à "1" - Lecture Lecture 1 DSR
'récupération du bit de poids "0" - . . . à deviner . . . 'Clock à 1
- . . . à deviner . . . 'CS"barre" à 1
34- 2- Réalisation du programme "acquisition lente"
(suite) - ? Programmation des procédures et de la fonction
MesurePoint (suite et fin) - ?? Ecrire le code de la procédure
CommandButton1_Click - Private Sub CommandButton1_Click()
- intervalle TextBox1.Value 1000 'intervalle
en ms chargé avec TextBox1 - nombrepoints TextBox2.Value 'nombrepoints
chargé avec TextBox2 - Columns("AB").ClearContents 'effacement
cellules - Cells(1, 1) "t (s)" 'affichage de texte
- Cells(1, 2) "Tension (V)" 'affichage de
texte - . . . à deviner . . . 'activation
priorité temporelle - . . . à deviner . . .
'mise à zéro du compteur "ms" - For i 0 To nombrepoints 'boucle de
mesure des N1 points - While TIMEREAD lt i intervalle 'boucle
d'attente entre deux points - Wend
- Cells(i 2, 1) i intervalle /
1000 'affichage temps dans le tableur
35- 2- Réalisation du programme "acquisition lente"
(suite et fin) - ? Connexion de la carte au port série et essai du
programme - ?? Connecter la carte électronique au port série
COM2.Se placer dans le classeur (Alt F11),
désactiver le mode création et tester le
programme avec une source de tension réglable
pour faire varier la tension pendant les
mesures. - ?? Si ça fonctionne (cela serait étonnant du 1
coup), plus rien à faire.... Si ce n'est pas le
cas il faut voir pourquoi ? (encore le TP qui est
mal expliqué ...). - ?? Amélioration de l'aspect Il ne reste plus
qu'à améliorer l'aspect des contrôles (bouton
d'affichage de la fenêtre et contrôles dans la
fenêtre). - Fin de la manipulation sur le programme
"acquisition lente"... Ouf !!!!!
362-4- Programme "acquisition rapide"
- 1- Présentation
- Le programme devra lancer des mesures de façon
automatique avec déclenchement par seuil - ? Réglage de la durée totale de l'acquisition
(choix parmi des valeurs prédéfinies). - ? Choix du nombre de points à mesurer (choix
parmi des valeurs prédéfinies). - Un bouton de commande permettra d'afficher la
fenêtre "Acquisition lente"
37 2-4- Programme "acquisition rapide"
- 2- Réalisation du programme "acquisition rapide"
- ? Préparation du fichier Excel
- Le travail à faire est indiqué par ?.
- Le code à écrire ou déjà écrit est indiqué en
vert et les commentaire sont précédés par le
caractère ' . - Pour basculer entre la feuille Excel et la
fenêtre Visual Basic il faut faire Alt F11. - ?? Rester dans le même fichier Excel "carte
TLC549.xls " , se placer sur la feuille 3, faire
afficher la "boite à outils contrôles" et placer
un "bouton de commande" sur la feuille.Faire un
double clic sur le bouton pour se retrouver dans
la fenêtre VisualBasic. - ?? Le programme relatif au clic sur le bouton
doit être complété et apparaître ainsi Private
Sub CommandButton1_Click()UserForm2.Show 'affich
age de la fenêtreEnd Sub - ?? Il faut maintenant créer la fenêtre UserForm2
en faisant un clic droit dans cette zone et
sélectionner Insersion / UserForm.Revenir dans
Excel et tester l'affichage de la fenêtre en
cliquant sur le bouton (il faut d'abord
désactiver le mode création).
38- 2- Réalisation du programme "acquisition rapide"
(suite) - ? Préparation de la fenêtre UserForm2
- Il faut maintenant ajouter des contrôles à la
fenêtre UserForm2. - ?? Faire un double clic sur UserForm2 icipour
afficher la fenêtre (vide). - ?? Placer les contrôles dans la fenêtre comme
indiquéci-dessous (les textes dans les contrôles
seront ajoutés plus tard)
Intitulé
Zone de texte modifiable
Bouton d'option
Cadre
Cadre
Bouton de commande
39- 2- Réalisation du programme "acquisition rapide"
(suite) - ? Préparation de la fenêtre UserForm2 (suite)
- Il faut maintenant ajouter un nom et un texte
d'affichage aux boutons d'option (à l'intérieur
d'un cadre,un seul bouton d'option pourra être
activé). - ?? Faire un clic droit sur ce bouton d'option et
sélectionner Propriétés. La propriété Name doit
être Duree1m. La propriété Caption doit être
1 ms. - ?? Reprendre le ?? avec les 20 boutons
d'option restants en utilisant le schéma suivant
pour la propriété Caption et en utilisant les
indications du schéma en dessous pour la
propriété Name. Remarque Les textes en bleu
n'apparaissent pas sur le fenêtre, ils sont là à
titre indicatif.
Duree1m
Duree2m
Duree5m
Nombre10
Nombre20
Nombre50
Duree10m
Duree20m
Duree50m
Nombre100
Nombre200
Nombre500
Duree100m
Duree200m
Duree500m
Duree1
Duree2
Duree5
Duree10
Duree20
Duree50
40- 2- Réalisation du programme "acquisition rapide"
(suite) - ? Programmation des procédures et de la fonction
MesurePoint - Les procédures UserForm_Initialize,
UserForm_Deactivateet la fonction MesurePoint
sont identiques à celles programméespour le
programme "acquisition lente". - ?? Faire un clic droit sur UserForm2 iciet
sélectionner Code, on se retrouve alors dansla
fenêtre de programme (vide) relative à UserForm2 - ?? Ecrire le code de la procédure
UserForm_InitializeUtiliser un copier-coller
depuis UserForm1 "acquisition lente". - ?? Ecrire le code de la procédure
UserForm_DeactivateUtiliser un copier-coller
depuis UserForm1 "acquisition lente". - ?? Ecrire le code de la fonction
mesurePoint.Utiliser un copier-coller depuis
UserForm1 "acquisition lente".
41- 2- Réalisation du programme "acquisition rapide"
(suite) - ? Programmation des procédures et de la fonction
MesurePoint (suite) - Il reste maintenant à programmer la procédure
CommanButton1_Click - ?? Ecrire le code de la procédure
CommanButton1_Click avec les indications
ci-dessous - Private Sub BoutonAcquisition_Click()
- ' Test du bouton "durée" sélectionné et
affectation à la variable "durée" (µs) - If Duree1m.Value True Then duree 1000
- . . . . autres lignes à deviner pour les 14
autres boutons d'option relatifs à 'Durée" . .
. . - ' Test du bouton " nombre points" sélectionné et
affectation à la variable "nombre" - If Nombre10.Value True Then nombre 10
- . . . . autres lignes à deviner pour les 5
autres boutons d'option relatifs à "nombre" . .
. . - intervalle CLng(duree / nombre)/1000 'calcul
de l'intervalle en ms - Seuil TextBox1.value 'affectation variable
seuil (déclenchement)
42- 2- Réalisation du programme "acquisition rapide"
(suite) - ? Programmation des procédures et de la fonction
MesurePoint (suite et fin) - Suite du code de la procédure CommanButton1_Click
- For i 0 To nombre 'boucle de mesure
des N1 points - While TIMEREAD lt i intervalle 'attente
entre deux points (compteur ms) - Wend
- tableau(i) MesurePoint 'rangement des
mesures dans un tableau - Next i 'fin de la boucle de mesure des N1
points - . . . à deviner . . . 'désactivation de
la priorité temporelle - Columns("AC").ClearContents 'effacement et
préparation des cellules Excel - Cells(1, 1) "Points"
- Cells(1, 2) "Temps (ms)"
- Cells(1, 3) "Tension (volts)"
- For i 0 To nombre 'remplissage des N1
cellules Excel - Cells(i 3, 1) i
- Cells(i 3, 2) i intervalle / 1000
43- 2- Réalisation du programme "acquisition rapide"
(suite et fin) - ? Connexion de la carte au port série et essai du
programme - ?? Connecter la carte électronique au port série
COM2.Se placer dans le classeur (Alt F11),
désactiver le mode création et tester le
programme avec un GBF en débutant par des
fréquences faibles (insérer un graphe "nuage de
points" pour la visualisation du
signal).Remarque la fréquence
d'échantillonnage maximale du TLC549 est de
40kHz. - ?? Augmenter progressivement la fréquence pour
atteindre les limites du système (durée minimale
et nombre de points maximum).Remarque sur un
"vieux PC" de type AMD Duron 700Mhz, on arrive à
une durée de 10ms avec 50 points mesurés
(échantillonnage max 5kHz). - ?? Amélioration de l'aspect Il ne reste plus
qu'à améliorer l'aspect des contrôles (bouton
d'affichage de la fenêtre et contrôles dans la
fenêtre). - ?? Amélioration de la rapidité Pour augmenter
la rapidité de l'application et s'approcher des
performances du TLC549, il faut écrire le
programme en "C" ou en "Delphi" par exemple ...
à suivre ... - Fin de la manipulation sur le programme
"acquisition rapide"... Ouf !!!!!
443. Utilisation du système complet d'acquisition
- 3. 1. Présentation de la carte.
- 2. 2. Mesure de température avec une simple
diode comme capteur. - 2. 3. Mesure de température avec un LM335.
453.1. Présentation de la carte
- 1- Description générale des fonctions
- Le schéma ci-dessous illustre l'ensemble des
fonctions présentes dans une chaîne de mesure
informatisée
Fonction 1.1
Alimentationen tension
Fonction 2
Fonction 3
Fonction 4
Fonction 5
Fonction 6
Capteur
Suiveurdifférentiel
Soustracteur
Amplificateuravec décalagedu zéro
CAN TLC549 liaisonport série
Fonction 1.2
Alimentationen courant
Sortie différentielle(2 tensions)
15V
-15V
0V
Réglageamplification
Cavaliersde liaisondes fonctions
Capteurquadripôle
Réglagetension
Sélection alim.Tensionou courant
Capteurdipôle
Réglagedécalage
Réglagecourant
Réglage VrefCAN
Bornes noires masse (0V)
463.1. Présentation de la carte
- 2- Fonction 1.1 Alimentation en tension
- Cette fonction assure l'alimentation en tension
du capteur.C'est une source de tension réglable
de 2V à 14V en agissant sur le potentiomètre
(ajustable multitour).
valim
Réglage tension2V lt valim lt 14V
Masse
473.1. Présentation de la carte
- 2- Fonction 1.1 Alimentation en tension (suite
et fin) - Le schéma électronique de l'alimentation en
tension est représenté ci-dessous
483.1. Présentation de la carte
- 3- Fonction 1.2 Alimentation en courant
- Cette fonction assure l'alimentation en courant
des capteurs de type "dipôle".C'est une source
de courant constant réglable de 0,1mA à 10mA en
agissant sur le potentiomètre (ajustable
multitour).
Ialim
Réglage courant0,1mA lt Ialim lt 10mA
Masse
493.1. Présentation de la carte
- 3- Fonction 1.2 Alimentation en courant (suite
et fin) - Le schéma électronique de l'alimentation en
courant est représenté ci-dessous
503.1. Présentation de la carte
- 4- Fonction 2 Capteur
- Cette fonction assure la transformation
"intensité du phénomène Physique" ?
"tension".Deux familles de capteurs peuvent être
connectés sur la platine (schémas ci-dessous)
? Emplacement pour capteur de type
"quadripôle" (alimentation en tension)
? Emplacement pour capteur de type "dipôle"
(alimentation en courant)
Valim
Ialim
Vscapteur
Masse
Vs-capteur
Masse
513.1. Présentation de la carte
- 5- Fonction 3 Suiveur différentiel
- Cette fonction assure l'adaptation d'impédance
entre le capteur et le soustracteur (impédance
d'entrée infinie et impédance de sortie
nulle).Il s'agit de deux suiveurs
indépendants.L'inverseur en amont permet de
sélectionner le capteur (quadripôle ou dipôle).
Ve
Vs
Inverseur(en position quadripôle)
Cavalier de connexionou d'isolation des fonctions
Ve-
Vs-
Masse
Masse
523.1. Présentation de la carte
- 5- Fonction 3 Suiveur différentiel (suite et
fin) - Le schéma électronique du suiveur différentiel
est représenté ci-dessous
533.1. Présentation de la carte
- 6- Fonction 4 Soustracteur
- Cette fonction réalise la soustraction (Vs -
Vs-) des tensions en sortie du suiveur.
Ve
Vs
Ve-
Masse
Masse
543.1. Présentation de la carte
- 6- Fonction 4 Soustracteur (suite et fin)
- Le schéma électronique du soustracteur est
représenté ci-dessous
553.1. Présentation de la carte
- 7- Fonction 5 Décalage et amplification
- Cette fonction réalise d'abord un décalage
réglable de la tension en sortie du soustracteur
puis une amplification réglable.Le décalage
consiste à ajouter une tension ajustable entre
-15V et 15V par potentiomètre.L'amplificationes
t réglable de 0,5 à 10 ou de 5 à 100 (sélection
par cavaliers et réglage par potentiomètre).
Ve
Vs
Cavalier "x100"
Cavalier "x10"
Réglage de l'amplificationde ?0,5 à ?10ou de
?5 à ?100
Réglage du décalagede -15V à 15V
Cavalier de sélection décalage réglable
(haut)ou décalage 0 (bas)
Masse
Masse
563.1. Présentation de la carte
- 7- Fonction 5 Décalage et amplification (suite
et fin) - Le schéma électronique de la fonction "décalage
amplificateur" est représenté ci-dessous
573.1. Présentation de la carte
- 7- Fonction 6 CAN 8 bits à sortie série RS232
- Cette fonction réalise la conversion analogique
numérique de la tension en sortie de
l'amplificateur avec transmission de la
conversion (8 bits) à un outil informatique via
le port série RS232.Un bouton poussoir relié à
l'entrée "DCD" permet, entre autre, de stopper
une acquisition (à prévoir dans le programme).
Bouton poussoir relié à "DCD"pour interruption
matérielle de l'acquisition
Ve
Sortie par câble RS232Sub D9 mâle femelle(non
croisé)
Réglage précis dela tension Vref du CAN
Masse
583.1. Présentation de la carte (fin)
- 7- Fonction 6 CAN 8 bits à sortie série RS232
(suit et fin) - Le schéma électronique de la fonction "CAN 8
bits" est représenté ci-dessous