Bibliothèque technique gratuite ENCYCLOPÉDIE DE LA RADIOÉLECTRONIQUE ET DU GÉNIE ÉLECTRIQUE Fonctionnement ADC avec port COM, système d'acquisition de données simple. Encyclopédie de l'électronique radio et de l'électrotechnique Encyclopédie de l'électronique radio et de l'électrotechnique / ordinateurs Cet article s'adresse principalement aux débutants. Pour ceux qui ont décidé de s'essayer à la création d'un système d'acquisition de données, à l'entrée de signaux analogiques dans un ordinateur, à leur traitement, etc. Cela sera discuté dans cet article, et nous essaierons de tout faire nous-mêmes. En général, il y a peu d'informations à ce sujet sur Internet et dans la littérature... Surtout si vous utilisez le langage Visual Basic. Je vais donc essayer de combler, au moins en partie, cette lacune. Alors, commençons… Quel que soit votre objectif, vous devez d'abord acheter le véritable convertisseur analogique-numérique (ADC). Et aussi, installez l'environnement de développement Visual Basic 6.0 sur votre ordinateur. Il faut aussi être capable de naviguer dans cet environnement de développement de manière élémentaire... parce que. L'article est conçu pour s'assurer que le lecteur possède au moins une connaissance de base de la programmation en Visual Basic. Je recommande également la lecture de la littérature [1], [3]. En tant qu'ADC, je recommande l'achat du TLC549IP. Il s'agit d'un ADC série 8 bits avec un protocole de communication simple. Il en sera question dans l'article. Bien sûr, vous pouvez utiliser d'autres ADC avec les modifications appropriées du circuit et du code. Vous pouvez en savoir plus à ce sujet dans [1]. Après avoir parcouru l'ADC, vous devez assembler le matériel de notre système d'acquisition de données, à savoir le circuit illustré à la Fig. 1. Le schéma a été emprunté à [1] avec des modifications mineures. Diodes VD1, VD2, VD6 - KD521, toutes les diodes Zener pour une tension de stabilisation de 3 ... 5 V. Au lieu de 78L05, vous pouvez utiliser KREN5A. Résistances R1, R2 avec une tolérance de 1%, ou une sélection parmi plusieurs avec la valeur de résistance la plus proche possible. La précision des mesures en dépendra. La résistance R3 est de préférence multi-tours. réglage: après avoir alimenté la carte, on mesure la tension à la borne Out du stabilisateur DA1. Nous écrivons la valeur de tension obtenue avec 3 décimales, nous en aurons besoin à l'avenir. À la broche 1 du microcircuit DD1, à l'aide de la résistance R3, nous fixons la tension à exactement la moitié du stabilisateur mesuré à la broche Out. Passons maintenant à la partie logicielle proprement dite. De manière générale, utilisez d'abord des interfaces de communication telles que RS-232, I2C, Micro Ware, etc. Je considère que c'est inapproprié, car avec une légère complication du code du programme, la partie matérielle peut devenir sérieusement compliquée. Par conséquent, nous utiliserons le protocole d'échange le plus simple tiré de la "fiche technique" sur l'ADC. A savoir, sa mise en œuvre simple. Bien sûr, une vitesse élevée ne peut pas être atteinte avec un tel protocole, dans ce cas Visual Basic lui-même impose des restrictions, mais il convient tout à fait pour obtenir les premiers résultats avec un minimum de temps et d'efforts, ainsi que pour mesurer des processus évoluant relativement lentement. Le protocole de communication du CAN TLC549IP est illustré à la Fig. 2. Au cours d'un seul état, la conversion réelle se produit au niveau de la broche CS (sélection de puce) du convertisseur analogique-numérique. La sortie de données commence à CS bas avec l'apparition de l'impulsion d'horloge, un bit pour chaque impulsion. Pour émettre un code 8 bits, vous avez besoin de 8 impulsions d'horloge, respectivement. Après cela, CS peut être transféré dans un seul état et la transformation suivante peut être effectuée. Plus de détails sur le fonctionnement de l'ADC peuvent être trouvés dans [1]. De tout cela, nous pouvons conclure qu'il est nécessaire d'écrire un programme pilote qui générerait les séquences d'impulsions nécessaires au bon moment, après quoi nous ne pouvons que recevoir des données. Démarrez l'environnement de développement Visual Basic et créez un projet EXE standard. Ajoutez un contrôle MSComm. Vous pouvez l'ajouter au panneau des composants comme ceci Projet-->Composants-->sélectionner dans la listeMicrosoft Comm Contrôle 6.0. Placez-le sur le formulaire, ainsi que 2 étiquettes et 2 Timers. Laissez les noms par défaut. Vous pouvez maintenant commencer à écrire le code d'un simple voltmètre. Définissons des variables: Dim b1, b2, b3, b4, b5, b6, b7, b8, somme, Ud As Single Placez le code suivant dans la procédure de chargement du formulaire : Privé Sub Form_Load () MSComm1.DTREnable = True 'valeur initiale - CS élevé Timer1.Interval = 100 ' Intervalle de minuterie de 1 ms Timer2.Interval = 1 ' Intervalle de minuterie de 100 ms MSComm1.Settings = "1200,N,8,1" ' paramètres de communication MSComm1.CommPort = 1 ' numéro de port COM MSComm1.PortOpen=True ' ouvre le port com End Sub En procédure Timer1 a mis le code : Sous-minuterie privée1_Timer() MSComm1.DTREnable = False 'Créer un CS bas Label2.Caption = "" 'ordures pour le délai initial MSComm1.RTSEnable = True '1ère horloge d'impulsion d'horloge haute Si MSComm1.CDHolding = Vrai Alors b1 = 1 Sinon b1 = 0 'Scrutation pour une valeur ou zéro à l'entrée CD (sortie ADC) MSComm1.RTSEnable = False '1ère horloge d'impulsion d'horloge basse MSComm1.RTSEnable = Vrai Si MSComm1.CDHolding = Vrai Alors b2 = 1 Sinon b2 = 0 MSComm1.RTSEnable = Faux MSComm1.RTSEnable = Vrai Si MSComm1.CDHolding = Vrai Alors b3 = 1 Sinon b3 = 0 MSComm1.RTSEnable = Faux MSComm1.RTSEnable = Vrai Si MSComm1.CDHolding = Vrai Alors b4 = 1 Sinon b4 = 0 MSComm1.RTSEnable = Faux MSComm1.RTSEnable = Vrai Si MSComm1.CDHolding = Vrai Alors b5 = 1 Sinon b5 = 0 MSComm1.RTSEnable = Faux MSComm1.RTSEnable = Vrai Si MSComm1.CDHolding = Vrai Alors b6 = 1 Sinon b6 = 0 MSComm1.RTSEnable = Faux MSComm1.RTSEnable = Vrai Si MSComm1.CDHolding = Vrai Alors b7 = 1 Sinon b7 = 0 MSComm1.RTSEnable = Faux MSComm1.RTSEnable = Vrai Si MSComm1.CDHolding = Vrai Alors b8 = 1 Sinon b8 = 0 MSComm1.DTREnable = True 'Créer un CS élevé MSComm1.RTSEnable = False '8ère horloge d'impulsion d'horloge basse 'traduit les bits au format décimal en utilisant la formule de décomposition somme = (b1 * 2^7) + (b2 * 2^6) + (b3 * 2^5) + (b4 * 2^4) + (b5 * 2^3) + (b6 * 2^2) + (b7*2^1) + (b8*2^0) Ud = Format(sum * 5.083 / 255, "##0.000") 'calculer la valeur proportionnelle Label1.Caption = CStr(Ud) & "Volt" 'affiche la valeur reçue End Sub Le code dans Timer1 est le pilote lui-même. Qui se répète périodiquement, génère des impulsions d'horloge et reçoit des bits de données. Ud - tension à l'entrée de l'ADC, si vous appliquez des ADC 10, 12 bits, le nombre 225 sera respectivement remplacé par 1024, 4096. Pour les ADC 10, 12 bits, vous devez ajouter les bits manquants au code, guidés par leurs "fiches techniques". La valeur 5.083 est la valeur de tension que j'ai obtenue à la sortie Out du stabilisateur. Entrez votre valeur ici. Pour alimenter la carte, vous pouvez utiliser une source séparée ou l'alimenter directement à partir du port COM. Pour cela, nous plaçons le code suivant dans la procédure Timer2 : Sous-minuterie privée2_Timer() MSComm1.Output = Chr(0) & Chr(0) 'nous créons des impulsions sur la broche TX (3) pour alimenter la carte ADC End Sub Il faut se rappeler que le port COM ne peut pas être fortement chargé ... le maximum sur lequel vous pouvez compter est de 20 mA. En mode de fonctionnement, le circuit consomme un courant ne dépassant pas 5 mA. Connectez maintenant la carte au port COM et exécutez le projet. Mesurez la tension à la borne IN du stabilisateur DA1, elle doit être d'au moins 6.5 V. Si ce n'est pas le cas, une alimentation séparée doit être utilisée. En modifiant la tension à l'entrée de l'ADC, assurez-vous que le programme fonctionne et affiche la tension à l'écran. La précision de lecture de la tension lors de l'utilisation d'un ADC 8 bits est de 20 mV, avec un ADC 10 bits - 5 mV, 12-1.2 mV Un peu sur le travail en Visual Basic et l'application créée avec un port com Comme vous l'avez sans doute déjà compris, pour travailler avec le port com, il vous faut un composantMicrosoft Comm Control à savoir le fichier MSCOMM32.ocx qui, après l'installation de Visual Basic, se trouve dans le répertoire C:\Windows\system32. Pourquoi est-ce que je fais cela, mais au fait que si vous copiez votre programme, sans créer d'installateur, sur un autre ordinateur qui n'a pas Visual Basic, cela ne fonctionnera pas. Vous devez également copier ce fichier dans le même répertoire que sur votre ordinateur, c'est-à-dire dans system32. Ou créez un programme d'installation. Maintenant pour quelques commandes : La commande qui définit le taux d'échange de données : MSComm1.Settings = "1200,N,8,1" Commande spécifiant le numéro de port com MSComm1.CommPort = 1 Commandes pour ouvrir et fermer un port com MSComm1.PortOpen = Vrai MSComm1.PortOpen = Faux Commandes sortant + 12V sur la branche correspondante du connecteur com : MSComm1.RTSEnable = True RTS (7) - nom et numéro de broche MSComm1.DTREnable = Vrai DTR(4) Commandes sortant -12V MSComm1.RTSEnable = Faux MSComm1.DTREnable=Faux Vous pouvez interroger la présence d'un état simple ou zéro des sorties CD (1), CTS (8), DSR (6). Si MSComm1.CDHolding = True Alors (le cas échéant alors…) Si MSComm1.CDHolding = False Alors (si zéro alors…) Envoi du code ASCII Tx (3) d'un caractère ou d'une chaîne vers la sortie : MSComm1.Sortie = "A" Numéros MSComm1.Output = Chr(10) le nombre peut varier de 0 à 255 En écrivant une telle commande dans une minuterie et en changeant le nombre ou le symbole, vous pouvez créer une modulation PWM. Plus de détails sur les commandes peuvent être trouvés en téléchargeant la description de la commande Microsoft Comm Control. Maintenant, avec ce code, vous pouvez écrire un certain nombre de programmes pour collecter des données. Par exemple : voltmètre, ampèremètre, thermomètre, oscilloscope simple, enregistrer les données dans un fichier. Les mesures peuvent être effectuées en seulement 1 ms, et une fois par heure et par jour, ce qui permet de surveiller les processus à long terme. Pour travailler avec des tensions alternatives (passant par 0), ainsi que pour étendre les limites de mesure, un amplificateur d'entrée est nécessaire, dont le circuit peut être tiré de [1]. Pour travailler avec une tension secteur ou avec des appareils non isolés galvaniquement du réseau, il est impératif de réaliser une isolation optique du circuit de l'ordinateur. Télécharger les codes sources des exemples de programmes (8 Ko) littérature
Auteur : =ShooRooP=, evei [chien] mail.ru ; Publication : cxem.net Voir d'autres articles section ordinateurs. Lire et écrire utile commentaires sur cet article. Dernières nouvelles de la science et de la technologie, nouvelle électronique : Machine pour éclaircir les fleurs dans les jardins
02.05.2024 Microscope infrarouge avancé
02.05.2024 Piège à air pour insectes
01.05.2024
Autres nouvelles intéressantes : ▪ Le conducteur ne s'endormira pas sur la route ▪ Borne de recharge rapide 300 kW ▪ Nouvelle application pour le moteur à hydrogène ▪ amplificateur de puissance stéréo soulution 511 ▪ Galaxy Note se contrôle d'une seule main Fil d'actualité de la science et de la technologie, nouvelle électronique
Matériaux intéressants de la bibliothèque technique gratuite : ▪ section du site Vos histoires. Sélection d'articles ▪ Article Pression atmosphérique. Histoire et essence de la découverte scientifique ▪ Comment un caméléon attrape-t-il sa proie ? Réponse détaillée ▪ article Organisation du contrôle de l'état de la protection du travail dans l'organisation ▪ article Application de l'ADC KR572PV5. Encyclopédie de l'électronique radio et de l'électrotechnique ▪ article Embout buccal et cigarette. Concentrer le secret
Laissez votre commentaire sur cet article : Toutes les langues de cette page Page principale | bibliothèque | Articles | Plan du site | Avis sur le site www.diagramme.com.ua |