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

A Fizipedia wikiből
37. sor: 37. sor:
 
# Egy "mentés" gomb megnyomása után mentsük el egy fájlba az utára mért feszültség-áram karakterisztikát!
 
# Egy "mentés" gomb megnyomása után mentsük el egy fájlba az utára mért feszültség-áram karakterisztikát!
 
# A fenti funkciók biztonságos működése esetén tegyük lehetővé a mérési paraméterek egyedi beállítását (Timer Interval; fűrészfogjel generátor maximális és minimális feszültsége; egy ciklushoz tartozó adatpontok száma; mentendő fájl neve)!
 
# A fenti funkciók biztonságos működése esetén tegyük lehetővé a mérési paraméterek egyedi beállítását (Timer Interval; fűrészfogjel generátor maximális és minimális feszültsége; egy ciklushoz tartozó adatpontok száma; mentendő fájl neve)!
# Vizsgáljuk meg, hogy a dióda áram-feszültség karakterisztikáját leírhatjuk-e az $$I(U)=I_0\left(e^{U/U_\textrm{T}}-1\right)$$ képlettel! Ha igen, határozzuk meg az $I_0$ szivárgási áram értékét!
+
# Vizsgáljuk meg, hogy a dióda áram-feszültség karakterisztikáját leírhatjuk-e az $$I(U)=I_0\left(e^{U/U_\textrm{T}}-1\right)$$ képlettel! Ha igen, határozzuk meg az $I_0$ szivárgási áram valamint az $U_\textrm{T}$ feszültség értékét!
# Vizsgáljuk meg, hogy jogosan határoztuk-e meg az áramot a kiadott feszültség és a soros ellenállás hányadosaként! Mi ennek a közelítésnek a feltétele?  
+
# Vizsgáljuk meg, hogy valóban szükség van-e az ellenálláson eső feszültség mérésére? Mekkora hibát vétünk akkor, ha az áramot a kiadott feszültség és a soros ellenállás hányadosaként számítjuk? Mikor lehet alkalmazni ezt a közelítést?
  
 
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 LED-en végzett feszültség-áram karakterisztika mérés eredményeit és 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 LED-en végzett feszültség-áram karakterisztika mérés eredményeit és azok diszkusszióját is.  
 
</wlatex>
 
</wlatex>

A lap 2015. május 11., 13:36-kori változata


MyDAQ photo.jpg

Tartalomjegyzék


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 LED (Light Emitting Diode) feszültség-áram karakterisztikáját.

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.

CSharp LED-IV.png

A mérési gyakorlat során egy analóg kimeneti csatorna segítségével fűrészfog jelet generálunk, melyet egy soros ellenállás segítségével áramjellé alakítunk. Az így kapott áramgenerátorral meghajtott LED-en eső feszültséget egy analóg bemeneti csatornán mérjük (ábra).

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, mérőkártyánkat 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 Visual C# környezetben

A csatlakoztatott mérőkártyát a program indulása után inicializálni kell: megadhatjuk a szükséges csatornák feszültségtartományát, a mintavételi frekvenciát. Az egyes funkciókat ún. Task típusú objektumok valósítják meg, amelyekhez AnalogSingleChannelWriter és AnalogSingleChannelReader osztályú objektumokat rendelhetünk a feszültség kiírásához és beolvasásához. 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 két Taskra van szükségünk, melyek közül az egyik olvas a "myDAQ1/ai0" porton, a másik pedig a mérőjelet generálja a "myDAQ1/ao0" kimeneten. A mérésleírás végén található melléklet nyújt segítséget a konkrét megvalósításhoz. Ügyeljünk arra, hogy az inicializáláskor megadott minimális és maximális feszültségértéket soha ne lépjük túl!

Feladatok

  1. Teszteljük a mérőkártya működését Measurement & Automation Explorerben! Növeljük az analóg kimenet feszültségét, és ellenőrizzük hogy megfelelően nagy feszültség esetén elkezd-e világítani a LED!
  2. Készítsünk mérőprogramot, mely egy Timer esemény segítségével az analóg kimenet feszültségét 100 lépésben 10ms-os lépésközzel 0V-ról 10V-ra növeli, majd a 10 V-os szint elérése után visszaugrik 0V-ra, és a feszültség növelését újból kezdi (fűrészfogjel generátor)! A kiadott aktuális feszültség értékből a soros ellenállás értékének segítségével számoljuk ki a LED-en folyó áramot, amit 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!
  3. A fűrészfogjel generátor futtatása közben mérjük a LED-en eső feszültséget a mérőkártya analóg bemenetén keresztül! A mért feszültséget jelenítsük meg egy TextBox-ban!
  4. A ZedGraphControl segítségével jelenítsük meg a mért feszültség-áram karakterisztikát!
  5. Egy "mentés" gomb megnyomása után mentsük el egy fájlba az utára mért feszültség-áram karakterisztikát!
  6. A fenti funkciók biztonságos működése esetén tegyük lehetővé a mérési paraméterek egyedi beállítását (Timer Interval; fűrészfogjel generátor maximális és minimális feszültsége; egy ciklushoz tartozó adatpontok száma; mentendő fájl neve)!
  7. Vizsgáljuk meg, hogy a dióda áram-feszültség karakterisztikáját leírhatjuk-e az
    \[I(U)=I_0\left(e^{U/U_\textrm{T}}-1\right)\]
    képlettel! Ha igen, határozzuk meg az \setbox0\hbox{$I_0$}% \message{//depth:\the\dp0//}% \box0% szivárgási áram valamint az \setbox0\hbox{$U_\textrm{T}$}% \message{//depth:\the\dp0//}% \box0% feszültség értékét!
  8. Vizsgáljuk meg, hogy valóban szükség van-e az ellenálláson eső feszültség mérésére? Mekkora hibát vétünk akkor, ha az áramot a kiadott feszültség és a soros ellenállás hányadosaként számítjuk? Mikor lehet alkalmazni ezt a közelítést?

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 LED-en végzett feszültség-áram karakterisztika mérés eredményeit és azok diszkusszióját is.