Forum: Mikrocontroller und Digitale Elektronik 4-20mA zu 50Hz PWM converter


von Christoph K. (christoph_k73)


Lesenswert?

Hallo Zusammen,
ich suche jetzt schon eine Weile ein Modul/ μC/ oder eine Schaltung, die 
mir ein 4-20mA Signal in ein 50Hz (20ms) PWM umwandelt mit einem high 
wert zwischen 1und 2ms (Abhängigkeit vom Eingang).
Die meisten werden es jetzt schon erahnen, ich möchte einen Servo- Motor 
ansteuern.
Dieses analoge Ausgangssignal bekomme ich von einer PSP.
Hier gibt es mit Sicherheit Experten, die diese Aufgabenstellung schon 
mal hatten und gelöst haben.
Vielen Dank im Voraus für die Hilfe.

MfG Christoph

von Falk B. (falk)


Lesenswert?

@ Christoph K. (christoph_k73)

>mir ein 4-20mA Signal in ein 50Hz (20ms) PWM umwandelt mit einem high
>wert zwischen 1und 2ms (Abhängigkeit vom Eingang).

Das kann ein kleiner uC machen, z.B. Attiny13. Oder man baut es klassich 
analog auf. Das Grundprinzip ist immer gleich. Strom über einen 
Widerstand in eine Spannung wandeln und damit eine PWM steuern.

von Oliver P. (mace_de)


Lesenswert?

Kannst du einen uC programmieren? Also das HEX-File einspielen?

von Harald W. (wilhelms)


Lesenswert?

Christoph K. schrieb:

> ich suche eine Schaltung, die
> mir ein 4-20mA Signal in eine PWM umwandelt

Verschiedene PWM-Schaltungen findest Du in den DSE-FAQ. Diese sind
typisch spannungsgesteuert. Deshalb müsstest Du als erstes Deinen
Strom mit Hilfe eines Widerstands in eine Spannung umwandeln.
Gruss
Harald

von m.n. (Gast)


Lesenswert?

http://www.mino-elektronik.de/Generator/takte_impulse.htm#bsp6

Die Frequenz kann man konstant lassen und die Pulsweite in Abhängigkeit 
vom ADC-Signal einstellen.

von Ert (Gast)


Lesenswert?

Das ist eine sehr gute Aufgabenstellung um in die 
Mikrocontroller-Programmierung einzusteigen. Schwer ist das nicht. Ein 
mini-Atmel (oder Pic) und los gehts.

Hast du irgendwas zur Hand? Programmer (ISP), nen kleinen Atmega? Oder 
suchst du eine Kauflösung?

Gruß
Ert

von Christoph K. (christoph_k73)


Lesenswert?

Hallo zusammen,
danke für die schnellen Antworten.
Im generellen würde ich mich gerne mit Mikrocontroller- Programmierung 
befassen, leider hab ich in dem Gebiet sehr wenig bis keine Erfahrung, 
da ich eigentlich aus dem Bereich Maschinenbau komme.
Eine direkte Kauflösung habe ich bis jetzt nicht gefunden.
Ein STK 500 hätte ich schon zuhause, aber noch keinen Programmer. Leider 
sind meine Kenntnisse in C gleich null.
Ich frage jetzt einfach mal in die Runde, gibt es jemand der mir in 
dieser Angelegenheit helfen will/ kann?

MfG Christoph

von Max D. (max_d)


Lesenswert?

Ein STK500 IST ein Programmer :D
Zum Einstieg kann ich dir raten das hier: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial anzusehen. Da 
wirst du sehr gut herangeführt....

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

@ Christoph K. (christoph_k73)

>Ich frage jetzt einfach mal in die Runde, gibt es jemand der mir in
>dieser Angelegenheit helfen will/ kann?

Siehe Anhang. Das hex-File in den ATtiny13 brennen, gemäß Plan 
anschließen, fertig. Die 20mA erzeugen knapp 1,1V Spannungsabfall an R1, 
das wird gemessen und in eine PWM umgewandelt. Um das Ganze zu 
kalibrieren, muss man die Pulsbreite der PWM bei 12mA Eingangsstrom 
messen und im EEPROM auf Adresse 3F das Oszillatorkalibrierbyte 
eintragen. Tut man das nicht, läuft er mit der Standardfrequenz. Geht 
auch, hat halt ein wenig Fehler.

von m.n. (Gast)


Lesenswert?

Christoph K. schrieb:
> Ich frage jetzt einfach mal in die Runde, gibt es jemand der mir in
> dieser Angelegenheit helfen will/ kann?

Natürlich könnte ich Dir Programm und Schaltung anpassen und nicht als 
Bastellösung, wie gerade gezeigt.

Aber was kannst Du denn erledigen?
Kannst Du sagen, welche Genauigkeiten Du brauchst und wie die fertige 
Lösung mechanisch aussehen muß?
Brauchst Du die Schaltung privat oder gewerblich?

von Christoph K. (christoph_k73)


Lesenswert?

Hallo zusammen,

vielen Dank für die Antworten.
Am Ende soll das ganze eine Temperaturregelung über eine Wago werden, 
die über Servos Warm und Kalt Wasser mischt, evtl. noch ein 3. Servo der 
auf und zu macht aber mal sehen, wie dich das dann so auf der Wago 
umsetze.
Die Genauigkeit muss jetzt nicht übermäßig sein, aber genug um 1°C genau 
zu regeln.
Das Ganze ist rein Privat.
Die Lösung von Falk Brunner sieht nicht schlecht aus, Danke dafür. Das 
würde ich mit Sicherheit irgendwie hinbekommen das auf einen IC zu 
brennen. Das Aufbauen der Hardware sieht auch nicht allzu Kompliziert 
aus.

von Helge A. (besupreme)


Lesenswert?

Für die Wago/Beckhoff gibt's doch auch gleich PWM-Module. Oder sind die 
zu ungenau für deine Regelung?

von Christoph K. (christoph_k73)


Lesenswert?

Helge A. schrieb:
> Für die Wago/Beckhoff gibt's doch auch gleich PWM-Module. Oder
> sind die
> zu ungenau für deine Regelung?

Hallo Helge A.

ich denke nicht, dass die zu ungenau sind aber zum einen haben die einen 
24V Ausgang (unproblematisch) und außersem sind die sehr teuer (ca. 170 
Eur für 2 Ausgänge).


m.n.:
Wie würdest du das lösen, wenn du meinst, das die Lösung von Falk 
Brunner eine Bastellösung ist?


MfG Christoph

von Christoph K. (christoph_k73)


Lesenswert?

Hallo zusammen,

meine Anforderung hat sich gerade etwas Vereinfacht.
Die Regelung habe ich jetzt soweit.
Jetzt will ich noch 2 separate Ventile per Servo auf und zu fahren, also 
nur 2 Positionen.
Sobald ein 24V Signal anliegt soll das PWM auf 2ms schalten und 
ansonsten auf 1ms bleiben.
Evtl. wäre eine zeitkonstante während des umschaltens noch schön, aber 
nur als „nice to have“.

Kann mir jmd. dabei helfen?

von Helge A. (besupreme)


Lesenswert?

Hast du noch einen Ausgang frei in der Wago? Vielleicht reicht es ja 
aus, wenn du entweder 1 oder 2 SPS-Zyklen lang den Ausgang einschaltest? 
Die Transistorausgänge sind ja schnell genug dafür, und selbst die 
kleinen Controller rennen ja recht schnell.

Plan B ist die Modifikation von Falk's Programm.

Plan C wäre ein kleiner Oszillator z.B. mit 40106, an dem ein 
SPS-Ausgang (oder der 4-20mA Ausgang) das Tastverhältnis verändert.

von Christoph K. (christoph_k73)


Lesenswert?

Danke für die schnelle Antwort Helge,
auf die Idee bin ich noch gar nicht gekommen, aber scheint zu 
funktionieren. Mein DO schafft 20kHz, a ich ja wie beschrieben nur 50Hz 
brauche reicht das dicke.
Nur wird der 24V Ausgang für den Servo zu viel sein, aber ich kann 
nirgends den Stromverbrauch der PWM Eingangs finden um einen Wiederstand 
zu bestimmen, bzw. Brauch ich hier überhaupt etwas dazwischen, da es ja 
nur sehr kurze Impulse sind?
Oder sollte ich gleich auf einen Spannungsteiler zurückgreifen?

von Helge A. (besupreme)


Lesenswert?

Geht es um einen gewöhnlichen Modellbauservo mit 5V - Eingang? Die 
brauchen sehr wenig. Ein Spannungsteiler 4k7 / 1k dürfte passen, um von 
24V auf Logikpegel zu kommen.

von Falk B. (falk)


Lesenswert?

@ Helge A. (besupreme)

>Plan B ist die Modifikation von Falk's Programm.

Würde ich empfehlen, denn die SPS mit der Generierung von Servosignalen 
zuzumüllen ist nicht sonderlich sinvoll.
Der Tiny hat zwei OCR Ausgänge, die Programmierung ist geradezu trivial, 
zum ja nur geschaltet werden soll. Spannungsteiler an zwei Eingänge, 2. 
OCB0 Ausgang verdrahten, Programm anpassen, fertig.

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
Noch kein Account? Hier anmelden.