Forum: Mikrocontroller und Digitale Elektronik ATmega32 analoger Ausgang


von Justus P. (platinenpro)


Lesenswert?

Hey Leute,
Ich möchte mit dem ATmega32 9 LEDs von ganz gedimmt bis super hell 
leuchten lassen kann ich das mit dem Atmega direkt oder muss über dn 
ATmega ein Impuls ausgeben der dann einem andern das Signal gibt los zu 
dimmen.
1. Geht das mit dem ATMega direkt?
Wenn ja: Wie?
Wenn nein: Welchen anderen Weg könnte ich nutzen?
Danke
Justus

: Verschoben durch Moderator
von Schüler12 (Gast)


Lesenswert?

Software-PWM, aber besser mit zusätzlichem Treiber ULN2008 oder ULN2009.

von Michael H. (michael_h45)


Lesenswert?


von Frank K. (fchk)


Lesenswert?

Das ist der geeignete Baustein für Dich.

http://www.ti.com/product/tlc5940

fchk

von Justus P. (platinenpro)


Lesenswert?

Schön und gut. Das sind jetzt die Bausteine die an den Mikrocontroller 
Ausgang ran kommen aber wie funkt das jetzt im Mikrocontroller. Ich bin 
da ein bisschen überfragt mit der Init und so.Wäre es möglich das ihr 
mir vielleicht ein Codebeispiel geben könntet in dem der 
Mirkrocontroller über den Ausgang genau das ausgibr was der Baustein den 
ich dan daran hänge lesen kann. DANKE ich weiß ich bin schwierig

von anigav (Gast)


Lesenswert?

avr tutorial lesen ... und über PWM schlau machen

von Michael H. (michael_h45)


Lesenswert?

Justus P. schrieb:
> Wäre es möglich das ihr
> mir vielleicht ein Codebeispiel geben könntet
soll dich einer anrufen und es dir vorlesen?
Soft-PWM

von amateur (Gast)


Lesenswert?

Möglicherweise interpretiere ich die hässlichen schwarzen Flecken auf 
dem schönen, weißen Papier falsch, aber bei mir steht laut und deutlich:

– Four PWM Channels

Keine Ahnung ob das auch wüglich stimmt;-)

von Electronics'nStuff (Gast)


Lesenswert?

Was sehr wichtig ist:

Alle LEDs miteinander dimmen oder jede einzeln?

Falls jede einzeln..

Frank K. schrieb:
> Das ist der geeignete Baustein für Dich.
>
> http://www.ti.com/product/tlc5940

Das ist wirklich der geeignete Baustein für dich. Super erklärt, mit 
Schaltung und Programm in C:

http://flipmu.com/files/2011/04/Demystifying-the-TLC5940.pdf

Der benutzt einen ATMEGA328, also sind die Register etc. schon sehr 
ähnlich.

Falls du allerdings nur alle LEDs miteinander dimmen willst:

amateur schrieb:
> – Four PWM Channels

An einen PWM Channel hängen und mit MOSFET oder KSQ verbinden.


Aber trotzdem musst du dich einlesen.
Ach ja.. es gibt bestimmt 1245040809 Threads im Internet, in denen genau 
DIESES THEMA behandelt wird. Also lies einfach, denn

Michael H. schrieb:
> soll dich einer anrufen und es dir vorlesen?

das ist selbstverständlich keine Option.

von Justus P. (platinenpro)


Lesenswert?

Okay, okay ich habs verstanden also ich hab mir jetzt die Seite mit der 
Beschreibung zur Soft-PWM durchgelesen und bis auf das "kanälige" alles 
verstanden ich musste den Code ein bisschen änder weil ich den Timer 0 
nehmen wollte und Ausgang B3 aber das hab ich jetzt alleine geschaft. 
Trotzdem jetzt noch die Frage:"Was bezweckt es das ich 8 PWM Kanäle habe 
ich brauch doch nur einen der schneller oder langsamer zwischen High und 
Low hin und her schaltet ausserdem noch eine Frage:" Das programm 
welches auf der Seite steht bezweckt nur das die Lampe heller wird oder 
wird sie danach noch einmal dunkler?Danke  das ihr mit mir so geduldig 
sein

Justus

von amateur (Gast)


Lesenswert?

Mein Gefühl sagt mir, dass Du mal dringend etwas über die Funktionsweise 
der PWM lesen solltest.
Natürlich gibt’s da 'ne ganze Tüte voll Registern die Bedient werden 
wollen, aber wenn Du weißt, worum es geht ist das Meiste 
selbsterklärend.
Eine ganz einfache Anfrage im Netz (z.B. Google, Bing usw.) wird Dich 
förmlich mit Informationen erschlagen.
Der Informationsgehalt einer Beschreibung zur Soft-PWM, bezüglich der 
Funktionsweise der PWM, tendiert gegen Null.

von Justus P. (platinenpro)


Lesenswert?

Danke für deinen hilfreichen Beitrag. Aber du hast Recht, man wird mit 
Erklärungen erschlagen und genau das ist das Problem.

von Justus P. (platinenpro)


Lesenswert?

Ich hab jetzt gerade noch mal bei Google PWM eingegeben und auf 
Wikipedia und der Seite von mirkrocontroller.net nach "kanäle" gesucht 
und nichts gefunden es wir immer gesagt es gibt so und soviele Kanäle 
oder wozu sie gut sind steht nirgendwo.

Sorry

von Michael H. (michael_h45)


Lesenswert?

http://www.duden.de
also wenn du die bedeutung von kanal hier nicht aus dem kontext ableiten 
kannst, solltest du vllt ganz woanders als bei einem elektronischen 
problem ansetzen.

von Justus P. (platinenpro)


Lesenswert?

Erstens Danke für den Tipp aber leider muss ich dir sagen das ich 
bereits weis was Kanäle sind nur nicht wie sie im Bezug auf den PWM 
Ausgang verwendet werden da ich doch nur einen PWM-Ausgang brache der 
schneller oder langsamer zwischen von High zu Low hin und her schaltet. 
Aber ich glaub ich wieder hol mich. Naja es erfordert ja schon ein 
bisschen Gedächnis die Beiträge vorher sich durch zulesen.

Okay jetzt nicht mehr böse sein und antworten(mit Antworten die mir 
weiter helfen!!!)

Danke

von Christian B. (luckyfu)


Lesenswert?

ok, vergiss die Kanäle!

PWM meint: Puls Weiten Modulation.
nicht mehr, nicht weniger, allenfalls noch englisch.

Es ist folgendes: eine PWM ist ein Signal, was eine feste Grundfrequenz 
hat, Am Anfang dieser Grundfrequenz wird, (ich definiere das jetzt so) 
ein Signal von low auf high geändert. Nach einer einstellbaren Zeit (die 
kleiner sein muss als die Periodendauer (Länge) der Grundfrequenz) 
ändert sich das Signal von high auf low bis die Periode zu ende ist, 
danach beginnt der Zauber von vorn.

Indem du nun den Zeitpunkt, wann das Signal von high auf low springt 
änderst änderst du das Tastverhältnis.

Ein PWM Signal ist nichts weiter als ein rechteckiges Puls Signal 
welches Periodisch wiederholt wird.

Die Kanäle kommen jetzt erst ins Spiel, es ist dir überlassen, ob du 
einen Pin damit beaufschlagst oder alle möglichen. (Von den Hardware PWM 
Ausgängen mal abgesehen, die sind nat. fest vorgegeben)

von Horst (Gast)


Lesenswert?

Jeder Timer kann mehrere Hardware-PWM Ausgänge bereit stellen.
Die nennt man dann einfach Kanäle (Englisch: channel).
Jeder Hardware-PWM Kanal ist einem festen Pin zugeordnet.
Alle Kanäle eines Timers haben die selbe Grundfrequenz, können aber 
unterschiedliche Tastverhältnisse haben.
Ungenutze Kanäle können stillgelegt werden und somit ist der zugehörige 
Pin frei für andere Sachen.

Software PWM nutzt auch einen Timer als Zeitbasis, aber man muss sich 
eben um alles selber kümmern. Da wackelt man selber an dem Pin rum und 
erzeugt die Pulse.
Hat Vor- (z.B. zusätzliche PWM Kanäle) und Nachteile (evtl. mehr 
Auslastung für den Controller).

Mehr ist das nicht.
Und wenn du alle LEDs zusammen dimmen willst, brauchst du eben nur einen 
dieser Kanäle.

von Karl H. (kbuchegg)


Lesenswert?

Justus P. schrieb:
> Erstens Danke für den Tipp aber leider muss ich dir sagen das ich
> bereits weis was Kanäle sind nur nicht wie sie im Bezug auf den PWM
> Ausgang verwendet werden da ich doch nur einen PWM-Ausgang brache

sag das doch gleich, dass du nur EINEN PWM Ausgang brauchst.

Das kann dein Mega aus dem Stand
FAQ: Timer


Für 9 LED brauchst du natürlich einen Treiber, weil der Mega den Strom 
für alle 9 LED nicht hinkriegt. Aber das hat ja erst mal nichts mit der 
PWM zu tun.

von Justus P. (platinenpro)


Lesenswert?

Danke jetzt hab ich es verstanden und die LED werden gesteuert DANKE

von Nasowas (Gast)


Lesenswert?

und nun in Anfängerdeutsch ohne Fachbegriffe:
- du hast einen Timer im Chip
- das Teil wird angeschaltet
- das Dingens braucht Startwerte
danach läuft der ohne das du im Programm irgendetwas machen musst, aber 
bei bedarf kanst.

Beispiel:
Hallo Timer, zähle von 0 bis 255, wenn du 100 erreicht hast schalte den 
Ausgangspin aus, bei 255 wieder an.
Ich willst jetzt heller allso zähle mal bis 170.
Nun dunkler zähle bis 50.

Sehr gute Literatur dazu bietet dir das Datenblatt des µC, ich kann nur 
empfehlen das Kapitel Timer auszudrucken und darauf Rumzumahlen, so 
erkennt mann leicht welche Register gesetzt werden müssen.

Zum Effekt des ganzen:
Das schnelle an und ausschalten des Pins kann das Auge nicht erkennen, 
es sieht einfach nur eine bestimmte Helligkeit.

Im Datenblatt erkennst du dann folgendes:
zähle von 0 = botton
Zähle bis 255= top
Zähle bis 100= OCR0A
dazu den passende Modus gewählt und das Teil läuft.

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
Noch kein Account? Hier anmelden.