Hallo! Ich verwende den ATtiny84A und will folgendes damit machen: Ich benötige 2 PWM Ausgänge, um jeweils 2 LEDs in Serie zu Dimmen (also insgesamt 4 LEDs). Diese LEDs sollte gleich hell leuchten, es sollten also beide PWM-Signale den gleichen DutyCycle ausweisen. Das Datenblatt des ATtiny84A: http://www.atmel.com/Images/doc8183.pdf Darin steht folgendes: One 8-bit and One 16-bit Timer/Counter with Two PWM Channels, Each Wie kann ich das verstehen? heißt das, ich habe z.B. einen 8Bit Timer/Counter, den ich auf 2 verschiedene PWM-Kanäle anwenden kann? Können diese beiden dann GLEICHZEITIG angesteuert werden? Ich benötige nämlich noch einen weiteren Timer, um das Gerät automatisch nach 2 Stunden auszuschalten, dann würde ich dafür den 16Bit Timer verwenden... Vielen Dank für die Hilfe, lG
@ Daniel F. (dani1632) >Darin steht folgendes: One 8-bit and One 16-bit Timer/Counter with Two >PWM Channels, Each >Wie kann ich das verstehen? heißt das, ich habe z.B. einen 8Bit >Timer/Counter, den ich auf 2 verschiedene PWM-Kanäle anwenden kann? Ja. >Können diese beiden dann GLEICHZEITIG angesteuert werden? Sicher. >Ich benötige nämlich noch einen weiteren Timer, um das Gerät automatisch >nach 2 Stunden auszuschalten, dann würde ich dafür den 16Bit Timer >verwenden... Kann man machen.
Hi >Wie kann ich das verstehen? heißt das, ich habe z.B. einen 8Bit >Timer/Counter, den ich auf 2 verschiedene PWM-Kanäle anwenden kann? Ja. >Können diese beiden dann GLEICHZEITIG angesteuert werden? Was verstehst du unter 'gleichzeitig'? MfG Spess
Daniel F. schrieb: > Ich benötige 2 PWM Ausgänge, um jeweils 2 LEDs in Serie zu Dimmen (also > insgesamt 4 LEDs). Diese LEDs sollte gleich hell leuchten, es sollten > also beide PWM-Signale den gleichen DutyCycle ausweisen. Wozu dann 2 PWM-Einheiten des Tiny? > Darin steht folgendes: One 8-bit and One 16-bit Timer/Counter with Two > PWM Channels, Each > > Wie kann ich das verstehen? Das du insgesamt 4 voneinander unabhängige PWM-EInheiten zur Verfügung hast. 2 Stück mit maximal einer 8-Bit PWM und 2 Stück mit maximal einer n-Bit PWM, wobei ich nicht weiß, ob n beim Tiny auch 16 sein kann. Aber 8, 9, und 10 gehen mit Sicherheit. Wobei: ganz unabhängig sind sie nicht. Jeweils die beiden 8 Bit PWM und die n-Bit PWM müssen mit der gleichen PWM-Frequenz auskommen, weil sie ja jeweils auf einem Timer beruhen. Ist aber in der Praxis kein großes Problem. > heißt das, ich habe z.B. einen 8Bit > Timer/Counter, den ich auf 2 verschiedene PWM-Kanäle anwenden kann? > Können diese beiden dann GLEICHZEITIG angesteuert werden? Ja. > Ich benötige nämlich noch einen weiteren Timer, um das Gerät automatisch > nach 2 Stunden auszuschalten, dann würde ich dafür den 16Bit Timer > verwenden... Es ist allerdings auch nicht verboten, einen Timer für mehr als eine Sache zu benutzen. Allerdings: Wenn deine 4 LED, wie du oben schreibst, sowieso alle gleich hell sein sollen, dann brauchst du ja sowieso nur eine einzige PWM dafür.
Daniel F. schrieb: > Darin steht folgendes: One 8-bit and One 16-bit Timer/Counter with Two > PWM Channels, Each > Vielen Dank für die Hilfe, > lG "with two *channels*" Meint zwei Känäle. da steht da noch each, also jeder. Sprich ein Timer kann zwei PWM Kanäle ansteuern und der andere kann jeweils 2 Kanäle mit einer anderen Zeiteinstellung ansteuern. dabei sind 2 Kanäle also an den 8 - Bit Timer gebunden und 2 Kanäle an den 16 - Bit Timer. Macht jeweils 4 Kanäle insgesamt. Also 8 - Bit Timer -> 2 PWM Kanäle + 16 Bit Timer -> weitere 2 Kanäle = 4 Gesamt. In der Software kann man aber wahrscheinlich jeden Kanal noch mal extra Ansteuern, das müsste man dann in der Interrupt Routine machen (aber ich bin auch nicht so bewandert mit den PWM Funktionen!)
Wow, danke für die schnellen Antworten! Heißt das, ich definiere meine 8bit PWM für einen Ausgang und schalte dann die beiden 2-LED-Serienschaltung mit je einem Vorwiderstand parallel an diesen einen Pin? Welchen Pin kann ich dann dafür verwenden? Thx
Daniel F. schrieb: > Wow, danke für die schnellen Antworten! > > Heißt das, ich definiere meine 8bit PWM für einen Ausgang und schalte > dann die beiden 2-LED-Serienschaltung mit je einem Vorwiderstand > parallel an diesen einen Pin? Welchen Pin kann ich dann dafür verwenden? > > Thx Das müsste im Datenblatt vermerkt sein, welche Pins, die PWM Ausgänge sind.
Seb schrieb: > Seb schrieb: >> n > > PORT A laut Datenblatt. 1. Pin Configurations: (PCINT7/ICP/*OC0B*/ADC7) PA7 (PCINT10/INT0/*OC0A*/CKOUT) PB2 (PCINT6/*OC1A*/SDA/MOSI/DI/ADC6) PA6 (ADC5/DO/MISO/*OC1B*/PCINT5) PA5
Auch wenn ich nicht verstehe, wozu 2 gleiche PWMs sinnvoll sind - Du musst ja sowieso einen Transistor, FET oder IGBT dahinter hängen - welcher sich auch bequem ein- bzw. ausschalten lässt. Aber dass könnte auch Dir einleuchten. Das ein Zähler zwei modulierte Ausgänge betreiben kann hängt damit zusammen, dass er auch zwei Vergleichswerte (-register) hat. Völlig unabhängig läst dabei nur der jeweilige A-Wert programmieren.
Daniel F. schrieb: > Wow, danke für die schnellen Antworten! > > Heißt das, ich definiere meine 8bit PWM für einen Ausgang und schalte > dann die beiden 2-LED-Serienschaltung mit je einem Vorwiderstand > parallel an diesen einen Pin? Im Prinzip ja. Wenn der Strom in Summe dann schon grenzwertig wird, schaltet man eben noch einen Treibertransistor dazwischen, um den µC-Pin zu entlasten. > Welchen Pin kann ich dann dafür verwenden? Kommt drauf an, welchen Timer du dir ausgesucht hast (0 oder 1) und welchen PWM-Kanal du dafür benutzt (A oder B). Je nachdem heißt der dann OCR0A oder OCR0B bzw. OCR1A oder OCR1B. Und welche physikalischen Pins das sind - sieht man in der Pinübersicht am Anfang des Datenblattes.
OK, vielen Dank! @amateur: Wenn der Strom klein genug ist, brauch ich keinen Transistor, oder? Also ich will so ca. 2-5mA durch die LEDs treiben, geht das auch ohne Transistor? Wo sehe ich den maximalen Ausgangsstrom des µC? Deswegen will ich 2 gleich PWMs verwenden, damit ich an 2 Pins jeweils 2 LEDs in Serie schalte... wenn ich die beiden Stränge parallel schalte, kann es ja sein dass der STrom zu hoch wird... Ist das verständlich beschrieben oder habe ich einen komplett falsche Ansatz dafür? @kbuchegg: Danke, wenn ich also den 8-Bit timer verwenden will, dann kann ich die beiden PINs PA7 und PB2 verwenden, um bei BEIDEN 2 LEDs mit einem Vorwiderstand anzuschließen, die dann mit dem gleichen PWM-Signal versorgt werden???? THX
Daniel F. schrieb: > @amateur: Wenn der Strom klein genug ist, brauch ich keinen Transistor, > oder? Also ich will so ca. 2-5mA durch die LEDs treiben, geht das auch > ohne Transistor? Wo sehe ich den maximalen Ausgangsstrom des µC? Was für LEDs hasdt du?! Normale LEDs werden mindestens mit 15 - 20 mA betrieben.
Daniel F. schrieb: > @amateur: Wenn der Strom klein genug ist, brauch ich keinen Transistor, > oder? Also ich will so ca. 2-5mA durch die LEDs treiben, geht das auch > ohne Transistor? Wo sehe ich den maximalen Ausgangsstrom des µC? Du scheinst noch nicht lange hier im Forum zu sein :-) Denn die Antwort auf technische Fragen zu einem bestimmten µC lautet praktisch immer: im Datenblatt Das ist deine Bibel! Die Antwort auf alle Fragen technischer Natur rund um deinen µC. Was da nicht drinnen steht, ist es auch nicht wert gewusst zu werden :-) > Deswegen will ich 2 gleich PWMs verwenden, damit ich an 2 Pins jeweils 2 > LEDs in Serie schalte... wenn ich die beiden Stränge parallel schalte, > kann es ja sein dass der STrom zu hoch wird... Ein Pin eines Tiny84 kann 40mA an Strom treiben. OK, wenn wir jetzt davon ausgehen, dass man nicht unbedingt bis ans Limit gehen sollte, bleiben immer noch so um die 30 übrig, die man bedenkenlos einsetzen kann.
@seb: ich habe LEDs, die mit 5mA noch ausreichend leuchten werden (muss ich noch testen). Die LEDs müssen nämlich nicht unbedingt ganz hell leuchten! @kbuchegg: Jap, richtig, bin Anfänger :) Ok danke für die Info, das Datenblatt ist halt für nen Anfänger ziemlich... Bin wohl drübergeflogen, hab aber den maximalen Strom mit 40mA nicht entdeckt... Zwecks der LED-Schaltung: Ich habe gehört, dass es nicht so gut ist, LEDs parallel zu schalten, weil sie dann u.U. unterschiedlich hell leuchten?! ich verwende eine µC Versorgungsspannung von 5V, die LEDs haben eine Vorwärtsspannung von 2 V. Meine Idee war es, 2 LEDs in Serie zu schalten mie einen Rv, an dem 1V abfällt. Insgesamt benötige ich jedoch 4 LEDs (also 2 Serienstränge mit je 2 LEDs) wie würdet ihr diese versorgen? Mit den beiden Pins PA7 und PB2 separat je einen Strang oder beide Stränge parallel an einen dieser Pins?! Vielen Dank!
Daniel F. schrieb: > Zwecks der LED-Schaltung: Ich habe gehört, dass es nicht so gut ist, > LEDs parallel zu schalten, weil sie dann u.U. unterschiedlich hell > leuchten?! Es ist dann nicht gut, wenn man 2 LED parallel schaltet, aber beide mit nur einem Vorwiderstand betreibt. Wenn jede LED (in deinem Fall jeder LED-Strang aus 2 LED) seinen eigenen Vorwiderstand hat, gibt es keine Bedenken. > mie einen Rv, an dem 1V abfällt. Insgesamt benötige ich jedoch 4 LEDs > (also 2 Serienstränge mit je 2 LEDs) wie würdet ihr diese versorgen? Mit > den beiden Pins PA7 und PB2 separat je einen Strang oder beide Stränge > parallel an einen dieser Pins?! Jeder Strang kriegt einen Vorwiderstand, beide Stränge parallel und an den Port-Pin
1 | +---------+ |
2 | | | |
3 | | o------+----|<----|<----R----- Vcc |
4 | | | | |
5 | | o +----|<----|<----R----- Vcc |
6 | | | |
Vielen Dank! Das ist mir eine große Hilfe! Eine Frage noch zur Polung: In deiner Schaltung ist die Kathode am µC Pin, d.h. der Strom müsste in den µC hineinfließen. d.h. immer wenn beim PWM-Signal LOW zustand herrscht fließt STrom und die LED leuchtet. Im Fall des high zustandes ist die LED aus?! Könnte man auch umgekehrt polen und die Kathode gegen Masse legen? THX
Daniel F. schrieb: > Vielen Dank! Das ist mir eine große Hilfe! > Eine Frage noch zur Polung: > In deiner Schaltung ist die Kathode am µC Pin, d.h. der Strom müsste in > den µC hineinfließen. d.h. immer wenn beim PWM-Signal LOW zustand > herrscht fließt STrom und die LED leuchtet. Im Fall des high zustandes > ist die LED aus?! > > Könnte man auch umgekehrt polen und die Kathode gegen Masse legen? Könnte man. Hast du denn die ganzen Übungen mit Leds nicht gemacht? Also quasi die ersten "Hello Worlds" eines µC-Programmierers? Das sind LED Ansteuerungen in allen möglichen Arten und Schattierungen. Mit Lauflicht und allem drum und drann? Na, das kann ja noch heiter werden.
Daniel F. schrieb: > @seb: ich habe LEDs, die mit 5mA noch ausreichend leuchten werden > (muss > ich noch testen). Die LEDs müssen nämlich nicht unbedingt ganz hell > leuchten! Die Helligkeit stellst du ja auch über die PWM ein... oO
Hab das alles nur theoretisch durchgemacht, da merkt man sich alles nicht wirklich gut... ist mein erstes projekt... Jap, aber die maximale helligkeit (Duty cycle 100%) muss auch nicht ganz hell sein, deswegen... Vielen Dank für Eure Hilfe!!
Hallo! Ich habe jetzt noch eine kleine Änderung durchzuführen, dazu eine Frage: Den 16-Bit Timer will ich für interne Zwecke verwenden (mit Laufvariablen in der ISR usw...). Also bleibt noch der 8-Bit-Timer für die besprochene PWM. Angenommen, ich will noch eine fünfte LED ansteuern, die gleich hell leuchten sollte. Allerdings sollte diese LED mit einer Frequenz von 2Hz blinken! Wie kann das realisiert werden? ich würde den parallelstrang mit den 4 LEDs an OCR0A hängen. Wenn ich die fünfte LED mit einem entsprechenden Vorwiderstand an OCR0B hänge, bekommt diese dann das gleiche PWM Signal, hab ich das richtig verstanden? Wäre es nun möglich, diese fünfte LED an OCR0B mit eienr Frequenz von 2Hz blinken zu lassen, die 2 LED-Stränge an OCR0A sollen jedoch durch leuchten! Bitte um Hilfe! THX
Daniel F. schrieb: > Wenn ich die fünfte LED mit einem > entsprechenden Vorwiderstand an OCR0B hänge, bekommt diese dann das > gleiche PWM Signal, hab ich das richtig verstanden? In der PWM-Frequenz - ja (aber die interessiert eigentlich nicht wirklich) In der Helligkeit - nein. Die Helligkeit kannst du mit OCR0B unabhängig von OCR0A einstellen. > Wäre es nun möglich, diese fünfte LED an OCR0B mit eienr Frequenz von > 2Hz blinken zu lassen, OCR0B alle 0.5 Sekunde auf einen anderen Wert setzen. Einmal 0, einmal denselben Wert wie in OCR0A Die 0.5 Sekunden kannst du dir zb aus dem Timer 1 herleiten oder aber auch aus dem Timer 0 selber. Du kennst ja seine Durchlaufdauer. Nur weil der PWM macht bedeutet das ja nicht, das er zb keine Overflows mehr generiert. Und an die kannst du dich mit einer ISR hängen
Ok das klingt super! Jetz ist mir einiges klarer geworden... Hab ich das jetzt richtig verstanden: Die beiden PWM-Kanäle OCR0A und B verwenden den gleichen Timer, deswegen haben sie auch die gleiche Frequenz. Die Helligkeit wird über den DutyCycle eingestellt. Da die beiden Kanäle ein eigenes Register (OCR0A und OCR0B) besitzen, kann dieser DutyCycle und damit die Helligkeit separat eingestellt werden?
Daniel F. schrieb: > Ok das klingt super! > > Jetz ist mir einiges klarer geworden... > > Hab ich das jetzt richtig verstanden: Die beiden PWM-Kanäle OCR0A und B > verwenden den gleichen Timer, deswegen haben sie auch die gleiche > Frequenz. Die Helligkeit wird über den DutyCycle eingestellt. Da die > beiden Kanäle ein eigenes Register (OCR0A und OCR0B) besitzen, kann > dieser DutyCycle und damit die Helligkeit separat eingestellt werden? Ja
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.