HIFI-FORUM » Do it yourself » Elektronik » 0-5V mit Atmel AVR regeln | |
|
0-5V mit Atmel AVR regeln+A -A |
||||||
Autor |
| |||||
Lotion
Inventar |
#1 erstellt: 06. Jul 2007, 21:46 | |||||
Hi, ich möchte eine Spannung zwischen 0 und ca. 5V mit ca. 128 Zwischenstufen mit einem Atmel AVR regeln können. Wie stellt man das am geschicktesten an? Gruß Lotion |
||||||
Stampede
Inventar |
#2 erstellt: 06. Jul 2007, 23:30 | |||||
Hallo, ich denke, du meinst "stellen" und nicht "regeln". Erste Möglichkeit wäre ein externer DAC, wie zB DAC08. Aber da gibts viele verschiedene. Zweite Möglichkeit wäre eine Widerstandsleiter, bei der die R's von einem IO zum anderen geführt werden. Über den "LSB" macht man den Abgriff, falls nötig muss noch ein Rail-to-Rail OVP hinten dran. Eine weitere Variante, die ich von den PIC's kenne, ist, eine einstellbare interne Spannungsquelle des µC zu verwenden, die dann nach aussen geführt wird. Ich denke da beispielsweise an die Referenz des Komparator. Aber ob das bei einem Atmel geht, weiß ich leider nicht. Grüße Stefan |
||||||
|
||||||
Sebastian_K
Stammgast |
#3 erstellt: 07. Jul 2007, 18:58 | |||||
Das hängt davon an, was für ansprüche du an dein Ausgangssignal stellst. Frequenz, Genauigkeit usw. Externer fertiger DAC wurde ja schon genannt. Das zweite was Stampede genannt hat nennt sich R-2R netzwerk. Unter diesem Namen findet man auch was. Braucht aber bei 128 Stufen 7 Ausgänge. Das man eine Interne Spannungsquelle bei AVRs rausführen könnte hab ich noch nicht gehört. Hab noch garnicht gehört, dass AVRs sowas überhaupt hätten. Meines Wissens nach kann man nur eine Externe Spannungsquelle als Referenz anschließen, aber das hilft uns hier ja nicht weiter. Was aber auch noch sehr einfach geht ist Puls-Weiten-Modulation (PWM). Dahinter einen Operationsverstärker als Tiefpass beschalten und fertig. Geht bei AVRs recht einfach, weil die Hardware-PWM haben. Also sag mal, was für Anforderungen du an dein Signal hast, dann kann man auch konkreter helfen. Sebastian |
||||||
Lotion
Inventar |
#4 erstellt: 07. Jul 2007, 19:58 | |||||
Ich möchte eine LED sehr exakt in ihrer Helligkeit steuern, d.h. ca. 7Bit (128) Schritte. Von ganz dunkel bis volle Helligkeit. Ach so, und das ganze fernbedienbar, daher der ATMEL! Gruß Lotion |
||||||
Sebastian_K
Stammgast |
#5 erstellt: 07. Jul 2007, 20:19 | |||||
Da musst du zwangsweise mit Pulsweitenmodulation arbeiten. Eine LED reagiert nicht linear auf Spannungs- (eiegentlich Strom-)änderungen. Schon garnicht in ihrer Helligkeit. Du kannst ja einfach mal eine mit für 5V passendem Vorwiderstand an ein Labornetzteil anschließen und die Spannung langsam hoch/runter drehen. Wenn die LED übrig ist auch gerne mal deutlich über 5 Volt. Was genau PWM ist weißt du? Wie du's den AVR machen lässt steht jedenfalls ausführlich im Datenblatt. Als PWM-Frequenz sollte alles ab etwa 50Hz ausreichen. Mit 100 bist du auf jeden Fall auf der sicheren Seite. Wenn du deutlich unter 50Hz gehst fängt die LED an zu flackern. Das ist unschön, stört sonst aber auch nicht. Der Vorwiderstand berechnet sich wie für normalen 5V-Betrieb. Und achte drauf, den Ausgang des AVR nicht zu überlasten wenn du z.B. mehrere LEDs schaltest. Übrigens: Wenn dir die PWM-lösung nicht linear erscheint (keine Ahnung, ob das wirklich linear ist) kannst du ja in Software eine Korrektur einfügen. Das sollte auch kein allzu großes Problem sein. Sebastian |
||||||
Lotion
Inventar |
#6 erstellt: 08. Jul 2007, 12:40 | |||||
Hi, habe zwar von PWM nicht viel Ahnung, aber ich glaube die DAC-Lösung ist besser geeignet. Das Flackern, auch über 100 Hz, ist nicht so gut! Gibt es dazu Schaltbilder? Gruß Lotion |
||||||
audiomanic
Ist häufiger hier |
#7 erstellt: 08. Jul 2007, 12:48 | |||||
Hi Lotion, um die Helligkeit von LEDs in Stufen zu regeln würde ich auch zu PWM greifen (reduziert den zusätzlichen Bauteileaufwand) oder, falls es die Anwendung erfordert, den Strom in Stufen regeln (nicht die Spannung). Wie das geht ist im Datenblatt Datasheet LTC1453 im Abschnitt "Digitally Programmable Current Source" beschrieben. Funktioniert bei mir einwandfrei. Der Strom lässt sich in einem definierten Bereich von 0-20mA über einen Atmega µC in 4096 Steps steuen. Für deinen Zweck würde ein 8-Bit DA-Wandler ausreichen. Arne [Beitrag von audiomanic am 08. Jul 2007, 12:49 bearbeitet] |
||||||
Sebastian_K
Stammgast |
#8 erstellt: 08. Jul 2007, 12:55 | |||||
Über 100 Hz flackert da garnichts mehr. Und mit einem DAC wird deine LED sicher nicht linear heller/dunkler. Außerdem wird sie je nach Spannung ihre Farbe ändern. Probier bitte mal das mit dem Labornetzteil wenn du eines hast. Dann kannst du das gut nachvollziehen. Bei LEDs kommst du jedenfalls um PWM nicht herum. Außerdem ist es die weitaus einfachste möglichkeit. Bei PWM über den AVR kannst du die LED mit Vorwiderstand (normalerweise) direkt am AVR betreiben. Verwendest du dagegen einen externen DAC wirst du wahrscheinlich noch einen Operationsverstärker dahinter brauchen, weil der DAC nicht so stark belastbar ist. PWM heist Pulsweitenmodulation. Dabei schaltet man ständig mit einer relativ hohen Frequenz an und aus. Über das verhältnis von An zu Aus (Tastverhältnis) ergeben sich verschiedene Effektivspannungen. Je länger die "An-Zeit" ist, desto höher wird deine Effektivspannung. Schaltet man einen Tiefpassfilter hinter das PWM-Signal, so kann man diese Spannungen auch tatsächlich als analoge Spannung abgreifen. Die AVRs (zumindest einige, weiß nicht ob alle) können PWM in hardware. Du musst nur beim Initialisieren die PWM mit-initialisieren. Dann läuft sie erstmal. Willst du das Tastverhältnis ändern musst du auch nur einen Wert in einem Register ändern. Selbst wenn man PWM aus irgendeinem Grund in Software lösen muss ist das relativ simpel. Man braucht eigentlich nur einen Timer. Sebastian |
||||||
Stampede
Inventar |
#9 erstellt: 08. Jul 2007, 15:00 | |||||
Wenn du dich mit PWM nicht auskennst, wirst du kaum bewerten können, was die bessere Lösung ist. Denn die bessere Lösung ist definitv die PWM, aber das haben meine Vorredner schon festegestellt.
Wen soll das stören? Ein Mensch sieht das definitiv nicht. Und wenn's dich glücklich macht, kannst du die PWM ja auch auf 10kHz einstellen.
I/O -> Widerstand -> LED -> Masse oder Transistor in Emitterschaltung. Aber beide Varianten bestehen nur aus 3 bzw. 4 Bauteilen, das sollte doch machbar sein |
||||||
Lotion
Inventar |
#10 erstellt: 09. Jul 2007, 07:15 | |||||
Nun, gerade weil ich mich mit PWM nicht auskenne, dachte ich einen DAC dranzuhängen wäre für mich die einfachste Lösung. Da hier aber alle die PWM-Methode empfehlen, wäre ich für einen Link oder ein Schaltbild dankbar. Das evtl. Flackern wird kein Mensch sehen, könnte die beabsichtigte Funktion jedoch evtl. beeinflussen. Wenn dies allerdings auch mit ca. 1kHz möglich ist, dürfte es kein Problem sein. Vermutlich wäre es schon am sinnvollsten die Stromstärke anstatt die Spannung zu verändern, aber das geht wohl nur mit DAC, oder? Wollte das mit einem AVR Mega 48 und Bascom realisieren. Habe aber bisher damit noch nichts gemacht sondern nur mit C-Control. AUßerdem bin ich kein Elektroniker sondern Kaufmann und von daher die - für manche - trivialen Fragen! Gruß Lotion [Beitrag von Lotion am 09. Jul 2007, 07:15 bearbeitet] |
||||||
Stampede
Inventar |
#11 erstellt: 09. Jul 2007, 09:57 | |||||
Hallo, der Atmel hat ein PWM Modul, was im Kapitel 15 des Datenblatts erklärt wird. Somit sollte die PWM kein Problem sein. Wenn ich das im Datenblatt auf die Schnelle erkannt habe, sind PIN PD5 und PD6 (OC0B und OC0A) die entsprechenden Anschlüsse. Die Pins schaffen maximal 40mA, ich würde aber nicht mehr als 30mA zulassen. Für die meisten LED's sind aber schon 20mA oder weniger ausreichend. Da die Helligkeit einer LED nicht linear ist (eher logarithmisch, aber der genaue Zusammenhang ist mir nicht bekannt, würde ich mir eine logarithmische Lookuptable oder eine Logarithmusfunktion in die Software einbauen, die das entsprechende Register für den Dutycyle einstellt. Kurz zur PWM: http://de.wikipedia.org/wiki/Pwm Man stellt also eine Grundfrequenz ein, bei der der Dutycycle (Tastverhältnis) festliegt, viewiel Zeit der Periode das Signal high ist. Schaltplan: Die linke Möglichkeit ergibt sich beim direkten Anschließen an den IO des Atmel. Der Widerstand für den Strom durch die LED berechnet sich zu: R = (Vdd - Uled) / Iled mit Uled = Flussspannung der LED, Iled gewünschter Maximalstrom. Das recht Schaltbild würde sich anbieten, wenn mehrere LEDs mit hohem Strom angestuert werden müssen. Der Widerstand R1 berechnet sich zu: R1 = R = (Vdd - Uled - Ucesat) / Iled mit Ucesat = Sättungsspannung des Transistors über der Kollector-Emitterstrecke. Der Wert beträgt ungefähr 0.2V. Für R3 würde ich ca. 2,2k Ohm verwenden (empirischer Wert) Für einen genaueren Wert, der aber keine Vorteile bringt, würde ich folgende formel verwenden R3 = (Uioh - 0.7V) / (( Iled/B) * 10) Uioh = Highlevel des IO Pins B = Stromverstärkung des Transistors, ca. 200 10 um den Transistor eingangsseitig um den Fator 10 zu übersteuern. Gruß Stampede |
||||||
tede
Inventar |
#12 erstellt: 09. Jul 2007, 10:55 | |||||
Hallo, wenn das Flackern stört, kann das PWM Signal mit einem RC glied integriert werden. Dann ist aber zu beachten wie schnell die Helligkeitssteuerung reagieren soll. Eine subjektiv oder objektiv lineare Helligkeitseinstellung kann leicht per Software erreicht werden.(wie von Stampede beschrieben) Für präzise Tipps währe es sehr von Vorteil, wenn alle wüssten was die LED genau machen sollte. Thomas |
||||||
anymouse
Inventar |
#13 erstellt: 09. Jul 2007, 11:19 | |||||
Nee, das würde wieder den Anspruch verletzen:
Daher ist die Lösung mit der ungefilterten PWM schon richtig, es sei denn, man nimmt Regelungskreise.
Würde einmal eine Messvorrichtung vermuten... Welche Frequenzen sind denn hier akzeptabel?! |
||||||
Lotion
Inventar |
#14 erstellt: 09. Jul 2007, 11:49 | |||||
Fast. Damit soll ein Optokoppler angesteuert werden, der sehr exakte Widerstandswerte liefern soll. Von daher ziehe ich auch meine Aussage über 7Bit zurück und erhöhe auf eher 12-14 Bit. Der Optokoppler liefert Werte zw. 60 und 5M Ohm und kann mit max 2,5V und 25 mA (IF=20mA) betrieben werden. Gruß Lotion |
||||||
audiomanic
Ist häufiger hier |
#15 erstellt: 09. Jul 2007, 14:22 | |||||
Soll es ggf. eine Lautstärkeregelung mit NSL-32SR2S Optokopplern werden? PWM kannst Du dann vergessen, weil sich das PWM dann auch im Signal bemerkbar machen würde. Der Widerstandsverlauf der LDR's ist alles andere als linear, wie Du schon selbst bemerkt hast, reichen die 7Bit Auflösung nicht aus. Um sich die für dein Vorhaben notwendigen Grundlagen anzueignen wäre hilfreich: http://www.mikrocontroller.net/ Arne |
||||||
Lotion
Inventar |
#16 erstellt: 09. Jul 2007, 14:31 | |||||
Hi Arne, 10 Punkte! Genau der/das isses ! Hast Du damit schon etwas in Richtung Lichtgeschwindigkeitsabschwächer gebastelt? Würde mich sehr interessieren. s. PM. Gruß Lotion |
||||||
Sebastian_K
Stammgast |
#17 erstellt: 09. Jul 2007, 15:11 | |||||
Hab jetzt nicht näher drüber nachgedacht (-->kann fehlerhaft sein), aber die Lautstärkeregelung könnte doch funkionieren. Wenn er die PWM-Frequenz irgendwo bei 100kHz hinbekommt und dann nach dem Optokoppler im Audiosignal einen Tiefpass mit... vielleicht 30kHz einbaut. Über den Sinn davon kann man natürlich streiten. Denn es gibt doch genug ausgezeichnete elektronische Potis. Wieso nicht so eins verwenden? Sebastian |
||||||
|
|
Das könnte Dich auch interessieren: |
Schaltbild für 5V-Netzteil gesucht Lotion am 22.05.2007 – Letzte Antwort am 22.05.2007 – 9 Beiträge |
Lüfter für Schrank 12V/5V Mp3Guy am 19.07.2008 – Letzte Antwort am 18.12.2010 – 16 Beiträge |
Wer kennt sich mit Atmel STK500 und Bascom aus Lotion am 02.11.2007 – Letzte Antwort am 02.07.2008 – 6 Beiträge |
Suche Spannungsregler für 5V ++Stefan++ am 23.03.2006 – Letzte Antwort am 23.03.2006 – 8 Beiträge |
Mischpult/ potis rauschen+regeln pegel nicht auf 0 Spike1991 am 04.12.2009 – Letzte Antwort am 09.12.2009 – 8 Beiträge |
5V an Klinke dubwoofer am 11.04.2011 – Letzte Antwort am 11.04.2011 – 8 Beiträge |
Über Chinchsignal Lautstärke regeln. Hama90 am 02.04.2007 – Letzte Antwort am 03.04.2007 – 3 Beiträge |
Soundkarte Line-out regeln fsultra am 10.02.2008 – Letzte Antwort am 12.02.2008 – 2 Beiträge |
100V-Lautsprecher digital regeln BirdyB am 31.01.2017 – Letzte Antwort am 31.01.2017 – 6 Beiträge |
Spannungsgesteuerte Stromquelle (LED Treiber) Stigmen am 05.06.2012 – Letzte Antwort am 10.06.2012 – 12 Beiträge |
Foren Archiv
2007
Anzeige
Produkte in diesem Thread
Aktuelle Aktion
Top 10 Threads der letzten 7 Tage
- Hotel Modus deaktivieren
- "diese anwendung wird jetzt neu gestartet um mehr speicherplatz verfügbar zu machen"
- Von HD+ zurück zu Standard-TV
- Remotekabel anschließen, aber wie und wo?
- Hisense verbindet sich nicht mehr mit dem WLAN
- Audiodeskription ausschalten (in ZDF App) 803er
- Umschalten von TV auf Radio
- Satellitenschüssel was und wie einstellen am TV
- Pro 7 und Sat 1 auf einmal weg.
- Markierung an Lautsprecherkabel - welche Norm?
Top 10 Threads der letzten 50 Tage
- Hotel Modus deaktivieren
- "diese anwendung wird jetzt neu gestartet um mehr speicherplatz verfügbar zu machen"
- Von HD+ zurück zu Standard-TV
- Remotekabel anschließen, aber wie und wo?
- Hisense verbindet sich nicht mehr mit dem WLAN
- Audiodeskription ausschalten (in ZDF App) 803er
- Umschalten von TV auf Radio
- Satellitenschüssel was und wie einstellen am TV
- Pro 7 und Sat 1 auf einmal weg.
- Markierung an Lautsprecherkabel - welche Norm?
Top 10 Suchanfragen
Forumsstatistik
- Registrierte Mitglieder927.961 ( Heute: 10 )
- Neuestes MitgliedPaat24
- Gesamtzahl an Themen1.557.029
- Gesamtzahl an Beiträgen21.671.020