Stage - PowerPoint PPT Presentation

About This Presentation
Title:

Stage

Description:

Title: Capteurs et potentiom tre commande num rique Author: Christian BISSIERES Last modified by: Devine Created Date: 2/29/2004 8:56:26 AM Document presentation ... – PowerPoint PPT presentation

Number of Views:89
Avg rating:3.0/5.0
Slides: 82
Provided by: Christia351
Category:
Tags: avoir | present | stage

less

Transcript and Presenter's Notes

Title: Stage


1
Stage
Composants électroniquesmodernes
  • Lycée Joffre Montpellier ( 5 et 12 janvier
    2005 )
  • Lycée Clos Banet Perpignan ( 16 et 23 mars
    2005 )

Animateur Christian BISSIERES ( Professeur de
Physique Appliquée )Responsable pédagogique
Jean-Claude REBEYROLE ( IA IPR )
2
Mise en œuvre de capteurs de température à sortie
numérique directe.
Programme du stage
Utilisation d'un potentiomètre à commande
numérique.
3
Le capteur "2 wire" DS 1621relié au port
série.( pilotage avec Excel )
4
Le fichier Excel relatif à la mesure de
température
5
Le capteur "1 wire" DS 1820relié au port série.
6
Le logiciel fournit avec le capteur
DS1820(lecture de la température)
7
Le capteur autonome"1 wire"DS 1921.
8
Le logiciel fournit avec le capteur
DS19B21(programmation d'une acquisition
automatique et autonome)
9
Le potentiomètre numériqueDS 1803 relié au port
série.
10
Le programme autonome de pilotage du
potentiomètre réalisé avec DELPHI
11
Déroulement du stage
1. Utilisation du port série RS 232 pour
communiquer avec les composants
  • 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.

12
2. Les capteurs numériques de température
  • 2. 1. Présentation générale des capteurs à
    sortie numérique directe.
  • 2. 2. Mise en œuvre du capteur "2 wire"
    DS1621et pilotage avec Excel.
  • 2. 3. Mise en oeuvre du capteur "1 wire" DS1820
    avec logiciel spécialisé.
  • 2. 4. Mise en oeuvre du capteurs autonôme "1
    wire" DS1921 avec logiciel spécialisé.

13
3. Le potentiomètre numérique
  • 3. 1. Présentation générale des potentiomètres
    numériques.
  • 3. 2. Mise en œuvre du potentiomètre numérique
    DS1803 avec Excel.
  • 3. 3. Réalisation d'une application Windows avec
    Delphi pour piloter le potentiomètre.

14
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

15
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
16
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

17
  • 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.

18
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.

19
  • 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.

20
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" ()

21
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
22
  • 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 comme indiqué ci-dessous (les autres
    composants ne sont que des "dessins")

Barre de défilement
Bouton de commande
23
  • 3- Réalisation d'un programme de feux tricolores
    (suite et fin)
  • ?? 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
  • ?? Revenir à Excel, désactiver le mode création,
    brancher la maquette et tester le programme.

24
2. 1. Les capteurs de température numériques
  • Généralités
  • La mesure moderne de température se fait à l'aide
    de capteurs à sortie numérique directe.
  • La transmission de données numériques est fiable
    car peu sensible aux parasites.
  • Le capteur donne sa mesure sous forme d'un nombre
    binaire transmis en série. Il faut donc respecter
    le protocole de communication avec le composant
    pour récupérer la mesure avec du matériel
    numérique (ordinateur ou microcontrôleur).
  • Le montage électronique autour du composant est
    en général très réduit (schéma ci-dessous)

Capteur Dallas DS820 relié à une ligned'un
microcontrôleur
Capteur Dallas DS1621 relié au port série
25
2. 2. Le capteur "2 wire" DS1621
  • 1- Description
  • Les caractéristiques générales de ce capteur sont
    les suivantes
  • ? Boîtier DIL 08 ( 4 et 8 alimentation 1 et 2
    communication 5, 6 et 7 adresse physique
    et 3 thermostat )
  • ? Plage de mesure de -55C à 125C avec une
    précision de 0,5C (1 mesure par seconde).
  • ? Protocole de communication sur 2 fils (2 wire)
    nommé protocole I2C.
  • ? Format de mesure de température sur 9 bits.
  • ? Possibilité de brancher 8 capteurs
    simultanément.

26
2. 2. Le capteur "2 wire" DS1621
  • 1- Description (suite et fin)
  • Les capteur transmet la mesure à l'aide de 2
    octets
  • ? Seul le bit de poids fort du premier octet
    contient une information (1/2C)
  • ? Le deuxième octet représente la mesure en C
    entiers (si négatif complément à 2).
  • Le tableau ci-dessous donne quelques exemples de
    conversion.

27
2. 2. Le capteur "2 wire" DS1621
  • 2- Liaison au port série RS232
  • Le capteur DS1621 sera connecté au port série du
    PC ce qui permettra de dialoguer avec le capteur
    mais aussi de l'alimenter.
  • Le Schéma ci-dessous détaille le branchement de 2
    capteurs DS1621 sur le port série RS232
  • ? La ligne de sortie TXD sera reliée à l'entrée
    du régulateur 5V (alimentation du capteur).
  • ? La ligne de sortie RTS sera reliée à l'horloge
    SCL.
  • ? La ligne de sortie DTR sera reliée à SDA pour
    l'envoi de données.
  • ? La ligne d'entrée CTS sera reliée à SDA pour la
    réception de données.

Régulateur
Capteur 1d'adresse "000"
Capteur 2d'adresse "001"
Diodes zener 5,1V(11V ? 5V et -11V ? 0V)
28
2. 2. Le capteur "2 wire" DS1621
  • 2- Liaison au port série RS232 (schéma)

29
2. 2. Le capteur "2 wire" DS1621
  • 2- Liaison au port série RS232 (implantation)

30
2. 2. Le capteur "2 wire" DS1621
  • 2- Liaison au port série RS232 (suite et fin)
  • L'image ci-dessous représente la carte
    électronique de liaison du capteur avec le port
    série RS232.
  • On repère facilement le capteur fixe (capteur 1)
    et le capteur déporté (capteur 2).
  • Les deux capteurs sont connectés sur les mêmes
    lignes SCL-SDA.

Capteur 1 (fixe)
Capteur 2 (déporté)
31
2. 2. Le capteur "2 wire" DS1621
  • 3- Pilotage directement avec Excel
    (présentation)
  • Classeur Excel en "attente" de paramétrage de
    l'acquisition

Bouton d'affichagede la fenêtre de paramétrage
desmesures
32
2. 2. Le capteur "2 wire" DS1621
  • 3- Pilotage directement avec Excel
    (présentation)
  • Affichage de la fenêtre de réglages et saisie des
    paramètres

Zones de saisiede paramètres
Bouton de départdes mesures
33
2. 2. Le capteur "2 wire" DS1621
  • 3- Pilotage directement avec Excel
    (présentation)
  • Acquisition terminée

Tableau rempliautomatiquement
Attente d'unenouvelle acquisition
Graphe relatifaux mesures
34
2. 2. Le capteur "2 wire" DS1621
  • 4- Présentation du protocole I2C
  • L'objectif de ce stage n'étant pas l'étude
    détaillée du protocole I2C, nous nous limiterons
    aux seules commandes utiles pour dialoguer avec
    le composant.
  • Nous allons devoir envoyer des commandes au
    capteur mais aussi lire les données venant du
    capteur.
  • ? L'électricité du bus I2C
  • Le bus I2C comprend deux "fils", un pour
    l'horloge SCL et un pour la transmission des
    données SDA.
  • Dans notre cas, le maître (l'ordinateur) génère
    le signal d'horloge et envoie un ou plusieurs
    octets vers l'esclave (capteur). Ensuite
    l'esclave transmet un ou plusieurs octets vers le
    maître qui génère toujours l'horloge.

35
2. 2. Le capteur "2 wire" DS1621
  • 4- Présentation du protocole I2C (suite)
  • ? Exemple d'écriture d'un octet
  • Au repos, les lignes du bus sont au niveau "1"
    soit 5V.
  • Le maître signale le début de la transmission par
    une condition de départ (start) SCL doit être à
    "1" et SDA passe de "1" à "0", ensuite SCL passe
    à "0".
  • Ensuite, le maître place le bit de poids fort de
    l'octet sur SDA ("0" ou "1") et force SCL à "1"
    puis replace SCL à "0" (la donnée doit être
    stable tant que SCL est à "1").
  • De la même manière, le maître place les 7 autres
    bits de l'octet.
  • Après avoir transmis le dernier bit, le maître
    replace SDA à "1" et l'esclave accuse réception
    de l'octet en forçant SDA à 0. Le maître place
    SCL à "1" puis à "0" pour lire ce bit nommé
    "ACKnowlage" (ce neuvième coup d'horloge avec
    lecture ou non du bit ACK est obligatoire).
  • Le maître signale la fin de la transmission par
    une condition d'arrêt (stop) SCL passe à "1" et
    SDA passe de "0" à "1", la ligne se retrouve
    ainsi au repos.
  • Le chronogramme ci-dessous résume l'écriture d'un
    octet avec le neuvième bit ACK.

36
2. 2. Le capteur "2 wire" DS1621
  • 4- Présentation du protocole I2C (suite)
  • ? Exemple d'écriture d'une donnée
  • Pour écrire un ou plusieurs octets dans
    l'esclave, il faut respecter le protocole suivant
  • ? Le maître transmet l'octet d'adresse de
    l'esclave (octet dont le bit de poids faible est
    "0" pour une écriture) puis attend la
    confirmation ACK (9 coup d'horloge).
  • ? Le maître transmet le premier octet avec
    attente confirmation ACK. Les éventuels autres
    octets seront transmis à la suite.
  • Le chronogramme ci-dessous résume la procédure
    d'écriture d'une donnée (un octet)

37
2. 2. Le capteur "2 wire" DS1621
  • 4- Présentation du protocole I2C (suite)
  • ? Exemple de lecture d'une donnée
  • La lecture d'un ou plusieurs octets émis par
    l'esclave se fait de la manière suivante
  • ? Le maître transmet l'octet d'adresse de
    l'esclave (octet dont le bit de poids faible est
    "1" pour une lecture) puis attend la
    confirmation ACK (9 coup d'horloge).
  • ? L'esclave place l'octet à transmettre en
    maintenant les "bits" stables durant le niveau
    haut de l'horloge SCL cadencée par le maître.
  • ? Pour recevoir d'autres octets, c'est maintenant
    au maître d'accuser la réception du 1 en mettant
    SDA à "0" lors du niveau haut de SCL.
  • ? Si le maître ne veut pas lire d'autres octets,
    il met SDA à "1" lors du niveau haut de SCL puis
    place la condition d'arrêt.
  • Le chronogramme ci-dessous illustre la procédure
    de lecture d'une donnée (un octet)

38
2. 2. Le capteur "2 wire" DS1621
  • 5- Pilotage directement avec Excel
  • ? Utilisation de fonctions I2C déjà programmées
  • Pour le protocole I2C, nous allons utiliser des
    fonctions "préprogrammées" qui se trouvent dans
    le module I2C_RS232.bas qu'il faudra importer.
    Examinons ces fonctions ? I2CInit Sub
    I2CInit()
  • RTS 1 'SCL 1 (ligne SCL au
    repos) DTR 1 'SDA 1 (ligne SDA au
    repos) End Sub ? Depart Sub Depart() RTS 1
    ' SCL 1 (mise au repos du bus, au cas
    où ...) DTR 1 ' SDA 1 DTR 0
    ' SDA 0 (passage de "1" vers "0" et RTS
    reste à 1) End Sub
  • ? Arret Sub Arret() RTS 1 ' SCL
    0 DTR 0 ' SDA 0 DTR 1
    ' SDA 1 (passage de "0" vers "1" et RTS
    reste à 1) End Sub

39
  • ? Utilisation de fonctions I2C déjà programmées
    (suite)
  • ? SortieFunction Sortie(Valeur As Byte) As
    Boolean
  • Sortie True '
    Initialisation de l'erreur de transmission
  • ValeurBit 128 '
    traitement du bit de poid fort en 1
  • RTS 0
  • For n 1 To 8
  • If (Valeur And ValeurBit) ValeurBit Then
    ' masque de sélection des bits
  • DTR 1 ' SDA1
    transmission d'un "1"
  • Else
  • DTR 0 ' SDA0
    transmission d'un "0"
  • End If
  • RTS 1 ' SCL1
  • DELAYUS 10 '
    temporisation 10µs
  • RTS 0 ' SCL0
  • DELAYUS 10 '
    temporisation 10µs
  • ValeurBit ValeurBit \ 2 ' passage
    au bit de rang inférieur
  • Next n
  • DTR 1 ' SDA1
  • RTS 1 ' SCL1

40
  • ? Utilisation de fonctions I2C déjà programmées
    (suite)
  • ? LectureFunction Lecture() As Byte
  • DTR 1 '
    SDA"1"
  • ValeurBit 128 '
    traitement du bit de poids fort en 1
  • Valeur 0 '
    initialisation variable Valeur
  • For n 1 To 8
  • RTS 1 '
    SCL"1"
  • DELAYUS 10 '
    temporisation 10µs
  • Valeur Valeur ValeurBit CTS '
    lecture CTS transmis par l'esclave
  • RTS 0 '
    SCL"0"
  • DELAYUS 10 '
    temporisation 10µs
  • ValeurBit ValeurBit \ 2 '
    passage au bit de rang inférieur
  • Next n
  • Lecture Valeur '
    affectation de l'octet reçu à la fonction
  • ' SCL reste à "0"
  • End Function

41
  • ? Utilisation de fonctions I2C déjà programmées
    (suite)
  • ? Confirmer (attente d'un autre octet)Sub
    Confirmer()
  • DTR 0 ' SDA "0"
  • RTS 1 ' SCL "1"
  • DELAYUS 10 ' Attente 10µs
  • RTS 0 ' SCL 0
  • End Sub
  • ? Sans Confirmer (pas d'autre octet à lire)Sub
    SansConfirmer()
  • DTR 1 ' SDA "1"
  • RTS 1 ' SCL 1
  • DELAYUS 10 ' Attente 10µs
  • RTS 0 ' SCL 0
  • DTR 0 ' préparation condition d'arrêt
  • RTS 1 ' préparation condition d'arrêt

42
2. 2. Le capteur "2 wire" DS1621
  • 5- Pilotage directement avec Excel (suite)
  • ? Commandes pour la communication avec le capteur
  • Pour communiquer avec le capteur, il faut
    utiliser les commandes suivantes
  • ? Adressage des capteurs en écriture (dernier
    bit à "0") Sortie (H90) ' capteur 1 Sortie
    (H92) ' capteur 2 ? Adressage des capteurs en
    lecture (dernier bit à "1") Sortie (H91) '
    capteur 1 Sortie (H93) ' capteur
    2 ? Registre de configuration Sortie (HAC) '
    écriture dans le registre de configuration
  • Sortie (H02) ' conversion en continu
  • ? Début des conversions Sortie (HEE) '
    Demande de conversions
  • ? Demande lecture Sortie (HAA) ' demande de
    lecture d'une mesure

43
2. 2. Le capteur "2 wire" DS1621
  • 5- Pilotage directement avec Excel (suite)
  • ? 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.
  • ?? Ouvrir un nouveau fichier Excel , 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).
  • ?? Revenir dans Visual Basic et importer les deux
    fichiers( port_dll.bas et I2C_RS232.bas ) depuis
    le dossierrelatif au stage en faisant un clic
    droit dans cette zoneet en sélectionnant
    Importer un fichier ...

44
2. 2. Le capteur "2 wire" DS1621
  • 5- Pilotage directement avec Excel (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)

Intitulé (affichage de texte uniquement)
Zone de texte (texte modifiable par l'utilisateur)
en 1
en 2
Bouton de commande (sélection du ou des capteurs)
A placer en 1
en 2
en 3
45
2. 2. Le capteur "2 wire" DS1621
  • 5- Pilotage directement avec Excel (suite)
  • ? Programmation des fonctions
  • Plusieurs fonctions 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
    Capteur1InitSub Capteur1Init()REALTIME
    True 'activation priorité temporelleDepart Sort
    ie (H90) 'adresse capteur1
    écriture Sortie (HAC) 'écriture dans
    registre de configuration Sortie (H2)
    'conversions en continueDepart Sortie (H90)
    'adresse capteur1 écriture Sortie (HEE)
    'commande de début des conversionsArretRE
    ALTIME FalseEnd Sub

46
2. 2. Le capteur "2 wire" DS1621
  • 5- ? Programmation des fonctions (suite)
  • ?? Ecrire, à la suite et de la même manière, le
    code de la procédure Capteur2InitSub
    Capteur2Init()......................... 'activat
    ion priorité temporelle.........................
    ......................... 'adresse capteur2
    écriture ......................... 'écriture
    dans registre de configuration ..................
    ....... 'conversions en continue.................
    ........ ......................... 'adresse
    capteur2 écriture ......................... 'c
    ommande de début des conversions.................
    ........ ......................... End Sub
  • ?? On peut maintenant écrire le code de la
    procédure qui va se déclencher dès l'activation
    de la fenêtrePrivate Sub UserForm_Activate()OPEN
    COM ("COM2,9600,N,8,1") ' ouverture du
    port COMTXD 1
    ' alimentation de la carteDELAY
    100I2CInit ' initialisation (mise au repos des
    lignes)Capteur1Init
    ' configuration capteur1Capteur2Init
    ' configuration
    capteur2End Sub

47
2. 2. Le capteur "2 wire" DS1621
  • 5- ? Programmation des fonctions (suite)
  • ?? Code relatif à la fermeture de la
    fenêtrePrivate Sub UserForm_Deactivate()CLOSECOM
    ' fermeture de l'accès au port série après
    utilisationEnd Sub
  • ?? Création de la fonction MesureCapteur1
    Function MesureCapteur1() As SingleREALTIME
    TrueDepart
    ' début transmission Sortie (H90) '
    sélection capteur1 en écriture Sortie (HAA)
    ' demande lecture
    mesureDepart
    ' début transmission Sortie (H91)
    ' sélection capteur1 en
    lecture OctetPoidFort Lecture '
    lecture 1 octet de mesure Confirmer
    ' confirmation
    réception OctetPoidFaible Lecture '
    lecture 2 octet de mesure SansConfirmer
    ' pas d'autre octet à
    lireArret
    ' fin transmissionREALTIME Falsemesure
    OctetPoidFort (OctetPoidFaible / 256)
    'récupération mesureMesureCapteur1
    CDec(mesure) ' transformation au format
    décimal et affectation mesure
  • End Function

48
2. 2. Le capteur "2 wire" DS1621
  • 5- ? Programmation des fonctions (suite et fin)
  • ?? Création de la fonction MesureCapteur2
    Function MesureCapteur2() As Single............
    ............. .........................
    ' début transmission ..........
    ............... ' sélection capteur2 en
    écriture ......................... ' demande
    lecture mesure.........................
    ' début transmission ........
    ................. ' sélection capteur2 en
    lecture ......................... ' lecture 1
    octet de mesure .........................
    ' confirmation réception ...............
    .......... ' lecture 2 octet de
    mesure .........................
    ' pas d'autre octet à lire......................
    ... ' fin
    transmission......................... ..........
    ............... 'récupération
    mesure......................... '
    transformation au format décimal et affectation
    mesure
  • End Function

49
2. 2. Le capteur "2 wire" DS1621
  • 5- Pilotage directement avec Excel (suite)
  • ? Programmation des fonctions relatives aux clic
    sur les boutons .... àprès c'est fini ... ou
    presque !
  • ?? Faire afficher UserForm1 et faire un double
    clic sur le bouton 1 (capteur1), la procédure
    apparaît vide, il ne reste plus qu'à la
    compléterPrivate Sub CommandButton1_Click()Colum
    ns("AC").ClearContents Cells(1, 1) "t
    (s)" 'péparation du tableau (écriture de
    texte) Cells(1, 2) "T Capteur1
    (C)"Intervalle TextBox1.Value 1000
    ' intervalle en ms (lecture du
    TexBox1)Nombrepoints TextBox2.Value
    ' nombre de points (lecture du
    TexBox2)TIMEINITFor n 0 To Nombrepoints 'déb
    ut de la boucleWhile TIMEREAD lt n Intervalle
    ' attente déclenchement temporel
    (compteur)WendCells(n 3, 1) n Intervalle
    / 1000 ' affichage "temps"Cells(n 3, 2)
    MesureCapteur1 ' affichage
    mesureNext n ' retour ou fin de la
    boucleUserForm1.Hide ' fermeture de la
    fenêtre après acquisitionEnd Sub

50
2. 2. Le capteur "2 wire" DS1621
  • 5- ? Programmation des fonctions relatives aux
    clic sur les boutons (c'est presque la fin !)
  • ?? Faire afficher UserForm1 et faire un double
    clic sue le bouton 2 (capteur2), la procédure
    apparaît vide, il ne reste plus qu'à la compléter
    comme pour CommandButton1_ClickPrivate Sub
    CommandButton2_Click() .........................
    ......................... 'péparation du
    tableau (écriture de texte) ....................
    ..... ......................... ' intervalle
    en ms (lecture du TexBox1) ......................
    ... ' nombre de points (lecture du TexBox2)
    ......................... ......................
    ... 'début de la boucle ......................
    ... ' attente déclenchement temporel
    (compteur) .........................
    ......................... ' affichage "temps"
    ......................... ' affichage mesure
    ......................... ' retour ou fin de la
    boucle ......................... ' fermeture
    de la fenêtre après acquisitionEnd Sub

51
2. 2. Le capteur "2 wire" DS1621
  • 5- ? Programmation des fonctions relatives aux
    clic sur les boutons (là c'est fini ... promis !)
  • ?? Faire afficher UserForm1 et faire un double
    clic sue le bouton 3 (capteurs 1 et 2), la
    procédure apparaît vide, il ne reste plus qu'à la
    compléter ... tout seul.Private Sub
    CommandButton3_Click() .......................
    .. .........................
    ......................... ......................
    ... etc ... etc ... .........................
    ......................... ....................
    ..... End Sub

52
2. 2. Le capteur "2 wire" DS1621
  • 5- Pilotage directement avec Excel (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 le capteur 1, puis le capteur 2
    puis les deux capteurs.
  • Créer un graphique pour visualiser les
    variations de température.
  • ?? 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é ...).
  • ?? Il ne reste plus qu'à afficher le bon texte
    dans les boutons et dans les intitulés.Dans
    VisualBasic, faire un clic droit sur le contrôle
    CommandBUtton1 pour afficher ses
    propriétés.Changer la propriété Caption (texte
    affiché).Faire de même pour les deux autres
    boutonsainsi que les deux intitulés.D'autres
    propriétés sont modifiables (Font, BackColor
    ...).
  • Fin de la manipulation sur le capteur DS1621.

53
2. 3. Le capteur "1 wire" DS1820
  • 1- Description
  • Les caractéristiques générales de ce capteur sont
    les suivantes
  • ? Boîtier TO92 (1 masse 2 communication et 3
    alimentation).
  • ? Plage de mesure de -55C à 125C avec une
    précision de 0,0625C (1 mesure en 750ms).
  • ? Protocole de communication sur 1 fil (1 wire)
    nommé protocole iButton.
  • ? Format de mesure de température sur 9, 10, 11
    ou 12 bits.
  • ? Possibilité de brancher, en théorie, une
    infinité
  • de capteurs simultanément.

54
2. 3. Le capteur "1 wire" DS1820
  • 2- Liaison à un microcontrôleur
  • ? Liaison "3fils"
  • Le capteur se branche à un
  • microcontrôleur avec seulement
  • une résistance de rappel. L'alimentation et la
    masse occupe les deux autres broches
  • ? Liaison "2fils"
  • Le capteur se branche à un microcontrôleur avec
    seulement une résistance et un transistor
    à effet de champ (résistance commandée par une
    tension). La broche d'alimentation est reliée à
    la masse pour ne faire qu'un fil.

55
2. 3. Le capteur "1 wire" DS1820
  • 3- Liaison au port série RS232
  • Le circuit DS9097U (Dallas) permet de relier tous
    les composants "1 Wire" au port série RS232.
  • Le capteur DS18B20 sera directement branché à
    l'interface (liaison "2fils").

56
2. 3. Le capteur "1 wire" DS1820
  • 4- Utilisation du logiciel "iButton Viewer"
  • Le logiciel iButton Viewer permet de dialoguer
    avec tous les composants "1 Wire" à travers
    l'interface série RS232 (DS9097U).
  • Ce programme se télécharge directement depuis le
    site www.ibutton.com à la rubrique "Software
    Developper's Tools / 1-wire for Windows / 1-wire
    drivers / download version 3.32 (ou ultérieure).
  • A l'installation du logiciel (exécution de
    "tm321b3_32.exe"), il faut ignorer les messages
    relatifs à l'USB.
  • Après installation du logiciel, il suffit de
    connecter l'interface RS232 (et le capteur) au
    port série et de lancer l'application "ibutton
    viewer".

Numéro de série(8octets) del'interface RS 232
Numéro de série(8octets) du capteurconnecté.
57
2. 3. Le capteur "1 wire" DS1820
  • 4- Utilisation du logiciel "iButton Viewer"
    (suite et fin)
  • Dans "iButton Viewer", un double clic sur le
    numéro de série du capteur permet de lancer le
    programme "Touch Thermometer".
  • Ce programme permet de visualiser la température
    mesurée par le capteur connecté (DS18B20).

Possibilité de paramétrerune alarme
(températurehaute et basse)
58
2. 4. Le capteur "1 wire" DS1921
  • 1- Présentation
  • Le capteur de température DS1921 est un capteur
    autonome se présentant sous la forme d'une pile
    bouton.
  • Après avoir été programmé, il réalise seul les
    mesures de températures sans aucune connexion
    électrique.
  • Pour consulter l'ensemble des mesures ou pour
    reprogrammer une mission, il faut le connecter à
    un circuit spécialisé.

Numéro de sérieunique sur 8 octets
59
2. 4. Le capteur "1 wire" DS1921
  • 2- Liaison au port série RS232
  • Le circuit DS9097U (Dallas) permet de relier tous
    les composants "1 Wire" au port série RS232.
  • Le Kit complet capteur DS1921 interface
    DS9097U cordon ne coûte que 30 (distributeur
    Farnell).

60
2. 4. Le capteur "1 wire" DS1921
  • 3- Utilisation du logiciel "iButton Viewer"
  • Le logiciel ibutton viewer sera naturellement
    utilisé puisqu'il permet de dialoguer avec tous
    les composants "1 Wire" à travers l'interface
    série RS232 (DS9097U).
  • Après avoir connecté le capteur au port série à
    travers l'interface, il suffit de lancer le
    logiciel et la fenêtre suivante apparaît

61
2. 4. Le capteur "1 wire" DS1921
  • 4- Utilisation du logiciel "Thermochron Viewer"
  • Dans "iButton Viewer", un double clic sur le
    numéro de série du capteur permet de lancer le
    programme "Thermochron Viewer".
  • Ce programme permet de définir une "mission" de
    mesure pour le capteur DS1921.
  • ? Programmation de la mission

Programmationde la mission.
62
2. 4. Le capteur "1 wire" DS1921
  • 4- Utilisation du logiciel "Thermochron Viewer"
    (suite)
  • ? Vérification de l'état de la mission

Récapitulatif desparamètres dela mission
63
2. 4. Le capteur "1 wire" DS1921
  • 4- Utilisation du logiciel "Thermochron Viewer"
    (suite et fin)
  • ? Consultation des mesures

Récapitulatif desmesures
Consultation desrésultats de lamission
Téléchargement desmesures stockées dansle
capteur.
64
3.1. Présentation générale des potentiomètres
numériques
  • 1- Généralités
  • La position du curseur d'un potentiomètre
    "traditionnel" se commande de façon mécanique
    (position angulaire ou linéaire) avec, en
    théorie, une infinité de positions.Le schéma
    ci-dessous illustre le principe d'un
    potentiomètre de résistance totale R en notant
    "x" la position du curseur (0 ? x ? 1)
  • Pour un potentiomètre numérique, le curseur ne
    peut prendre qu'un nombre fini de positions.La
    commande de la position du curseur se fait de
    façon électronique (signaux numériques).Le
    schéma ci-dessous illustre les N1 positions
    possibles du curseur pour un potentiomètre
    numérique de résistance totale R

C
0
1
x
A
B
x.R
(1-x).R
C
R/N
R/N
R/N
R/N
R/N
R/N
A
B
0
1
2
3
N-3
N-2
N-1
N
65
3.1. Présentation générale des potentiomètres
numériques
  • 2- Caractéristiques
  • Le schéma général d'un potentiomètre numérique
    est le suivant
  • La commande numérique de la position du curseur
    entraîne les propriétés suivantes
  • ? La position du curseur peut être volatile ou
    non volatile (conservation après coupure de
    l'alimentation).
  • ? La commande peut être de type incrémental ou
    décrémental (augmentation ou diminution de la
    position du curseur).

VDD
A
C
Commandeposition curseur
Multiplexeur
B
66
3.2. Mise en œuvre du potentiomètre DS1803
  • 1- Caractéristiques du DS1803
  • Le DS1803 a les caractéristiques suivantes
  • - double potentiomètre POT-0 et POT-1 (seul le
    P0T-0 sera utilisé pour notre application)
  • - 256 positions volatiles par potentiomètre
  • - commande absolue par bus I2C avec possibilité
    de lire la position (confirmation).
  • Extrait de la documentation constructeur (Dallas
    Semiconductor)

Borne B "255"
Borne A "0"
Curseur C
67
3.2. Mise en œuvre du potentiomètre DS1803
  • 2- Les différentes commandes
  • Les commandes pour utiliser le potentiomètre sont
    précisées ci-dessous (POT-0 a été câblé avec
    l'adresse physique (a2,a1,a0) (0,0,0)
  • - Ecriture
  • - Lecture

68
3.2. Mise en œuvre du potentiomètre DS1803
  • 3- Le montage relié au port série RS232 (schéma)

69
3.2. Mise en œuvre du potentiomètre DS1803
  • 3- Le montage relié au port série RS232
    (implantation)

70
3.2. Mise en œuvre du potentiomètre DS1803
  • 3- Le montage relié au port série RS232 (photo du
    montage)

71
3.2. Mise en œuvre du potentiomètre DS1803
  • 4- Pilotage directement depuis Excel
  • L'interface utilisateur du fichier Excel de
    pilotage du potentiomètre est représenté
    ci-dessous

Intitulés (affichage de texte fixe)
Label2 (Intitulé)
Label1 (Intilulé)
ScrollBar1
72
  • 4- Pilotage directement depuis Excel (suite)
  • La réalisation du programme VBA devra passer par
    les étapes suivantes (rappel)
  • ? Insertion du bouton de commande dans Excel
    pour l'affichage de la fenêtre de dialogue.
  • ? Création de la procédure CommandButton1_Click(
    ) dans VBA pour afficher la fenêtre.
  • ? Insertion de la fenêtre dans VBA (insertion
    UserForm).
  • ? Importation des fichiers Port_dll.bas et
    I2C_RS232.bas.
  • ? Placement des contrôles dans la fenêtre (barre
    de défilement et intitulés).
  • ? Création des procédures UserForm_Activate() et
    Userform_Deactivate().
  • ? Création de la procédure ScrollBar1_Change()
    qui contiendra le dialogue avec le composant et
    l'affichage sur les intitulés (c'est le programme
    principal qui se déclenche à chaque changement de
    position de la barre de défilement).

73
  • 4- Pilotage directement depuis Excel (suite et
    fin)
  • ? Réaliser l'application complète pour piloter
    le potentiomètre (la procédure contenant le
    programme principal est indiquée ci-dessous)
  • Private Sub ScrollBar1_Change()
  • Position ScrollBar1.Value ' création et
    affectation de la variable "Position"
  • Label1.Caption Position ' affichage de la
    position commandée dans le 1 Label
  • REALTIME True ' activation priorité temporelle
  • Depart ' début protocole I2C
  • Sortie (H50) ' adresse POT_0 en écriture
  • Sortie (HA9) ' commande d'écriture position
  • Sortie (CByte(Position)) ' écriture de la
    position de POT_0 (transformation texte en
    octet 8 bits
  • Arret ' fin protocole I2C
  • Depart ' début protocole I2C
  • Sortie (H51) ' adresse POT_0 en lecture

74
3.3. Présentation d'une application Delphi pour
piloter le potentiomètre
  • 1- Limitations de VBA (VisualBasic Excel)
  • Avantages de VBA
  • - Elaboration "visuelle" de l'application
    (placement des objets par dessin, propriétés
    affectées par défaut, sélection automatique des
    procédures, pas de déclarations initiales des
    variables et fonctions ...).
  • - Affichage direct des données dans Excel
    (création de graphiques, traitement des
    données...).
  • Limitations de VBA
  • - VBA ne peut fonctionner qu'avec une application
    Office (Word, Excel, ...).
  • - La vitesse d'exécution est beaucoup plus lente
    que pour un programme autonome ( .exe).
  • Il existe de nombreux logiciels pour élaborer des
    applications autonomes (fichier .exe)
  • - Visual Basic (identique à VBA mais toujours un
    problème de lenteur d'exécution).
  • - Langage C C CBuilder Visual C
    (langage de programmation très performant mais
    demande un long apprentissage).
  • - Delphi (langage de programmation Pascal,
    apprentissage aisé et vitesse d'exécution
    rapide).
  • Le programme pilotant le potentiomètre sera donc
    réalisé avec Delphi.

75
3.3. Présentation d'une application Delphi pour
piloter le potentiomètre
  • 2- Présentation de l'interface
  • L'interface utilisateur de l'application autonome
    PotNum.exe est représentée ci-dessous

76
3.3. Présentation d'une application Delphi pour
piloter le potentiomètre
  • 2- Présentation de l'unité Port_dll.pas
  • Le code source de l'unité Port_dll.pas est
    similaire à celui du module Port_dll.bas (extrait
    ci-dessous)
  • unit Port_dll
  • interface
  • uses windows
  • const THEDLL'PORT.DLL'
  • Procedure DELAY(iWORD) stdcall external
    THEDLL
  • Procedure TIMEINIT stdcall external THEDLL
  • Function TIMEREAD DWORD stdcall external
    THEDLL
  • Procedure DELAYUS(iDWORD) stdcall external
    THEDLL
  • Procedure TIMEINITUS stdcall external THEDLL
  • Function TIMEREADUS DWORD stdcall external
    THEDLL
  • Procedure OUTPORT(PortAddrWord Databyte)
    stdcall external THEDLL
  • Function INPORT(PortAddrWord)Bytestdcall
    external THEDLL
  • Function OPENCOM(SPCHAR)Integerstdcall
    external THEDLL
  • Procedure CLOSECOMstdcall external THEDLL
  • Function READBYTEIntegerstdcall external
    THEDLL

77
  • 2- Présentation de l'unité Port_dll.pas (suite et
    fin)
  • Function CTSIntegerstdcall external
    THEDLLFunction DSRIntegerstdcall external
    THEDLLFunction RIIntegerstdcall external
    THEDLLFunction DCDIntegerstdcall external
    THEDLLProcedure REALTIME(dBOOLEAN)stdcall
    external THEDLLFunction SOUNDSETRATE(RateDWORD)
    DWORD stdcall external THEDLLFunction
    SOUNDGETRATEDWORD stdcall external
    THEDLLFunction SOUNDBUSYBoolean stdcall
    external THEDLLFunction SOUNDISBoolean
    stdcall external THEDLLProcedure
    SOUNDIN(PufferPcharSizeDWORD) stdcall
    external THEDLLProcedure SOUNDOUT(PufferPcharS
    izeDWORD) stdcall external THEDLLFunction
    SOUNDGETBYTESDWORD stdcall external
    THEDLLFunction SOUNDSETBYTES(BDWORD)DWORD
    stdcall external THEDLLProcedure SOUNDCAPIN
    stdcall external THEDLLProcedure SOUNDCAPOUT
    stdcall external THEDLLFunction
    JOYXDWORDstdcall external THEDLLFunction
    JOYYDWORDstdcall external THEDLLFunction
    JOYZDWORDstdcall external THEDLLFunction
    JOYRDWORDstdcall external THEDLLFunction
    JOYBUTTONDWORDstdcall external
    THEDLLimplementation
  • end.

78
3.3. Présentation d'une application Delphi pour
piloter le potentiomètre
  • 3- Présentation de l'unité I2C_RS232.pas
  • Le code source de l'unité I2C_RS232.pas est
    similaire à celui du module I2C_RS232.bas
    (extrait ci-dessous)
  • unit I2C_RS232
  • interface
  • uses Port_dll, Windows
  • Procedure I2C_Init
  • Procedure Start
  • Procedure Stop
  • Procedure Confirmer
  • Procedure SansConfirmer
  • Function Sortie (Valeur Byte) Boolean
  • Function Lecture Byte
  • implementation

79
  • 3- Présentation de l'unité I2C_RS232.pas (suite)
  • procedure Start
  • begin
  • RTS(1) DTR(1) DTR(0)
  • end
  • procedure Stop
  • begin
  • RTS(1) DTR(0) DTR(1)
  • end
  • procedure Confirmer
  • begin
  • DTR(0) RTS(1)
  • Delayus (10) Temporisation
    10µs
  • RTS(0)
  • end

80
  • 3- Présentation de l'unité I2C_RS232.pas (suite)
  • Function Sortie (Valeur Byte) Boolean
  • var ValeurBit, n Byte
  • begin
  • Sortie true
  • ValeurBit 128
  • RTS(0)
  • for n 1 to 8 do begin
  • if (Valeur and ValeurBit) ValeurBit then
    DTR(1)
  • else DTR(0) Positionner
    SDA
  • RTS(1) SCL1
  • Delayus (10)
    Temporisation 10µs
  • RTS(0) SCL0
  • Delayus (10)
    Temporisation 10µs
  • ValeurBit ValeurBit div 2
  • end
  • DTR(1) SDA1
  • RTS(1) SCL1, lire
    SDA

81
  • 3- Présentation de l'unité I2C_RS232.pas (suite
    et fin)
  • function Lecture Byte
  • var ValeurBit, Valeur, n Byte
  • begin
  • DTR(1) SDA1
  • ValeurBit 128
  • Valeur 0
  • for n 1 to 8 do begin
  • RTS(1) SCL1, lire
    SDA
  • Delayus (10) Temporisation
    10µs
  • Valeur Valeur ValeurBit CTS
  • RTS(0) SCL0
  • Delayus (10) Temporisation
    10µs
  • ValeurBit ValeurBit div 2
  • end
  • Lecture Valeur
  • end
Write a Comment
User Comments (0)
About PowerShow.com