Welche Eingänge für 4-20mA / 0-5V / 0-10V

moin,

bin neu hier und neu in der Materie Arduino.

Bevor ich mich weiter mit Arduino beschäftige würde ich ganz gerne wissen, ob ein Arduino Uno oder Mega 4-20mA / 0-5V / 0-10V auf Ihren Eingängen verarbeiten können und welche ich dann nutzen muss.

gruß und dank im vorraus

da Hool

Der Mikrocontroller arbeitet mit 5V, gibt eben jene Spannung aus (auch als PWM) und akzeptiert diese maximal an den Eingängen.
Eingänge mit Stromstärken in Verbindung zu bringen zeugt von Unverständnis der Materie, ein Eingang ist ziemlich hochohmig, wenn du 20 mA "reinlaufen" lassen willst, musst du eine hohe Spannung anlegen. Und eben dies hab ich im letzten Satz ja schon zum Wohle des Arduino ausgeschlossen.

hi,

ok, das heißt ich könnte ein 0-5V signal an den eingängen des arduino verarbeiten.

wie siehst dann mit dem auslesen von werten, bzw. messwandlern aus. gibt es eine möglichkeit, die werte die der arduino aufnimmt auszulesen, sich irgendwie anzeigen zu lassen?

Du kannst ohne Probleme Spannungen an den analogen Eingängen messen, wie gesagt von 0..5V. Wenn das Signal größer ist, kannst du mit einem Spannungsteiler die Spannung proportional senken. Mit Sensoren, die wie veränderbare Widerstände funktionieren (LDRs, NTCs, PTCs), können sehr einfach Messschaltungen realisiert werden. Dann gibt es noch jede Menge Sensoren, die über spezielle Beschaltung angeschlossen werden, da gibt es auch Unmengen an Bibliotheken, die das Programmieren vereinfachen.
Kommt immer auf den Einsatzzweck an...

Ich würde gerne diverse AC Ströme (bis ca. 400A) sowie reguläre Drehstromspannungen 230/400V messen und auslesen können.

Gemessen werden soll über kleine Messwandler die eben über diese drei (4-20mA / 0-5V / 0-10V) Ausgänge verfügen.

Hast du nen Link zu diesen Wandlern?

http://www.lem.fr/hq/de/content/view/270/351/

gibt es für verschiedene ströme mit verschiedenen ausgängen

Okay, wenn man sich auf dere Webseite ein bisschen durchhangelt, sind diese Messwandler in unterschiedlichen Versionen zu haben. Wenn du generell die mit 0..5V-Ausgang wählst, kannst du diesen direkt mit den Analogeingängen auswerten. Davon gibts beim Duemilanove und beim Uno insgesamt 6 Stück.

hm das klingt doch schon mal verlockend. kann ich diese werte denn auch irgendwie auslesen, mir auf einem display anzeigen lassen, auf einen webserver schieben, oder irgendwie anders auslesen?

Recht einfach sind alphanumerische Displays (Controller sollte HD44780-kompatibel sein) anzusteuern, du kannst die Werte aber auch über die USB-Schnittstelle an einen angeschlossenen Rechner übertragen oder aber mit einem Netzwerk-Shield ins Netzwerk stellen. Mit der letzten Variante (Netzwerk) habe ich aber keinerlei praktische Erfahrung.

ok, aber es geht? das ist mir wichtig. jetzt sind alle grundvorraussetzungen erfüllt und jetzt kann ich mich damit weiter beschäftigen.

wenn das nicht klappen würde wäre ein arduino nichts für mich.

mit diesen netzwerkshields lassen sich da auch w-lans aufbauen, maschennetze zb.?

wie siehst die visualisierung auf dem pc od. im lan aus?

Nun ja, mit dem Netzwerkshield hast du eben ein ganz normales Netzwerkgerät, das du auch an einen WLAN-Repeater anschließen kannst. Mal als Tipp: http://www.watterott.com/de/Arduino-WiFly-Shield
Damit hättest du gleich ein WLAN-Modul zum aufstecken. Alternativ könntest du auch auf Bluetooth setzen, das könnte letztlich noch einfacher und günstiger sein.
Die Visualisierung ist dann ja "nur" eine Bearbeitung der ausgegebenen Daten, das hat ja erst mal nichts mit dem Arduino als solches zu tun, sondern würde bei jedem Mikrocontroller anfallen.

sind echtzeitausgaben der werte möglich?

Was heißt schon Echtzeit? :wink: Sicherlich braucht die Messung der Spannung einige Taktzyklen, bei 16MHz ist das jedoch nur Bruchteile von Bruchteilen von Bruchteilen von Sekunden. :smiley: Gibst du die bspw. über die serielle Schnittstelle aus, bestimmt die Baudrate, wie schnell die Daten am rechner bereitstehen. Wie schnell die dann ihrerseits wieder vom Rechner verarbeitet und visualisiert werden, beeinflusst ja auch das Echtzeitempfinden.
Außerdem kann man durch guten Programmierstil 'ne ganze Menge optimieren.

ja mit echtzeit meinte ich das. ich möchte nur nicht ständig "aktualisieren" müssen um aktuelle daten zu erhalten. die gemessenen werte sollten sich automatisch ändern.

aber so wies aussieht müsst ich mich damit ja mal mehr beschäftigen.

kennst du eine gute spannungsmessung die, ohne große verlustleistung, die gemessene spannung auf einen 0-5V eingang legen kann?

poste doch mal deine ideen, ich geh jetzt pennen, ich danke dir aber schon mal für deine vielen tipps und einblicke.

wenn du noch einen link zu einer art einleitung für arduinos hast wär ich ebenfalls dankbar.

gruß und g8 da Hool

Wenn es dir erstmal nur um das Testen der Eingänge und die Auswertung der Daten geht, kannst du dir einfach ein Potentiometer zulegen, ich würde irgendwas über 1kOhm nehmen.
Nehemn wir mal als Beispiel ein 10 kOhm-Poti: ds hat 3 Pin, die beiden äußeren setzt du auf Masse (0V) und Versorgungsspannung (5V), am mittleren Pin hast du je nach Potistellung 0 bis 5 V. Also verbindest du diesen Pin mit dem analogen Eingang 0, ein zweites Poti (selber Wert) wird ebenso angeschlossen, allerdings dann an einen anderen analogen Eingang. Innerhalb der loop-Funktion kannst du dann die Werte an den Pins abfragen, evtl. umrechnen und ausgeben (LCD, seriell, Netzwerk, nach Belieben).
Schau dir mal das Beispiel zum Befehl analogRead () an, das ist im Prinzip die Grundform deines Projektes: http://arduino.cc/en/Reference/AnalogRead

hi,

danke ich werd mich heut abend mal einlesen.

wie visualisiere ich denn später? tabellen oder einfach nur werte die da stehen? mit einem programm das die werte ausließt?

Ja, du musst die bereitgestellten Daten abgreifen und auswerten. Das erfolgt aber PC-seitig und hat mit dem Arduino wenig zu tun.
Nun kann man entweder selbst programmieren (keine Ahnung, wie und ob du das kannst) oder auf bestehende Programme zurückgreifen, die dir die Messwerte anzeigen. Als beispiel käme LabView in Frage, aber auch in der Produktpalette des Softwareherstellers Abacom (www.abacom-online.de) findet sich dazu etwas: ProfiLab oder RealView.

Deine Sensoren liefern Standardsignale 4-20mA/0-5V/0-10V welche in der professionellen Mess-und Regelungstechnik üblich sind.

Wie bereits erwähnt können diese Signale über die 6 analogen Eingänge des Arduino eingelesen werden. Das Stromsignal 4-20mA und die Spannungssignale 0-10V müssen vorher aber mit einer entsprechenden Umwandlerschaltung auf die Pegel des Arduino-Boards umgewandelt werden.

Um die Daten nachher sichtbar zu machen, kann man diese direkt auf einem Display darstellen oder via serieller Schnittstelle an einen PC senden. Hier kann man verschiedene professionelle Tools, wie bereits erwähnt, verwenden oder man programmiert sich eine Oberfläche, beispielsweise mit Processing, selbst auf.

Für die Darstellung auf einer Website nutzt man idealerweise ein Ethernet-Shield. In diesem Fall sendet das Arduino-Programm die eingelesenen Daten via Ethernet an eine Skriptanwendung im Internet oder Intranet.
Dabei wird die externen Webanwendung aufgerufen und der gemesse Wert wird als URL-Parameter mitgegeben:
Beispiel Anwendungsaufruf:
http://meinintranet.com/datalogger/logger.php?sensor=1&wert=123

Die Skriptdatei logger.php speichert dann die übergebenen Parameter in einer MySQL-Datenbank. Aus dieser Webdatenbank kann dann eine Visualisierung über den Browser realisiert werden.
Für die Realisierung der Webanwendung können natürlich auch andere Skriptsprachen wie ASP, ASP.Net, Coldfusion etc verwendet werden.

Eine andere Lösung wäre der Einsatz von Gobetwino. Diese kostenlose Programm wird auf einem PC betrieben und kann Daten vom Arduino, via serieller Schnittstelle, empfangen.

Zusammenfassend kann man sagen, dass dein Anwendungsfall mit einem Arduino gelöst werden kann. Wobei zu beachten ist, dass externe Software nötig ist. Der Arduino dient hier nur als Datenlogger, welcher die eingelesenen Daten weitergibt (USB, serielle Schnittstelle).

Falls du dich für Arduino entscheidest, empfehle ich dir dich zuerst generell mit der Materie zu beschäftigen und dann dein Anwendungsfall in mehrere Teilprojekte aufzuteilen (Daten einlesen, Daten verarbeiten, Daten weitersenden).

Schritt für Schritt können dann die einzelnen Teile zusammengeschaltet werden.

Du hast also noch einiges zu lesen und auszutesten bevor du deine fertige Lösung hast.

Viel Erfolg dabei.

Nachtrag:
Link zu Gobetwino: Gadgets og teknologi | Dansk Tech Blog - Mikmo

@ webmeister: danke für diese ausführliche antwort. das ich mich erst einlesen muss, ist mir klar. ich möchte nur nicht wieder viel zeit in ein "projekt" investieren welches meine wünsche später nicht oder nur sehr komliziert umsetzten kann. deswegen diese fragen über die gehobene materie schon bevor ich mich richtig damit auseinander setzte.

ich werd mich da heut und morgen mal einlesen.

danke und gruß

da Hool