0-5V mit Atmel AVR regeln

+A -A
Autor
Beitrag
Lotion
Inventar
#1 erstellt: 06. Jul 2007, 23: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: 07. Jul 2007, 01: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, 20: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, 21: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, 22: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, 14: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, 14: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, 14:49 bearbeitet]
Sebastian_K
Stammgast
#8 erstellt: 08. Jul 2007, 14: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, 17:00

habe zwar von PWM nicht viel Ahnung, aber ich glaube die DAC-Lösung ist besser geeignet

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.


Das Flackern, auch über 100 Hz, ist nicht so gut!

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.

Gibt es dazu Schaltbilder?

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, 09:15

Stampede schrieb:

habe zwar von PWM nicht viel Ahnung, aber ich glaube die DAC-Lösung ist besser geeignet

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.


Das Flackern, auch über 100 Hz, ist nicht so gut!

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.

Gibt es dazu Schaltbilder?

I/O -> Widerstand -> LED -> Masse oder Transistor in Emitterschaltung. Aber beide Varianten bestehen nur aus 3 bzw. 4 Bauteilen, das sollte doch machbar sein :D


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, 09:15 bearbeitet]
Stampede
Inventar
#11 erstellt: 09. Jul 2007, 11: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, 12: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, 13:19

tede schrieb:
wenn das Flackern stört, kann das PWM Signal mit einem RC glied integriert werden.


Nee, das würde wieder den Anspruch verletzen:
Lotion schrieb:
Ich möchte eine LED sehr exakt in ihrer Helligkeit steuern, d.h. ca. 7Bit (128) Schritte.


Daher ist die Lösung mit der ungefilterten PWM schon richtig, es sei denn, man nimmt Regelungskreise.


tede schrieb:
Für präzise Tipps währe es sehr von Vorteil, wenn alle wüssten was die LED genau machen sollte.


Würde einmal eine Messvorrichtung vermuten...

Welche Frequenzen sind denn hier akzeptabel?!
Lotion
Inventar
#14 erstellt: 09. Jul 2007, 13:49



tede schrieb:
Für präzise Tipps währe es sehr von Vorteil, wenn alle wüssten was die LED genau machen sollte.


Würde einmal eine Messvorrichtung vermuten...

Welche Frequenzen sind denn hier akzeptabel?!


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, 16:22

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.


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, 16:31

audiomanic schrieb:

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.


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


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, 17: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
Suche:
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 Widget schließen

Aktuelle Aktion

Partner Widget schließen

  • beyerdynamic Logo
  • DALI Logo
  • SAMSUNG Logo
  • TCL Logo

Forumsstatistik Widget schließen

  • Registrierte Mitglieder927.132 ( Heute: 1 )
  • Neuestes MitgliedTongKyr
  • Gesamtzahl an Themen1.554.852
  • Gesamtzahl an Beiträgen21.623.480

Hersteller in diesem Thread Widget schließen