Hallo Leute, ich beschäftige mich seit kurzem mit uCs und möchte über einen solchen ein paar Schieberegister ansprechen, an denen LEDs hängen. Dieser Teil meines Plans funktioniert bisher wunderbar. Allerdings soll das ganze am Ende auch mit Hilfe eines Potis bzw LDR dimmbar gemacht werden, sodass die LEDs - wenn zu nervig grell - auch mal heruntergeregelt werden können. Ich habe schon diverse Sachen probiert, wie z.b. das Herunterregeln der SChieberegister Spannung über den Poti, allerdings werden die LEDs irgendwann nicht mehr dunkler, da alle ganz schwach leuchten, auch die, die eigentlich aus sein sollten. Ich denke das liegt an dem Mikrocontroller, der noch etwas an das Schieberegister rausgibt, wenn VCC fehlt oder zu schwach ist.(?!) Jedenfalls hatte ich nun daran gedacht, eine kleine Treiberstufe über einen Transistor zwischen jeder LED und dem Schieberegister zu schalten, sodass das Register mit den Transistoren an jedem Ausgang als Schalter für eine Referenzspannung (mit Poti) dient, die die LEDs versorgt. Ich bin mir aber nicht sicher, ob das funktioniert, da nicht alle LEDs gleichzeitig leuchten und sich der Strom nicht vernünftig einstellen lässt, da bei 9 LEDs mehr Strom gebraucht wird als bei 3, die - wenn die allein leuchten - zu viel Strom bekämen. Lieg ich da richtig? Kann leider keine Schaltung oder sowas beifügen, da ich nicht am Rechner sitz, auf dem die Daten liegen. Hoffe, ich konnte mein Problem trotzdem veranschaulichen. PS: an PWM geschichten mit 555 traue ich mich nich wirklich ran. Dazu fehlt mir noch zu sehr das verständnis für das Teil.
Leo schrieb: > Poti an den ADC des uC und mit dem uC eas PWM signal zum dimmen erzeuge. Klingt schon mal ganz gut, doch wie erzeue ich das Signal in Abhängigkeit der anliegenden Spannung (software?) und wie gebe ich das PWM Signal an die LEDs weiter, sodass sie auch tatsächlich dunkler werden? /edit wie gesagt, hab mit PWM noch nix gemacht bisher ... Ich <- Noob
Welches Schieberegister benutzt du? Das 595 zb hat einen G_Eingang, den man wunderbar benutzen kann, um da eine PWM drauf zu legen, mit der alle LED gemeinsam gedimmt werden können. Die eigentliche Ausgabeoperation beeinflusst das nicht weiter. Das Schieberegister wird nach wie vor ganz normal angesprochen, in dem 0-en und 1-en eingetaktet werden, die bestimmen welche LED leuchtet und welche nicht.
David G. schrieb: > /edit > wie gesagt, hab mit PWM noch nix gemacht bisher ... Dann wirds Zeit. Einzelne LED an einen der PWM Ausgänge anhängen, Timer entsprechend konfigurieren und sich an einer dimmbaren LED erfreuen, die ja nach Zuweisung in das entsprechende OCR Register unterschiedlich hell leuchtet. FAQ: Timer Und wenn du mit diesem Vortest die PWM unter Kontrolle hast, kannst du ja wieder dein Schieberegister ansprechen. Zb über diesen Eingang (bei unterschiedlichen Herstellern heißt der anders. zb OE für 'Output Enable')
>> das Herunterregeln der SChieberegister Spannung über den Poti A) Welchen Poti? B) Spannung herunterregeln? Die Versorgungsspannung der Register? Was ist den das für ein Blödsinn? Fragen: A)Welche Register verwendest du B)Welche LED verwendest du (Strom/Spannung) C)Wie sind die LED an die Register angeschlossen? Vorwiderstand? Transistor? D)Wie sind die Register an den uc angeschlossen? E)Wie ist die Versorgungsspannung der Schaltung? F)Welchen Controller verwendest du? G)Sollen die LED einzeln in der Helligkeit ansprechbar gemacht werden? ...ich könnte noch mal so viele Fragen stellen, habe aber keine Lust mehr dir alles aus der Nase zu ziehen. JK.
David G. schrieb: > Lieg ich da richtig? Nein. David G. schrieb: > Dieser Teil > meines Plans funktioniert bisher wunderbar. Das ist ja schon nicht schlecht. Aber wahrscheinlich machst du das falsch. Jedenfalls im Sinne von Erweiterbarkeit. 1. Du hast ein Bitmuster 2. Du gibst das Bitmuster auf die Schieberegister 3. Du wartest, bis sich was ändert und gehst zu 1. Wahrscheinlich machst du das so. Besser: Bitmuster wird in ein Array geschrieben. Array wird per SPI-ISR fortlaufend ausgegeben. Da fühlen sich die 595er dann so richtig wohl. Endlich mal was los. In die SPI-ISR, die sehr gut als Timer fungiert, kommt dann die Pwm: volatile unsigned char pwm; volatile unsigned char ledvalue; ISR(SPI_STC_vect) { //... pwm++ if(ledvalue>pwm) SPDR = Ledmuster; else SPDR = 0; //... } ISR(ADC_vect) { //... ledvalue = ADCH; //... } mfg.
Jürgen K. schrieb: > ...ich könnte noch mal so viele Fragen stellen, habe aber keine Lust > mehr dir alles aus der Nase zu ziehen. Entschuldige, dass ich keinen 3-Seitigen Bericht für Dich habe, eventuelle Schaltungen, die ich posten könnte, habe ich grad nicht hier, wie gesagt ... dachte, dass mal als semi-Ahnungsloser ein paar Infos bekommen könnte, wie z.B. diese: Karl Heinz Buchegger schrieb: > Das 595 zb hat einen G_Eingang, den man wunderbar benutzen kann, um da > eine PWM drauf zu legen, ... oder diese: Karl Heinz Buchegger schrieb: > Und wenn du mit diesem Vortest die PWM unter Kontrolle hast, kannst du > ja wieder dein Schieberegister ansprechen. Zb über diesen Eingang (bei > unterschiedlichen Herstellern heißt der anders. zb OE für 'Output > Enable') der Poti (linear) soll nur die Spannung ALLER Leds regulieren. > A)Welche Register verwendest du stinknormales 4094 (wenn die Reihenfolge der Zahlen stimmt) > B)Welche LED verwendest du (Strom/Spannung) Verschiedenfarbige, überwiegend blau und weiß > C)Wie sind die LED an die Register angeschlossen? Vorwiderstand? > Transistor? stinknormal mit Vorwiderstand richtung Ground > D)Wie sind die Register an den uc angeschlossen? stinknormale Beschaltung über DATA, CLOCK und STROBE > E)Wie ist die Versorgungsspannung der Schaltung? VCC der gesamten Schaltung über 7805 auf 5V stabilisert > F)Welchen Controller verwendest du? ATmega16 L8 --> nur schade, dass die meisten deiner erfragten Dinge für mein Problem gar nicht relevant sind. Aber hauptsache meckern ... vielen Dank an kbuchegg! Ich hoffe damit komm ich weiter. Wenn ich mich in PWM Signal-Erzeugung eingelesen habe, werd ich das mal ausprobieren. Mir war halt bisher nicht so ganz klar, wofür dieser OE Eingang gut ist ^^
Thomas Eckmann schrieb: > Besser: > Bitmuster wird in ein Array geschrieben. > Array wird per SPI-ISR fortlaufend ausgegeben. > > Da fühlen sich die 595er dann so richtig wohl. Endlich mal was los. > > In die SPI-ISR, die sehr gut als Timer fungiert, kommt dann die Pwm: Machs nicht so kompliziert. So lange er alle LED gemeinsam dimmen will, gehts mit einer zusätzlichen Leitung vom µC zu den SR für einen Anfänger einfacher, solange das SR einen Output Enable Eingang hat.
David G. schrieb: > Mir war halt bisher nicht so ganz klar, wofür dieser OE Eingang gut ist Steht der Eingang auf 'Enable' dann treibt das SR aktiv. Sprich: die LED leuchten. Steht er nicht auf 'Enable', dann treibt er nicht. Die LED leuchten dann auch nicht. Und hier kann man das dann eben ausnutzen um da eine PWM drauf zu legen :_)
Karl Heinz Buchegger schrieb: > Und hier kann man das dann eben ausnutzen um da eine PWM drauf zu legen > > :_) Klingt einfach! :) Klingt außerdem nach einer recht einfachen Lösung meines Problems ... Das muss ich ausprobieren :D Danke!
>>Aber hauptsache meckern sorry wenn das so rüber gekommen ist. >>nur schade, dass die meisten deiner erfragten Dinge für mein Problem gar nicht relevant sind. hmm fangen wir mal an: Wenn du eine PWM machst ist es sehr wichtig zu wissen was für LED du da dran hast, denn der Strom kann sich erhöhen und damit kommen wir auch gleich zum nächsten Punkt weshalb ich wissen wollte welche Treiber/Transistoren du verwendest. Frage D war in Kombination mit Frage G welche du ja garnnicht beantwortet hast darauf abgeziehlt das man ggf einen gemeinsamen Strobe Pin nutzen kann um alle LED gleichzeitig zu dimmen, wie von KHB schon angemerkt. Am besten hat mir aber noch diese Nummer gefallen: > B)Welche LED verwendest du (Strom/Spannung) Verschiedenfarbige, überwiegend blau und weiß Deine Antwort ist allerdings für die Funktion der Schaltung wirklich nicht von bedeutung, denn ob eine LED blau oder weiß ist wirklich egal und hatte mit der Frage, die ja auch nicht beantwortet hast, nicht zu tun. Stelle dir mal vor du fragst jemand was für ein Auto er fährt und er antwortet: "ein rotes". Wenn man dann noch bendenkt das du fragst um demjenigen bei einem Problem an seinem PKW zu helfen, könnte man die Antwort fast schon böswillig bewerten. Aber nun gut, mir ging es darum zu zeigen das die Antworten nur so gut wie die Informationen in der Fragestellung werden können und das ein Problem was für dich klar vor ort vorhanden ist, nicht für jeden hier im Forum klar sein muss, davon muss man sich lösen. Einfach eine halbfertige Frage einstellen führt immer dazu das hier tausende Dinge empfohlen werden bis endlich klar ist was eigentlich gewollt ist. Aber das Thema OE wird ja nun schon angebracht. JK
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.