carte acquisition TLC549

publicité
Stage
“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 )
Utilisation 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)
Mini-carte d’acquisition
autoalimentée par le port série RS232
(version 2003)
Système complet d’acquisition
pilotable par le port série RS232
(version 2004)
Programme "voltmètre"
Objectifs 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 d’acquisition
(version 2003).
3- Utilisation du système complet d'acquisition
pour mesurer des températures avec une
simple diode mais aussi avec un LM335.
Dé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 d’une 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.
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 :
1.1. Utilisation de Visual Basic (VBA)
2- Remplir des cellules directement depuis VBA
Il faut tout d’abord 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 suivant:
Cells(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
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 de
fréquence déterminée.
 Modifier le code relatif à Sub sinusoide() de la façon suivante :
Sub sinusoide()
'début et nom du programme
Cells(1, 1)="t (ms)"
Cells(1, 2)= "sinus (volt)"
'préparation du tableau
pi = 3.14159
tmax = 0.001
amplitude = 5
frequence = 2000
'définition des constantes
For n = 0 To 100
t = tmax / 100 * n
Cells(n + 2 , 1) = t * 1000
sinus = amplitude * Sin(2* pi * frequence * t)
Cells(n + 2, 2) = sinus
Next n
'debut de la boucle des 101 points
'découpage du temps entre 0 et tmax
'affichage du temps
'création et affectation de la variable sinus
'affichage des valeurs de la variable sinus
'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
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 d’outils / 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 à l’inté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.





Partie du
programme
modifiée
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 d’entrée du port série ( tension < 1V  0 logique et tension > 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 suivantes
proposé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.
1- Pourquoi utiliser une DLL ? (suite et fin)




TIMEINIT
TIMEREAD
Mise à zéro et démarrage du compteur des millisecondes.
Lecture du compteur des millisecondes.
Exemple 1 :
While TIMEREAD < 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 < n*100
Wend
Cells ( 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.
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
Declare
Declare
Declare
Declare
Declare
Declare
Declare
Declare
Declare
Declare
Declare
Declare
Declare
Declare
Declare
Function OPENCOM Lib "Port" (ByVal A$) As Integer
Sub CLOSECOM Lib "Port" ()
Sub DTR Lib "Port" (ByVal b%)
Sub RTS Lib "Port" (ByVal b%)
Sub TXD Lib "Port" (ByVal b%)
Function CTS Lib "Port" () As Integer
Function DSR Lib "Port" () As Integer
Function RI Lib "Port" () As Integer
Function DCD Lib "Port" () As Integer
Sub DELAY Lib "Port" (ByVal b%)
Sub TIMEINIT Lib "Port" ()
Sub TIMEINITUS Lib "Port" ()
Function TIMEREAD Lib "Port" () As Long
Function TIMEREADUS Lib "Port" () As Long
Sub DELAYUS Lib "Port" (ByVal l As Long)
Sub REALTIME Lib "Port" (ByVal i As Boolean)
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
Remarque : La DLL contient aussi d'autres fonctions ( carte son, port de jeux …).
3- Réalisation d'un programme de feux tricolores (suite)
Revenir au classeur Excel (Alt+F11) et faire Affichage / Barre d'outils / boite à outils Contrôles.
Placer le Bouton de commande et la Barre de défilement (min=1 et max=10) comme indiqué cidessous (les autres composants ne sont que des "dessins"):
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")
RTS 1
DTR 0
TXD 0
tempo = ScrollBar1.Value * 100
TIMEINIT
For n = 1 To 5
While TIMEREAD < (10 * n - 5) * tempo
Wend
RTS 0
DTR 0
TXD 1
While TIMEREAD < (10 * n - 1) * tempo
Wend
RTS 0
DTR 1
TXD 0
While TIMEREAD < (10 * n) * tempo
Wend
RTS 1
DTR 0
TXD 0
Next n
CLOSECOM
End Sub
'Initialisation port com
'allumage du rouge
'tempo en 10° de secondes -> ms
'5 cycles d'allumage des feux tricolores
'attente 5*tempo
'vert
'attente 4*tempo
'orange
'attente 1*tempo
'rouge
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.
2. 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".
2.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 REFANALOG IN
VCC et GND

I/O CLOCK

DATA OUT
CS
:
:
:
:
tensions de référence du CAN;
entrée analogique (mesure);
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;
: 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;
: sortie numérique "bit par bit".
La figure ci-contre résume le protocole de communication :
2.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 à CS;
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 :
5
La relation est donc : Ve =
N(10)
255
Ve
N(10)
REF-
0
REF+
255
2.1. Présentation de la carte
4- Schéma du montage
2.1. Présentation de la carte
5- Typon + implantation
2-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)
2-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
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
. . . à deviner . . .
. . . à deviner . . .
CommandButton1.Enabled = True
ToggleButton1.Caption = "Désactiver Port COM"
ToggleButton1.BackColor = &HFF&
'***** Test Bouton "enfoncé" *****
'Ouverture du Port COM2
'Alimentation carte par TXD
'Activation du Bouton de mesure
'Changement texte dans bouton
'Changement couleur de bouton
Else
'***** Test Bouton "tiré" ******
'Fermeture du Port COM
'Désactivation du Bouton de mesure
'Changement texte dans bouton
'Changement couleur de bouton
'effacement voltmètre
'fin du test
. . . à deviner . . .
CommandButton1.Enabled = False
ToggleButton1.Caption = "Activer Port COM"
ToggleButton1.BackColor = &HC000&
Label1.Caption = ""
End If
End Sub
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
. . . à deviner . . .
. . . à deviner . . .
. . . à deviner . . .
. . . à deviner . . .
. . . à deviner . . .
Lecture = Lecture + 128 * DSR
. . . à deviner . . .
. . . à deviner . . .
. . . à deviner . . .
. . . plusieurs lignes à deviner . . .
Lecture = Lecture + 1 * DSR
. . . à deviner . . .
. . . à deviner . . .
Mesure = Lecture * . . . à deviner . . .
Label1.Caption = Format(Mesure, "0.000") & " volts"
ActiveCell.Value = Mesure
ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
End Sub
'initialisation variable lecture
'priorité temporelle maximum
'CS"barre" à 1
'attente de 20 microsecondes
'CS"barre" à 0
'attente de 2 mirosecondes
'récupération du bit de poids "7"
'Clock à 1
'Clock à 0
'récupération du bit de poids "6"
'récupération bits de poids "5" à "1"
'récupération du bit de poids "0"
'Clock à 1
'fin de la priorité temporelle maximum
'Transformation Nombre -> Tension
'affichage mesure dans Label1
'Affectation mesure cellule active
'décalage cellule active vers le bas
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".
2-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" :
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
'affichage de la fenêtre
End 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).
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 ici
pour 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
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 ici
et sélectionner Code, on se retrouve alors dans
la fenêtre de programme (vide) relative à UserForm1
 Ecrire le code de la procédure UserForm_Initialize
Private Sub UserForm_Initialize()
.
.
.
.
.
.
.
.
.
.
.
.
à
à
à
à
deviner
deviner
deviner
deviner
.
.
.
.
.
.
.
.
.
.
.
.
'Ouverture du Port COM2
'Alimentation de la carte par la ligne TXD
'CS"barre" à 1 (repos)
'attente de 20µs (conversion)
End Sub
 Ecrire le code de la procédure UserForm_Deactivate
Private Sub UserForm_Deactivate()
. . . à deviner . . .
End Sub
'Fermeture du Port COM
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
. . . à deviner . . .
. . . à deviner . . .
Lecture = Lecture + 128 * DSR
. . . à deviner . . .
. . . à deviner . . .
. . . à deviner . . .
. . . plusieurs lignes à deviner . . .
Lecture = Lecture + 1 * DSR
. . . à deviner . . .
. . . à deviner . . .
. . . à deviner . . .
MesurePoint = Lecture * 5 / 255
End Function
'initialisation variable lecture
'CS"barre" à 0
'attente de 2 mirosecondes
'récupération du bit de poids "7"
'Clock à 1
'Clock à 0
'récupération du bit de poids "6"
'récupération bits de poids "5" à "1"
'récupération du bit de poids "0"
'Clock à 1
'CS"barre" à 1
'attente de 20 µs
'Affectation du résultat à la fonction MesurePoint
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
nombrepoints = TextBox2.Value
Columns("A:B").ClearContents
Cells(1, 1) = "t (s)"
Cells(1, 2) = "Tension (V)"
. . . à deviner . . .
. . . à deviner . . .
For i = 0 To nombrepoints
While TIMEREAD <= i * intervalle
Wend
Cells(i + 2, 1) = i * intervalle / 1000
Cells(i + 2, 2) = MesurePoint
Next i
. . . à deviner . . .
UserForm1.Hide
End Sub
'intervalle en ms chargé avec TextBox1
'nombrepoints chargé avec TextBox2
'effacement cellules
'affichage de texte
'affichage de texte
'activation priorité temporelle
'mise à zéro du compteur "ms"
'boucle de mesure des N+1 points
'boucle d'attente entre deux points
'affichage temps dans le tableur
'affichage du résultat de la fonction
'MesurePoint dans le tableur
'fin de la boucle des N+1 points
'désactivation priorité temporelle
'effacement de la fenêtre
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 !!!!!
2-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" :
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
'affichage de la fenêtre
End 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).
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 ici
pour 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
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
Duree10m
Duree20m Duree50m Nombre100 Nombre200 Nombre500
Duree100m Duree200mDuree500m
Duree1
Nombre10 Nombre20 Nombre50
Duree2
Duree5
Duree10 Duree20 Duree50
2- Réalisation du programme "acquisition rapide" (suite)

Programmation des procédures et de la fonction MesurePoint
Les procédures UserForm_Initialize, UserForm_Deactivate
et la fonction MesurePoint sont identiques à celles programmées
pour le programme "acquisition lente".
 Faire un clic droit sur UserForm2 ici
et sélectionner Code, on se retrouve alors dans
la fenêtre de programme (vide) relative à UserForm2
 Ecrire le code de la procédure UserForm_Initialize
Utiliser un copier-coller depuis UserForm1 "acquisition lente".
 Ecrire le code de la procédure UserForm_Deactivate
Utiliser un copier-coller depuis UserForm1 "acquisition lente".
 Ecrire le code de la fonction mesurePoint.
Utiliser un copier-coller depuis UserForm1 "acquisition lente".
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
Seuil = TextBox1.value
Dim tableau(501) As Single
. . . à deviner . . .
While MesurePoint <= seuil
Wend
. . . à deviner . . .
Suite du programme à la diapo suivante ...
'calcul de l'intervalle en ms
'affectation variable seuil (déclenchement)
'déclaration du tableau
'priorité temporelle maximum
'Attente déclenchement test fonction "MesurePoint"
'mise à zéro du compteur des ms
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 N+1 points
While TIMEREAD <= 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 N+1 points
. . . à deviner . . .
'désactivation de la priorité temporelle
Columns("A:C").ClearContents
Cells(1, 1) = "Points"
Cells(1, 2) = "Temps (ms)"
Cells(1, 3) = "Tension (volts)"
'effacement et préparation des cellules Excel
For i = 0 To nombre
Cells(i + 3, 1) = i
Cells(i + 3, 2) = i * intervalle / 1000
Cells(i + 3, 3) = tableau(i)
Next i
'remplissage des N+1 cellules Excel
UserForm2.Hide
'fermeture fenêtre pour libérer le tableur
End Sub
'fin de la procédure CommandButton1_Click
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 !!!!!
3. 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.
3.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
Alimentation
en tension
Fonction 2
Fonction 3
Fonction 4
Fonction 1.2
Capteur
Suiveur
différentiel
Soustracteur
Alimentation
en courant
Sortie différentielle -15V
(2 tensions)
Réglage
tension
Réglage
courant
+0V
Fonction 6
CAN TLC549
+ liaison
port série
+15V
Réglage
amplification
Capteur Cavaliers
quadripôle de liaison
des fonctions
Capteur
dipôle
Fonction 5
Amplificateur
avec décalage
du zéro
Sélection alim.
Tension
ou courant
Bornes noires : masse (0V)
Réglage
décalage
Réglage Vref
CAN
3.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 tension
2V < valim < 14V
Masse
3.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 :
3.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 courant
0,1mA < Ialim < 10mA
Masse
3.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 :
3.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
Vs+capteur
Ialim
Masse
Vs-capteur
Masse
3.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).
Inverseur
(en position quadripôle)
Cavalier de connexion
ou d'isolation des fonctions
Ve+
Vs+
Ve-
Vs-
Masse
Masse
3.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 :
3.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
VeMasse
Masse
3.1. Présentation de la carte
6- Fonction 4 : Soustracteur (suite et fin)
Le schéma électronique du soustracteur est représenté ci-dessous :
3.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'amplification
est réglable de 0,5 à 10 ou de 5 à 100 (sélection par cavaliers et réglage par potentiomètre).
Ve
Cavalier "x100"
Cavalier "x10"
Réglage du décalage
de -15V à +15V
Masse
Vs
Réglage de l'amplification
de 0,5 à 10
ou de 5 à 100
Cavalier de sélection :
décalage réglable (haut)
ou décalage = 0 (bas)
Masse
3.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 :
3.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).
Ve
Réglage précis de
la tension Vref
du CAN
Masse
Bouton poussoir relié
à "DCD"
pour interruption matérielle
de l'acquisition
Sortie par câble RS232
Sub D9 mâle femelle
(non croisé)
3.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 :
Téléchargement