ups... war schon spät gestern ;) es sind nicht mA in der y-achse sondern A...
gruss bluesmash
Druckbare Version
ups... war schon spät gestern ;) es sind nicht mA in der y-achse sondern A...
gruss bluesmash
Vielleicht geht auch die Messung auf der Zeit-Achse, also messen, wie lange ein vorgegebener Stromanstieg braucht. Zeitmessungen sind mit der CapCom-Einheit des AVR ja sehr genau machbar, bis auf ca 100ns je nach MCU-Takt.
Fraglich ist dann nur, wo/wie man den unteren und oberen Schwellstrom einstellt. Den oberen könnte man zB in den AC füttern und den mit dem CapCom verdrahten. Für den unteren über einen externen Komparator an einen PCINT oder XINT. Entscheidend wird dann aber die Geschwindigkeit, mit der man es schafft, den Timer zu starten. (IRQ-Latenz, Programm-Effizienz, etc).
da kommen ja ganz neue welten auf mich zu :) was ist den die capcom-Einheit?
Aber ich denke es ist einfacher den stromanstieg über eine fixe zeit zu messen, somit kann ich auch in bascom den stromanstieg relativ einfach bestimmen...
von wo bis wo ist es sinvoll den strom für die berechnung zu bestimmen? direkt von 0 aus bis ca. 100 im oberen diagramm? oder von ca. 10 aus?
achja zu deiner formel: ΔI = U/L·Δt
ist das folgendermasen zu interpretieren?: ΔI = (U/L)·Δt
gruss bluesmash
Ja, so ist's gemeint. Bei gleicher Rangfolge der Operatoren wird von links nach rechts ausgewertet, ebenso wie bei a-b+c. Sonst kämen schon die falschen Einheiten raus ;-)
CapCom = Capture-Compare-Einheit, zB die von Timer1. Heisst da Input Capture oder so. Damit kann man recht genau Zeiten messen. Herausforderung ist dann, das Ergbnis schnell genug abzuholen bzw. auszuwerten.
Wie willst du den Strom denn messen? Der ADC ist IMHO nicht dafür geeignet da zu langsam. Wie ist den sie Bemaßung oben auf der t-Achse? Sind das ms?
vielen dank schonmal für die antworten :)
wie die bemassung der t-achse oben ist weiss ich momentannoch nicht ;)
ich habe einfach die spule eingeschaltet und direkt danach in einer for...next schleife ein array mit 254 werten gefüllt und dabei einfach die verzögerung durch die befehle genutz... muss bei gelegenheit noch die zeit messen die er dafür benötigt...
aber wie man oben ja schön sieht sollte der adc dafür schon geeignet sein... die auflösung ist einfach noch nicht sehr berauschend...
gruss bluesmash
Das war hier mal eine Diplomarbeit ^^
Der Herr hat das so gelöst wie im Anhang. Das heist ein Beliebiges Objekt hat immer in der Lichtschranke geschwebt... durch mehrere Lichtempfindliche Sensoren hat er dann das PWM Signal für die E-Magneten geregelt.
Mal grob, genaueres weis ich nich. Man kann da echt alles zwischen hängen was nich zu schwer und groß ist ;)
so was ähnliche habe ich auch schon irgendwo gesehen... ich möchte es aber vermeiden links und rechts noch sensoren zu plazieren... man sollte möglichst wenig von den sensoren sehen...
gruss bluesmash
du siehst eigentlich nur ne lame und ne scheibe plexiglas ^^*g*
Das hort sich Gut an! Vor 10 Jahren (Schulezeit-Probearbeit) habe ich zo etwas gesehn. Ist genau wie SprinterSB sagt, messen geht via den angetriebenen Magnet. Est ist moglich aber Mathematisch und Pyshich swerig. Das ist weil z.B. man ein Beschlunigung hat wegen der Gravitation und Umgekert muss man die Kugel in gegenseitige richtung beschlunigen. Aber der Magnet ist gunstig weil die Feldstarke liniar am Stromstarke lauft. Ich bin sehr neukierig und werde Projeckt genau folgen!
so ich habe jetzt mal schnell die zeit gemessen für das obere diagramm :)
der code sieht momentan folgendermassen aus:
dabei kam der zähler auf 911838 takte dies entspricht einer zeit von 57msCode:$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
$framesize = 128
$swstack = 32
$hwstack = 64
Config Portb.0 = Output
Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc
Dim X(254) As Word
Dim I As Byte
Dim Zeit As Word
Dim Zeit1 As Word
Dim Inter As Byte
Config Timer1 = Timer , Prescale = 1
Enable Timer1
On Timer1 Timer1isr
Enable Interrupts
Portb.0 = 1
Start Timer1
For I = 0 To 254
X(i) = Getadc(0)
Next
Stop Timer1
Zeit = Timer1
For I = 0 To 254
Waitms 1
Print X(i)
Next
Print "zeit: " ; Zeit
Print "interrupts: " ; Inter
Wait 5
Portb.0 = 0
End
Timer1isr:
Incr Inter
Return
ich denke etwa 1/4 der zeit würde reichen um die induktivität zu bestimmen, in dieser zeit verläuft die kurve auch noch annähernd linear, dann währe ich bei einer zeit von ca. 14.25 ms
dadurch ergäbe sich eine induktivität nach obiger Formel:
blaue kurve: 2.023288047 H
gelbe kurve: 2.191895385 H
rote kurve: 2.287195184 H
kann das stimmen? die anstiegszeit der kurve von 57ms finde ich extrem lange... ich habe leider keinen bezug zur grössenordnung der induktivität. habe sonst auch keine daten zu der spule... ich weiss nur dass sie für 24V gebaut wurde und dann ca. 300mA aufnimmt...
gruss bluesmash