Hi zusammen, für eine Anwendung muss ich zwei LEDs sehr fein dimmen können (für einen LDR, nicht fürs menschliche Auge). Ich benötige demnach mehr als 8bit PWM. Am liebsten wären mir direkt 16bit PWM. Ich möchte allerdings auch eine möglichst hohe PWM Frequenz erreichen. 8bit PWM könnte der Tiny85 soweit ich es verstanden habe mit 64Mhz Timertakt in Hardware. Wenn ich den 64Mhz Timer als Software-PWM verwenden würde bringt das ja nicht so viel, da der Systemtakt bedeutend langsamer ist und das Umschalten durch einen Timerinterrupt nicht so schnell verarbeiten werden kann und somit ggf. der Timer schneller überläuft als der Avr rechnen kann... Nun ist mir folgende Idee gekommen zwar den Hardware-PWM zu nutzen, aber per Software die PWM Pulsweiten ständig anzupassen um die Bitrate sozusagen zu erhöhen. wenn ich also z.B. 10bit PWM möchte würden das 3 Durchläufe des 8bit Timers bedeuten. Beim Ende jedes Durchlaufs (müßte man gucken wie man das am besten timt bzw. die Taktverzögerungen mit einrechnen) muss dann die PWM Pulsweite neu gesetzt werden. Wenn z.B. die LED 50% der Zeit leuchten soll, der normale PWM Wert also 512 wäre, wäre das: 1. PWM Durchlauf: komplett aus 2. PWM Durchlauf: ab der Hälfte an 3. PWM Durchlauf: komplett an danach wieder von vorne Somit würde ich nicht die Rechenzeit verlieren den Pin immer selbst zu setzen (was bei der Taktgeschwindigkeit mit dem Systemtakt ja sowieso nicht möglich wäre) Schwierig stelle ich mir gerade nur den Übergang zwischen den PWM Durchlaufen vor. Man müßte genau berechnen wie viele Takte das neusetzen des Pulsweite benötigt und dann entsprechend früh per Interrupt die Änderung setzen. Da der Timer1 nur zwei Output Compare hat könnte man hierzu vielleicht den Timer0 zeitlich synchronisiert nutzen um den richtigen Zeitpunkt abzupassen. Ist das so möglich, hat jemand so etwas schon mal versucht? Meint ihr das könnte passen oder lieber gleich einen größeren Tiny/Mega mit 16bit Timer nehmen (auch wenn die dann nur mit Systemtakt den Timer laufen lassen können). Gruß, Sammy
Hier werden nebenbei zwei 8-Bit-Timer zusammengenommen, um damit eine 16-Bit-PWM zu machen: http://www.zabex.de/site/sofabeleuchtung.html
Ist der LDR derart fix? Ich habe die als eher gemächliche Gesellen in Erinnerung. Wenn es darum geht, jeden überlagerten Brumm im hörbaren Bereich weg zu bekommen: Spricht etwas gegen die analoge Variante, also PWM+Tiefpass?
Du könntest alternativ einen Sigma-Delta Wandler in Software implementieren. Damit lässt sich mit niedrigeren Frequenzen eine höhere Genauigkeit erreichen. Weitere Verbesserung erreicht man mit einem zusätzlichen externen Tiefpass, um das Hochfrequente Störsignal zu filtern.
A. K. schrieb: > Ist der LDR derart fix? Ich habe die als eher gemächliche Gesellen in > Erinnerung. > > Wenn es darum geht, jeden überlagerten Brumm im hörbaren Bereich weg zu > bekommen: Spricht etwas gegen die analoge Variante, also PWM+Tiefpass? beides korrekt. Der LDR wird eher langsam sein und es geht darum keine Störgeräusche in die Audioschaltung zu bekommen. Über den LDR laufen direkt Audiosignale. Gruß, Sammy
Für sowas wurden Controller erfunden die 16 oder 32bit Timer haben. dsPic z.B. oder Cortex M0 (M3). Alles andere ist und bleibt eine Krampflösung.
Samuel St. schrieb: > Über den LDR laufen direkt Audiosignale. Das hat man um 1980 so gemacht. Heutzutage gibt es Lautstärke-ICs vom allerfeinsten, die Deinen LDR bezüglich Rauschen, Dynamik usw. weit in den Schatten stellen.
>Alles andere ist und bleibt eine Krampflösung.
Nicht wirklich. Einen 16 oder 32bitter deswegen einzusetzten ist eher
durchgeknaller Overkill. Wenn man einen 8 bit timer mit 16MHz laufen
laesst hat man eine PWM mit 64kHz. Wenn man ein 8 Bit subcycling macht,
ist man bei 16 bit Aufloesung.
Dh, zB 189 von 256 der schnellen Zyklen mit dem Wert von 23 laufen zu
lassen und die restlichen 67 der schnellen Zyklen mit dem 24, so hat man
eine Repetitionsrate von 256Hz, die PWM Frequenz liegt aber bei 64kHz.
old man schrieb: > Für sowas wurden Controller erfunden die 16 oder 32bit Timer haben. Das ändert nichts am Problem, dass ein so ein Timer eine Frequenz im hörbaren Bereich erzeugt. Und genau das will er nicht, da er befürchtet, diese via LDR im Audiosignal wiederzufinden.
Siebzehn mal Fuenfzehn schrieb: > Dh, zB 189 von 256 der schnellen Zyklen mit dem Wert von 23 laufen zu > lassen und die restlichen 67 der schnellen Zyklen mit dem 24, so hat man > eine Repetitionsrate von 256Hz, die PWM Frequenz liegt aber bei 64kHz. Allerdings hat man so eine Störung mit 64kHz/256 im Signal. Nicht umwerfend stark, aber evtl. zu viel für Audiophile. Das kann man durch andere Verteilung verändern, aber bei 10+ Bits digital nicht wirklich weg bekommen.
Peter Dannegger schrieb: > Samuel St. schrieb: >> Über den LDR laufen direkt Audiosignale. > > Das hat man um 1980 so gemacht. > Heutzutage gibt es Lautstärke-ICs vom allerfeinsten, die Deinen LDR > bezüglich Rauschen, Dynamik usw. weit in den Schatten stellen. Die Effekte des modernen ICs sind sicherlich beachtlich, vor allem wenn es Spannungen von z.B. 150V überleben soll... Da ist dann nicht mehr viel mit Rauschen, Dynamikvorteilen, sondern eher ein unangenehmer Geruch zu vernehmen ;) Für Röhrenschaltungen ist die Technik von 1980 wohl immer noch recht aktuell, ich wüßte nicht wie man das sonst hinbekommen kann. Gruß, Sammy
Meine Kristallkugel ist leider kaputt. Daß Du die Anodenspannung von Röhren einstellen willst, konnte ich daher nicht hellsehen. Die NF am Steuergitter der Vorröhre kann man durchaus mit einem IC steuern. Auch in der Röhrentechnik wurden keine 150V NF übertragen. Die Quellen (Mikrofon, Tonabnehmer, Radio usw.) lieferten nur wenige mV.
Peter Dannegger schrieb: > Meine Kristallkugel ist leider kaputt. Daß Du die Anodenspannung von > Röhren einstellen willst, konnte ich daher nicht hellsehen. > > Die NF am Steuergitter der Vorröhre kann man durchaus mit einem IC > steuern. > Auch in der Röhrentechnik wurden keine 150V NF übertragen. Die Quellen > (Mikrofon, Tonabnehmer, Radio usw.) lieferten nur wenige mV. Hi Peter, ich wollte dich nicht angreifen, alles kein Problem, grundsätzlich hast du definitiv Recht! Die Kristalkugel ist aber inzwischen auch out, da gibts seit einigen Jahren moderneres wie XKeyscore & Co ;) Ich möchte halt eine bestehende Schaltung ohne weitere Änderung damit ausstatten können. Es gibt zwar Designs, bei denen man das auch mit ICs machen kann, in meinem Fall liegen bei Bass/Middle/Treble allerdings höhere Spannungen an als die ICs vertragen können. Gruß, Samuel
Samuel St. schrieb: > Wenn ich den 64Mhz Timer als Software-PWM verwenden würde bringt das ja > nicht so viel, da der Systemtakt bedeutend langsamer ??? Was? Ein AVR der einen Timer hat der mit 64MHz läuft und das schneller als der Systemtackt?? Seit wann gibts den das und wozu soll das gut sein? Da ja der Systemtackt max bei 20MHz liegt und die Pins auch parasitäre Cs haben kann man ihn ja nicht als PWM nutzen (ausser einem sehr guten Layout). Da bleibt ja nur der Nutzen als Counter oder Input-Capture... Aber hier drängt sich bei mir der Verdacht auf dass her AVR viel zu langsam ist um das zu verarbeiten.
Der tiny25 hat das. Durch eine interne PLL kann er den Timer mit 64MHz bespaßen. Zudem hat er noch einen Deadtimegenerator für Halbbrücken ansteuerung (zu jedem OCB gibts auch einen negierten). ZUdem hat er noch nen ADC, der ist also wohl zum Regeln für PWM Krams entwickelt.
Patrick B. schrieb: > Samuel St. schrieb: >> Wenn ich den 64Mhz Timer als Software-PWM verwenden würde bringt das ja >> nicht so viel, da der Systemtakt bedeutend langsamer > > ??? Was? Ein AVR der einen Timer hat der mit 64MHz läuft und das > schneller als der Systemtackt?? Seit wann gibts den das und wozu soll > das gut sein? > > Da ja der Systemtackt max bei 20MHz liegt und die Pins auch parasitäre > Cs haben kann man ihn ja nicht als PWM nutzen (ausser einem sehr guten > Layout). Da bleibt ja nur der Nutzen als Counter oder Input-Capture... > Aber hier drängt sich bei mir der Verdacht auf dass her AVR viel zu > langsam ist um das zu verarbeiten. Ja, ein paar Tinys (25,45,85 mit 8bit Timer, 261,461,861 mit einem 10bit Timer) und ich glaub die XAtmegas haben das jetzt auch. Der Takt für einen Timer kann auf 32Mhz/64Mhz geboostet werden. Basis dafür ist der interne 8Mhz Takt, unabhängig was man von außen als Takt anschließt.
Martin Wende schrieb: > der ist also wohl zum Regeln für PWM Krams > entwickelt. Ich habe noch nie Halb- und Vollbrücken mit >100kHz da die Motoren das swoieso nicht mitmachen. Und im Normalfall ist ja der PWM nicht das Beschränkende für eine Regelung sondern vielmehr die Geschwindigkeit von ADC (je nachdem wieviele Kanäle wie genau eingelesen werden müssen) und die eigentliche Reglerfunktion z.B. PID. Gut, mit 20MIPS kann man schon vieles machen. Interessanter Hinweis, mal wieder was dazu gelernt.
Man kann schon das schnelle 8 Bit PWM Signal zusätzlich in Software modulieren. Es gibt dann aber den Anteil bei niedriger Frequenz, wenn auch mit deutlich kleinerer Amplitude. Bei 64 MHz Timer und 16 Bit Auflösung wäre man da gerade bei rund 1 kHz. Die Ausführung ist noch relativ einfach: Der PWM Wert wird zwischen 2 Werten (N und N+1) im Wechsel umgeschaltet - am einfachsten im Timer Interrupt. Viele der Timer haben ein Pufferung für die PWM Werte, so das der neue Wert erst für den nächsten Zyklus aktiv wird - so kritisch ist das mit dem Timing also nicht, man hat aber nicht wirklich viel Zeit, denn 256 Zyklen bei 64 MHz sind nur 4 µS oder 64 Zyklen bei 16 MHz. In ASM sollte das aber reichen um den passenden Wert zu berechnen (geht ganz gut Sigmal Delta ähnlich durch aufsummieren und Entscheidung über den Überlauf). Für die Lautstärke-einstellung wäre allerdings eher ein andere Kennlinie (z.B. exponetiell) hilfreich, weniger mehr Stufen in linearer Teilung. Da es eher weniger um stabile Werte geht (der LDR ist auch recht Temperaturabhängig) sollte analog z.B. über Dioden gut zu realisieren sein. Alternativ wäre auch PWM mit einem mit der Zeit zunehmenden Strom möglich um so eine etwa Quadratische Kennlinie zu erreichen. Es bleibt dann zwar bei 256 Stufen, aber besser verteilt.
>??? Was? Ein AVR der einen Timer hat der mit 64MHz läuft und das schneller als der Systemtackt?? Seit wann gibts den das und wozu soll das gut sein? Aeh. So ganz nebenbei gibt es einen PIC, den dsPIC 30F2023, der hat eine PLL die kann man bis 480 MHz (!) aufdrehen, fuer genau diese Zwecke. Es zieht dann aber auch Unmengen an Strom...
Ulrich schrieb: > Man kann schon das schnelle 8 Bit PWM Signal zusätzlich in Software > modulieren. Es gibt dann aber den Anteil bei niedriger Frequenz, wenn > auch mit deutlich kleinerer Amplitude. Bei 64 MHz Timer und 16 Bit > Auflösung wäre man da gerade bei rund 1 kHz. > > Die Ausführung ist noch relativ einfach: Der PWM Wert wird zwischen 2 > Werten (N und N+1) im Wechsel umgeschaltet - am einfachsten im Timer > Interrupt. Viele der Timer haben ein Pufferung für die PWM Werte, so das > der neue Wert erst für den nächsten Zyklus aktiv wird - so kritisch ist > das mit dem Timing also nicht, man hat aber nicht wirklich viel Zeit, > denn 256 Zyklen bei 64 MHz sind nur 4 µS oder 64 Zyklen bei 16 MHz. In > ASM sollte das aber reichen um den passenden Wert zu berechnen (geht > ganz gut Sigmal Delta ähnlich durch aufsummieren und Entscheidung über > den Überlauf). > > Für die Lautstärke-einstellung wäre allerdings eher ein andere Kennlinie > (z.B. exponetiell) hilfreich, weniger mehr Stufen in linearer Teilung. > Da es eher weniger um stabile Werte geht (der LDR ist auch recht > Temperaturabhängig) sollte analog z.B. über Dioden gut zu realisieren > sein. Alternativ wäre auch PWM mit einem mit der Zeit zunehmenden Strom > möglich um so eine etwa Quadratische Kennlinie zu erreichen. Es bleibt > dann zwar bei 256 Stufen, aber besser verteilt. Das Schaltungsdesign ist so gedacht: eine LED wird zwei gematchte LDRs beleuchten. Einer der LDRs hängt dann in der Analogschaltung (als Volume, EQ, was auch immer), der andere LDR wird per ADC überwacht. Dabei gehe ich davon aus das bei Temperaturveränderungen und Alterung sich die beiden LDRs ähnlich verhalten. Im AVR wird hinterlegt ob der Widerstand linear oder "logarithmisch" (falls man das bei Potis überhaupt so nennen kann, eher linear mit 3 Stufen) verlaufen soll. Verinfacht gesagt wenn ich einen Linearen Widerstand bei 50% möchte, wird die LED so geregelt, dass am 10bit ADC 512 (2,5V) gemessen werden. Im EEPROM werden die PWM Werte gespeichert sein, um dann später schneller den gewünschten Widerstand zu erreichen und nur noch feineinstellen zu müssen. Ich habe mir das so vorgestellt das es einen "Setup" Modus gibt, bei dem die PWM Werte ermittelt und ins EEPROM geschrieben werden. Die Schaltung soll dann in beliebigen Röhrenverstärkern die Potentiometer austauschen können, ohne die Röhrenschaltung anpassen zu müssen. Das ist so mal die ganz, ganz kurze Zusammenfassung. Gruß, Sammy
Der Tiny 85 hat doch 2 8-bit Timer. Warum addierst du die beiden PWM Signale nicht mit einem Widerstandsnetzwerk und teilst die Timer in Low und High Byte (oder was auch immer nötig ist, etwa 6+6bit) auf? Dann kann jeder mit der maximalen Frequenz laufen.
Peter Schranz schrieb: > Der Tiny 85 hat doch 2 8-bit Timer. Warum addierst du die beiden PWM > Signale nicht mit einem Widerstandsnetzwerk und teilst die Timer in Low > und High Byte (oder was auch immer nötig ist, etwa 6+6bit) auf? Dann > kann jeder mit der maximalen Frequenz laufen. Das würde sicher gehen. Allerdings habe ich bei meiner Schaltung dafür nicht mehr genug Pins frei. Notfalls nehme ich einfach einen größeren Tiny / kleinen Atmega der direkt einen 16bit Timer hat. Allerdings würde dadurch die Platine etwas größer werden, was ich versuchen wollte zu vermeiden. Aber vielleicht ist das wirklich das einfachste einen Attiny84 zu nehmen und den mit 20Mhz und 16bit Timer nutzen.
Konrad S. schrieb: > Du hast das gesehen? > Beitrag "Re: Attiny85 mit 64Mhz PLL mehr als 8 bit Halb-Hardware PWM?" Hi Konrad, ja, danke, den Artikel habe ich gesehen. Danke!
Siebzehn mal Fuenfzehn schrieb: >>eine LED wird zwei gematchte LDRs beleuchten. > > Zum Glueck beleuchtet die LED beide gleich stark... sicherlich nicht 100%, aber ausreichend genau bekommt man das denke ich für meinen Anwendungsfall schon hin. Die meisten LEDs haben einen Abstrahlwinkel von 20 oder 30 Grad. Wenn ich die LDRs schräg von zwei Seiten oben an die LED anbringe (im gleichen Winkel), sollte das Licht sich schon annähernd gleichmäßig. Die ganzen Potentiometer haben ja auch keine genaue Kennlinie und acuh Fertigungstoleranzen. Wenn ich mir auch so manche Schaltpläne anschaue, von großen Firmen die ähnliches analog gesteuert gebaut haben, ist das bei denen auch kein hochpräzises regeln.
Der Tiny85 kann 10bit in Hardware bei 64Mhz, um die Ausgangsfrage zu beantworten.
Julian Baugatz schrieb: > Der Tiny85 kann 10bit in Hardware bei 64Mhz, um die Ausgangsfrage zu > beantworten. Das wäre ja super. Wo hast du die Info her? In meinem Datenblatt steht nur was von 8bit. 10bit ist der Prescaler vom Timer1 und der Adc ist auch 10bit. Gruß, Sammy
Sorry mein Fehler! Der attiny 2/4/861 kann 10Bit bei 64MHz, habe ich verwechselt.
Samuel St. schrieb: > ja, danke, den Artikel habe ich gesehen. Evtl. könntest du dir auch den Code anschauen. Da findest du eine 16-Bit PWM, die mit zwei 8-Bit-Timern realisiert wird.
Julian Baugatz schrieb: > Sorry mein Fehler! Der attiny 2/4/861 kann 10Bit bei 64MHz, habe ich > verwechselt. schade :(
Wenn Du den TOV- Interrupt benutzt, dann könntest Du die restlichen Bits durch ein und Ausschalten des Timers erreichen. Du hast dann(8Mhz/256) pro ISR 32 Befehle, in Assembler sollte das reichen.
Samuel St. schrieb: > Ich möchte halt eine bestehende Schaltung ohne weitere Änderung damit > ausstatten können. Es gibt zwar Designs, bei denen man das auch mit ICs > machen kann, in meinem Fall liegen bei Bass/Middle/Treble allerdings > höhere Spannungen an als die ICs vertragen können. Ich hab mir kürzlich nen neuen Receiver gekauft, seitdem bin ich Fan von elektronischer Regelung. Das Poti (Encoder) ist sowas von perfekt logarithmisch, dagegen kann ich den alten mit Motorpoti komplett in die Tonne kloppen. Und auch die neuen Boxen haben so einen guten Klang, da bleiben Bass/Treble in Mittelstellung. Ich würde auf keinen Fall die PWM-HF auf die LEDs geben, es könnte Dir sehr leicht die Tweeter killen. Wenn schon, dann würde ich die LEDs mit Konstantstrom aus 16Bit-DACs speisen, die kosten auch nicht mehr die Welt. Z.B. der AD5689 kostet bei Farnell 5,41€ ab 10 Stück und enthält 2 DACs mit SPI-Interface.
Peter Dannegger schrieb: > Samuel St. schrieb: >> Ich möchte halt eine bestehende Schaltung ohne weitere Änderung damit >> ausstatten können. Es gibt zwar Designs, bei denen man das auch mit ICs >> machen kann, in meinem Fall liegen bei Bass/Middle/Treble allerdings >> höhere Spannungen an als die ICs vertragen können. > > Ich hab mir kürzlich nen neuen Receiver gekauft, seitdem bin ich Fan von > elektronischer Regelung. > Das Poti (Encoder) ist sowas von perfekt logarithmisch, dagegen kann ich > den alten mit Motorpoti komplett in die Tonne kloppen. > Und auch die neuen Boxen haben so einen guten Klang, da bleiben > Bass/Treble in Mittelstellung. > wenn ich eine hohe Auflösung zum kontrollieren der LED habe erhoffe ich mir die Kennlinien des simulierten Potis auch besser steuern zu können und z.B. einen wirklich logarithmischen Lautstärkepoti zu haben. Theoretisch müsste das ja gehen, das hängt denke ich eher vom LDR Typen ab. Da muss ich noch etwas rumexperimentieren welche sich am besten eignen. > Ich würde auf keinen Fall die PWM-HF auf die LEDs geben, es könnte Dir > sehr leicht die Tweeter killen. > Wenn schon, dann würde ich die LEDs mit Konstantstrom aus 16Bit-DACs > speisen, die kosten auch nicht mehr die Welt. > Z.B. der AD5689 kostet bei Farnell 5,41€ ab 10 Stück und enthält 2 DACs > mit SPI-Interface. Danke für den Tipp, ich gehe dem mal nach. Kennst du zufällig noch andere, günstigere Alternativen? Welche Features meinst du sollte der DAC haben / nicht haben? Gruß, Sammy
Hi, ein paar Überlegungen meinerseits: 1. ein Poti ist ein veränderbarer Spannungsteiler - also braucht man zwei LDRs, die gegensätzlich angesteuert werden und dem Eingang immer einen quasi konstanten Widerstand präsentieren. Und wie erreicht man einen 0 Ohm Wert? Aber vielleicht habe ich auch das Prinzip der Schaltung missverstanden. 2. 8-10kHz PWM reichen doch vollkommen aus? Ein gut dimensioniertes RC-Glied mit einem "großem" C, dessen Größe nur durch die angepeilte "Dreh"-Geschwindigkeit begrenzt ist und diese würde im Bereich von 100Hz bis 1kHz liegen. (Oder anders ausgedrückt - bei 100Hz kann ein anderer Wert in 1/100Sek erreicht werden!) - so hat man quasi Gleichspannung die man schnell verändern kann. Die Idee mit dem DAC ist auch nicht schlecht, man braucht aber Zusatzchip und Kleinkram. 3. Die Überwachung der LED ist meiner Meinung nach unnötig, es ist ja kein Präzisionsmessgerät. Die Alterung kann vernachlässigt werden, da die ja sehr langsam stattfindet und da sind die zu ersetzenden Potis viel schlimmer, was Toleranzen angeht. Bleibt nur die Temperaturabhängigkeit, aber ob das wirklich sooo schlimm ist kann man nur praktisch ermitteln. MfG, Andreas
Andreas schrieb: > Hi, > ein paar Überlegungen meinerseits: > > 1. ein Poti ist ein veränderbarer Spannungsteiler - also braucht man > zwei LDRs, die gegensätzlich angesteuert werden und dem Eingang immer > einen quasi konstanten Widerstand präsentieren. > Und wie erreicht man einen 0 Ohm Wert? Aber vielleicht habe ich auch das > Prinzip der Schaltung missverstanden. > korrekt. Ein Poti soll bei mir mit 4 LDRs / 2 LEDs nachgebildet werden. Eine LED beleuchtet jeweils möglichst gleichmäßig zwei gematchte LDRs. jeweils ein LDR pro LED hängt am ADC zur Überwachung des erreichten Widerstandes, der andere dann in der Schaltung. Das kann also klassich als Poti verwendet werden, oder als zwei unabhängige Widerstände. > 2. 8-10kHz PWM reichen doch vollkommen aus? Ein gut dimensioniertes > RC-Glied mit einem "großem" C, dessen Größe nur durch die angepeilte > "Dreh"-Geschwindigkeit begrenzt ist und diese würde im Bereich von 100Hz > bis 1kHz liegen. (Oder anders ausgedrückt - bei 100Hz kann ein anderer > Wert in 1/100Sek erreicht werden!) - so hat man quasi Gleichspannung die > man schnell verändern kann. Die Idee mit dem DAC ist auch nicht > schlecht, man braucht aber Zusatzchip und Kleinkram. die Idee mit dem DAC gefällt mir auch gut, allerdings sind die mit 16bit Auflösung doch recht teuer und ich wollte pro Poti versuchen unter 5 Eur zu bleiben. Heute habe ich noch mal eine Testschaltung aufgebaut,allerdings ganz einfach ohne Tiefpass. Einfach AVR - LED - Vorwiderstand - VCC. Ich werde als nächsten Schritt einen Tiefpass hinzufügen. Problematisch ist bei mir aktuell eher das einstellen großer Widerstandswerte, annähernd 0 Ohm ist gar kein Problem. Ohne Tiefpass ist die Schaltung sehr empfindlich was die PWM Frequenz angeht, bei hohen Frequenzen erreiche ich aktuell nur kleine Widerstandswerte, bei kleinen PWM Frequenzen springen die Widerstandswerte hin und her. Das ist aber ja eigentlich auch so zu erwarten. Ich habe bisher nicht so viel Erfahrung wie problematisch die PWM Frequenz für das Audiosignal ist. Nur daher war meine Überlegung eine hohe PWM Frequenz zu nehmen welches man nicht mehr hören kann. Sonst reichen sicher auch niedrige Frequenzen. > > 3. Die Überwachung der LED ist meiner Meinung nach unnötig, es ist ja > kein Präzisionsmessgerät. Die Alterung kann vernachlässigt werden, da > die ja sehr langsam stattfindet und da sind die zu ersetzenden Potis > viel schlimmer, was Toleranzen angeht. > Bleibt nur die Temperaturabhängigkeit, aber ob das wirklich sooo schlimm > ist kann man nur praktisch ermitteln. > > MfG, > Andreas Die Temperaturen ändern sich schon "stark" in einer Röhrenschaltung, die meiste Energie geht ja in die Röhrenheizung... Durch die Regelung habe ich mir erhofft den Widerstandsverlauf automatisch einstellen zu können: Den ADC mit dem LDR lasse ich über einen Spannungsteiler laufen. Anhand der Auswahl des Widerstandes am Spannungsteiler kann ich den Verlauf des Widerstandes steuern. D.h. wenn ich einen 50k Widerstand wähle wird der komplette Widerstandsverlauf anders ausfallen als z.B. bei 100k. Somit brauche ich dann nur die Kurve (linear, logarithmisch etc.) vorgeben, die der AVR simulieren soll. Wenn ich das nicht hätte müsste ich jeden LDR einzeln ausmessen und individuell die PWM Werte für die gewünschte Kurve/Werte ermitteln. Das möchte ich so weit wie möglich vermeiden durch ein sich selbst regelndes System. Somit erreiche ich auch immer ziemlich ähnliche Werte egal ob sich die Temperatur ändert oder die Bauteile altern oder oder oder... Das ganze soll zwar kein Präzisionsregelwerk werden, aber zumindest so grob erhoffe ich mir schon reproduzierbare ergebnisse in Unterschiedlichen Bedingungen. Gruß, Sammy
Hi >Ich habe bisher nicht so viel Erfahrung wie problematisch die PWM >Frequenz für das Audiosignal ist. Nur daher war meine Überlegung eine >hohe PWM Frequenz zu nehmen welches man nicht mehr hören kann. Sonst >reichen sicher auch niedrige Frequenzen. Fotowiderstände reagieren auf Beleuchtungsänderungen maximal im ms-Bereich. PWM-Frequenzen oberhalb des hörbaren Bereichs sind daher unnötig.
spess53 schrieb: > Hi > >>Ich habe bisher nicht so viel Erfahrung wie problematisch die PWM >>Frequenz für das Audiosignal ist. Nur daher war meine Überlegung eine >>hohe PWM Frequenz zu nehmen welches man nicht mehr hören kann. Sonst >>reichen sicher auch niedrige Frequenzen. > > Fotowiderstände reagieren auf Beleuchtungsänderungen maximal im > ms-Bereich. PWM-Frequenzen oberhalb des hörbaren Bereichs sind daher > unnötig. Ja, das stimmt. Ich weiß nur nicht wie das bei niedrigen Frequenzen mit den Audiosignalen und Störungen aussieht. Damit habe ich mich bisher kaum beschäftigen müssen.
Hi, also bei meinen Testreihen kann mit den LDRs (GL5549) sehr präzise Werte kleine Widerstände einstellen. Schwierig wird es größere gezielt zu erreichen. Ohne Filterung geht es mit einer "niedrigen" PWM Frequenz besser als mit einer hohen einen großen Bereich erreichen zu können. Ich muss unbedingt einen Tiefpass bauen, dummerweise habe ich nicht die passenden Bauteile mitbestellt... ahrg... (bin gerade in China und habe nicht meine normalen Bastelsachen hier) Mist!
So also zusammengefasst meine Erkenntnisse der letzten Experimente: - große Widerstandswerte sind schwierig zu erreichen, geschätzt 80% der PWM Zeit reicht gerade für den Bereich 0-20kOhm, die restlichen 20% decken den kompletten größeren Bereich ab. Daher habe ich den Vorwiderstand der LED deutlich erhöht, damit die LED insgesamt dunkler ist. - Beste Ergebnisse hatte ich mit einer Timerfrequenz von 1Mhz, dabei ist das blinken/flackern allerdings sehr sehr deutlich wahrnehmbar. Weit darunter darf die Frequenz auch nicht sinken, da der LDR dann schneller reagiert als die LED blinkt und die Widerstandswerte massiv springen. Als Vorwiderstand bin ich nun im niedrigen einstelligen kOhm Bereich, sonst ist die orangene LED einfach zu hell. - problematisch an der niedrigen Frequenz ist allerdings das geblinke was bei hohen Widerstandswerten zu Schwankungen von ca. 10% des Wertes führt. Hier wäre wirklich die Lösung per DAC einfacher, allerdings auch sehr viel teurer, wenn ich nicht noch ein günstiges IC finde. Ansonsten bleibt mir wohl nur das ganze noch etwas versuchen zu filtern und weiter mit PWM Frequenz und Vorwiderstand zu experimentieren. Wie kritisch denkt ihr sind die Störgeräusche durch die PWM Frequenz im Audiosignal? Muss ich da viel PWM Filteraufwand für betreiben oder könnte das auch komplett ohne Filterung funktionieren? Bastlergruß, Samuel
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.