Hallo Ich habe folgendes Problem. Alle 1,5 bis 2 Sekunden muss ich eine analoge 1 - 5 Volt Spannung digitalisieren und am PC (Win XP) dokumentieren. Insgesamt so 3000 - 4000 Messungen. Ich habe zwei Lösungsansätze: 1: Ein A/D Wandler IC, welches dann direkt vom PC über die serielle oder parallele Schnittstelle angesprochen wird. Und jeden Messpunkt sofort überträgt. 2: Ein Mikrocontroller mit A/D Wandler, welcher ca. 3000 - 4000 Messpunkte sammelt und erst nach abgeschlossener Messungen mit dem PC den Datenaustausch macht. Zu meinen Kenntnissen: Ich habe C++ Kenntnisse (Objektorientiert), leider habe ich noch nichts mit Schnittstellen gemacht, da muss ich mich erst noch einarbeiten. Assembler Mikrocontroller Kenntnisse. Das Windows Programm ist auch Bestandteil dieser Aufgabe. Welche Schnittstelle ist dafür am geeignetsten? Welche Methode würdet ihr mir empfehlen? Ich freue mich auf eure Antworten
Ein Digital-Multimeter mit serieller Schnittstelle, das mißt auch alle 1-2 Sekunden. Oder muß es getriggert wandeln?
Also ich würd irgendnen AVR mit AD Wandler nehmen (zum einen muss der AD ja nich wirklich schnell sein - und zum anderen hört sich das nicht so an als ob du ne hohe Auflösung brauchst und 10 Bit sind ja auch schon nich schlecht (bei 0-5 V sind das 5 / 2^10 = 0,005 V Auflösung (die du aber sowieso nicht erreichen wirst...) Ob du die Daten dann direkt überträgst oder noch zwischenspeicherst kannst du dann auch spontan entscheiden - bei nem Mega32 hast du 2K Ram - also kannst du ca 1500 Messungen zwischenspeichern (sofern der µC nich noch irgendwas anderes machen soll) Die Schnittstelle is würd ich sagen Geschmackssache ;) - Seriell ist natürlich von der Übertragung extrem einfach - du brauchst auch der µC Seite so gut wie keine Hardware und auf der PC Seite keine Treiber... Alternative wär USB - Vorteil: Du hast schon ne Stromversorgung, außerdem gibts Code um mit nem nakten AVR ne USB Schnittstelle hinzubekommen - aber es bleibt entweder erheblicher Programmieraufwand oder Hardwareaufwand (verglichen zu RS232) - und du brauchst auf der PC Seite natürlich Treiber... Nen einfachen AD Wandler würd ich nich nehmen - wär mir halt zu aufwändig da dann noch Hardware ranzubasteln um den ann Parallel oder Seriellen Port zu bekommen - und nen AVR kost auch nur 2 - 5 € (Is ja aber nur meine Meinung....) Grüße, Sebba
das einfachste ist wohl einfach nen 10 bit ad wandler vom avr nehmen und das ergebnis sofort nach der messung per uart senden!
Das einfachste ist einen USB-AD-Wandler (in Form eines Multimeters :).
Vielen Dank für die Antworten. Ich tendiere zu der AVR A/D Wandler Methode. Jetzt stellt sich mir nur noch die Frage, wie ich es übertragen soll. Seriell hört sich für mich ser schwierig an, da ich die Stellen nur einzelen schicken kann, parallel könnte ich 8 bit direkt übertragen. Wenn ich aber die 10 bit des A/D Wandlers übertragen möchte ergibt sich aber bei der parallelen Übertragung das gleiche Problem. Habt ihr da Vorschläge für mich?
Womit willst du die Daten auswerten? Soll es eine Textdatei bzw. tabellenkalkualtionstaugliche Datei werden? Dann ist es sinnvoll, die AD-Werte im Controller in einen String (Aneinanderreihung von ASCII-Zeichen) zu wandeln. Man kann den AD-Wert dann auch schon in die Spannungswerte o.ä. wandeln. Dann kann man in einem Protokoll noch festlegen, ob es zu regelmässigen Messungen (in einstellbaren Intervallen) oder nur eine einzelne gemacht werden soll. Das sind alles mögliche Erweiterungen.
> Seriell hört sich für mich ser schwierig an Nicht wirklich. Auf der AVR Seite schickt dir der µC jeden Messwert einzeln jeweils abgeschlossen mit einem '\n'. Auf der PS Seite empfängst du den String, teilst ihn Anhand der '\n' in Teilstrings auf und wie man einen String in einem Zahlenwert zurückverwandelt weist du ja. Wenn du das so machst, hast du den Vorteil dass du zum Testen noch überhaupt kein PC Programm brauchst. Du nimmst einfach eine Terminalemulation (zb. Hyperterminal) und siehst dort die Messwerte durchrauschen. Jeweils ein Messwert auf einer neuen Zeile.
> Auf der AVR Seite schickt dir der µC jeden Messwert einzeln > jeweils abgeschlossen mit einem '\n'. Das klingt jetzt so, als ob der AVR das von alleine machen würde. Tut er natürlich nicht. Das musst du schon programmieren. Ist aber nicht wirklich schwer. Da das die einzige Aufgabe des AVR ist, kannst du kleckern und einfach sprintf() dafür hernehmen. Wenn du in C programmierst, was ich dir empfehlen würde.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.