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
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.
Schau mal im Datenblatt des LM2903: http://www.national.com/ds/LM/LM193.pdf Wenn Du die Schaltung auf der ersten Seite aufbaust, hast Du am Ausgang ein Rechteck. Und über dem 75pF C ein "Dreieck". Der LM2903 hat 2 Komparatoren. Den 2. schaltest Du danach. Dann hast Du schon alles. Du musst lediglich die Bauteilwerte etwas ändern. Am besten Du simuliert es.
Martin L. schrieb: > allerdings ein 0-10V PWM Signal am Eingang erwarten. Das PWM-Signal Netzsynchron (also als Phaseninformation) oder beliebig in der Phase zur Netzfrequenz? Gruß Anja
> Das PWM-Signal Netzsynchron (also als Phaseninformation) oder beliebig > in der Phase zur Netzfrequenz? Oh - das kann ich gar nicht so genau sagen! Ich denke das es nicht Netzsynchron sein muss... nitraM
bist du dir 100% sicher, dass die Dimmer PWM sehen wollen und nicht einfach analog 0...10V?
Sebastian Möller schrieb: > bist du dir 100% sicher, dass die Dimmer PWM sehen wollen und nicht > einfach analog 0...10V? JA, ja da bin ich mir ganz sicher... Der Eingang geht auf einen Optokoppler, und auf der anderen Seite wird das eingekoppelte Signal einem PIC zugeführt... nitraM PS.: so langsam favorisiere ich eine programmierbare "digitale" Lösung...
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
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
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
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
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
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?
@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ß
Schnellschuss in der Mittagspause. Ohne Gewehr und Pistole und sowas. ;) Gezimmert für einen ATtiny13. Davon nimmst du für jeden Kanal einen.
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
Jörg Wunsch schrieb: > Schnellschuss in der Mittagspause. Ohne Gewehr und Pistole und sowas. > ;) > > Gezimmert für einen ATtiny13. Davon nimmst du für jeden Kanal einen. Ohhhh - vielen Dank - auch wenn ich nicht mal die Hälfte davon verstehe... nitraM
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.
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???
Martin L. schrieb: > Kannst du mir das Ganze vielleicht als hex File Idiotensicher zur > Verfügung stellen? Hier hast du's. > PS.: was muss ich bei den Fuses einstellen??? Lassen, wie sie sind. p.s:
1 | $ avr-gcc -mmcu=attiny13 -Os -o pwm.elf pwm.c |
2 | $ avr-objcopy -O ihex pwm.elf pwm.hex |
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
Vielen Dank Janosch, ich werde es später mal ausprobieren, derzeit warte ich auf die ATiny's für Jörgs Lösung. nitraM
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.