Dataopsamling med TI83, CBL 2 og Labpro


Programeksemplerne kan indtastes direkte på TI83, men de kan også indtastes i programmet ”TI-GRAPH LINK”, som kan downloades fra www.ti.com/calc. Når programmet er skrevet kan det overføres til TI83 via et TI-GRAPH LINK kabel. Nogle af programeksemplerne er  hentet fra LabPro Technical Reference Manual.

Kommandoerne skrives som almindelig tekst, dog skal enkelte parametre vælges fra Catalog, fx: specialtegn som Mark ».«, kolon »:« eller Vars, fx:  »xmin«, »xmax«. Pas på med små og store bogstaver og unødvendige mellemrum!

CBL 2 og LabPro styres med de samme kommandoer. Se oversigten over de vigtigste kommandoer efter eksemplerne.

Eksempel 1: Temperatur, non-realtime (scan) dataopsamling

ClrAllLists
ClrHome
Send({0}) Reset LabPro.
Send({6,4}) LabPro lyd ON ved start og stop.
Send({1,1,1}) Indstil kanal 1 til dataopsamling (autodetect).
Send({3,.1,100,0}) Mål temperatur hvert 0.1 sekund, 100 gange.
Get(L2) Overfør temperaturer til L2.
Get(L1) Overfør tider til L1.
Plot1(Scatter,L1,L2,.) Plot temperatur versus tid, sidste plottegn er et specialtegn)
ZoomStat

 

Eksempel 2: Temperatur realtime (løbende) dataopsamling

ClrAllLists
PlotsOff:Func Initier graffunktioner.
FnOff:AxesOn
1®xmin:30®xmax:1®xscl  Indstil windows parametre: xmin, … benyt vars.
-20®ymin:60®ymax:.1®Yscl
ClrHome
Send({0}) Reset LabPro.
Send({6,4}) LabPro lyd ON ved start og stop.
Send({1,3,1}) Indstil kanal 3 til dataopsamling (autodetect).
30®dim(L2) Dimensioner liste.
Send({3,1,-1,0}) Mål hvert sekund
ClrDraw
For(I,1,30,1)
Get(L2(I)) Overfør værdi nr i
Pt-On(I,L2(I)) Afsæt værdi på graf
End

 

Eksempel 3: Afstand og hastighed, non-realtime dataopsamling

PlotsOff
ClrAllLists
ClrHome
ClrDraw
Send({0}) Reset LabPro.
Send({6,4}) LabPro lyd ON ved start og stop.
Send({1,11,1,1}) Indstil kanal 11 (Sonic) til dataopsamling (afstand og hastighed, s 38).
Send({3,.1,100,0}) Foretag en måling hvert .1 sekund, 100 gange.
Get(L2) Overfør afstande til L2.
Get(L3) Overfør hastigheder til L3.
Get(L1) Overfør tider til L1.
Plot1(Scatter,L1,L2,.) Plot afstand versus tid.
Plot2(Scatter,L1,L3,+)  Plot hastighed versus tid.
ZoomStat

ps. Send({1,11,1,0}) for afstand. Send({1,11,1,2}) for afstand, hastighed og acceleration.

 

Eksempel 4: Flere kanaler,  non-realtime dataopsamling

PlotsOff
ClrAllLists
ClrHome
Send({0}) Reset LabPro.
Send({6,4}) LabPro lyd ON ved start og stop.
Send({1,1,1}) Indstil kanal 1 (autodetect), kan være temperatur.
Send({1,2,1}) Indstil kanal 2 (autodetect), kan være spænding.
Send({1,3,1}) Indstil kanal 3 (autodetect), kan være lys.
Send({3,.1,100,0}) Foretag en måling hvert .1 sekund, 100 gange.
Get(L2) Overfor temperaturer til L2.
Get(L3) Overfør spændinger til L3.
Get(L4) Overfør lysintensiter til L4.
Get(L1) Overfør tider L1.
Plot1(Scatter,L1,L2,.) Plot temperatur versus tid.
ZoomStat
Pause
ClrHome
PlotsOff 
Plot2(Scatter,L1,L3,.) Plot spænding versus tid.
ZoomStat
Pause 
ClrHome
PlotsOff
Plot3(Scatter,L1,L4,.) Plot lys versus tid.
ZoomStat

 

Eksempel 5: Konvertering, kommando 4

ClrAllLists
ClrHome
Send({0}) Reset LabPro.
Send({6,4}) LabPro lyd ON ved start og stop.
Send({1,1,1,0,0,1}) Indstil kanal 1 med konvertering ON.
Send({4,1,1,1,0,100}) Konverter, offset = 0 og faktor = 100. Fx omregning til dB.
Send({3,.1,100,0}) Foretag en måling hvert .1 sekund, 100 gange.
Get(L2) Overfør værdier til L2.
Get(L1) Overfør tider til L1.
Plot1(Scatter,L1,L2,.) Plot værdier versus tid.
ZoomStat

De fleste sonder er lineære, så dette er en typisk konvertering.

 

Eksempel 6: Digital In dataopsamling

ClrAllLists
ClrHome 
Send({0}) Reset LabPro.
Send({6,4}) LabPro lyd ON ved start og stop.
Send({1,21,1}) Indstil kanal 21 (Digital In)  til dataopsamling.
Send({3,.1,100,0}) Mål hvert .1 sekund, 100 gange.
Get(L2) Overfør de digitale data til L2.
Get(L1) Overfør tider til  L1.
Disp L2 Display de målte digitale data.
Disp L1 Display tider.

Kommando 12 kan benyttes til Digital In dataopsamling, fx timermålinger, radioaktivitet og meget mere. Antal passager og passagetider registreres i Labpro og skal blot overføres til TI83 eller pc.

 

Eksempel 7: Digital Out

ClrAllLists 
ClrHome
Send({0}) Reset LabPro.
Send({6,4}) LabPro lyd ON ved start og stop.
Send({102,-1}) Kommando 102, power konstant on.
Send({1,31,16,0,1,2,3, 4,5, 6,7,8,9,10,11,12,13,14,15}) Indstil kanal 31 (Digital Out) til output af liste med 16 elementer. (bufferen er cirkulær)
Send({3,.5,10,0}) Hvert .5 sekund sendes en værdi, i alt 10 gange.
Disp "TAST ENTER"
Disp "VED AFSLUT"
Disp "SÅ SÆTTES"
Disp "POWER OFF"
Pause
Send({0})  Reset LabPro, slå lyd fra, sætte power off

 

Eksempel 8: Temperaturkontrol vha. kommando 2001 til Digital Out

0®I Variablen I nulstilles.
Send({0}) Reset LabPro.
Send({6,4}) LabPro lyd ON ved start og stop.
Send({1,1,1}) Indstil kanal 1 (autodetect), kan være temperatur.
Send({3,1,-1,0}) Mål hvert sekund realtime.
Repeat I>200 Gentag indtil I er større end 200
Get(A) Overfør temperatur til variablen A
Disp (A) Skriv temperatur på display.
Disp (I) Skriv I på display.
If A>30
Then
Send({2001,0}) 0 volt på digitale udgang 1, hvis temperatur >30°C
Else
Send({2001,1}) 5 volt på digitale udgang 1, hvis temperatur<=30°C
End
I+1®I Øg I med 1
End

Digital Out, pin 1 til pin 6 er D0, D1, D2, +5V, Gnd, D3, dvs. der kan styres 4 relæer. Fx vil parameter 6 = (0,1,1,0) sætte D0 lav, D1 høj, D2 høj og D3 lav.

Samtidig måling på kanal 1 til 4 giver mulighed for at styre 4 kredse!

Lav eksemplet om, så D0 sættes høj, hvis temperaturen bliver mindre end 20°C og lav, hvis temperaturen bliver større end 30°C. Der må kun sendes en kommando ved programstart eller passage.

 

Eksempel 9: Multikontrol

0®I
0®G Variabel nulstilles.
Send({0})
Send({6,4})
Send({1,1,1}) Indstil kanal 1 (autodetect).
Send({1,2,1}) Indstil kanal 2 (autodetect).
Send({3,1,-1,0}) Mål realtime, hvert sekund.
Repeat I>20 Stopparameter, kan slettes, men er praktisk under test.
Get(L1) Værdi 1, værdi 2 og dt modtages, her er dt = 1s
Disp L1(1)
Disp L1(2)
Disp I 
0®K
If L1(1)>30:K+1®K Kunne være en temperatur.
If L1(2)<2:K+2®K Kunne være en spænding.
Disp K
Send({2001,K}) K kan så være 0, 1, 2 eller 3 og sætte 2 digitale udgange.
I+1®I
getKey®G Stop ved tryk på en tast.
If G¹0:Stop
End

Lav eksempel med 3 indgange og udgange. Lav eksempel på styring af stepmotor.

Eksempel 10: Fotogate, fx et frit fald

PlotsOff
ClrAllLists
ClrHome
0®I Variabel nulstilles
Send({0})
Send({6,4})
Send({1,1,1}) Indstil kanal 1 (autodetect), sonde behøves ikke
Send({12,41,4,1}) Mål pulser på digital indgang 1
Send({3,1,1000,0}) Dummy måling, mindst én kanal skal være aktiv
Repeat I>20 Løkke af passende længde, fx til et frit fald
Send({12,41,0} Kommando til læsning af antal passager
Get(A)
Disp (A)
I+1®I
End
Send({12,41,-2} Kommando til læsning af tider
Get(L1)
A®dim(L2) Dimensionerer liste L2
A®dim(L3) Dimensionerer liste L3
For(J,1,A,1)
L1(J)-L1(1) ®L2(J) Træk første tid fra alle elementer i listen
J*0.05®L3(J) Udregn strækninger.
End
QuadReg L2,L3,Y1 Udregner tilnærmet polynomium: y = ax2 + bx + c
Plot1(Scatter,L2,L3,.)
ZoomStat

Bemærk, at Kommandoen Send({12,41,4,1}) giver pulser fra faldende kant til faldende kant. Den målte tid er derfor en hel periode = (lystid + mørketid). Kommando 12 har også andre parametre, så man fx kan måle radioaktivt henfald.

Eksempel 11: Passagetid, fx passage af et pendul

ClrHome
0®I Variabel nulstilles
0®A
Send({0})
Send({6,4})
Send({1,1,1}) Indstil kanal 1 (autodetect), sonde behøves ikke
Send({12,41,3,1}) Mål passagetider på digital indgang 1
Send({3,1,1000,0}) Dummy måling, mindst én kanal skal være aktiv
Repeat (I>1000) or (A>0) Løkke med sikkerhedsstop eller passage
Send({12,41,0} Kommando til læsning af antal passager
Get(A)
Disp (A)
I+1®I
End
Send({12,41,-1} Kommando til læsning af passagetider
Get(L1)
Disp "T=",L(1) Skriv første passagetid.

LabPro og CBL 2 kommandooversigt

Fra LabProTM Technical Reference Manual, se www.vernier.com. Kun de vigtigste kommandoer er nævnt her. Alle kommandoerne kan benyttes til LabPro og CBL 2. Kommando 0 til 4 kan også benyttes til CBL.

Kommando 

Beskrivelse

0

Reset: sætter alle kanaler til default setup.

1

Kanal: indstiller en kanal til dataopsamling.

3

Trigger: indstiller triggerparametre, starter dataopsamlingen

4

Konvertering (Analoge kanaler, 1- 4): kommando til omregning af målt spænding til andre enheder fx Newton, pH, temperatur,…

Omregningen foregår i LabPro.

Sonic Temperatur kompensation (kanal 11, 12): Kompensation for hastighedens afhængighed af temperatur. Default temperatur er 20 °C.

6

Systemopsætning: Sætter fx lyd ON eller OFF ved start og stop af Non-realtime måling (scan).

12

Digital datafangst, fx måling af omløbstider vha. fotogate.

2001

Direkte skrivning til »Digital out« under måling på analoge kanaler.

Kommando 0: reset LabPro ram

Syntaks: {0}

Denne kommando har ingen parametre. Sletter data i hukommelsen, sletter fejlmeddelelser, men sletter ikke  FLASH hukommelsen.

Kommando 1: kanalindstilling

Denne kommando har en række forskellige parametre, kun de vigtigste nævnes her.

Syntaks: {1,0}

Nulstiller alle kanaler.

Syntaks: {1,kanal,0}

Lukker for den valgte kanal.: 1-4 = Analog, 11 = Sonic,… se mere side 36

Syntaks: {1,kanal,operation,efterbehandling,(delta) ,konvertering}

Opsætning af analog kanal.

Kanal

Operation/ Sensor Type

Efterbehandling

Konvertering

1-3 = Analog
0= Lukker for kanal
1 = Auto-ID  sensor
(default 0-5V sensor)
2 til 14 er udeladt her!!
0 = Ingen (RT og not-RT)
1 = d/dt (not-RT)
2 = d/dt og d2/dt2 (not-RT)
0 = Off
1 = On
(konverteringen opsættes med kommando 4)

Eksempel: {1, 1, 1 }, Auto-ID kanal 1. Bemærk afsluttende 0’er kan udelades.

Se opsætning af kanal 11, sonic side 38.

Kommando 3: trigger

Denne kommando indstiller triggerbetingelser, antal målinger, tid pr måling og starter dataopsamlingen.

Syntaks: {3, -1}

Gentager sidste kommando 3 (bruges til hurtig gentagelse af dataopsamling, når alle indstillinger kan benyttes uændrede). Data læses med Get() fra TI83. Dataopsamlingen ophører, når der ikke afsendes flere Get().

Syntaks: {3,tid pr måling, antal værdier,0,0,0,0,0,0,filter}

Bruges til realtime dataopsamling, dvs. målinger overføres løbende til TI83, eller pc.

Tid pr måling

Antal værdier

Filter

0< t £ 16000
Default = 0.5
Tid i sekunder
-1 = REALTIME mode
0 = Invalid
0 = Intet
7 = let udglatning
8 = medium udglatning
9 = kraftig udglatning

Syntaks: {3,tid pr måling, antal værdier, triggertype, triggerkanal, triggerværdi, pre-store, (extclock), rekord tid, filter, fastmode}

Bruges til non-realtime dataopsamling, dvs. alle målinger gemmes i LabPro og overføres efterfølgende til TI83 eller pc. Datalister læses med Get().

Tid pr måling

Antal værdier

Triggertype

Triggerkanal

Triggerværdi

0< t £ 16000
Default = 0.5
Tid i sekunder
0 = Invalid
1 til 12287 værdier 1)
max 3000 i Datalyse
0 = straks
1 = manuelt
2 = stigende/stigende
3 = faldende/faldende
4 = stigende/faldende
5 = Faldende/stigende
6 = Ved hvert tryk på trigger foretages en måling.
0 = Disabel trigger
1 = CH1
2 = CH2
3 = CH3
4 = CH4
11 = CH11
12 = CH12
Den valgte kanal skal være aktiveret med kommando 1
Værdi i måleområde for valgt kanal.
(for en ikke autodetekt sensor: 0-5V)
Default = 1V

 

Pre-store

Rekord tid

Filter (udglatning)

FastMode

0% til 100%
triggertype skal være 2 til 5
 
0 = Ingen
1 = Absolut
2 = Relativ
0 = Intet
1 = Savitzsky-Golay 5-punkt
2 = Savitzsky-Golay 9-punkt
3 = Savitzsky-Golay 17-punkt
4 = Savitzsky-Golay 29-punkt
5 = Median Pruning 3-punkt
6 = Median Pruning 5-punkt
0= OFF (normal operation)
1= ON FastMode2)

1) Antal værdier skal divideres med antal aktive kanaler + efterbehandling: 12000:(x+d/dt+d2/dt2)

2) FastMode kan kun bruges for analoge kanaler. I FastMode kan kun én kanal være aktiv. Mindste tid pr måling er 20ms. Fastmode er velegnet til fx skop eller lyd.

Kommando 4: konvertering (Analog)

Denne kommando bruges til at konvertere den målte analoge spænding til fx Newton, pH, lux osv.

Her medtages kun polynomiumskonvertering. Se manual for andre konverteringsformer.

Syntaks: {4,0}

Nulstiller konverteringsligning for alle kanaler.

Syntaks: {4, kanal,-1}

Kanal 1, 2, 3, el 4

Ingen konvertering for den valgte kanal.

Syntaks: {4,kanal,1,N,K0 , . . .Kn}

kanal

N

K

1 = CH 1
2 = CH 2
3 = CH 3
4 = CH 4
N = 1 til 9
Reelt tal
-1038 til 1038.

Data konverteres i loggeren vha. polynomiet: K0 + K1·X + K2·X2 + ... + Kn·Xn

Eksempel: {4,1,1,1,0,100}, dvs. alle data ganges med 100.

Kommando 6: systemindstillinger

Syntaks: {6, kommando}

Kommando

0 = Abort måling
2 = Abort måling
3 = Lyd off
4 = Lyd on

Kommandoen har endnu 2 syntakser, se manualen. Denne syntaks benyttes fx til at indstille LabPro til at afgive et lydsignal ved start og stop af scan eller til at afbryde et scan.

Kommando 12    Digital datafangst

Syntaks: {12,41,1}

Kan fx benyttes til two-way pulley fra SF, tilslut pulser til D0 og retning til D1

Syntaks: {12,41,3,retning}

Kan fx bruges til måling af passagetider

Syntaks: {12,41,4,retning}

Kan fx bruges til timermålinger, omløbstider og svingningstider

Syntaks: {12,41,5}

Kan bruges til at tælle pulser, fx radioaktivitet.

Se eksempel 10 og 11 og se LabPro Technical Manual for nærmere oplysninger.

Kommando 2001: direkte output

Syntaks: {2001, data1, data2, … dataN)

Her er N = 1...16 og dataN en byte (0..255).

Eksempel: {2001, 3} sætter D0 og D1 høje. Den digitale udgang har 4 ben ud: D0, D1, D2 og D3. Spændingen på disse sættes derfor med tallene 0..15. (0 alle ben lave, 15 alle ben høje).