Die grafische Darstellung bei einem Pixelmapping von 1:1 braucht bei 1024 Samples (also Pixeln) etwa 1280byte. Das ist aber unabhängig von der Samplingrate! Die 1024 Samples kannst du innerhalb von 3 Tagen aufsammeln oder aber wärend einer Periodendauer. Mit 1Khz Samplingrate kann man keine Periode darstellen die bei 500Hz Generatorfrequenz erzeugt wird.
Ja, verstehe, die Abtastrate richtet sich natürlich nach den Erfordernissen und nicht nach der Darstellung. Ich weiss nicht genau ob ich da nen Denkfehler gemacht oder mich falsch ausgedrückt habe, aber mir gings halt um den Platzbedarf im RAM um die Rohdaten zwischenzuspeichern und was ich meinte war wohl ungefähr folgendes: Angenommen die Drehfrequenz des Generators beträgt wie Du sagtest 100Hz, also 100 Perioden in einer Sekunde, dann bräuchte ich doch nur bei einer genügend hoch aufgelösten und entsprechend schnellen Samplingfrequenz von sagen wir mal 10KHz (und an dieser Stelle hast Du natürlich völlig recht, dass die Samplingrate schnell genug sein muss) für insgesamt 2 hundertstel Sekunden lang zu samplen um mindestens eine komplette Periode mit aufgenommen zu haben. Diese wäre dann mit 100 Punkten aufgelöst, ich denke/hoffe mal, das wäre ausreichend um die Charakteristik sehen zu können. Und im RAM müste man für diese gesamte Momentaufnahme dann nur 200 Samplewerte zwischenspeichern. Soll heissen, was ich vorher gesagt habe, dass die Abtastrate ja frei wählbar ist, ist natürlich Unsinn, bzw. hilft hier nicht weiter, ich hätte mich wohl eher auf die Dauer der Abtastung beziehen müssen, d.h., um eine Periode zu erwischen muss ich ja nicht die ganze Sekunde lang samplen. (Ich hoffe mal ich hab jetzt nicht schon wieder nen Denkfehler gemacht.)
Man sollte einfach von dem Arduino scope Projekt Code übernehmen.
Ich hab mal danach geschaut, anscheinend gibts da mehrere Projekte für Arduino Oszilloskope, wobei mich da weniger der Code als eher die Hardware-Umsetzung interessiert hat. Ich hab nur grob geschaut, aber hatte den Eindruck, dass bei diesen Projekten eher niedrige Samplefrequenzen erreicht werden, so um die 5 KHz (hab aber wirklich nur ganz grob geschaut und es war schon sehr spät ).
Wieauchimmer, vielleicht gibts da ein grundlegendes Problem mit dem ADC vom AVR. Es scheint wohl so zu sein, dass der mit einem eigenen Takt betrieben wird, welcher wiederum durch den CPU-Takt durch einen prescaler generiert wird und laut Datenblattempfehlung zwischen 50 und 200 KHz liegen sollte (zumindest bei 10-Bit Samples, bei kleineren kann wohl auch 1MHz erreicht werden, aber das wird durch die Spezifikation nicht unterstützt.) Für ein Sample benötigt der ADC aber 13 Takte, d.h. es wären maximal 15,4 KSamples pro Sekunde möglich, aber es scheint da noch weitere Faktoren zu geben, warum nicht mal die erreicht werden sondern in der Natur noch weitaus darunter liegen, also eher im bereich um die 5 KSamples.
Vielleicht kann man ja einen separaten AD-Wandler nehmen, der schneller samplen kann. Ich hab ein Projekt gefunden, unter
http://www.ulrichradig.de/home/index.php/avr/avr-dso
wo ein TLC5540 zum Einsatz kommt, allerdings verwendet der da auch noch einen Xilinx CPLD, sowie diverse Verstärker-Bausteine und 32K externes RAM; keine Ahnung ob das wirklich alles so für unseren Zweck vonnöten wäre, ich hab halt einfach mal rumgeschaut (ohne jedoch wirklich etwas von der Sache zu verstehen ).
Man sollte generell in Intervallen samplen, z.B. 2 Hz wenn möglich, und dann versuchen, daraus die Amplitude und Frequenz mit FFT zu errechnen, damit dann den Generator zu steuern. Ich hab irgendwie das Gefühl, dass da ein 8bit AVR nicht reicht > > Er soll ja auch noch funken.
Ich nehme mal an Du sprichst jetzt von der CPU-Geschwindigkeit. Ich kann nicht einschätzen wieviel Performance für FFTransformationen und für 2.4GHz-Funk notwendig sind, aber z.B. mit nem 32-Bit AVR erreichst Du auch höhere Geschwindigkeiten. Ich habe hier z.B. ein Grasshopper-Board von InCircuit, das hat nen AVR32/AP7000 Prozessor und ist mit 140MHz getaktet (und hat btw. 64MB RAM). Aber ich glaube 32-Bit AVRs gibts noch nicht als Arduino und Du stösst hier natürlich auch in eine andere Preiskategorie vor; das Grasshopper-Board ist mit 85,- EUR dabei noch eines der günstigsten, eine Alternative wäre vielleicht noch ein FriendlyArm-Board, wobei es sich bei letzterem um ARM und nicht AVR handelt, ist allerdings bis 400 MHz getaktet. Wieauchimmer, das sind für mich ganz andere Dimensionen, wo ich keine Ahnung habe, wie man sowas auf Hardwareebene als Controller-Schaltung programmiert; ich benutze sowas eher um darauf Linux laufen zu lassen
Aber genug vom Waveformsampling, das steht ganz unten auf der Liste.
OK, dann fragen wir doch mal andersrum, was denn für die grundlegenden Windrad-Laderegler Funktionen notwendig ist. Soweit ich die Beschreibung im WIKI verstanden habe war da von zwei Varianten die Rede, einmal Shunt/OPAmp, was wohl eine simplere Variante darstellt oder eine IC-basierte Variante, was ich als eine Art intelligentere und effizientere Form der Regelung interpretiere. Müssen da dann nicht irgendwelche Kennlinien erstellt werden und wenn ja, wie wären da dann die Hardware-Anforderungen für das Sampling ?
Sorry falls meine Beiträge etwas unqualifiziert und oberflächlich erscheinen, aber ich versuche halt ein rudimentäres und laienhaftes Verständnis von Wilssen zu entwickeln und würde mich freuen, falls ich hier und da quasi glückstreffermäßig eine sinnvolle Anregung beisteuern könnte
Gruss,
Oliver