0-5V => 100Hz PWM 0-100% @10V

#2332822
Lesenswert?

Hallo zusammen,
ich brauch mal einen Stubs...

Zur Ausgangssituation:
Ich habe vier analoge Ausgänge, die mir jeweils 0-5V ausgeben.
Damit möchte ich je einen Dimmer mit ansteuern.

Ich habe noch Dimmmodule (schreibt sich das wirklich mit "mmm"), die 
allerdings ein 0-10V PWM Signal am Eingang erwarten.
Der Eingang ist mit einem Optokoppler galvanisch vom Rest getrennt.

Um die Lampen sicher auszuschalten sollte nur der Bereich 0,5V-5V zur 
Ansteuerung genutzt werden.

0-0,5V => PWM 0%
0,5-5V => PWM 0-100%


Jetzt zu meinem eigentlichen Problem.

Ich kann mir gut vorstellen, das die Umsetzung mit einem kleinen AVR nur 
ein paar Zeilen Code sind - allerdings ist das Neuland für mich. Ich 
müsste mich da erst komplett neu einarbeiten.

Das Ganze sollte sich doch auch ohne µP lösen lassen!

Ich suche daher:
a) eine Person für die mich das programmiert (AD Wert einlesen => PWM am 
Ausgang einstellen.

ODER

b) eine Anregung wie sich das Ganze verhältnismäßig leicht ohne µP 
umsetzen lässt...


Für sachdienliche Hinweise wäre ich sehr dankbar...

nitraM
Gast #2332824
Lesenswert?

Bau  einen Dreiecks/Sägezahngenerator, der von 0.5V ... 5V geht.
Danach ein Komparator, der dieses Signal mit deinem Sollwert vergleicht.
Das Ausgangssignal musst Du jetzt nur noch auf 10V bringen.
Gast #2333555
Lesenswert?

Hallo,

wenn das Signal direkt auf einen Optokoppler(mit Vorwiderstand nehme ich 
mal an) geht, dann passiert in der Regel im Bereich 0-1V sowieso nichts, 
da die Diode im Optokoppler eine Uf von ca. 1V hat.

Wenn Du nur 5V hast, kannst Du auch den Vorwiderstand anpassen und schon 
gehts auch mit 5V.

Was ist dass denn für ein Dimmer?

avrGerd
#2334195
Lesenswert?

avrGerd schrieb:
>
> Wenn Du nur 5V hast, kannst Du auch den Vorwiderstand anpassen und schon
> gehts auch mit 5V.
>
> Was ist dass denn für ein Dimmer?
>
> avrGerd

Hallo Gerd,
ich habe hier von ELTAKO den LUD12-230V.
Das ist eine Leistungserweiterung, die von einem SUD12 angesteuert wird.
Der SUD12 liefert an seinen Ausgängen die PWM, welche vom LUD12-230 
ausgewertet wird.

Umbauen möchte ich die Dimmmodule nicht - ich möchte später bei Bedarf 
einfach nur ein Ersatz auf die Hutschiene setzten können...

avrGerd schrieb:
>dann passiert in der Regel im Bereich 0-1V sowieso nichts,
>da die Diode im Optokoppler eine Uf von ca. 1V hat.

Da der Pegel der PWM ja 0-10V ist wird der Optokoppler auch bei sehr 
kurzen Impulsen durchgesteuert...


Ich habe mich gestern mal mit Pascal Vorschlag beschäftigt,
allerdings bin ich noch nicht zu einem wirklich brauchbaren Ergebnis 
gekommen. Die 100Hz sind analog ohne großen Abgleich nicht so einfach zu 
treffen. Die Schaltung soll so klein wie möglich sein - von daher würde 
ich nun doch zu einer Lösung mit AVR tendieren.



Von daher meine Frage:
Findet sich hier im Forum jemand, der mir für einen AVR (Atmega8) 
folgendes programmiert:

=> Einlesen von 4 analogen Ports (0-5V)
=> Umrechnung der AD Werte (0,5-5V) in je eine PWM von 0-100% @ 100Hz
=> PWM Ausgabe auf den entsprechenden 4 digitalen Ports

Als Gegenleistung würde ich neben einem DICKEN Dankeschön auch einen 
kleinen Geldbetrag in der Größenordnung eines Kinogutscheins für zwei 
Personen ausloben...

Ich hoffe es findet sich jemand, der mir weiterhelfen kann...

nitraM
Gast #2334463
Lesenswert?

Hallo Martin,

mit der PWM und dem Durchschalten der Diode hast Du natürlich recht.
Ich war gedanklich wieder bei unserer Dimming Schnittstelle, die kann 
0-10V, PWM oder einen festen Widerstand am Eingang. Damit hat man 
erstmal viele Dinge erschlagen was man so heute zum Dimmen benutzt.

Gibt es einen Grund für die 100Hz? Ich würde da auf ein vielfaches 
gehen.
Können die Geräte von ELTAKO nicht mehr?

Wie eilig hast Du es denn mit dem Projekt?

Wer baut die Hardware?

Machen können das Projekt hier sehr viele Leute.

Aber:
Hättest Du nicht Lust und den Ehrgeiz das alleine hinzubekommen?
Untestützung findest Du hier Forum jederzeit, zumal das Projekt auch für 
Anfänger nicht so schwierig sein sollte.



Gruss,
avrGerd
#2334495
Lesenswert?

Hallo,
ich denke sogar, dass du das hinbekommst. Im 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial findest du 
alles was du brauchts. Den Controller würde ich dir danach mit deinem 
Programm vershen. Wenn du Fragen zu deinem Code hast, poste ihn hier. 
Ich würde sagen, dass du dir 50% aus dem Tut kopieren kannst. Den Rest 
schaffst du dann mit gesundem Menschenverstand und dem Forum. Auch die 
Forensuche hat schon vielen geholfen.
Gruß Jannis
#2334511
Lesenswert?

Hallo Gerd,
vielen Dank für deine Antwort...

avrGerd schrieb:

> Gibt es einen Grund für die 100Hz? Ich würde da auf ein vielfaches
> gehen.

Die 100Hz müssen schon sein - darauf ist das Programm im dem PIC des 
LUD12 anscheinend ausgelegt...

Ehrgeiz hätte ich schon, allerdings bin ich zur Zeit mit dem Umbau 
unseres Hauses total eingespannt - da bleibt nicht mehr viel Zeit über.
Ich suche eine schnelle Lösung für mein Problem - denn wenn möglich 
sollten die Dimmer ihren Platz in der Unterverteilung bald einnehmen...
Die Hardware würde ich aufbauen, ist ja nicht soviel...
Ich brauche halt einen "schnellen" Erfolge - ansonsten könnte ich die 
Dimmer nicht nutzen und müsste wieder (viel)Geld ausgeben für andere.
Wenn ich mit dem Umbau denn mal fertig bin würde ich schon gern meine 
Defizite aus bügeln...

nitraM
Gast #2334583
Lesenswert?

Hallo Martin,

Wo kommen denn deine 4 analogen Ausgänge mit 0-5V her?

Wie lange werden die Leitungen von den analogen Ausgängen zu den 
Dimmern?

Mit welchen Störungen ist auf den Leitungen zu rechnen?

Würdest Du evtl. notwendige Filter in Hardware machen oder muss/soll das 
in Software gemacht werden.

Um schnell Ergebnisse zu bekommen und die Lernkurve steiler zu machen 
kannst Du Dir auch mal BASCOM ansehen. Ist bis 4k Code kostenlos.

Ausserdem sind schon viele Beispiele dabei, auch für ADC und PWM 
Ausgabe.
Da hast Du in 1 Stunde schon so ziemlich was Du brauchst mal 
ausprobiert.


avrGerd


Ach ja:
Hab ich es richtig verstanden, dass Du mit einer 5V PWM die 10V PWM der 
Dimmer ansteuern willst? Hast Du schon mal ausprobiert, ob das überhaupt 
funktioniert?
#2334623
Lesenswert?

@avrGerd
>Da hast Du in 1 Stunde schon so ziemlich was Du brauchst mal
ausprobiert.

Wenn er noch nichts mit µC gemacht hat, halte ich das für relativ 
unwahrscheinlich.

>Ach ja:
Hab ich es richtig verstanden, dass Du mit einer 5V PWM die 10V PWM der
Dimmer ansteuern willst? Hast Du schon mal ausprobiert, ob das überhaupt
funktioniert?

Martin schreibt: Der Eingang ist mit einem Optokoppler galvanisch vom 
Rest getrennt.

Wenn du so gut bist mach es ihm doch. Sollte ja dann bei dir in 10min 
erledigt sein?!

@Martin L.
Bau mal die Hardware und poste den Schaltplan hier im Forum.
Wenn die Hardware aufgebaut und hier für gut befunden wurde,
kann ich dir gern die Software dazu machen wenn du willst.

Gruß
#2334709
Lesenswert?

Hallo Peter

vielen Dank für dein Angebot, werde mich heute oder morgen Abend mal 
hinsetzten und zeichnen.

Ich würde ja gern 4 PWM Ausgänge nutzen, laut DB hat ein Atmega8 nur 3 
PWM Ausgänge. Allerdings sind 100Hz ja nicht gerade viel.
Würde die Ausgabe auch auf einem normalen Port gehen - also eine reine 
SW-PWM ???

Grüße Martin
Moderator Persönliche Seite #2334718
Lesenswert?

Martin L. schrieb:
> auch wenn ich nicht mal die Hälfte davon
> verstehe...

Einfach das Datenblatt daneben halten und versuchen, die
Registereinstellungen zu verstehen.

Die ADC-ISR macht weiter nichts, als eine einfache lineare
Interpolation.  Du bekommst vom ADC einen Wert zwischen 0 (für 0 V
am Eingang) und 255 (für Vcc = 5 V am Eingang), d. h. der ADC wird
effektiv im 8-bit-Mode betrieben (das bewirkt das ADLAR-Bit [left
adjust result] zusammen mit der Tatsache, dass man nur ADCH
ausliest und auf diese Weise die verbleibenden 2 Ergebnisbits in
ADCL ignoriert).  Da du Spannungen < 0,5 V als 0 bewerten willst,
muss man die verbliebenen Werte (zwischen 25 und 255) auf die
gesamte Ausgabebreite der PWM abbilden, und diese wierum beträgt
0 ... 186 (Makro TMR_TOP).  Dieser "eckige" Max-Wert ergibt sich
aus deiner 100-Hz-Forderung.  (Die 100 Hz lassen sich nicht exakt
erreichen, aber der wesentliche Fehler ist nicht der Rundungsfehler
im Timer, sondern die Ungenauigkeit des RC-Oszillators.)

p.s.: Ich denke, dass du die Lösung mit vier kleinen Controllern
schneller zum Laufen bekommen wirst als die, alles in einem einzigen
Controller zu machen.  Letzteres ist zwar "sportlicher" ;-), aber
du schrobst, dass deine Zeit gerade knapp ist.
#2334734
Lesenswert?

Hallo Jörg,

noch mal ein Dankeschön von mir...
Wenn ich die Tage mal in die Stadt komme werde ich mir bei meinem Krämer 
ein paar ATiny's holen und testen.

Kannst du mir das Ganze vielleicht als hex File Idiotensicher zur 
Verfügung stellen??? Wie gesagt - AVR ist für mich absolutes Neuland...

nitraM


PS.: was muss ich bei den Fuses einstellen???
#2336791
Lesenswert?

Hallo,
falls du es doch noch mit einem ATmega8 machen willst hab ich mal ein 
Programm geschrieben mit 4 SW_PWMs. Ich wollte mich sowieso mal mit 
SW-PWM beschäftigen.
Der Takt muss auf 8MHz gestellt werden.

ADC  -> PWM

ADC0 -> PD0
ADC1 -> PD1
ADC2 -> PD2
ADC3 -> PD3

Gruß
Janosch
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren