Analogwert eines Drucksensors

dsi75

Neues Mitglied
30. März 2009
12
0
0
Linsengericht
Sprachen
Hallo,

hoffe hier ein wenig Hilfe für einen Newcomer zu bekommen.

Ich arbeite momentan an einem Projekt für die Automatisierung eines Fitnessgerätes. Das heist, die eingestellte Kraft wird momentan manuell über eine Mechanik eingestellt. Dies soll in Zukunft über einen µC realisiert werden.
Hierzu wird dringend die Auswertung zweier Drucksensoren benötigt. Je nachdem wie hoch der Widerstand eingestellt wird, wird der Drucksensor mit einem Hydraulikdruck beaufschlagt, welcher diesen in ein analoges Signal ausgibt.
Das analoge Signal ist 4.....20 mA.
Der µC ist ein Atmel128.
Programmieren tue ich in Bascom.

Nun meine Frage:
Kann der µC überhaupt Ströme auswerten oder nur Spannungen?
Kann mir jemand den ADC des µC erläutern? (Welche Ports, etc.!)

Ich bin absoluter Neuling hier drin und würde mich über jeden Kommentar freuen.

Vielen Dank schon mal im voraus!

Gruss
 
Ha Erster ;) der erste Kommentar ...

Das analoge Signal ist 4.....20 mA.
Der µC ist ein Atmel128.
Programmieren tue ich in Bascom.

Nun meine Frage:
Kann der µC überhaupt Ströme auswerten oder nur Spannungen?
Kann mir jemand den ADC des µC erläutern? (Welche Ports, etc.!)
Der kann nur Spannungen mmessen. Du mußt den Strom also durch nen
Widerstand schicken und dann die Spannung an dem Widerstand messen.
Denn es gilt ja ....

U = R * I

Die Spannung die an dem Widerstand abfällt ist dann proportional zum
durchfließenden Strom . :D

Gruß
Dino
 
Ok, danke.

Das dachte ich mir schon.
Jetzt ist es so.
Bei 0 Bar gibt der Sensor 4 mA und bei 250 bar gibt er 20 mA.
wenn ich nun z.B. eine 500 ohm Widerstand davor setze, erzeuge ich eine 10 V Spannung bei vollem Druck. Meine Referenzspannung ist aber (gemessen) 4,95V am µC. Muss ich meinen Widerstand nun dementsprechend kleiner wählen (z.B. 250 Ohm für 5V @ 250 bar), dass ich an die Referenzspannung herankommen?
 
Hallo,

Bei 0 Bar gibt der Sensor 4 mA und bei 250 bar gibt er 20 mA.
wenn ich nun z.B. eine 500 ohm Widerstand davor setze, erzeuge ich eine 10 V Spannung bei vollem Druck. Meine Referenzspannung ist aber (gemessen) 4,95V am µC. Muss ich meinen Widerstand nun dementsprechend kleiner wählen (z.B. 250 Ohm für 5V @ 250 bar), dass ich an die Referenzspannung herankommen?
U=R*I ... rechne es doch einfach aus ...

U soll maximal 4,95V sein
I ist maximal 20mA
also ... R = U / I

Taschenrechner anwerfen ! :D
Und wenn du nicht auf nen E12 oder E24-Wert kommst, dann nimm den
nächst kleineren Wert der Wertereihe (E-Reihe)

E12 ist ... 1,0 1,2 1,5 1,8 2,2 2,7 3,3 3,9 4,7 5,6 6,8 8,2
zähl mal durch ... 12 Werte : Darum heißt das auch E12-Reihe :)

Gruß
Dino
 
Nun meine Frage:
Kann der µC überhaupt Ströme auswerten oder nur Spannungen?
Kann mir jemand den ADC des µC erläutern? (Welche Ports, etc.!)

Hallo und Willkommen im Forum! :ciao:

Ich frage mich nun gerade, wie deine Frage gemeint sein soll? :hmmmm:


Wird letztlich nicht jeder Strom über den "Umweg" der Spannungsmessung ermittelt? ;)
OK, mal von kleinen Strömen und alten Drehspulmesswerken abgesehen....

Es ist schon so, wie Dino es bereits erwähnt hat:
U = R * I bzw. I = U / R

Damit sollte der ADC doch deiner Realisierung genügen!

Interessant wäre aber noch....
Bleibt deine Spannung denn wirklich immer konstant?
Ändert sich im Sensor etwa der Widerstand, damit du diese Stromänderung bekommst?
Besitzt die Wertänderung denn eine gewisse linearität?

Warum hattest du dich denn für den ATMega128 entschieden?
Was soll das Gerät denn noch für arbeiten erledigen?

Fragen über Fragen.... ;)

Schönen Gruß,
Cassio
 
Guten Abend Cassio und Dino,

danke erstmal für eure Antworten.

Cassio zu deinen Fragen:

Der Drucksensor soll über die Trainigszeit am Gerät kontinuierlich den Druck messen und an den Controller weitergeben. Da es aufgrund von Temperaturveränderungen des Fluids zu Widerstandsänderungen am Aktor (Kraftmesser) kommt, somit zu Druckschwankungen, müssen diese durch Nachregulierung ausgeglichen werden.

War die Entscheidung des Controllers eine falsche?

Folgende Sensoren und Ventile müssen geschaltet werden.

Zwei Drucksensoren für das Auswerten der eingestellten Kraft.
Zwei proportionale Stromregelventile für das einstellen des Kraftwiderstandes.

Eventuell in der Zukunft noch ein Winkelsensor und ein oder zwei induktive Näherungsschalter.

Die zwei proportionalen Stromregelventile müssen (oder werden wohl auch) analog sein. Hierzu werde ich wohl noch einen D/A Wandler benötigen, da der Controller meiner Meinung nach nur einen A/D Wandler hat! Oder kann man den so konfigurieren, dass er digitale Signale in analoge umwandeln kann?

Gruss
 
Hallo ,

War die Entscheidung des Controllers eine falsche?

Folgende Sensoren und Ventile müssen geschaltet werden.

Zwei Drucksensoren für das Auswerten der eingestellten Kraft.
Zwei proportionale Stromregelventile für das einstellen des Kraftwiderstandes.

Eventuell in der Zukunft noch ein Winkelsensor und ein oder zwei induktive Näherungsschalter.

Die zwei proportionalen Stromregelventile müssen (oder werden wohl auch) analog sein. Hierzu werde ich wohl noch einen D/A Wandler benötigen, da der Controller meiner Meinung nach nur einen A/D Wandler hat! Oder kann man den so konfigurieren, dass er digitale Signale in analoge umwandeln kann?
naja das kommt drauf an was du gerne lötest :)
Der ATmega128 ist in einem TQFP-64 Gehäuse mit einem Pin-Abstand von
0,8mm. Ein ATmega32 bekommst Du auch in einem normalen 40pol-DIP.

Die Teile können aber auch DA-wandeln. Das geht über die PWM und dann
mit nem Integrator am Ausgang.

So ... nun ist aber bei mir Feierabend :goodnight: :sleep:

Gruß
Dino
 
Ok, Dino

Danke......ich habe bei dem 128er ein Entwicklungsboard. Somit muss ich keine aufwendigen Lötarbeiten durchführen.

Wenn du mir dann bei gelegenheit mal diese PWM Steuerung erklären könntest wäre ich dir sehr dankbar! Wie bekomme ich ein digitales Signal in ein analoges über die PWM?
Was meinst du mit Integrator? (Wie gesagt, ich bin ein Neuling?) ;)

Gruss
 
Hallo Oskar,

ich denke mal, dass die Sache mit dem Low-Cost Analog-Digital-Converter (Kondensatorlademethode) dsi75 eher verunsichern wird.

Eine AD-Wandlung mit internem ADC ist mit etwa 5 bis 10 Zeilen C- oder Assembler-Code erledigt (in Bascom wird es ähnlich sein, im Forum gibt es hierzu bestimmt einige Beispiele). dsi75 setzt den ATmega128 ein, dieser hat ein ADC-Modul, warum dieses also nicht nutzen?!

Im Moment geht es eher darum, wie man das Signal vom Sensor (4mA...20mA) für den Eingang des ADC aufbereitet.

Gruß,
Dirk
 
Hallo zusammen ...

Im Moment geht es eher darum, wie man das Signal vom Sensor (4mA...20mA) für den Eingang des ADC aufbereitet.
Hydraulik.png
was haltet ihr davon .... ?

0,88V am ADC bei 4mA
4,4V am ADC bei 20mA

wenn man einen 220 Ohm Widerstand verwendet.
Der OP-Amp ist nur für ne etwas sauberere Trennung
vom Sensor zum ATmega.

Der OPAmp muß jetzt kein LM358 sein aber ich brauchte
einfach mal schnell nen Schaltsymbol ... :D

Gruß
Dino
 
Hallo Dino,
was haltet ihr davon .... ?

0,88V am ADC bei 4mA
4,4V am ADC bei 20mA

das könnte schon gehen, aber: hat der Sensor eine Stromquelle oder eine Stromsenke? Bei einer Stromquelle müßte die Betriebsspannung des Sensors ausreichend hoch sein, damit er mit seinem Ausgangstrom die knapp 5V am Lastwiderstand erzeugen kann.

Hier müßte man mehr über den Sensor wissen.

Grüße,
Dirk
 
Hallo,

Bei einer Stromquelle müßte die Betriebsspannung des Sensors ausreichend hoch sein, damit er mit seinem Ausgangstrom die knapp 5V am Lastwiderstand erzeugen kann.

Hier müßte man mehr über den Sensor wissen.
notfalls den OPAms auf Verstärkung größer 1 bringen.
Das mit der Stromsenke oder Stromquelle ist da schon das größere Problem.

Notfalls mal den Widerstand dran und parallel nen Digitalmultimeter draufhalten.

Gruß
Dino
 
Hallo,

Das Schaltbild von Dino ist sehr gut nachvollziehbar. Dieses werde ich mal in der Praxis umsetzen.
Ich habe hier mal den Link von dem Sensor, bezüglich aller technischen und elektrischen Daten.

http://www.ifm.de/ifmde/web/dsfs!PA3521.html
das wäre vorher recht interessant gewesen .... :rolleyes:
Einfach mal gleich bei der Fragestellung die Fakten auf den Tisch. Dann
wissen alle wovon man redet und die Lösungsfindung geht schneller :D
Hier mal ein geändertes Schaltbild ...
Hydraulik2.png
Das Teil hat keinen direkten Ausgang wie angenommen sondern arbeitet als
Konstantstromqelle die den Strom in Abhängigkeit vom anliegenden Druck
ändert. Ich würde Vcc am Sensor so auf ca. 9..12V setzen.

Gruß
Dino
 
Hallo,

Ok Dino........ich gelobe Besserung! :eek:
Das ist gut :D

Meine Versorgungsspannung am Entwicklungsboard ist 12V / 200mA.
An den Sensor kannst du ruhig was ungeregeltes ranmachen. Der regelt dann
ja den Strom und damit hast du automatisch am Widerstand ne geregelte
Spannung. Also kein Problem. Nur über den Widerstand noch nen Kondensator
so mit 1..10uF legen damit es sauberer wird am besten auch noch nen
100nF Keramik gegen HF-Störungen.

Wird durch einen Spannungsregler auf 5V für den µC geregelt.
Das paßt auch so. Den OP-Amp würde ich auch mit +5V versorgen damit
der Ausgang nicht auf einmal über +5V kommen kann (sicherheitshalber).

Am Entwicklungsboard ist eine 2. VCC Klemme vorhanden. Da kann ich eine zweite Spannungsquelle (12V) anlegen!
?? Hab ich zwar auf den Photos gesehen aber wo das Ding dransteht.
Entweder ich muß mal den Text durchlesen oder mal sehen ....

Anleitung hab ich mir zum durchschauen gezogen ...

Gruß
Dino
 
Hallo @ all

ich habe das Schaltbild von Dino jetzt umgesetzt! 1:1
nach Schaltbild.
Bevor ich das ganze an den ADC Port des µC angeschlossen habe, habe ich
die Spannung mit dem Multimeter gemessen! in Ruhestellung bekomme ich 0,86 Volt auf dem Messgerät angezeigt.
Nun habe ich das ganze am ADC Port F.0 des Atmel128 angeschlossen und den Port über GETADC ausgelesen und das Ergebnis am Display angezeigt.
Dieses Ergebniss schwankt nun sehr extrem zwischen 0,78xxxxxxx und 0,84xxxxxxxxx in einem Höllen Tempo. Liegt wohl daran, dass der µC alle 5 Millisekunden den Port ausliest. Ist ja auch nicht schlimm.

So nun meine Frage:

Dino schreibte etwas weiter oben, dass ich über den Widerstand noch einen Kondensator (zwischen 1 und 10µF) setzen soll und zusätzlich noch einen Keramik.
Wäre es vielleicht möglich, diese beiden Kodensatoren mit in das Schaltbild einzuzeichnen? Es wäre etwas verständlicher für mich.
Bekomme ich mit diesen Kondensatoren die Schwankungen in den Griff?

Danke für eure Hilfe!

Gruss
 
Hallo,

Dino schreibte etwas weiter oben, dass ich über den Widerstand noch einen Kondensator (zwischen 1 und 10µF) setzen soll und zusätzlich noch einen Keramik.
Wäre es vielleicht möglich, diese beiden Kodensatoren mit in das Schaltbild einzuzeichnen? Es wäre etwas verständlicher für mich.
Bekomme ich mit diesen Kondensatoren die Schwankungen in den Griff?
das sollte die Sache auf jeden Fall scchon mal stark beruhigen. Ob es ausreicht
weiß ich so leider noch nicht. Müßte man mal testen.

Also einfach parallel zum Widerstand. Der Widerstand hat 2 Anschlüsse und die
Kondensatoren auch. Also dran und gut ;)

Kann ich ja notfalls noch ein wenig kritzeln ...

- - - - - - - - Krickelkrackel ist fertig ...
Hydraulik3.png
So sollten die beiden Kondensatoren rein. Und wenn das immer noch nicht
reicht, dann an der entsprechenden Stelle noch einen 1k Widerstand als
Tiefpaß (mit C2 zusammen) rein. Also wenn das nicht reicht, dann weiß
ich es auch nicht mehr ;)

Ich hab nen größeren Elko genommen - sicherheitshalber.

Aber mit den 0,86V liegt das ja schon ganz gut in der Nähe der berechneten
Werte. Schon nicht schlecht :D

Gruß
Dino
 
Hallo Dino,

danke fuer deine Hilfe. Werde diese Schaltung naechste Woche gleich umsetzen.
Wenn ich soweit bin und es funktioniert, werde ich hier mal Bilder von dem Projekt reinstellen.

Wenn die Drucksensoren einwandfrei ausgelesen werden und ich mit diesen Werten dann die Kraefte darstellen und auf dem Display ausgeben kann, dann kommt der naechste Schritt in diesem Projekt.

Dann werden ueber definierte Ausgangsports die digitalen Signale in analoge Signale benoetigt, um damit 2 proportionale Stromregelventile analog zu steuern. Hier weiss ich die technischen Daten der Ventile noch nicht, da ich noch keine ausgewaehlt habe. Ich weiss aber das es sie in der Form z.B. 4mA -20mA oder als 0-10V z.B. gibt.
Ist die Wahl eines analogen Spannungssignals sinnvoller oder eher das mit dem Stromstaerkesignal?
Kann ich dann beim Kauf ja gleich beruecksichtigen.
Die Wandlung des digitalen zum analogen Signal soll auch ueber eine PWM Steuerung vom Atmel128 gehen. Hierzu waere ich ueber detailierte Infos dankbar. Wie funktioniert diese? Was wird zusaetzlich benoetigt?

Danke schonmal im voraus.
Frohes Osterfest wuensche ich allen.

Gruss Dirk
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)