„Adatgyűjtő kártya programozása mérésleírás” változatai közötti eltérés

A Fizipedia wikiből
47. sor: 47. sor:
  
 
A mérésről készített jegyzőkönyv tartalmazzon egy használati utasítást az elkészült felülethez. Ismertessük a megvalósított funkciókat, a grafikus felület kezelését, valamint részletesen térjünk ki az olyan megoldásokra, amelyek nem a fentiekben
 
A mérésről készített jegyzőkönyv tartalmazzon egy használati utasítást az elkészült felülethez. Ismertessük a megvalósított funkciókat, a grafikus felület kezelését, valamint részletesen térjünk ki az olyan megoldásokra, amelyek nem a fentiekben
meghatározott felépítést követik. A jegyzőkönyvhöz csatoljuk a mérőprogram forráskódját, valamint a jegyzőköny tartalmazza a bipoláris tranzisztor mért bázisfeszültség-bázisáram és kollektoráram-bázisáram karakterisztikáit azok diszkusszióját is.  
+
meghatározott felépítést követik. A jegyzőkönyvhöz csatoljuk a mérőprogram forráskódját, valamint a jegyzőköny tartalmazza a bipoláris tranzisztor mért bázisfeszültség-bázisáram és kollektoráram-bázisáram karakterisztikáit és azok diszkusszióját is.  
  
 
=Syllabus in English=
 
=Syllabus in English=

A lap 2025. február 18., 15:43-kori változata


MyDAQ photo.jpg

See the English version at the bottom of the page.

Tartalomjegyzék

 [elrejtés


Bevezetés

A mérési gyakorlat célja egy számítógépes adatgyűjtő kártya programozásának megismerése: a kártya analóg kimeneteinek és bemeneteinek programozásával egy oszcilloszkóp jellegű mérőfelületet készítünk, mellyel felvesszük egy bipoláris tranzisztor különböző karakterisztikáit.

A gyakorlat során a National Instruments cég által, kifejezetten oktatási célra gyártott NI myDAQ típusú mérőkártyát programozunk. A mérőkártya USB porton keresztül vezérelhető, funkcióit Visual C# környezetben a NI DAQmx driver segítségével érhetjük el, ez ingyenesen letölthető a következő linken: DAQmx. A kártya működését az NI Measurement & Automation Explorer (MAX) program segítségével ellenőrizhetjük.

A számítógépes mérőkártyák önmagukban számos komplex mérésvezérlési feladat megvalósítását teszik lehetővé: a nagyszámú analóg bemeneti csatornán keresztül különböző kísérleti paraméterek változását vizsgálhatjuk nagy mintavételezési sebességgel; az analóg kimeneti csatornákkal DC vagy időben változó meghajtó jeleket generálhatunk; a digitális csatornákon keresztül logikai áramköröket vezérelhetünk; illetve a trigger bemeneti csatornákon keresztül mérésünket egy külső bemeneti jelhez szinkronizálhatjuk. A mérésen használt NI myDAQ mérőkártya 2 analóg bemeneti csatornával, 2 analóg kimeneti csatornával, 8 digitális kimeneti vagy bemeneti csatornával rendelkezik. Az analóg bemeneti csatornák felbontása 16 bit, azaz a maximális, \setbox0\hbox{$\pm10\,$}% \message{//depth:\the\dp0//}% \box0%V-os méréstartományban \setbox0\hbox{$20\,$}% \message{//depth:\the\dp0//}% \box0%V\setbox0\hbox{$/2^{16}\approx0.3\,$}% \message{//depth:\the\dp0//}% \box0%mV pontossággal mérhetünk. Az analóg bementek differenciális módban működnek, a + illetve - csatlakozó közötti feszültséget mérik (pl. AI0- és AI0+). A maximális mintavételezési sebesség 200000 adatpont/másodperc. Az analóg kimeneti csatorna \setbox0\hbox{$-10$}% \message{//depth:\the\dp0//}% \box0% és \setbox0\hbox{$+10\,$}% \message{//depth:\the\dp0//}% \box0%V közötti feszültségeket tud kiadni, felbontása szintén 16 bit, a maximális programozási sebessége 200000 adatpont/másodperc.

BT2.png
1. ábra. Bipoláris tranzisztor mérésére szolgáló elrendezés. (a) Mérési kapcsolás rajza. (b) Az analóg kimenetekre adott jelalakok (c) A használt 2N3904 tranzisztor lábkiosztása és rajza.

A mérési gyakorlat során az ábrán látható elrendezésben mérjük egy bipoláris tranzisztor bázisfeszültség-bázisáram és kollektoráram-bázisáram karakterisztikáit. A mérési feladat megoldásához a mérőkártya két analóg bemeneti és két analóg kimeneti csatornáját szükséges programozni.

A mérőkártya tesztelése

A számítógéphez csatlakoztatott és felismert mérőkártyán található kék LED világítani kezd. Ezután az eszközt a NI Measurement & Automation Explorer (MAX) segítségével tesztelhetjük (Start / Programs / National Instruments / Measurement & Automation). A MAX szoftverfelületének baloldali sávjában láthatjuk a számítógéphez csatlakoztatott eszközöket és interfészeket. A mérőkártyát a My System / Devices and Interfaces / NI-DAQmx Devices / NI myDAQ:"myDAQ1" menüpont alatt érhetjük el. A kártyára a programozás során az idézőjelben található címke segítségével hivatkozhatunk. A gyakorlat során csak egy eszközt használunk, így a címke minden esetben "myDAQ1" lesz, több eszköz használata esetén a MAX programban leolvashatjuk illetve módosíthatjuk az eszközünknek osztott címkét. Az NI myDAQ:"myDAQ1" menüpontra jobb egérrel kattintva érhetjük el a tesztelő paneleket, melyek segítségével az analóg kimenetek és bemenetek működését ellenőrizhetjük.

A mérőkártya programozása

A csatlakoztatott mérőkártyát a program indulása után inicializálni kell: be kell állítani, hogy milyen csatornákat és milyen beállításokkal akarunk használni. Az egyes funkciókat úgynevezett Task típusú objektumok valósítják meg. A Task létrehozásakor ki kell választani, hogy melyik analóg be-/kimenetet szeretnénk használni, továbbá minden analóg be-/kimenethez meg kell adnunk a méréshatárt és a mintavételi frekvenciát. Valamint a feszültség kiírásához és beolvasásához AnalogSingleChannelWriter és AnalogSingleChannelReader osztályú objektumokat kell létrehozni, amit az egyes Task-okhoz kell rendelni. A szükséges prototípusokat a NationalInstruments.DAQmx és NationalInstruments.Common függvénygyűjtemény tartalmazza, ezért ezeket adjuk hozzá a project referenciáihoz! A forráskód elején szerepeljen a using NationalInstruments.DAQmx sor is. A létrehozott taskokat a Dispose() metódussal töröljük, amennyiben már nincs rájuk szükség!

A feladat megoldásához négy Taskra van szükségünk, melyek közül kettő olvas a "myDAQ1/ai0" és "myDAQ1/ai1" porton, a másik kettő pedig a mérőjeleket generálja a "myDAQ1/ao0" és "myDAQ1/ao1" kimeneteken. Ügyeljünk arra, hogy az inicializáláskor megadott minimális és maximális feszültségértéket ne lépjük túl! A kártya programozásához az alábbi példaprogram nyújt segítséget: példaprogram.

Feladatok

  1. Állítsuk össze a kapcsolást az ábra szerint!
  2. Készítsünk mérőprogramot, mely egy Timer esemény segítségével az ao1-es analóg kimenet feszültségét a felhasználó által megadott lépésszámmal és lépésközzel egy megadott minimum értékről egy maximum értékre növeli, majd a maximális feszültségszint elérése után visszaugrik a minimumértékre, és a feszültség növelését újból kezdi (fűrészfogjel generátor)! Legyenek a paraméterek kezdeti értékei az alábbiak: 100-as lépésszám, 10 ms-os lépésköz, 0 V minimumfeszültség, 0.8 V maximális feszültség.
  3. A fűrészfogjel generátor futtatása közben mérjük a az ai0 és ai1 csatornákon a feszültséget! A mért feszültségértékeket jelenítsük meg egy-egy TextBox-ban!
  4. Módosítsuk a mérőprogramot úgy, hogy alkalmas legyen az ao0 csatorna feszültségének változtatására a felhasználó által megadott értékek szerint (adott tartományban és lépésközzel). Vizsgáljuk kezdetben a 0.5 V-tól 2 V-ig terjedő tartományt, 0.5 V-os lépésközzel. Szabjunk feltételeket a Tick eseményben, amelyekkel adott értékre állítható az ao0 csatornán kiadott feszültség, mialatt az ao1 csatornán kiadott fűrészfogjel egyetlen periódusa zajlik.
  5. A kiadott aktuális feszültségértékekből, valamint az ai1 és ai0 csatornán mért értékekből számoljuk ki a kollektoráramot és a bázisáramot! A számolt értékeket egy-egy TextBox segítségével jelenítsünk meg a mérőfelületen! Helyezzünk el a mérőfelületen a fűrészfogjel generátor futtatására ill. leállítására szolgáló gombot!
  6. Helyezzünk egy-egy chart objektumot a mérőfelületre, aminek segítségével jelenítsük meg a mért bázisfeszültség-bázisáram és kollektoráram-bázisáram karakterisztikákat!
  7. Egy "mentés" gomb megnyomása után mentsük el egy fájlba az utoljára mért karakterisztikákat!
  8. Milyen karakterisztikát mutat a bázisáram-bázisfeszültség görbe? Mekkora és mitől függ a kollektoráram telítési értéke? (Segítség: telítésnél mekkora a kollektorfeszültség?)

A mérésről készített jegyzőkönyv tartalmazzon egy használati utasítást az elkészült felülethez. Ismertessük a megvalósított funkciókat, a grafikus felület kezelését, valamint részletesen térjünk ki az olyan megoldásokra, amelyek nem a fentiekben meghatározott felépítést követik. A jegyzőkönyvhöz csatoljuk a mérőprogram forráskódját, valamint a jegyzőköny tartalmazza a bipoláris tranzisztor mért bázisfeszültség-bázisáram és kollektoráram-bázisáram karakterisztikáit és azok diszkusszióját is.

Syllabus in English

Introduction

The objective of this measurement exercise is to learn out how to program a computer data acquisition card. By programming the analogue outputs and inputs of the card, we create an oscilloscope-like user interface to measure the voltage-current characteristic of an LED (Light Emitting Diode).

For this exercise, we are using an NI myDAQ card designed specifically for educational purposes by National Instruments. The data acquisition card (DAQ) can be connected via a USB port and it can be controlled from the Visual C # environment using the NI DAQmx driver, which can be downloaded free of charge from DAQmx. The DAQ card can be tested and controlled using the NI Measurement & Automation Explorer (MAX) program.

Computer controlled DAQ cards alone allow for a number of complex measurement and control tasks: a large number of analog input channels can be used to investigate changes in various experimental parameters at high sampling rates; analogue output channels can generate DC or time-varying drive signals; digital circuits can be used to control logic circuits; trigger input channels can be used to synchronize our measurement to an external input signal. The NI myDAQ measurement card used in this exercise has 2 analog input channels, 2 analog output channels, 8 digital output or input channels. The resolution of the analog input channels is 16 bits. It means, that in the maximum \setbox0\hbox{$\pm10\,$}% \message{//depth:\the\dp0//}% \box0% V measurement range, it has a bit resolution of \setbox0\hbox{$20\,$}% \message{//depth:\the\dp0//}% \box0%V\setbox0\hbox{$/2^{16}\approx0.3\,$}% \message{//depth:\the\dp0//}% \box0%mV. The analog input channels operate in differential mode: the voltage between the + and - terminals is measured (e.g. AI0- and AI0+). The maximum sampling rate is 200,000 sample/second. The analog output channel can output voltages between \setbox0\hbox{$ -10 $}% \message{//depth:\the\dp0//}% \box0% and \setbox0\hbox{$ + 10 \, $}% \message{//depth:\the\dp0//}% \box0% V, its resolution is also 16 bits and its maximum refresh rate is 200,000 Hz.

CSharp LED-IV v2.png

During the measurement exercise, an analogue output channel is used to generate a sawtooth shaped voltage signal, which is converted into current by the use of a series resistor. The voltage drop on the LED is measured using an analog input channel (see the Figure to the right).

Testing the DAQ card

After connecting the DAQ card, a blue LED indicates that the device is recognized by the computer. Then you can test the device with the NI Measurement & Automation Explorer (MAX) (Start / Programs / National Instruments / Measurement & Automation Explorer). On the left side of the MAX software interface, you can see the devices and interfaces connected to the computer. The DAQ card can be accessed under My System / Devices and Interfaces / NI-DAQmx Devices / NI myDAQ: "myDAQ1". During programming, you can refer to the card by using the tag inside the quotation marks. During the exercise, we will only use one device. When multiple devices are used, MAX can be used to read or modify the reference tag of each connected device. When right clicking on the NI myDAQ: "myDAQ1" device you can select "Test Panels" from the drop down menu. This opens the test panels window, where you can test the operation of all the analog/digital inputs and outputs of the device.

Programming the DAQ card

The DAQ card must be initialized after the start of the program: you need to set up which channels you want to use and configure its settings. Each function is realized by so-called 'Task' objects. When creating a task, you have to choose which analog input / output you want to use, and for each analog input / output, you need to specify the voltage range and sampling frequency. Furthermore, write and read voltage signals, "AnalogSingleChannelWriter" and "AnalogSingleChannelReader" class objects must be created, which are then assigned to the corresponding Task object. The required prototypes are included in the NationalInstruments.DAQmx and NationalInstruments.Common libraries, so add these to the project references! At the beginning of the source code, include using NationalInstruments.DAQmx. The created tasks can be deleted using the Dispose () method if they are no longer needed!

For this programming exercise, we need two Task objects, one of which reads the "myDAQ1/ai0" analog input channel, and the other generates the signal using the "myDAQ1/ao0" analog output channel. Make sure that the minimum and maximum voltage values ​​given during initialization of the Tasks are not exceeded. When programming the DAQ card, this example program can be used as a reference: példaprogram.

Exercises

  1. Assemble the circuit and test it using Measurement & Automation Explorer. Increase the voltage of the analogue output and check if the LED lights up for a sufficiently high voltage.
  2. Develop a measurement program that uses a timer event to increase the voltage of the analog output from 0V to 10V in 100 steps with a 10 ms wait time between increments. After reaching the 10V level, voltage should jump back to 0V and start increasing again (sawtooth generator). While running the sawtooth generator, measure the voltage drop on the LED using the analog input of the DAQ card. Display the measured voltage in a TextBox.
  3. Calculate the current flowing through the LED using the measured voltage drop and the value of the serial resistor. Display the result with a TextBox on the user interface. Place buttons on the user interface for starting/stopping the sawtooth generator.
  4. Display the measured voltage-current characteristic on the user interface with a chart object.
  5. Place a "save" button on the user interface. After clicking on the save button, the program should save the last measured voltage-current characteristics to a file.
  6. When the above functions are tested and working properly, place additional textBox objects to enable the user to change the measurement parameters (Timer Interval, maximum and minimum voltage of the sawtooth generator, number of data points per cycle)
  7. Examine whether the current-voltage characteristic of the diode can be described by
    \[I(U)=I_0\left(e^{U/U_\textrm{T}}-1\right).\]
    If so, determine the leakage current \setbox0\hbox{$I_0$}% \message{//depth:\the\dp0//}% \box0% and the value of \setbox0\hbox{$\;U_\textrm{T}$}% \message{//depth:\the\dp0//}% \box0%.
  8. Examine when can we use the current source approximation. How much voltage should be applied to the LED, so that the current calculated as the quotient of the output voltage and serial resistance differs less than 1% from the actual value of the current?