Show Posts
|
|
Pages: 1 [2] 3 4 ... 100
|
|
16
|
International / Deutsch / Re: EEPROM mit Werten jenseits der 255 belegen
|
on: May 17, 2013, 05:10:58 am
|
Es geht um eine hochdynamische XXX genauer darf ich nicht drauf eingehen und ist auch unwichtig.
hmm, 500.000 Baud.... aber da spielt der Serielle Monitor von der ArduinoSoftware doch nicht mit oder?
Der SerialMonitor benutzt die Java RxTxComm, die erlaubt max 115200. Aber du willst ja "hochdynamisch" Binärdaten speichern, nur eben mehr als in einen FRAM passen, oder ...
|
|
|
|
|
19
|
International / Deutsch / Re: EEPROM mit Werten jenseits der 255 belegen
|
on: May 17, 2013, 02:39:32 am
|
vorerst ca 2000-10000 Messwerte in der obigen Konfiguration, aber noch mehr wär natürlich besser für später... Ein Messwert besteht aus: Zeit (0-65000), Analogwert (0-1023), Puls1 (low-high), Puls2 (low-high). Das sind 4 byte / event. Für 8000 Events brauchst du schon 32kBStellt sich noch die Frage nach der Erfassungsgeschwindigkeit. Normales analogRead dauert über 100 µs. Wenn die Zeit in millis ist und du max. einen Wert / Millisekunde hast, sehe ich den einfachsten externen Speicher in deinem PC. Eine Übertragung mit 115200 reicht sogar leicht für 2 Events / ms. Bei 8 Events / ms mit 500000 Bd (kontinuierlich) hat man die Grenze der normalen Analogerfassung sowieso erreicht, und noch nicht ausgenutzt, dass mindestens in deinem Zeitstempel bei dem Tempo viel Komprimierungspotential steckt. Und die Frage nach den 10000 Events ( wofür brauchst du so viel Datenschrott ; = ) stellt sich da erst gar nicht.
|
|
|
|
|
20
|
International / Deutsch / Re: Hex - Zahlen / Binärzahlen mit dem Arduino empfangen via Serial Port
|
on: May 16, 2013, 04:38:08 pm
|
|
Wenn du eine bestimmte Zeilennummer suchst: Beim Lesen die '\n' zeichen zählen ? Eine komplette Zeile lesen: Bis zum nächsten '\n' (oder Dateiende) lesen ? Wenn du eine bestimmte Zeile suchst, musst du halt jede gelesene Zeile auswerten und bei Bedarf die nächste lesen ?
Zum Splitten hast du strtok ja schon gefunden, atoi / atol , um eine Zahl draus zu machen, sollte auch zu finden sein.
|
|
|
|
|
21
|
International / Deutsch / Re: EEPROM mit Werten jenseits der 255 belegen
|
on: May 16, 2013, 11:23:31 am
|
es bietet sich da da der Eeprom bereits vorhanden ist ... dort irgendwelche Konfigurationsdaten zu speichern, damit man nicht bei gelegentlichen Änderungen, die nach einem Reset noch da sein sollen, einen neuen Sketch brennen muss. "Leute wie wir", die alle naslang einen geänderten Sketch hochladen, brauchen eigentlich kein Eeprom Aber gibt auch andere Anwendungen für einen µC.
|
|
|
|
|
22
|
International / Deutsch / Re: Ausschaltverzögerung über fertiges Arduino Board möglich?
|
on: May 16, 2013, 10:30:03 am
|
1. float threshold = 15/256;könnte 0.0 sein, da 15 und 256 zwei Integer Zahlen sind... 8-bit µController können von sich aus keine Gleitkomma-Berechnungen, und meist kommt man auch als Mensch ganz gut ohne aus...  2. Was misst du denn überhaupt ? Welchen Widerstand hat der Draht ( am Anfang, minimal / später ... ) Kannst du mit einem Messgerät die Spannung an deinem 82 Ohm Widerstand messen? Da du den Arduino über USB mit Strom versorgst, kannst du sicher auch den SerialMonitor aus der IDE anschliessen und dir mit Serial.print sagen lassen was passiert.
|
|
|
|
|
23
|
International / Deutsch / Re: EEPROM mit Werten jenseits der 255 belegen
|
on: May 16, 2013, 09:45:53 am
|
Ich habe verschiedene Werte die ich gern im EEPROM sammel möchte und anschließend per USB übertragen will. Je Messung sollen 4 Werte gespeichert werden: Zeit 0-65000, Analogwert 0-1023, Puls1 0-1, Puls2 0-1. Dafür ist ein eeprom eigentlich nicht gemacht... eeprom ist langsamer und kleiner als ram, und verträgt nur eine begrenzte Anzahl Schreibzyklen. Aus der Arduino Reference: Note An EEPROM write takes 3.3 ms to complete. The EEPROM memory has a specified life of 100,000 write/erase cycles, so you may need to be careful about how often you write to it. Ist es denn wichtig, dass die Daten ein Ausschalten des Arduino überleben ? Na ja, ein Batterie-Backup und sleep Modus des Arduino ist etwas aufwendiger ...
|
|
|
|
|
24
|
International / Deutsch / Re: Led Uhr
|
on: May 16, 2013, 09:20:52 am
|
ich habe noch nie mit Funktionen gearbeitet. Gelogen: void setup() { ... } ist eine Funktion, die du geschrieben hast, und digitalWrite(latchPin, LOW);ist eine Funktion, die du verwendet hast. Wolltest du digitalWrite selber schreiben, ginge das so void digitalWrite (byte pin, boolean state) { // was macht man nun, damit *pin* den Zustand *state* kriegt ? } Es gibt übrigens auch Funktionen, die einen Wert zurückliefern: boolean digitalDummyRead( byte pin ) { // liefert auf ungeraden pins LOW zurück, sonst HIGH (nur zum Spass) if (pin & 1) return LOW; else return HIGH; } das wird noch dauern, weil ich sehr überraschend krank geworden bin Oh, scheint eher eine schwere Krankheit zu sein, na gute Besserung !
|
|
|
|
|
26
|
International / Deutsch / Re: String seriell einlesen und teilen
|
on: May 16, 2013, 08:43:58 am
|
Dann soll das ganze am Komma noch mal geteilt werden so das ich hinter her die zwei zahlen als int in einer Variable habe. Ich hoffe ihr versteht was ich will :smiley-grin: In einer int Variable kann nur eine Zahl sein, und auch keine "1,1" Das will ich also lieber nicht verstehen
|
|
|
|
|
27
|
International / Deutsch / Re: String seriell einlesen und teilen
|
on: May 16, 2013, 08:40:04 am
|
Wird der String denn wirklich als String übergeben seriell Seriell liest immer zeichenweise. In deinem Beispiel kommen '1' ',' '1' ';' usw. nacheinander an. Es kann auch sein, dass nicht sofort alle Zeichen da sind. Ob du alles erst zusammensammelst und dann an den Trennzeichen , und ; wieder trennst, oder alles gleich verarbeitest, ist deine Sache.
|
|
|
|
|
28
|
International / Deutsch / Re: SD-Card Interface von Conrad
|
on: May 16, 2013, 08:31:46 am
|
Der Schaltplan von Megaionstorm ist etwas problematisch. Die Sendeleitung SD-Karte -> Arduino (MISO) benötigt keinen Pegelwandler! Sie sollte direkt verbunden werden. Soweit stimmt es ... Aber: Das MISO Signal kommt aus der SD Card, und sollte als 3.3V Signal auch an einem 1k Widerstand immer noch > 3V sein. Das kann man gut (egal ob direkt oder über einen 560 Ohm Widerstand ) auf einen Arduino Input Pin geben. Ist also nicht schädlich, nur überflüssig. Immerhin kann man sich so schonmal 1/4 der befürchteten Lötarbeiten sparen. Die berüchtigten chinesischen SD-Adapter und vermutlich auch der hier diskutierte (kann man auf dem ebay Bild nicht gut erkennen) haben einen 3.3V Regler und mindestens die Hälfte der Widerstände (als PullUp) schon drauf, so dass max ein kleiner Widerstand oder eine Rückwärts-Diode in der Zuleitung von CS, MOSI, CLK reichen... Die Lötarbeit hält sich also in Grenzen und ist eh erforderlich, da die Pin-Reihenfolge nicht zum Arduino passt.
|
|
|
|
|
29
|
International / Deutsch / Re: Den Exponenten einer float Variablen ohne Logarithmus finden!
|
on: May 16, 2013, 06:27:16 am
|
Und was ist daran schlecht ? Wenn dir 2 Nachkommastellen nicht reichen, mach doch z.B. float x = PI; Serial.println(x,6); Ansonsten nimm sowas wie union {float f; byte b[4];} test; test.f = PI; int pow = (test.b[3] & 0x7f) - 0x3f; //entspricht ca. log2(f) / 2 Wenn du log nicht willst, möchtest du sicher auch keine float Multiplikation, sonst könntest du natürlich (mit Rundungsfehlers) aus einem log2 einen log10 machen... geht nur auf little endians mit der üblichen float-Darstellung ( auch auf einem PC ): Das angehängte Programm liefert z.B. 314.159271 = 63 14 9d 43 --> 4 31.415928 = d2 53 fb 41 --> 2 3.141593 = db 0f 49 40 --> 1 0.314159 = 7c d9 a0 3e --> -1 0.031416 = fd ad 00 3d --> -2 0.003142 = 2e e3 4d 3b --> -4 0.000314 = be b5 a4 39 --> -6 0.000031 = 98 c4 03 38 --> -7 0.000003 = 26 d4 52 36 --> -9 0.000000 = b8 a9 a8 34 --> -11Nachtrag: wir ignorieren der Einfachheit halber das kleinste Bit des Exponentenedit: pow ist natürlich vorzeichenbehaftet
|
|
|
|
|