81
Stage Stage Composants Composants électroniques électroniques modernes” modernes” Animateur Animateur : Christian BISSIERES ( Professeur de : Christian BISSIERES ( Professeur de Physique Appliquée ) Physique Appliquée ) Responsable pédagogique Responsable pédagogique : Jean-Claude REBEYROLE ( IA : Jean-Claude REBEYROLE ( IA IPR ) IPR ) Lycée Joffre Montpellier Lycée Joffre Montpellier ( 5 et 12 ( 5 et 12 janvier 2005 ) janvier 2005 ) Lycée Clos Banet Perpignan Lycée Clos Banet Perpignan ( 16 et 23 ( 16 et 23 mars 2005 ) mars 2005 )

Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Embed Size (px)

Citation preview

Page 1: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

StageStage““Composants Composants électroniquesélectroniquesmodernes”modernes”

AnimateurAnimateur : Christian BISSIERES ( Professeur de Physique : Christian BISSIERES ( Professeur de Physique Appliquée )Appliquée )Responsable pédagogiqueResponsable pédagogique : Jean-Claude REBEYROLE ( IA IPR ) : Jean-Claude REBEYROLE ( IA IPR )

Lycée Joffre Montpellier Lycée Joffre Montpellier ( 5 et 12 janvier ( 5 et 12 janvier 2005 )2005 )

Lycée Clos Banet Perpignan Lycée Clos Banet Perpignan ( 16 et 23 ( 16 et 23 mars 2005 ) mars 2005 )

Page 2: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Mise en œuvre de capteurs Mise en œuvre de capteurs de température à sortie de température à sortie

numérique directe.numérique directe.Utilisation d'un Utilisation d'un

potentiomètre à commande potentiomètre à commande numérique.numérique.

Programme du stageProgramme du stage

Page 3: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Le capteur "2 wire" DS 1621Le capteur "2 wire" DS 1621relié au port série.relié au port série.

( pilotage avec Excel )( pilotage avec Excel )

Le capteur DS 1621

Page 4: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Le fichier Excel relatif à la mesure de Le fichier Excel relatif à la mesure de températuretempérature

Page 5: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Le capteur "1 wire" DS 1820Le capteur "1 wire" DS 1820relié au port série.relié au port série.

Le capteur DS 1820

Page 6: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Le logiciel fournit avec le capteur DS1820Le logiciel fournit avec le capteur DS1820(lecture de la température)(lecture de la température)

Page 7: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Le capteur autonome"1 wire"Le capteur autonome"1 wire"DS 1921.DS 1921.

Le capteur DS 1921

Page 8: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Le logiciel fournit avec le capteur Le logiciel fournit avec le capteur DS19B21DS19B21

(programmation d'une acquisition (programmation d'une acquisition automatique et autonome)automatique et autonome)

Page 9: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Le potentiomètre numériqueLe potentiomètre numériqueDS 1803 relié au port série.DS 1803 relié au port série.

Borne "10k"position 255

Curseurposition 0 à 255

Borne "0k"position 0

Page 10: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Le programme autonome de pilotage du Le programme autonome de pilotage du potentiomètre réalisé avec potentiomètre réalisé avec DELPHIDELPHI

Page 11: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Déroulement du stageDéroulement du stage

1. 1.1. 1. Utiliser Visual Basic (présent avec Excel) pour Utiliser Visual Basic (présent avec Excel) pour faire de la programmation sous Windows.faire de la programmation sous Windows.

1. 2.1. 2. Savoir déclarer et utiliser, avec Visual Savoir déclarer et utiliser, avec Visual Basic, les fonctions et procédures d’une DLL Basic, les fonctions et procédures d’une DLL donnée.donnée.

1. 3.1. 3. Utiliser les fonctions de pilotage du port Utiliser les fonctions de pilotage du port série avec la DLL série avec la DLL “port.dll” pour piloter une “port.dll” pour piloter une maquette de feux tricolores.maquette de feux tricolores.

1.1. Utilisation du port série RS 232 Utilisation du port série RS 232 pour communiquer avec les pour communiquer avec les composantscomposants

Page 12: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 1.2. 1. Présentation générale des capteurs à Présentation générale des capteurs à sortie numérique directe.sortie numérique directe.

2. 2.2. 2. Mise en œuvre du capteur "2 wire" Mise en œuvre du capteur "2 wire" DS1621DS1621et pilotage avec Excel.et pilotage avec Excel.

2. 3.2. 3. Mise en oeuvre du capteur "1 wire" Mise en oeuvre du capteur "1 wire" DS1820 avec logiciel spécialisé.DS1820 avec logiciel spécialisé.

2. 4.2. 4. Mise en oeuvre du capteurs autonôme "1 Mise en oeuvre du capteurs autonôme "1 wire" DS1921 avec logiciel spécialisé.wire" DS1921 avec logiciel spécialisé.

2. Les capteurs numériques de 2. Les capteurs numériques de températuretempérature

Page 13: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3. 1.3. 1. Présentation générale des Présentation générale des potentiomètres numériques.potentiomètres numériques.

3. 2.3. 2. Mise en œuvre du potentiomètre Mise en œuvre du potentiomètre numérique DS1803 avec Excel.numérique DS1803 avec Excel.

3. 3.3. 3. Réalisation d'une application Réalisation d'une application Windows avec Delphi pour piloter le Windows avec Delphi pour piloter le potentiomètre.potentiomètre.

3. Le potentiomètre numérique3. Le potentiomètre numérique

Page 14: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

1.1.1.1. Utilisation de Visual Basic (VBA) Utilisation de Visual Basic (VBA) 1- Basculer vers la fenêtre Visual Basic Editor1- Basculer vers la fenêtre Visual Basic Editor

Le travail à faire est indiqué par Le travail à faire est indiqué par ..Le code à écrire ou déjà écrit est indiqué en Le code à écrire ou déjà écrit est indiqué en vertvert et les commentaire sont précédés par le et les commentaire sont précédés par le caractère caractère ' ' ..

Pour basculer entre la feuille Pour basculer entre la feuille ExcelExcel et la fenêtre et la fenêtre Visual BasicVisual Basic il faut faire il faut faire Alt + F11Alt + F11. .

Pour se placer dans la fenêtre Visual Basic Editor, effectuer les manipulations ci-dessous:Pour se placer dans la fenêtre Visual Basic Editor, effectuer les manipulations ci-dessous:

Démarrer Excel.Démarrer Excel.

Sélectionner le menu Outils / Macro / Visual Basic Editor.Sélectionner le menu Outils / Macro / Visual Basic Editor.

Dans la fenêtre Projet – VBA Project, faire un double-clic sur Feuil1.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 La fenêtre où sera inséré le code du programme relatif à la feuille 1 apparaît sur la droite de l’écran :l’écran :

Page 15: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

1.1.1.1. Utilisation de Visual Basic (VBA) Utilisation de Visual Basic (VBA) 2- Remplir des cellules directement depuis VBA2- Remplir des cellules directement depuis VBA

Il faut tout d’abord donner un nom au programme :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 :Dans la fenêtre relative aux programmes de la feuille 1, insérer le code :Sub sinusoide()Sub sinusoide() 'début et nom du programme'début et nom du programme

End SubEnd Sub 'fin du programme'fin du programme

Entre Sub et End Sub, insérer le code suivant:Entre Sub et End Sub, insérer le code suivant:Cells(2, 2) = "Tension(Volts)"Cells(2, 2) = "Tension(Volts)" 'texte dans cellule B2'texte dans cellule B2

Cells(4, 2) = 12Cells(4, 2) = 12 'valeur 12 dans cellule B4'valeur 12 dans cellule B4

Cells(5, 2) = 5Cells(5, 2) = 5 'valeur 5 dans cellule B5'valeur 5 dans cellule B5

Appuyer sur le bouton Exécuter, sélectionner le programme "Sub sinusoide()" (macro) à 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 exécuter et le résultat sera visible dans la feuille Excel (Faire Alt + F11 pour basculer de Excel vers Visual Basic).Excel vers Visual Basic).

RésultatRésultat

Page 16: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

1.1.1.1. Utilisation de Visual Basic (VBA) Utilisation de Visual Basic (VBA) 3- Tracer une sinusoïde réglable en amplitude et en fréquence3- 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 Nous allons remplir automatiquement 101 points (temps et valeur) d'un sinusoïde d'amplitude et deet defréquence déterminée.fréquence déterminée.

Modifier le code relatif à Modifier le code relatif à Sub sinusoide()Sub sinusoide() de la façon suivante : de la façon suivante :Sub sinusoide()Sub sinusoide() 'début et nom du programme'début et nom du programme

Cells(1, 1)="t (ms)"Cells(1, 1)="t (ms)" 'préparation du tableau'préparation du tableauCells(1, 2)= "sinus (volt)"Cells(1, 2)= "sinus (volt)"

pi = 3.14159pi = 3.14159 'définition des constantes'définition des constantestmax = 0.001tmax = 0.001amplitude = 5amplitude = 5frequence = 2000frequence = 2000

For n = 0 To 100For n = 0 To 100 'debut de la boucle des 101 points'debut de la boucle des 101 pointst = tmax / 100 * nt = tmax / 100 * n 'découpage du temps entre 0 et tmax'découpage du temps entre 0 et tmaxCells(n + 2 , 1) = t * 1000Cells(n + 2 , 1) = t * 1000 'affichage du temps'affichage du tempssinus = amplitude * Sin(2* pi * frequence * t)sinus = amplitude * Sin(2* pi * frequence * t) 'création et affectation de la 'création et affectation de la

variable sinusvariable sinusCells(n + 2, 2) = sinusCells(n + 2, 2) = sinus 'affichage des valeurs de la variable 'affichage des valeurs de la variable

sinussinusNext nNext n 'retour ou fin de la boucle'retour ou fin de la boucle

End SubEnd Sub 'fin du programme'fin du programme

Exécuter le programme Exécuter le programme Sub sinusoïdeSub sinusoïde et vérifier le résultats dans et vérifier le résultats dans ExcelExcel

Page 17: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3- Tracer une sinusoïde réglable en amplitude et en fréquence (suite et 3- Tracer une sinusoïde réglable en amplitude et en fréquence (suite et fin)fin)

Nous allons améliorer le programme en offrant la possibilité de réglerNous 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. 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.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 Sélectionner le contrôle Barre de défilement et le dessiner horizontalement sur la feuille (amplitude).(amplitude).

Faire un clic droit sur la barre pour afficher la fenêtre propriétés et les modifier (Min : Faire un clic droit sur la barre pour afficher la fenêtre propriétés et les modifier (Min : 0 ; Max : 12).0 ; Max : 12).

Dessiner aussi la barre de défilement relative à la fréquence (Min : 500 ; Max : 5000).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 Faire un double clic sur la 1° barre de défilement; on doit maintenant se retrouver dans VBA avec VBA avec un nouveau programme Scrollbar1_Change. Ecrire simplement le code un nouveau programme Scrollbar1_Change. Ecrire simplement le code sinusoidesinusoide à à l’intérieur du l’intérieur du programme pour appeler la programme programme pour appeler la programme sinusoidesinusoide à chaque changement à chaque changement de position du curseur.de position du curseur. Refaire le Refaire le pour la 2° barre de défilement. pour la 2° barre de défilement.

Il faut modifier légèrement le code du programme sinusoïde.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 Pour tester le programme, il faut désactiver le mode "création" qui a été activé pour créer les créer les contrôles.contrôles.

Partie duprogrammemodifiée

Page 18: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

1.2.1.2. Déclaration et utilisation d'une DLL Déclaration et utilisation d'une DLL 1- Pourquoi utiliser 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 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 ).Ouvrir le port "COM" ( COM1 , COM2 , … au choix ).Refermer le port "COM" après usage.Refermer le port "COM" après usage.Commander les 3 lignes de sorties du port série ( 0 logique Commander les 3 lignes de sorties du port série ( 0 logique -11V et 1 logique -11V et 1 logique +11V ). +11V ).Lire l’état des 4 lignes d’entrée du port série ( tension < 1V Lire l’état des 4 lignes d’entrée du port série ( tension < 1V 0 logique et tension > 2V 0 logique et tension > 2V 1 1 logique ).logique ).Générer des fonctions temporelles ( compteurs et temporisations ).Générer des fonctions temporelles ( compteurs et temporisations ).

Ces fonctions ne sont pas disponibles dans VBA, nous allons donc utiliser les fonctions suivantesCes fonctions ne sont pas disponibles dans VBA, nous allons donc utiliser les fonctions suivantesproposées par "port.dll" :proposées par "port.dll" :

OPENCOMOPENCOM ExempleExemple : OPENCOM(" COM2 , 1200 ,N , 8 ,1 ") permet d'ouvrir : OPENCOM(" COM2 , 1200 ,N , 8 ,1 ") permet d'ouvrir "COM2" avec 1200 bauds, pas de bit de parité, 8 bits de "COM2" avec 1200 bauds, pas de bit de parité, 8 bits de données et 1 bit de stop.données et 1 bit de stop.

CLOSECOMCLOSECOM permet de refermer le dernier port ouvert.permet de refermer le dernier port ouvert. DTR, RTS et TXDDTR, RTS et TXD commande des lignes de sortiecommande des lignes de sortie

ExempleExemple : DTR 1 permet de mettre à "1" la ligne de sortie DTR (+11V). : DTR 1 permet de mettre à "1" la ligne de sortie DTR (+11V). CTS, DSR, RI, DCDCTS, DSR, RI, DCD ExempleExemple : lecture = DSR place la valeur DSR (0 ou 1) dans la : lecture = DSR place la valeur DSR (0 ou 1) dans la variable variable lecture.lecture. DELAYDELAY ExempleExemple : DELAY 100 introduit une pause de 100ms dans le : DELAY 100 introduit une pause de 100ms dans le

programme.programme. DELAYUSDELAYUS même fonction que DELAY mais en microsecondes.même fonction que DELAY mais en microsecondes.

Page 19: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

1- Pourquoi utiliser une DLL ? (suite et fin)1- Pourquoi utiliser une DLL ? (suite et fin)

TIMEINITTIMEINIT Mise à zéro et démarrage du compteur des millisecondes.Mise à zéro et démarrage du compteur des millisecondes.

TIMEREADTIMEREAD Lecture du compteur des millisecondes.Lecture du compteur des millisecondes.Exemple 1Exemple 1 : : While TIMEREAD < 1000While TIMEREAD < 1000

WendWendla boucle WHILE .. WHEND reste "bloquée" tant que le compteur n'a pas la boucle WHILE .. WHEND reste "bloquée" tant que le compteur n'a pas

dépassé 1000 ms.dépassé 1000 ms.Exemple 2Exemple 2 : : For n = 1 to 10For n = 1 to 10

WHILE TIMEREAD < n*100WHILE TIMEREAD < n*100WendWendCells ( n , 1 ) = MesureCells ( n , 1 ) = MesureNext nNext n

on mesure 10 points avec un intervalle de 100ms et on place les points on mesure 10 points avec un intervalle de 100ms et on place les points dans le tableur.dans le tableur.

TIMEINITUS et TIMEREADUSTIMEINITUS et TIMEREADUS Mêmes fonctions que TIMEINIT et TIMEREAD mais en Mêmes fonctions que TIMEINIT et TIMEREAD mais en microsecondes.microsecondes.

RemarquesRemarques : : Pour des déclenchements temporels (acquisitions), il ne faut pas utiliser les Pour des déclenchements temporels (acquisitions), il ne faut pas utiliser les fonctions DELAY ou DELAYUS car elles ne dépendent pas d'un fonctions DELAY ou DELAYUS car elles ne dépendent pas d'un

compteur, elles compteur, elles introduisent uniquement des "pauses".introduisent uniquement des "pauses".Le compteur continue à "compter" même après une instruction TIMEREAD.Le compteur continue à "compter" même après une instruction TIMEREAD.

REALTIMEREALTIME Cette fonction rend le programme prioritaire par rapport à toutes les Cette fonction rend le programme prioritaire par rapport à toutes les tâches que gère Windows.tâches que gère Windows.

ExempleExemple : : REALTIME TrueREALTIME Trueactivation de la priorité temporelle.activation de la priorité temporelle.

Page 20: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

1.2.1.2. Déclaration et utilisation d'une DLL Déclaration et utilisation d'une DLL 2- Déclaration des fonctions de la DDL (port.dll)2- Déclaration des fonctions de la DDL (port.dll)

ImportantImportant : La DLL devra être placée dans le répertoire du programme ou dans le dossier : La DLL devra être placée dans le répertoire du programme ou dans le dossier Windows\SystemWindows\System..Avant de faire appel aux fonctions proposées par la DLL, il faut indiquer à notre programme que Avant de faire appel aux fonctions proposées par la DLL, il faut indiquer à notre programme que l'on val'on vautiliser ces fonction.utiliser ces fonction.Voici le code qu'il faudra inscrire au début du programme pour déclarer les fonctions de la DLL Voici le code qu'il faudra inscrire au début du programme pour déclarer les fonctions de la DLL qu'on vientqu'on vientde décrire :de décrire :

Declare Function OPENCOM Lib "Port" (ByVal A$) As IntegerDeclare Function OPENCOM Lib "Port" (ByVal A$) As IntegerDeclare Sub CLOSECOM Lib "Port" ()Declare Sub CLOSECOM Lib "Port" ()Declare Sub DTR Lib "Port" (ByVal b%)Declare Sub DTR Lib "Port" (ByVal b%)Declare Sub RTS Lib "Port" (ByVal b%)Declare Sub RTS Lib "Port" (ByVal b%)Declare Sub TXD Lib "Port" (ByVal b%)Declare Sub TXD Lib "Port" (ByVal b%)Declare Function CTS Lib "Port" () As IntegerDeclare Function CTS Lib "Port" () As IntegerDeclare Function DSR Lib "Port" () As IntegerDeclare Function DSR Lib "Port" () As IntegerDeclare Function RI Lib "Port" () As IntegerDeclare Function RI Lib "Port" () As IntegerDeclare Function DCD Lib "Port" () As IntegerDeclare Function DCD Lib "Port" () As IntegerDeclare Sub DELAY Lib "Port" (ByVal b%)Declare Sub DELAY Lib "Port" (ByVal b%)Declare Sub TIMEINIT Lib "Port" ()Declare Sub TIMEINIT Lib "Port" ()Declare Sub TIMEINITUS Lib "Port" ()Declare Sub TIMEINITUS Lib "Port" ()Declare Function TIMEREAD Lib "Port" () As LongDeclare Function TIMEREAD Lib "Port" () As LongDeclare Function TIMEREADUS Lib "Port" () As LongDeclare Function TIMEREADUS Lib "Port" () As LongDeclare Sub DELAYUS Lib "Port" (ByVal l As Long)Declare Sub DELAYUS Lib "Port" (ByVal l As Long)Declare Sub REALTIME Lib "Port" (ByVal i As Boolean)Declare Sub REALTIME Lib "Port" (ByVal i As Boolean)

Page 21: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3- Réalisation d'un programme de feux tricolores3- 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 On va utiliser une petite plaque de test pour connecter une LED rouge sur RTS, une LED orange sur DTR etsur DTR etune LED verte sur TXD.une LED verte sur TXD.RemarqueRemarque : on peut brancher directement une LED entre une sortie du port série et la masse : on peut brancher directement une LED entre une sortie du port série et la masse car les sorties car les sorties possèdent une résistance interne de 450 possèdent une résistance interne de 450 environ ( ce qui donnera 20mA environ ( ce qui donnera 20mA pour la diode ).pour la diode ).

La déclaration des fonctions peut se faire "une fois pour toutes" en chargeant un module qui La déclaration des fonctions peut se faire "une fois pour toutes" en chargeant un module qui contient lecontient leCode relatif aux déclarations.Code relatif aux déclarations. Ouvrir un nouveau fichier Ouvrir un nouveau fichier ExcelExcel.. Faire un clic droit dans la fenêtre Faire un clic droit dans la fenêtre project VBAProjectproject VBAProject et sélectionner et sélectionner Importer un fichier… Importer un fichier… . Le . Le fichier se fichier se nomme port_dllnomme port_dll.bas.bas et est placé dans le répertoire de travail du stage. 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 Une fois le fichier importé, faire un double clic dessus et constater qu'il contient le code relatif aux relatif aux déclarations.déclarations.

RemarqueRemarque : La DLL contient aussi d'autres fonctions ( carte son, port de jeux …). : La DLL contient aussi d'autres fonctions ( carte son, port de jeux …).

1.2.1.2. Déclaration et utilisation d'une DLL Déclaration et utilisation d'une DLL

Clic droit

Résultat

Page 22: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3- Réalisation d'un programme de feux tricolores (suite)3- Réalisation d'un programme de feux tricolores (suite)

Revenir au classeur Revenir au classeur ExcelExcel (Alt+F11) et faire (Alt+F11) et faire Affichage / Barre d'outils / boite à outils Affichage / Barre d'outils / boite à outils ContrôlesContrôles..

Placer le Placer le Bouton de commandeBouton de commande et la et la Barre de défilementBarre de défilement comme indiqué ci-dessous (les comme indiqué ci-dessous (les autres composants ne sont que des "dessins"):autres composants ne sont que des "dessins"):

Bouton de commande

Barre de défilement

Page 23: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3- Réalisation d'un programme de feux tricolores (suite et fin)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 Faire un double clic sur le bouton de commande, on se retrouve alors dans VBA avec le programme programme vide vide CommandButton1_ClickCommandButton1_Click (vide) à compléter entre (vide) à compléter entre Private SubPrivate Sub et et End End SubSub::Private Sub CommandButton1_Click()Private Sub CommandButton1_Click()OPENCOM ("COM2,1200,N,8,1") OPENCOM ("COM2,1200,N,8,1") 'Initialisation port com'Initialisation port comRTS 1 RTS 1 'allumage du rouge'allumage du rougeDTR 0DTR 0TXD 0TXD 0tempo = ScrollBar1.Value * 100 tempo = ScrollBar1.Value * 100 'tempo en 10° de secondes -> ms'tempo en 10° de secondes -> msTIMEINITTIMEINITFor n = 1 To 5 For n = 1 To 5 '5 cycles d'allumage des feux tricolores'5 cycles d'allumage des feux tricolores

While TIMEREAD < (10 * n - 5) * tempo While TIMEREAD < (10 * n - 5) * tempo 'attente 5*tempo'attente 5*tempoWendWendRTS 0RTS 0DTR 0DTR 0TXD 1 TXD 1 'vert'vertWhile TIMEREAD < (10 * n - 1) * tempo While TIMEREAD < (10 * n - 1) * tempo 'attente 4*tempo'attente 4*tempoWendWendRTS 0RTS 0DTR 1 DTR 1 'orange'orangeTXD 0TXD 0While TIMEREAD < (10 * n) * tempo While TIMEREAD < (10 * n) * tempo 'attente 1*tempo'attente 1*tempoWendWendRTS 1 RTS 1 'rouge'rougeDTR 0DTR 0TXD 0TXD 0Next nNext nCLOSECOMCLOSECOM

End SubEnd Sub

Revenir à Revenir à ExcelExcel, désactiver le mode création, brancher la maquette et tester le , désactiver le mode création, brancher la maquette et tester le programme.programme.

Page 24: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 1.2. 1. Les capteurs de température Les capteurs de température numériquesnumériques

GénéralitésGénéralités

La mesure moderne de température se fait à l'aide de capteurs à sortie numérique directe.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.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 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 respecter le protocole de communication avec le composant pour récupérer la mesure avec du matériel numérique (ordinateur ou microcontrôleur).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-Le montage électronique autour du composant est en général très réduit (schéma ci-dessous):dessous):

Capteur Dallas DS1621 relié au port sérieCapteur Dallas DS1621 relié au port série

Capteur Dallas DS820 relié à une ligneCapteur Dallas DS820 relié à une ligned'un microcontrôleurd'un microcontrôleur

Page 25: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16211- 1- DescriptionDescription

Les caractéristiques générales de ce capteur sont les suivantes :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 Boîtier DIL 08 ( 4 et 8 : alimentation; 1 et 2 : communication; 5, 6 et 7 : adresse physique

et 3 : thermostat )et 3 : thermostat )

Plage de mesure de -55°C à 125°C avec une précision de 0,5°C (1 mesure par seconde).Plage de mesure de -55°C à 125°C avec une précision de 0,5°C (1 mesure par seconde).

Protocole de communication sur 2 fils (2 wire) nommé protocole I2C.Protocole de communication sur 2 fils (2 wire) nommé protocole I2C.

Format de mesure de température sur 9 bits.Format de mesure de température sur 9 bits.

Possibilité de brancher 8 capteurs simultanément.Possibilité de brancher 8 capteurs simultanément.

Page 26: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16211- 1- Description (suite et fin)Description (suite et fin)

Les capteur transmet la mesure à l'aide de 2 octets :Les capteur transmet la mesure à l'aide de 2 octets :

Seul le bit de poids fort du premier octet contient une information (+1/2°C)Seul le bit de poids fort du premier octet contient une information (+1/2°C)

Le deuxième octet représente la mesure en °C entiers (si négatif : complément à 2).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.Le tableau ci-dessous donne quelques exemples de conversion.

0 1

Page 27: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16212- 2- Liaison au port série RS232Liaison au port série RS232

Le capteur DS1621 sera connecté au port série du PC ce qui permettra de dialoguer avec le Le capteur DS1621 sera connecté au port série du PC ce qui permettra de dialoguer avec le capteur mais aussi de l'alimenter.capteur mais aussi de l'alimenter.

Le Schéma ci-dessous détaille le branchement de 2 capteurs DS1621 sur le port série Le Schéma ci-dessous détaille le branchement de 2 capteurs DS1621 sur le port série RS232 :RS232 :

La ligne de sortie TXD sera reliée à l'entrée du régulateur 5V (alimentation du capteur).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 RTS sera reliée à l'horloge SCL.

La ligne de sortie DTR sera reliée à SDA pour l'envoi de données.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.La ligne d'entrée CTS sera reliée à SDA pour la réception de données.RégulateurRégulateur

Capteur 1Capteur 1d'adresse "000"d'adresse "000"

Capteur 2Capteur 2d'adresse "001"d'adresse "001"

Diodes zener 5,1VDiodes zener 5,1V(+11V (+11V 5V et -11V 5V et -11V 0V) 0V)

Page 28: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16212- 2- Liaison au port série RS232 (schéma)Liaison au port série RS232 (schéma)

Page 29: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

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

Page 30: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16212- 2- Liaison au port série RS232 (suite et fin)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 L'image ci-dessous représente la carte électronique de liaison du capteur avec le port série RS232.RS232.

On repère facilement le capteur fixe (capteur 1) et le capteur déporté (capteur 2).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.Les deux capteurs sont connectés sur les mêmes lignes SCL-SDA.

Capteur 1 (fixe)

Capteur 2 (déporté)

Page 31: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16213- 3- Pilotage directement avec Pilotage directement avec Excel Excel (présentation)(présentation)Classeur Excel en "attente" de paramétrage de l'acquisition :Classeur Excel en "attente" de paramétrage de l'acquisition :

Bouton d'affichageBouton d'affichagede la fenêtre de de la fenêtre de paramétrage desparamétrage desmesuresmesures

Page 32: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16213- 3- Pilotage directement avec Pilotage directement avec ExcelExcel (présentation) (présentation)Affichage de la fenêtre de réglages et saisie des paramètres :Affichage de la fenêtre de réglages et saisie des paramètres :

Bouton de départBouton de départdes mesuresdes mesures

Zones de saisieZones de saisiede paramètresde paramètres

Page 33: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16213- 3- Pilotage directement avec Pilotage directement avec Excel Excel (présentation)(présentation)Acquisition terminée :Acquisition terminée :

Graphe relatifGraphe relatifaux mesuresaux mesures

Tableau rempliTableau rempliautomatiquementautomatiquement

Attente d'uneAttente d'unenouvelle acquisitionnouvelle acquisition

Page 34: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

4- 4- Présentation du protocole I2CPrésentation du protocole I2C

L'objectif de ce stage n'étant pas l'étude détaillée du protocole I2C, nous nous limiterons aux 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.seules commandes utiles pour dialoguer avec le composant.

Nous allons devoir envoyer des commandes au capteur mais aussi lire les données venant du Nous allons devoir envoyer des commandes au capteur mais aussi lire les données venant du capteur.capteur.

L'électricité du bus I2CL'électricité du bus I2C

Le bus I2C comprend deux "fils", un pour l'horloge SCL et un pour la transmission des Le bus I2C comprend deux "fils", un pour l'horloge SCL et un pour la transmission des données SDA.données SDA.

Dans notre cas, le maître (l'ordinateur) génère le signal d'horloge et envoie un ou plusieurs Dans notre cas, le maître (l'ordinateur) génère le signal d'horloge et envoie un ou plusieurs octets octets vers l'esclave (capteur). Ensuite l'esclave transmet un ou plusieurs octets vers le vers l'esclave (capteur). Ensuite l'esclave transmet un ou plusieurs octets vers le maître qui maître qui génère toujours l'horloge.génère toujours l'horloge.

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS1621

Page 35: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

4- 4- Présentation du protocole I2C (suite)Présentation du protocole I2C (suite)

Exemple d'écriture d'un octetExemple d'écriture d'un octet

Au repos, les lignes du bus sont au niveau "1" soit 5V.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 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".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 à 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")."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.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 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 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 bit nommé "ACKnowlage" (ce neuvième coup d'horloge avec lecture ou non du bit ACK est obligatoire).est obligatoire).

Le maître signale la fin de la transmission par une condition d'arrêt (stop) : SCL passe à 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."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.Le chronogramme ci-dessous résume l'écriture d'un octet avec le neuvième bit ACK.

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS1621

Page 36: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

4- 4- Présentation du protocole I2C (suite)Présentation du protocole I2C (suite)

Exemple d'écriture d'une donnéeExemple d'écriture d'une donnée

Pour écrire un ou plusieurs octets dans l'esclave, il faut respecter le protocole suivant :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 Le maître transmet l'octet d'adresse de l'esclave (octet dont le bit de poids faible est "0" pour "0" pour une écriture) puis attend la confirmation ACK (9° coup d'horloge).une écriture) puis attend la confirmation ACK (9° coup d'horloge).

Le maître transmet le premier octet avec attente confirmation ACK.Le maître transmet le premier octet avec attente confirmation ACK.Les éventuels autres octets seront transmis à la suite.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) :Le chronogramme ci-dessous résume la procédure d'écriture d'une donnée (un octet) :

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS1621

Page 37: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

4- 4- Présentation du protocole I2C (suite)Présentation du protocole I2C (suite)

Exemple de lecture d'une donnéeExemple de lecture d'une donnée

La lecture d'un ou plusieurs octets émis par l'esclave se fait de la manière suivante :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 Le maître transmet l'octet d'adresse de l'esclave (octet dont le bit de poids faible est "1" pour "1" pour une lecture) puis attend la confirmation ACK (9° coup d'horloge).une lecture) puis attend la confirmation ACK (9° coup d'horloge).

L'esclave place l'octet à transmettre en maintenant les "bits" stables durant le L'esclave place l'octet à transmettre en maintenant les "bits" stables durant le niveau haut de niveau haut de l'horloge SCL cadencée par le maître.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 Pour recevoir d'autres octets, c'est maintenant au maître d'accuser la réception du 1° en mettant 1° en mettant SDA à "0" lors du niveau haut de SCL.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 Si le maître ne veut pas lire d'autres octets, il met SDA à "1" lors du niveau haut de SCL puis SCL puis place la condition d'arrêt.place la condition d'arrêt.

Le chronogramme ci-dessous illustre la procédure de lecture d'une donnée (un octet) :Le chronogramme ci-dessous illustre la procédure de lecture d'une donnée (un octet) :

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS1621

Page 38: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16215- 5- Pilotage directement avec ExcelPilotage directement avec Excel

Utilisation de fonctions I2C déjà programméesUtilisation de fonctions I2C déjà programmées

Pour le protocole I2C, nous allons utiliser des fonctions "préprogrammées" qui se 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 trouvent dans le module I2C_RS232.bas qu'il faudra importer. Examinons ces fonctions :fonctions :

I2CInit I2CInit Sub I2CInit()Sub I2CInit()

RTS 1RTS 1 'SCL = 1 'SCL = 1 (ligne SCL au repos)(ligne SCL au repos)DTR 1 DTR 1 'SDA = 1'SDA = 1 (ligne SDA au repos)(ligne SDA au repos)End SubEnd Sub

DepartDepartSub Depart()Sub Depart()RTS 1 RTS 1 ' SCL = 1' SCL = 1 (mise au repos du bus, au cas où ...)(mise au repos du bus, au cas où ...)DTR 1 DTR 1 ' SDA = 1' SDA = 1DTR 0 DTR 0 ' SDA = 0' SDA = 0 (passage de "1" vers "0" et RTS reste à 1)(passage de "1" vers "0" et RTS reste à 1)End SubEnd Sub

ArretArretSub Arret()Sub Arret()RTS 1 RTS 1 ' SCL = 0' SCL = 0DTR 0 DTR 0 ' SDA = 0' SDA = 0DTR 1 DTR 1 ' SDA = 1' SDA = 1 (passage de "0" vers "1" et RTS reste à 1) (passage de "0" vers "1" et RTS reste à 1)End SubEnd Sub

Page 39: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Utilisation de fonctions I2C déjà programmées (suite)Utilisation de fonctions I2C déjà programmées (suite)

SortieSortieFunction Sortie(Valeur As Byte) As BooleanFunction Sortie(Valeur As Byte) As Boolean

Sortie = True Sortie = True ' Initialisation de l'erreur de ' Initialisation de l'erreur de transmissiontransmission

ValeurBit = 128 ValeurBit = 128 ' traitement du bit de poid fort en 1°' traitement du bit de poid fort en 1°

RTS 0RTS 0

For n = 1 To 8For n = 1 To 8

If (Valeur And ValeurBit) = ValeurBit Then If (Valeur And ValeurBit) = ValeurBit Then ' masque de sélection des bits' masque de sélection des bits

DTR 1 DTR 1 ' SDA=1 transmission d'un "1"' SDA=1 transmission d'un "1"

ElseElse

DTR 0 DTR 0 ' SDA=0 transmission d'un "0"' SDA=0 transmission d'un "0"

End IfEnd If

RTS 1 RTS 1 ' SCL=1' SCL=1

DELAYUS 10 DELAYUS 10 ' temporisation 10µs' temporisation 10µs

RTS 0 RTS 0 ' SCL=0' SCL=0

DELAYUS 10 DELAYUS 10 ' temporisation 10µs' temporisation 10µs

ValeurBit = ValeurBit \ 2 ValeurBit = ValeurBit \ 2 ' passage au bit de rang inférieur' passage au bit de rang inférieur

Next nNext n

DTR 1 DTR 1 ' SDA=1' SDA=1

RTS 1 RTS 1 ' SCL=1' SCL=1

DELAYUS 10 DELAYUS 10 ' Boucle de temporisation' Boucle de temporisation

If CTS = 1 Then Sortie = False If CTS = 1 Then Sortie = False ' si SDA=1 pas de confirmation du ' si SDA=1 pas de confirmation du récepteurrécepteur

RTS 0 RTS 0 ' SCL=0' SCL=0

End FunctionEnd Function

Page 40: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Utilisation de fonctions I2C déjà programmées (suite)Utilisation de fonctions I2C déjà programmées (suite)

LectureLectureFunction Lecture() As ByteFunction Lecture() As Byte

DTR 1 DTR 1 ' SDA="1"' SDA="1"

ValeurBit = 128 ValeurBit = 128 ' traitement du bit de poids fort en 1°' traitement du bit de poids fort en 1°

Valeur = 0 Valeur = 0 ' initialisation variable Valeur' initialisation variable Valeur

For n = 1 To 8For n = 1 To 8

RTS 1 RTS 1 ' SCL="1"' SCL="1"

DELAYUS 10 DELAYUS 10 ' temporisation 10µs' temporisation 10µs

Valeur = Valeur + ValeurBit * CTS Valeur = Valeur + ValeurBit * CTS ' lecture CTS transmis par l'esclave' lecture CTS transmis par l'esclave

RTS 0 RTS 0 ' SCL="0"' SCL="0"

DELAYUS 10 DELAYUS 10 ' temporisation 10µs' temporisation 10µs

ValeurBit = ValeurBit \ 2 ValeurBit = ValeurBit \ 2 ' passage au bit de rang inférieur' passage au bit de rang inférieur

Next nNext n

Lecture = Valeur Lecture = Valeur ' affectation de l'octet reçu à la fonction' affectation de l'octet reçu à la fonction

' SCL reste à "0"' SCL reste à "0"

End FunctionEnd Function

Page 41: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

Utilisation de fonctions I2C déjà programmées (suite)Utilisation de fonctions I2C déjà programmées (suite)

Confirmer (attente d'un autre octet)Confirmer (attente d'un autre octet)

Sub Confirmer()Sub Confirmer()

DTR 0 DTR 0 ' SDA = "0"' SDA = "0"RTS 1 RTS 1 ' SCL = "1"' SCL = "1"DELAYUS 10 DELAYUS 10 ' Attente 10µs' Attente 10µsRTS 0 RTS 0 ' SCL = 0' SCL = 0

End SubEnd Sub

Sans Confirmer (pas d'autre octet à lire)Sans Confirmer (pas d'autre octet à lire)

Sub SansConfirmer()Sub SansConfirmer()

DTR 1 DTR 1 ' SDA = "1"' SDA = "1"RTS 1 RTS 1 ' SCL = 1' SCL = 1DELAYUS 10 DELAYUS 10 ' Attente 10µs' Attente 10µsRTS 0 RTS 0 ' SCL = 0' SCL = 0DTR 0DTR 0 ' préparation condition d'arrêt' préparation condition d'arrêtRTS 1RTS 1 ' préparation condition d'arrêt' préparation condition d'arrêt

End SubEnd Sub

Page 42: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16215- 5- Pilotage directement avec Excel (suite)Pilotage directement avec Excel (suite)

Commandes pour la communication avec le capteurCommandes pour la communication avec le capteur

Pour communiquer avec le capteur, il faut utiliser les commandes suivantes :Pour communiquer avec le capteur, il faut utiliser les commandes suivantes :

Adressage des capteurs en écriture (dernier bit à "0")Adressage des capteurs en écriture (dernier bit à "0") Sortie (&H90)Sortie (&H90) ' capteur 1' capteur 1

Sortie (&H92)Sortie (&H92) ' capteur 2' capteur 2

Adressage des capteurs en lecture (dernier bit à "1") Adressage des capteurs en lecture (dernier bit à "1") Sortie (&H91)Sortie (&H91) ' capteur 1' capteur 1Sortie (&H93)Sortie (&H93) ' capteur 2' capteur 2

Registre de configurationRegistre de configurationSortie (&HAC)Sortie (&HAC) ' écriture dans le registre de configuration' écriture dans le registre de configuration

Sortie (&H02)Sortie (&H02) ' conversion en continu' conversion en continu

Début des conversionsDébut des conversionsSortie (&HEE)Sortie (&HEE) ' Demande de conversions' Demande de conversions

Demande lectureDemande lectureSortie (&HAA)Sortie (&HAA) ' demande de lecture d'une mesure' demande de lecture d'une mesure

Page 43: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16215- 5- Pilotage directement avec Excel (suite)Pilotage directement avec Excel (suite)

Préparation du fichier Excel Préparation du fichier Excel

Le travail à faire est indiqué par Le travail à faire est indiqué par ..Le code à écrire ou déjà écrit est indiqué en Le code à écrire ou déjà écrit est indiqué en vertvert et les commentaire sont précédés par le et les commentaire sont précédés par le

caractère caractère ' ' ..Pour basculer entre la feuille Pour basculer entre la feuille ExcelExcel et la fenêtre et la fenêtre Visual BasicVisual Basic il faut faire il faut faire Alt + F11Alt + F11. .

Ouvrir un nouveau fichier Excel , faire afficher la "boite à outils contrôles" et placer un Ouvrir un nouveau fichier Excel , faire afficher la "boite à outils contrôles" et placer un "bouton de commande" sur la feuille."bouton de commande" sur la feuille.Faire un double clic sur le bouton pour se retrouver dans la fenêtre Faire un double clic sur le bouton pour se retrouver dans la fenêtre VisualBasicVisualBasic..

Le programme relatif au clic sur le bouton doit être complété et apparaître ainsi :Le programme relatif au clic sur le bouton doit être complété et apparaître ainsi :Private Sub CommandButton1_Click()Private Sub CommandButton1_Click()UserForm1.ShowUserForm1.Show 'affichage de la fenêtre'affichage de la fenêtreEnd SubEnd Sub

Il faut maintenant créer la fenêtre UserForm1 Il faut maintenant créer la fenêtre UserForm1 en faisant un clic droit dans cette zone en faisant un clic droit dans cette zone et sélectionner et sélectionner IInsersion / nsersion / UUserFormserForm..Revenir dans Revenir dans ExcelExcel et tester l'affichage de la fenêtre et tester l'affichage de la fenêtre en cliquant sur le bouton (il faut d'abord désactiver le en cliquant sur le bouton (il faut d'abord désactiver le mode création).mode création).

Revenir dans Revenir dans Visual BasicVisual Basic et importer les deux fichiers et importer les deux fichiers( port_dll.bas et I2C_RS232.bas ) depuis le dossier( port_dll.bas et I2C_RS232.bas ) depuis le dossierrelatif au stage en faisant un clic droit dans cette zonerelatif au stage en faisant un clic droit dans cette zoneet en sélectionnant et en sélectionnant IImporter un fichier ...mporter un fichier ...

Page 44: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16215- 5- Pilotage directement avec Excel (suite)Pilotage directement avec Excel (suite)

Préparation de la fenêtre Préparation de la fenêtre UserForm1UserForm1

Il faut maintenant ajouter des contrôles à la fenêtre Il faut maintenant ajouter des contrôles à la fenêtre UserForm1UserForm1..

Faire un double clic sur Faire un double clic sur UserForm1 UserForm1 iciicipour afficher la fenêtre (vide).pour afficher la fenêtre (vide).

Placer les contrôles dans le fenêtre comme indiquéPlacer les contrôles dans le fenêtre comme indiquéci-dessous (les textes dans les contrôles seront ci-dessous (les textes dans les contrôles seront ajoutés plus tard):ajoutés plus tard):

Bouton de commande (sélection du ou des capteurs)

Intitulé (affichage de texte uniquement)Zone de texte (texte modifiable par l'utilisateur)

A placer en 1°

en 2°

en 3°

en 1°

en 2°

Page 45: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16215- 5- Pilotage directement avec Excel (suite)Pilotage directement avec Excel (suite)

Programmation des fonctionsProgrammation des fonctions

Plusieurs fonctions doivent être créées pour dialoguer avec le composant.Plusieurs fonctions doivent être créées pour dialoguer avec le composant.

Faire un clic droit sur Faire un clic droit sur UserForm1 UserForm1 iciiciet sélectionner et sélectionner CodeCode, on se retrouve alors dans, on se retrouve alors dansla fenêtre de programme (vide) relative à la fenêtre de programme (vide) relative à UserForm1UserForm1

Ecrire le code de la procédure Ecrire le code de la procédure Capteur1InitCapteur1InitSub Capteur1Init()Sub Capteur1Init()REALTIME TrueREALTIME True 'activation priorité temporelle'activation priorité temporelleDepartDepart

Sortie (&H90) Sortie (&H90) 'adresse capteur1 : écriture'adresse capteur1 : écritureSortie (&HAC) Sortie (&HAC) 'écriture dans registre de configuration'écriture dans registre de configurationSortie (&H2) Sortie (&H2) 'conversions en continue'conversions en continue

DepartDepartSortie (&H90) Sortie (&H90) 'adresse capteur1 : écriture 'adresse capteur1 : écriture Sortie (&HEE) Sortie (&HEE) 'commande de début des conversions'commande de début des conversions

ArretArretREALTIME FalseREALTIME FalseEnd SubEnd Sub

Page 46: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16215- 5- Programmation des fonctions (suite) Programmation des fonctions (suite)

Ecrire, à la suite et de la même manière, le code de la procédure Capteur2InitEcrire, à la suite et de la même manière, le code de la procédure Capteur2InitSub Capteur2Init()Sub Capteur2Init().................................................. 'activation priorité temporelle'activation priorité temporelle..................................................

.................................................. 'adresse capteur2 : écriture'adresse capteur2 : écriture

.................................................. 'écriture dans registre de configuration'écriture dans registre de configuration

.................................................. 'conversions en continue'conversions en continue..................................................

.................................................. 'adresse capteur2 : écriture 'adresse capteur2 : écriture

.................................................. 'commande de début des conversions'commande de début des conversions....................................................................................................End SubEnd Sub

On peut maintenant écrire le code de la procédure qui va se déclencher dès l'activation On peut maintenant écrire le code de la procédure qui va se déclencher dès l'activation de la fenêtrede la fenêtrePrivate Sub UserForm_Activate()Private Sub UserForm_Activate()OPENCOM ("COM2,9600,N,8,1") OPENCOM ("COM2,9600,N,8,1") ' ouverture du port COM' ouverture du port COMTXD 1 TXD 1 ' alimentation de la carte' alimentation de la carteDELAY 100DELAY 100I2CInitI2CInit ' initialisation (mise au repos des lignes)' initialisation (mise au repos des lignes)Capteur1Init Capteur1Init ' configuration capteur1' configuration capteur1Capteur2Init Capteur2Init ' configuration capteur2' configuration capteur2End SubEnd Sub

Page 47: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16215- 5- Programmation des fonctions (suite) Programmation des fonctions (suite)

Code relatif à la fermeture de la fenêtreCode relatif à la fermeture de la fenêtrePrivate Sub UserForm_Deactivate()Private Sub UserForm_Deactivate()CLOSECOMCLOSECOM ' fermeture de l'accès au port série après ' fermeture de l'accès au port série après utilisationutilisationEnd SubEnd Sub

Création de la fonction Création de la fonction MesureCapteur1MesureCapteur1 Function MesureCapteur1() As SingleFunction MesureCapteur1() As SingleREALTIME TrueREALTIME TrueDepart Depart ' début transmission' début transmission

Sortie (&H90) Sortie (&H90) ' sélection capteur1 en écriture' sélection capteur1 en écritureSortie (&HAA) Sortie (&HAA) ' demande lecture mesure' demande lecture mesure

Depart Depart ' début transmission' début transmissionSortie (&H91) Sortie (&H91) ' sélection capteur1 en lecture' sélection capteur1 en lectureOctetPoidFort = Lecture OctetPoidFort = Lecture ' lecture 1° octet de mesure' lecture 1° octet de mesureConfirmer Confirmer ' confirmation réception' confirmation réceptionOctetPoidFaible = Lecture OctetPoidFaible = Lecture ' lecture 2° octet de mesure' lecture 2° octet de mesureSansConfirmer SansConfirmer ' pas d'autre octet à lire' pas d'autre octet à lire

Arret Arret ' fin transmission' fin transmissionREALTIME FalseREALTIME Falsemesure = OctetPoidFort + (OctetPoidFaible / 256) 'récupération mesuremesure = OctetPoidFort + (OctetPoidFaible / 256) 'récupération mesureMesureCapteur1 = CDec(mesure) MesureCapteur1 = CDec(mesure) ' transformation au format décimal et ' transformation au format décimal et affectation mesureaffectation mesure

End FunctionEnd Function

Page 48: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16215- 5- Programmation des fonctions (suite et fin) Programmation des fonctions (suite et fin)

Création de la fonction Création de la fonction MesureCapteur2MesureCapteur2 Function MesureCapteur2() As SingleFunction MesureCapteur2() As Single.................................................................................................... ' début transmission' début transmission

.................................................. ' sélection capteur2 en écriture' sélection capteur2 en écriture

.................................................. ' demande lecture mesure' demande lecture mesure.................................................. ' début transmission' début transmission

.................................................. ' sélection capteur2 en lecture' sélection capteur2 en lecture

.................................................. ' lecture 1° octet de mesure' lecture 1° octet de mesure

.................................................. ' confirmation réception' confirmation réception

.................................................. ' lecture 2° octet de mesure' lecture 2° octet de mesure

.................................................. ' pas d'autre octet à lire' pas d'autre octet à lire.................................................. ' fin transmission' fin transmission.................................................................................................... 'récupération mesure'récupération mesure.................................................. ' transformation au format décimal et ' transformation au format décimal et affectation mesureaffectation mesure

End FunctionEnd Function

Page 49: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16215- 5- Pilotage directement avec Excel (suite)Pilotage directement avec Excel (suite)

Programmation des fonctions relatives aux clic sur les boutons .... àprès c'est fini ... ou Programmation des fonctions relatives aux clic sur les boutons .... àprès c'est fini ... ou presque !presque !

Faire afficher Faire afficher UserForm1 UserForm1 et faire un double clic sur le bouton 1 (capteur1), la procédure et faire un double clic sur le bouton 1 (capteur1), la procédure apparaît vide, il ne reste plus qu'à la compléterapparaît vide, il ne reste plus qu'à la compléterPrivate Sub CommandButton1_Click()Private Sub CommandButton1_Click()Columns("A:C").ClearContentsColumns("A:C").ClearContents

Cells(1, 1) = "t (s)"Cells(1, 1) = "t (s)" 'péparation du tableau (écriture de 'péparation du tableau (écriture de texte)texte)

Cells(1, 2) = "T° Capteur1 (°C)"Cells(1, 2) = "T° Capteur1 (°C)"Intervalle = TextBox1.Value * 1000 Intervalle = TextBox1.Value * 1000 ' intervalle en ms (lecture du ' intervalle en ms (lecture du TexBox1)TexBox1)Nombrepoints = TextBox2.Value Nombrepoints = TextBox2.Value ' nombre de points (lecture du ' nombre de points (lecture du TexBox2)TexBox2)TIMEINITTIMEINITFor n = 0 To NombrepointsFor n = 0 To Nombrepoints 'début de la boucle'début de la boucleWhile TIMEREAD <= n * Intervalle While TIMEREAD <= n * Intervalle ' attente déclenchement temporel ' attente déclenchement temporel (compteur)(compteur)WendWendCells(n + 3, 1) = n * Intervalle / 1000 Cells(n + 3, 1) = n * Intervalle / 1000 ' affichage "temps"' affichage "temps"Cells(n + 3, 2) = MesureCapteur1 Cells(n + 3, 2) = MesureCapteur1 ' affichage mesure' affichage mesureNext nNext n ' retour ou fin de la boucle' retour ou fin de la boucleUserForm1.HideUserForm1.Hide ' fermeture de la fenêtre après ' fermeture de la fenêtre après acquisitionacquisitionEnd SubEnd Sub

Page 50: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16215- 5- Programmation des fonctions relatives aux clic sur les boutons (c'est presque la fin !) Programmation des fonctions relatives aux clic sur les boutons (c'est presque la fin !)

Faire afficher Faire afficher UserForm1 UserForm1 et faire un double clic sue le bouton 2 (capteur2), la procédure 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_Clickapparaît vide, il ne reste plus qu'à la compléter comme pour CommandButton1_ClickPrivate Sub CommandButton2_Click() Private Sub CommandButton2_Click() ......................... .........................

......................... ......................... 'péparation du tableau (écriture de 'péparation du tableau (écriture de texte)texte)

......................... ......................... ......................... ......................... ' intervalle en ms (lecture du TexBox1)' intervalle en ms (lecture du TexBox1) ......................... ......................... ' nombre de points (lecture du TexBox2)' nombre de points (lecture du TexBox2) ......................... ......................... ......................... ......................... 'début de la boucle'début de la boucle ......................... ......................... ' attente déclenchement temporel (compteur)' attente déclenchement temporel (compteur) ......................... ......................... ......................... ......................... ' affichage "temps"' affichage "temps" ......................... ......................... ' affichage mesure' affichage mesure ......................... ......................... ' retour ou fin de la boucle' retour ou fin de la boucle ......................... ......................... ' fermeture de la fenêtre après acquisition' fermeture de la fenêtre après acquisitionEnd SubEnd Sub

Page 51: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16215- 5- Programmation des fonctions relatives aux clic sur les boutons (là c'est fini ... Programmation des fonctions relatives aux clic sur les boutons (là c'est fini ...

promis !)promis !)

Faire afficher Faire afficher UserForm1 UserForm1 et faire un double clic sue le bouton 3 (capteurs 1 et 2), la 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.procédure apparaît vide, il ne reste plus qu'à la compléter ... tout seul.Private Sub CommandButton3_Click() Private Sub CommandButton3_Click() ......................... ......................... ......................... ......................... ......................... ......................... ......................... .........................

etc ... etc ...etc ... etc ...

......................... ......................... ......................... ......................... ......................... .........................

End SubEnd Sub

Page 52: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 2.2. 2. Le capteur "2 wire" DS1621 Le capteur "2 wire" DS16215- 5- Pilotage directement avec Excel (suite et fin)Pilotage directement avec Excel (suite et fin)

Connexion de la carte au port série et essai du programmeConnexion de la carte au port série et essai du programme

Connecter la carte électronique au port série COM2. 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 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.programme avec le capteur 1, puis le capteur 2 puis les deux capteurs.

Créer un graphique pour visualiser les variations de température.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 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 cas il faut voir pourquoi ? (erreur de frappe, protocole de travail mal suivi, le TP est mal expliqué ...).expliqué ...).

Il ne reste plus qu'à afficher le bon texte dans les boutons Il ne reste plus qu'à afficher le bon texte dans les boutons et dans les intitulés.et dans les intitulés.Dans Dans VisualBasicVisualBasic, faire un clic droit sur le contrôle , faire un clic droit sur le contrôle CommandBUtton1CommandBUtton1 pour afficher ses pour afficher ses propriétéspropriétés..Changer la propriété Changer la propriété CaptionCaption (texte affiché). (texte affiché).Faire de même pour les deux autres boutonsFaire de même pour les deux autres boutonsainsi que les deux intitulés.ainsi que les deux intitulés.D'autres propriétés sont modifiables (D'autres propriétés sont modifiables (Font, BackColorFont, BackColor ...). ...).

Fin de la manipulation sur le capteur DS1621.Fin de la manipulation sur le capteur DS1621.

Page 53: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 3.2. 3. Le capteur "1 wire" DS1820 Le capteur "1 wire" DS18201- 1- DescriptionDescription

Les caractéristiques générales de ce capteur sont les suivantes :Les caractéristiques générales de ce capteur sont les suivantes :

Boîtier TO92 (1 : masse; 2 : communication et 3 : alimentation).Boîtier TO92 (1 : masse; 2 : communication et 3 : alimentation).

Plage de mesure de -55°C à 125°C avec une précision de 0,0625°C (1 mesure en Plage de mesure de -55°C à 125°C avec une précision de 0,0625°C (1 mesure en 750ms).750ms).

Protocole de communication sur 1 fil (1 wire) nommé protocole iButton.Protocole de communication sur 1 fil (1 wire) nommé protocole iButton.

Format de mesure de température sur 9, 10, 11 ou 12 bits.Format de mesure de température sur 9, 10, 11 ou 12 bits.

Possibilité de brancher, en théorie, une infinitéPossibilité de brancher, en théorie, une infinité

de capteurs simultanément.de capteurs simultanément.

Page 54: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 3.2. 3. Le capteur "1 wire" DS1820 Le capteur "1 wire" DS18202- 2- Liaison à un microcontrôleurLiaison à un microcontrôleur

Liaison "3fils"Liaison "3fils"

Le capteur se branche à unLe capteur se branche à un

microcontrôleur avec seulementmicrocontrôleur avec seulement

une résistance de rappel.une résistance de rappel.L'alimentation et la masseL'alimentation et la masseoccupe les deux autres brochesoccupe les deux autres broches

Liaison "2fils"Liaison "2fils"

Le capteur se branche à unLe capteur se branche à unmicrocontrôleur avec seulementmicrocontrôleur avec seulementune résistance et un transistor àune résistance et un transistor àeffet de champ (résistanceeffet de champ (résistancecommandée par une tension).commandée par une tension).La broche d'alimentation estLa broche d'alimentation estreliée à la masse pour ne fairereliée à la masse pour ne fairequ'un fil.qu'un fil.

Page 55: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 3.2. 3. Le capteur "1 wire" DS1820 Le capteur "1 wire" DS18203- 3- Liaison au port série RS232Liaison au port série RS232

Le circuit DS9097U (Dallas) permet de relier tous les composants "1 Wire" au port série Le circuit DS9097U (Dallas) permet de relier tous les composants "1 Wire" au port série RS232.RS232.

Le capteur DS18B20 sera directement branché à l'interface (liaison "2fils").Le capteur DS18B20 sera directement branché à l'interface (liaison "2fils").

Capteur DS1820(liaison "2 fils")

Interface DS9097U(RS232)

Fil "téléphone"(seulement 2 fils utilisés)

Gaine Thermorétractable

Page 56: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 3.2. 3. Le capteur "1 wire" DS1820 Le capteur "1 wire" DS18204- 4- Utilisation du logiciel "iButton Viewer"Utilisation du logiciel "iButton Viewer"

Le logiciel iButton Viewer permet de dialoguer avec tous les composants "1 Wire" à travers Le logiciel iButton Viewer permet de dialoguer avec tous les composants "1 Wire" à travers l'interface série RS232 (DS9097U).l'interface série RS232 (DS9097U).

Ce programme se télécharge directement depuis le site Ce programme se télécharge directement depuis le site www.ibutton.comwww.ibutton.com à la rubrique à la rubrique "Software Developper's Tools / 1-wire for Windows / 1-wire drivers / download version 3.32 "Software Developper's Tools / 1-wire for Windows / 1-wire drivers / download version 3.32 (ou ultérieure).(ou ultérieure).

A l'installation du logiciel (exécution de "tm321b3_32.exe"), il faut ignorer les messages A l'installation du logiciel (exécution de "tm321b3_32.exe"), il faut ignorer les messages relatifs à l'USB.relatifs à l'USB.

Après installation du logiciel, il suffit de connecter l'interface RS232 (et le capteur) au port 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".série et de lancer l'application "ibutton viewer".

Numéro de sérieNuméro de série(8octets) du capteur(8octets) du capteurconnecté.connecté.

Numéro de sérieNuméro de série(8octets) de(8octets) del'interface RS 232l'interface RS 232

Page 57: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 3.2. 3. Le capteur "1 wire" DS1820 Le capteur "1 wire" DS18204- 4- Utilisation du logiciel "iButton Viewer" (suite et fin)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 Dans "iButton Viewer", un double clic sur le numéro de série du capteur permet de lancer le programme "Touch Thermometer".programme "Touch Thermometer".

Ce programme permet de visualiser la température mesurée par le capteur connecté Ce programme permet de visualiser la température mesurée par le capteur connecté (DS18B20).(DS18B20).

Possibilité de paramétrerPossibilité de paramétrerune alarme (températureune alarme (températurehaute et basse)haute et basse)

Page 58: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 4.2. 4. Le capteur "1 wire" DS1921 Le capteur "1 wire" DS19211- 1- PrésentationPrésentation

Le capteur de température DS1921 est un capteur autonome se présentant sous la forme Le capteur de température DS1921 est un capteur autonome se présentant sous la forme d'une pile bouton.d'une pile bouton.

Après avoir été programmé, il réalise seul les mesures de températures sans aucune Après avoir été programmé, il réalise seul les mesures de températures sans aucune connexion électrique.connexion électrique.

Pour consulter l'ensemble des mesures ou pour reprogrammer une mission, il faut le Pour consulter l'ensemble des mesures ou pour reprogrammer une mission, il faut le connecter à un circuit spécialisé.connecter à un circuit spécialisé.

Numéro de sérieunique sur 8 octets

Page 59: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 4.2. 4. Le capteur "1 wire" DS1921 Le capteur "1 wire" DS19212- 2- Liaison au port série RS232Liaison au port série RS232

Le circuit DS9097U (Dallas) permet de relier tous les composants "1 Wire" au port série Le circuit DS9097U (Dallas) permet de relier tous les composants "1 Wire" au port série RS232.RS232.

Le Kit complet : capteur DS1921 + interface DS9097U + cordon ne coûte que 30€ Le Kit complet : capteur DS1921 + interface DS9097U + cordon ne coûte que 30€ (distributeur : Farnell).(distributeur : Farnell).

Capteur DS1921

Interface DS9097U(RS 232)

Cordon de liaison

Pince demanipulationdu capteur

Possibilité d'insérerdeux capteurs

Page 60: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 4.2. 4. Le capteur "1 wire" DS1921 Le capteur "1 wire" DS19213- 3- Utilisation du logiciel "iButton Viewer"Utilisation du logiciel "iButton Viewer"

Le logiciel ibutton viewer sera naturellement utilisé puisqu'il permet de dialoguer avec tous 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).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 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 :et la fenêtre suivante apparaît :

Numéro de sérieNuméro de série(8octets) du capteur(8octets) du capteurconnecté.connecté.

Numéro de sérieNuméro de série(8octets) de(8octets) del'interface RS 232l'interface RS 232

Page 61: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 4.2. 4. Le capteur "1 wire" DS1921 Le capteur "1 wire" DS19214- 4- Utilisation du logiciel "Thermochron Viewer"Utilisation du logiciel "Thermochron Viewer"

Dans "iButton Viewer", un double clic sur le numéro de série du capteur permet de lancer le Dans "iButton Viewer", un double clic sur le numéro de série du capteur permet de lancer le programme "Thermochron Viewer".programme "Thermochron Viewer".

Ce programme permet de définir une "mission" de mesure pour le capteur DS1921.Ce programme permet de définir une "mission" de mesure pour le capteur DS1921.

Programmation de la missionProgrammation de la mission : :

ProgrammationProgrammationde la mission.de la mission.

Page 62: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 4.2. 4. Le capteur "1 wire" DS1921 Le capteur "1 wire" DS19214- 4- Utilisation du logiciel "Thermochron Viewer" (suite)Utilisation du logiciel "Thermochron Viewer" (suite)

Vérification de l'état de la missionVérification de l'état de la mission : :

Récapitulatif desRécapitulatif desparamètres deparamètres dela missionla mission

Page 63: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2. 4.2. 4. Le capteur "1 wire" DS1921 Le capteur "1 wire" DS19214- 4- Utilisation du logiciel "Thermochron Viewer" (suite et fin)Utilisation du logiciel "Thermochron Viewer" (suite et fin)

Consultation des mesuresConsultation des mesures : :

Consultation desConsultation desrésultats de larésultats de lamissionmission

Récapitulatif desRécapitulatif desmesuresmesures

Téléchargement desTéléchargement desmesures stockées dansmesures stockées dansle capteur.le capteur.

Page 64: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3.1.3.1. Présentation générale des Présentation générale des potentiomètres numériques potentiomètres numériques

1- Généralités1- Généralités

La position du curseur d'un potentiomètre "traditionnel" se commande de façon mécanique 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.(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 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" la position du curseur (0 x x 1): 1):

Pour un potentiomètre numérique, le curseur ne peut prendre qu'un nombre fini de Pour un potentiomètre numérique, le curseur ne peut prendre qu'un nombre fini de positions.positions.La commande de la position du curseur se fait de façon électronique (signaux numériques).La commande de la position du curseur se fait de façon électronique (signaux numériques).

Le schéma ci-dessous illustre les N+1 positions possibles du curseur pour un potentiomètre Le schéma ci-dessous illustre les N+1 positions possibles du curseur pour un potentiomètre numérique de résistance totale R:numérique de résistance totale R:

AA BB

CC

AA BB

CC

00 11 22 33 N-3N-3 N-2N-2 N-1N-1 NN

x.R (1-x).R

00 11xx

R/N R/N R/N R/N R/N R/N

Page 65: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3.1.3.1. Présentation générale des Présentation générale des potentiomètres numériques potentiomètres numériques

2- Caractéristiques2- Caractéristiques

Le schéma général d'un potentiomètre numérique est le suivant :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 commande numérique de la position du curseur entraîne les propriétés suivantes :

La position du curseur peut être La position du curseur peut être volatilevolatile ou ou non volatilenon volatile (conservation après coupure de (conservation après coupure de l'alimentation).l'alimentation).

La commande peut être de type La commande peut être de type incrémentalincrémental ou ou décrémentaldécrémental (augmentation ou (augmentation ou diminution de la position du curseur).diminution de la position du curseur).

La commande peut être de type La commande peut être de type absoluabsolu (commande directe de la position). (commande directe de la position).

AA

BB

CC

VDD

Mult

iple

xeur

Commandeposition curseur

Page 66: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3.2.3.2. Mise en œuvre du potentiomètre Mise en œuvre du potentiomètre DS1803 DS1803

1- Caractéristiques du DS18031- Caractéristiques du DS1803

Le DS1803 a les caractéristiques suivantes :Le DS1803 a les caractéristiques suivantes :

-- double potentiomètre POT-0 et POT-1 (seul le P0T-0 sera utilisé pour notre application)double potentiomètre POT-0 et POT-1 (seul le P0T-0 sera utilisé pour notre application)

-- 256 positions volatiles256 positions volatiles par potentiomètre par potentiomètre

-- commande absoluecommande absolue par par bus I2Cbus I2C avec possibilité de lire la position (confirmation). avec possibilité de lire la position (confirmation).

Extrait de la documentation constructeur (Dallas Semiconductor) :Extrait de la documentation constructeur (Dallas Semiconductor) :

Borne Borne AA "0" "0"

Borne Borne BB "255" "255"

CurseurCurseur C C

Page 67: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3.2.3.2. Mise en œuvre du potentiomètre Mise en œuvre du potentiomètre DS1803 DS1803

2- Les différentes commandes2- Les différentes commandes

Les commandes pour utiliser le potentiomètre sont précisées ci-dessous (POT-0 a été câblé Les commandes pour utiliser le potentiomètre sont précisées ci-dessous (POT-0 a été câblé avec l'adresse physique (aavec l'adresse physique (a22,a,a11,a,a00) = (0,0,0):) = (0,0,0):

-- EcritureEcriture

-- LectureLecture

Page 68: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3.2.3.2. Mise en œuvre du potentiomètre Mise en œuvre du potentiomètre DS1803 DS1803

3- Le montage relié au port série RS232 (schéma)3- Le montage relié au port série RS232 (schéma)

Page 69: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3.2.3.2. Mise en œuvre du potentiomètre Mise en œuvre du potentiomètre DS1803 DS1803

3- Le montage relié au port série RS232 (implantation)3- Le montage relié au port série RS232 (implantation)

Page 70: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3.2.3.2. Mise en œuvre du potentiomètre Mise en œuvre du potentiomètre DS1803 DS1803

3- Le montage relié au port série RS232 (photo du montage)3- Le montage relié au port série RS232 (photo du montage)

Page 71: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3.2.3.2. Mise en œuvre du potentiomètre Mise en œuvre du potentiomètre DS1803 DS1803

4- Pilotage directement depuis 4- Pilotage directement depuis ExcelExcel

L'interface utilisateur du fichier Excel de pilotage du potentiomètre est représenté ci-L'interface utilisateur du fichier Excel de pilotage du potentiomètre est représenté ci-dessous:dessous:

Label1(Intilulé)

Label2(Intitulé)

ScrollBar1

Intitulés (affichage de texte fixe)

Page 72: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

4- Pilotage directement depuis 4- Pilotage directement depuis ExcelExcel (suite) (suite)

La réalisation du programme La réalisation du programme VBAVBA devra passer par les étapes suivantes (rappel): devra passer par les étapes suivantes (rappel):

Insertion du bouton de commande dans Insertion du bouton de commande dans ExcelExcel pour l'affichage de la fenêtre de pour l'affichage de la fenêtre de dialogue.dialogue.

Création de la procédure Création de la procédure CommandButton1_Click()CommandButton1_Click() dans dans VBAVBA pour afficher la fenêtre. pour afficher la fenêtre.

Insertion de la fenêtre dans Insertion de la fenêtre dans VBAVBA (insertion UserForm). (insertion UserForm).

Importation des fichiers Port_dll.bas et I2C_RS232.bas.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).Placement des contrôles dans la fenêtre (barre de défilement et intitulés).

Création des procédures Création des procédures UserForm_Activate()UserForm_Activate() et et Userform_Deactivate()Userform_Deactivate()..

Création de la procédure Création de la procédure ScrollBar1_Change()ScrollBar1_Change() qui contiendra le dialogue avec le qui contiendra le dialogue avec le composant et l'affichage sur les intitulés (c'est le programme principal qui se déclenche 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).à chaque changement de position de la barre de défilement).

Page 73: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

4- Pilotage directement depuis 4- Pilotage directement depuis ExcelExcel (suite et fin) (suite et fin)

Réaliser l'application complète pour piloter le potentiomètre (la procédure contenant le Réaliser l'application complète pour piloter le potentiomètre (la procédure contenant le programme principal est indiquée ci-dessous) :programme principal est indiquée ci-dessous) :

Private Sub ScrollBar1_Change()Private Sub ScrollBar1_Change()

Position = ScrollBar1.ValuePosition = ScrollBar1.Value ' création et affectation de la variable "Position"' création et affectation de la variable "Position"Label1.Caption = PositionLabel1.Caption = Position ' affichage de la position commandée dans le 1° ' affichage de la position commandée dans le 1°

LabelLabel

REALTIME TrueREALTIME True ' activation priorité temporelle' activation priorité temporelleDepartDepart ' début protocole I2C' début protocole I2CSortie (&H50)Sortie (&H50) ' adresse POT_0 en écriture' adresse POT_0 en écritureSortie (&HA9)Sortie (&HA9) ' commande d'écriture position' commande d'écriture positionSortie (CByte(Position))Sortie (CByte(Position)) ' écriture de la position de POT_0 (transformation texte en ' écriture de la position de POT_0 (transformation texte en

octet 8 bits octet 8 bitsArretArret ' fin protocole I2C' fin protocole I2C

DepartDepart ' début protocole I2C' début protocole I2CSortie (&H51)Sortie (&H51) ' adresse POT_0 en lecture' adresse POT_0 en lectureLabel2.Caption = LectureLabel2.Caption = Lecture ' lecture position + affichage dans le 2° Label' lecture position + affichage dans le 2° LabelSansConfirmerSansConfirmer ' fin de lecture des données venant du composant' fin de lecture des données venant du composantArretArret ' fin protocole I2C' fin protocole I2C

REALTIME FalseREALTIME False ' désactivation priorité temporelle' désactivation priorité temporelle

End SubEnd Sub

Page 74: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3.3.3.3. Présentation d'une application Présentation d'une application DelphiDelphi pour piloter le potentiomètre pour piloter le potentiomètre

1- Limitations de VBA (VisualBasic Excel)1- Limitations de VBA (VisualBasic Excel)

Avantages de Avantages de VBAVBA : :

-- Elaboration "visuelle" de l'application (placement des objets par dessin, propriétés 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 affectées par défaut, sélection automatique des procédures, pas de déclarations initiales des variables et fonctions ...).des variables et fonctions ...).

-- Affichage direct des données dans Affichage direct des données dans ExcelExcel (création de graphiques, traitement des (création de graphiques, traitement des données...).données...).

Limitations de Limitations de VBAVBA : :

-- VBAVBA ne peut fonctionner qu'avec une application ne peut fonctionner qu'avec une application OfficeOffice ( (WordWord,, Excel Excel, ...)., ...).

-- La vitesse d'exécution est beaucoup plus lente que pour un programme autonome ( .exe).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) :Il existe de nombreux logiciels pour élaborer des applications autonomes (fichier .exe) :

-- Visual BasicVisual Basic (identique à (identique à VBAVBA mais toujours un problème de lenteur d'exécution). mais toujours un problème de lenteur d'exécution).

-- Langage Langage CC : : C++C++; ; C++BuilderC++Builder; ; Visual C++Visual C++ (langage de programmation très performant (langage de programmation très performant mais demande un long apprentissage).mais demande un long apprentissage).

-- DelphiDelphi (langage de programmation (langage de programmation PascalPascal, apprentissage aisé et vitesse d'exécution , apprentissage aisé et vitesse d'exécution rapide).rapide).

Le programme pilotant le potentiomètre sera donc réalisé avec Le programme pilotant le potentiomètre sera donc réalisé avec DelphiDelphi..

Page 75: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3.3.3.3. Présentation d'une application Présentation d'une application DelphiDelphi pour piloter le potentiomètre pour piloter le potentiomètre

2- Présentation de l'interface2- Présentation de l'interface

L'interface utilisateur de l'application autonome PotNum.exe est représentée ci-dessous:L'interface utilisateur de l'application autonome PotNum.exe est représentée ci-dessous:

Page 76: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3.3.3.3. Présentation d'une application Présentation d'une application DelphiDelphi pour piloter le potentiomètre pour piloter le potentiomètre

2- Présentation de l'unité Port_dll.pas2- Présentation de l'unité Port_dll.pas

Le code source de Le code source de l'unitél'unité Port_dll.pas est similaire à celui du Port_dll.pas est similaire à celui du modulemodule Port_dll.bas (extrait ci- Port_dll.bas (extrait ci-dessous):dessous):

unit Port_dll;unit Port_dll;

interfaceinterfaceuses windows;uses windows;

const THEDLL='PORT.DLL';const THEDLL='PORT.DLL';Procedure DELAY(i:WORD); stdcall; external THEDLL;Procedure DELAY(i:WORD); stdcall; external THEDLL;Procedure TIMEINIT; stdcall; external THEDLL;Procedure TIMEINIT; stdcall; external THEDLL;Function TIMEREAD: DWORD; stdcall; external THEDLL;Function TIMEREAD: DWORD; stdcall; external THEDLL;Procedure DELAYUS(i:DWORD); stdcall; external THEDLL;Procedure DELAYUS(i:DWORD); stdcall; external THEDLL;Procedure TIMEINITUS; stdcall; external THEDLL;Procedure TIMEINITUS; stdcall; external THEDLL;Function TIMEREADUS: DWORD; stdcall; external THEDLL;Function TIMEREADUS: DWORD; stdcall; external THEDLL;Procedure OUTPORT(PortAddr:Word; Data:byte); stdcall; external THEDLL;Procedure OUTPORT(PortAddr:Word; Data:byte); stdcall; external THEDLL;Function INPORT(PortAddr:Word):Byte;stdcall; external THEDLL;Function INPORT(PortAddr:Word):Byte;stdcall; external THEDLL;Function OPENCOM(S:PCHAR):Integer;stdcall; external THEDLL;Function OPENCOM(S:PCHAR):Integer;stdcall; external THEDLL;Procedure CLOSECOM;stdcall; external THEDLL;Procedure CLOSECOM;stdcall; external THEDLL;Function READBYTE:Integer;stdcall; external THEDLL;Function READBYTE:Integer;stdcall; external THEDLL;Procedure SENDBYTE(d:WORD);stdcall; external THEDLL;Procedure SENDBYTE(d:WORD);stdcall; external THEDLL;Procedure DTR(d:WORD);stdcall; external THEDLL;Procedure DTR(d:WORD);stdcall; external THEDLL;Procedure RTS(d:WORD);stdcall; external THEDLL;Procedure RTS(d:WORD);stdcall; external THEDLL;Procedure TXD(d:WORD);stdcall; external THEDLL;Procedure TXD(d:WORD);stdcall; external THEDLL;

Page 77: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

2- Présentation de l'unité Port_dll.pas (suite et fin)2- Présentation de l'unité Port_dll.pas (suite et fin)

Function CTS:Integer;stdcall; external THEDLL;Function CTS:Integer;stdcall; external THEDLL;Function DSR:Integer;stdcall; external THEDLL;Function DSR:Integer;stdcall; external THEDLL;Function RI:Integer;stdcall; external THEDLL;Function RI:Integer;stdcall; external THEDLL;Function DCD:Integer;stdcall; external THEDLL;Function DCD:Integer;stdcall; external THEDLL;Procedure REALTIME(d:BOOLEAN);stdcall; external THEDLL;Procedure REALTIME(d:BOOLEAN);stdcall; external THEDLL;Function SOUNDSETRATE(Rate:DWORD):DWORD; stdcall; external THEDLL;Function SOUNDSETRATE(Rate:DWORD):DWORD; stdcall; external THEDLL;Function SOUNDGETRATE:DWORD; stdcall; external THEDLL;Function SOUNDGETRATE:DWORD; stdcall; external THEDLL;Function SOUNDBUSY:Boolean; stdcall; external THEDLL;Function SOUNDBUSY:Boolean; stdcall; external THEDLL;Function SOUNDIS:Boolean; stdcall; external THEDLL;Function SOUNDIS:Boolean; stdcall; external THEDLL;Procedure SOUNDIN(Puffer:Pchar;Size:DWORD); stdcall; external THEDLL;Procedure SOUNDIN(Puffer:Pchar;Size:DWORD); stdcall; external THEDLL;Procedure SOUNDOUT(Puffer:Pchar;Size:DWORD); stdcall; external THEDLL;Procedure SOUNDOUT(Puffer:Pchar;Size:DWORD); stdcall; external THEDLL;Function SOUNDGETBYTES:DWORD; stdcall; external THEDLL;Function SOUNDGETBYTES:DWORD; stdcall; external THEDLL;Function SOUNDSETBYTES(B:DWORD):DWORD; stdcall; external THEDLL;Function SOUNDSETBYTES(B:DWORD):DWORD; stdcall; external THEDLL;Procedure SOUNDCAPIN; stdcall; external THEDLL;Procedure SOUNDCAPIN; stdcall; external THEDLL;Procedure SOUNDCAPOUT; stdcall; external THEDLL;Procedure SOUNDCAPOUT; stdcall; external THEDLL;Function JOYX:DWORD;stdcall; external THEDLL;Function JOYX:DWORD;stdcall; external THEDLL;Function JOYY:DWORD;stdcall; external THEDLL;Function JOYY:DWORD;stdcall; external THEDLL;Function JOYZ:DWORD;stdcall; external THEDLL;Function JOYZ:DWORD;stdcall; external THEDLL;Function JOYR:DWORD;stdcall; external THEDLL;Function JOYR:DWORD;stdcall; external THEDLL;Function JOYBUTTON:DWORD;stdcall; external THEDLL;Function JOYBUTTON:DWORD;stdcall; external THEDLL;

implementationimplementation

end.end.

Page 78: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3.3.3.3. Présentation d'une application Présentation d'une application DelphiDelphi pour piloter le potentiomètre pour piloter le potentiomètre

3- Présentation de l'unité I2C_RS232.pas3- Présentation de l'unité I2C_RS232.pas

Le code source de Le code source de l'unitél'unité I2C_RS232.pas est similaire à celui du I2C_RS232.pas est similaire à celui du modulemodule I2C_RS232.bas I2C_RS232.bas (extrait ci-dessous):(extrait ci-dessous):

unit I2C_RS232;unit I2C_RS232;

interfaceinterface uses Port_dll, Windows;uses Port_dll, Windows;

Procedure I2C_Init;Procedure I2C_Init;Procedure Start;Procedure Start;Procedure Stop;Procedure Stop;Procedure Confirmer;Procedure Confirmer;Procedure SansConfirmer;Procedure SansConfirmer;Function Sortie (Valeur : Byte): Boolean;Function Sortie (Valeur : Byte): Boolean;Function Lecture : Byte;Function Lecture : Byte;

implementationimplementation

procedure I2C_Init;procedure I2C_Init;beginbegin RTS(1); DTR(1);RTS(1); DTR(1);end;end;

Page 79: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3- Présentation de l'unité I2C_RS232.pas (suite)3- Présentation de l'unité I2C_RS232.pas (suite)

procedure Start;procedure Start;

beginbegin

RTS(1); DTR(1); DTR(0);RTS(1); DTR(1); DTR(0);

end;end;

procedure Stop;procedure Stop;

beginbegin

RTS(1); DTR(0); DTR(1);RTS(1); DTR(0); DTR(1);

end;end;

procedure Confirmer;procedure Confirmer;

beginbegin

DTR(0); RTS(1);DTR(0); RTS(1);

Delayus (10); Delayus (10); { Temporisation 10µs}{ Temporisation 10µs}

RTS(0);RTS(0);

end;end;

procedure SansConfirmer;procedure SansConfirmer;

beginbegin

DTR(1); RTS(1);DTR(1); RTS(1);

Delayus (10); Delayus (10); { Temporisation 10µs }{ Temporisation 10µs }

RTS(0); DTR(0); RTS(1);RTS(0); DTR(0); RTS(1);

end;end;

Page 80: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3- Présentation de l'unité I2C_RS232.pas (suite)3- Présentation de l'unité I2C_RS232.pas (suite)

Function Sortie (Valeur : Byte): Boolean;Function Sortie (Valeur : Byte): Boolean;

var ValeurBit, n: Byte;var ValeurBit, n: Byte;

beginbegin

Sortie := true;Sortie := true;

ValeurBit := 128;ValeurBit := 128;

RTS(0);RTS(0);

for n:= 1 to 8 do beginfor n:= 1 to 8 do begin

if (Valeur and ValeurBit) = ValeurBit then DTR(1)if (Valeur and ValeurBit) = ValeurBit then DTR(1)

else DTR(0); else DTR(0); { Positionner SDA }{ Positionner SDA }

RTS(1); RTS(1); { SCL=1 }{ SCL=1 }

Delayus (10); Delayus (10); { Temporisation 10µs }{ Temporisation 10µs }

RTS(0); RTS(0); { SCL=0 }{ SCL=0 }

Delayus (10); Delayus (10); { Temporisation 10µs }{ Temporisation 10µs }

ValeurBit := ValeurBit div 2;ValeurBit := ValeurBit div 2;

end;end;

DTR(1); DTR(1); { SDA=1 }{ SDA=1 }

RTS(1); RTS(1); { SCL=1, lire SDA }{ SCL=1, lire SDA }

Delayus (10); Delayus (10); { Temporisation 10µs }{ Temporisation 10µs }

if CTS = 1 then Sortie := False;if CTS = 1 then Sortie := False;

RTS(0); RTS(0); { SCL=0 }{ SCL=0 }

end;end;

Page 81: Stage Composants électroniques modernes Animateur : Christian BISSIERES ( Professeur de Physique Appliquée ) Responsable pédagogique : Jean-Claude REBEYROLE

3- Présentation de l'unité I2C_RS232.pas (suite et fin)3- Présentation de l'unité I2C_RS232.pas (suite et fin)

function Lecture : Byte;function Lecture : Byte;

var ValeurBit, Valeur, n: Byte;var ValeurBit, Valeur, n: Byte;

beginbegin

DTR(1); DTR(1); { SDA=1 }{ SDA=1 }

ValeurBit := 128;ValeurBit := 128;

Valeur := 0;Valeur := 0;

for n:= 1 to 8 do beginfor n:= 1 to 8 do begin

RTS(1); RTS(1); { SCL=1, lire SDA }{ SCL=1, lire SDA }

Delayus (10); Delayus (10); { Temporisation 10µs }{ Temporisation 10µs }

Valeur := Valeur + ValeurBit * CTS;Valeur := Valeur + ValeurBit * CTS;

RTS(0); RTS(0); { SCL=0 }{ SCL=0 }

Delayus (10); Delayus (10); { Temporisation 10µs }{ Temporisation 10µs }

ValeurBit := ValeurBit div 2;ValeurBit := ValeurBit div 2;

end;end;

Lecture := Valeur;Lecture := Valeur;

end;end;

end.end.