- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: LED: Hell- und Dunkelzustand über PWM steuern

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.05.2004
    Alter
    42
    Beiträge
    170

    LED: Hell- und Dunkelzustand über PWM steuern

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    hab im Forum schon ein Beitrag gefunden wie man eine LED mit PWM dimmen kann, nun möchte ich aber zwei Zustände definieren (Hell und Dunkel).
    Habe mir das so vorgestellt:

    Ich benutze den ATMega8 (Timer1) als PWM, dann habe ich bereits 2 Kanäle.
    mit dem einen Kanal regle ich denn Hell-Zustand; mit dem anderen den Dunkel-Zustand.

    Ich hab nen Schaltplan gebastelt wie ich mir das vorstelle, darin sind jetzt nur 3 LED's enthalten, das ganze sollte dann mit mindestens 20 LEDs laufen. Jede einzelne ansteuerbar (wahrscheinlich über Latches - aber das ist Nebensache)

    So, was ich nun wissen will: Ist der ansatz okay oder würdet ihr das anders machen?

    Noch nen Codebeispiel für die Interessenten:
    Code:
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear down , Compare B Pwm = Clear down , Prescale = 1
    
    Config PortC = Output
    
    LED_PowerA Alias PWM1a : Config PortB.1 = Output
    LED_PowerB Alias PWM1b : Config PortB.2 = Output
    
    LED_PowerB = 200                                            'Hell-Zustand
    LED_PowerA = 10                                             'Dunkel-Zustand
    
    DO
    
       'Beispiel: LED an Portc.1 blinkt von Hell auf Dunkel
       portc.1 = 1
       waitms 500
       portc.1 = 0
       waitms 500
    
    LOOP
    
    END
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken binaer.gif  

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.01.2005
    Ort
    hessen
    Alter
    35
    Beiträge
    1.101
    Hallo,

    so ist das auf jeden fall gut. Ich habe es anders gemacht. Ich habe einfach die Led, die ich haben wollte einfach an Portb.1 gehängt, allerdings musst du dann noch ein Vorwiderstand vor die Led hängen. Dann kannst du genau so die Helligkeit regeln wie jetzt und es ist weniger aufwendig dann brauchst du die Dioden und soweiter nicht.
    Was hast du denn mit den ganzen Leds vor??

    gruß
    patrick

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Moment. Ich verstehe das Prinzip jetzt nicht!
    Warum ein Port für Hell und einer für dunkel?
    Wenn der hell heller macht und der dunkel gleichzeitig dunkler macht, dann ist es ja so, als wäre nichts passiert!
    Es reicht doch ein Kanal, der die Pulsweite änders und damit heller bzw dunkler macht.

    Oder meint ihr was anderes, was ich jetzt nicht verstanden habe?

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.01.2005
    Ort
    hessen
    Alter
    35
    Beiträge
    1.101
    halo marco78,

    also ich meine das ganz anders als der blood den ich mach das nur über ein Port was er über zwei macht was eigentlich umständlich ist. Aber vielleicht hat er sich ja dabei was gedacht. Ich habe das nur über ein Portb laufen, wo ich alles beide machen kann hell und dunkel.

    gruß
    patrick

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.05.2004
    Alter
    42
    Beiträge
    170
    Ich glaube ihr habt mich da nicht so ganz verstanden
    Also nochmal zur klarstellung:
    Das Ding soll später ne Binäruhr werden, die LEDs, die ausgeschaltet sind sollen aber ganz schwach leuchten. Desweiteren möchte ich die maximale Helligkeit einstellen.

    Das Tastverhältniss von PWM_HELL muß größer sein, als das von PWM_dunkel, sonst gehts natürlich nicht.

    Die Sache funktioniert dann so:

    -LED ist aus:
    -- Der Strom fließt dann über T1, den Vorwiderstand, die LED und dann über T2 - die Helligkeit wird dabei durch T2 begrenzt. Das wäre dann auch so, als ob kein µC angeschlossen ist (der entsprechende Pin liegt auf 5V)

    -LED ist an:
    -- Der Strom fließt jetzt über T1, den Vorwiderstand und dann über den entrsprechenden Pin am µC (liegt jetzt auf 0V), die Helligkeit wird jetzt begrenzt über den T1.

    Die Dioden brauche ich damit ich die LEDs einzeln schalten kann, sonst würde ich alle LEDs mit einem Pin schalten.

    @patti16:
    wie soll ich das machen mit der LED+Vorwiderstand direkt an einem Pin? Einfach immer ein+ausschalten und damit dimmen? Das ginge solange gut, bis ich keine Ports am µC mehr frei habe, und da ich einen ATMega8 verwenden will reichts nicht für 20LEDs, muss ich also eine Porterweiterung benutzen, diese kann ich dann nicht so schnell ein und ausschalten.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.01.2005
    Ort
    hessen
    Alter
    35
    Beiträge
    1.101
    hallo,

    du kannst doch mit dem Pwm signal die led hell und dunkel machen ok für 20 leds wirds nicht reichen aber für 4 oder 5 schon. Du brauchst doch die Led nur mit einem vorwiderstand an deinen Portb.0 oder Portb.1 die Led mit dem Widerstand dran hängen probier das doch mal aus.

    gruß
    patrick

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Die mindest und minimalleuchtstärke kannst du im Programm ja vorgeben.
    So, was ich nun wissen will: Ist der ansatz okay oder würdet ihr das anders machen?
    Ich würde es anders machen

    Und Sorry, das es eine Uhr werden soll habe ich im ersten Beitrag überlesen.

    Ich kann auch nicht ganz nachvollziehen wie das elektrisch arbeiten soll. Die Widerstände kannst du dir wahrscheinlich sparen. Die Transistoren haben ja auch einen Spannungfall. Bzw. sie könen wohl kleiner ausfallen.
    Aber im Prinzip sind sie überflüssig wenn man mit PWM arbeitet.
    Wofür sind die 1N4148? Wozu die Abgriffe zum AVR (C.1, C.2, C.3)?
    Sicher das es mit 2 NPN so funktioniert?
    Hast du das schonmal aufgebaut und getestet?

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.05.2004
    Alter
    42
    Beiträge
    170
    Stand ja gar nicht da das es eine Uhr werden soll

    Naja die Widerstände sind nur dafür da, das die LEDs nicht durchbrennen, wenn ich beim PWM_HELL den Maximalwert angebe (dann würde die LED bei 5V ja bruzeln)

    Hmm, hab ich das wirklich so schlecht erklärt?
    Die "Abgriffe" sind um die LEDs einzuschalten:
    Logisch 1 - LED aus
    Logisch 0 - LED an
    --> steht doch in meinem letzten Beitrag

    Naja und die Dioden sind dafür, das wenn ich eine LED einschalte, die anderen nicht auch leuchten.

    --> Ich habs schon mit 2 LEDs aufgebaut und das hat auch funktioniert.

    @Marco87
    Ich würde es anders machen
    Wie denn?

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Stand ja gar nicht da das es eine Uhr werden soll
    Deine Antwort war aber so vorwurfsvoll als ob man es hätte wissen müssen :P

    Wenn deine PWM_DUNKEL mal einen Fehler hat, ist eine 1 am Port tatsächlich für LED aus. Aber für alle LEDs. Weil es ein (fast) kurzschluss ist.

    Wenn es mit 2 LED geht, wird es auch mit 20 klappen. Sofern die Summe der Ströme der Ports nicht mehr als erlaubt wird.
    Dann kannst du es ja auch so machen.
    Ich würde das ganze ohne PWM zu bauen. Und wenn es Lowcurrent-LEDs sind, würde ich LEDs alle direkt am AVR anschliessen. Oder über eine Porterweiterung um Pins zu sparen?
    Evtl würde ich es auch ganz anders machen. Das ist nur das, was mir grade durch den Kopf ging ohne viel drüber nachzudenken.

    Es wiederspricht zwar einer Grundregel im Umgang mit µC, aber die hast du ja auch schon gebrochen. Wenn man einen µC einsetzt, sollte man alle externen Bauteile vermeiden, die der µC ersetzen könnte. Und wenn man es schon mit PWM macht, könnten die Widerstände wegfallen. Du kannst ja im Programm vorgeben, wie hell sie werden dürfen.

    Die Krönung wäre es ja, wenn alle LEDs direkt an die Pins angeschlossen werden, ohne Widerstand, ohne Transistor und alles per PWM geregelt wird. Dann darf man aber wirklich nur Lowcurrent-LEDs verwenden. Und die sind ggf. zu dunkel.

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.05.2004
    Alter
    42
    Beiträge
    170
    Ich geb dir mal in dem Punkt recht, das es ein "fast-Kurzschluss" werden kann, hab nicht bedacht, das der ATMega8 ja auch HIGH treiben kann - wenn er das nicht könnte und bei 1 nur ein interner PullUp hängen würde, dann würde es so ja gehen... !?! Käme dann wieder auf die Schieberegister/Latches an die ich verwenden wollte...

    Ich verzichte eigentlich nur solange auf externe Bauteile bis ein Zerstören anderer Bauteile durch Programmierfehler eintreten könnte. Die anderen lass ich zur Sicherheit normal drin; z.B. die Widerstände.

    Wenn ich dich richtig verstanden hab, dann würdest du nicht die Hardware PWM-Kanäle nehmen (davon hab ich ja nur 3), sondern z.B. alle 20 LEDs an einen Schieberegister und dann mit dem Muster die Helligkeit steuern?

    also in etwa so:

    Code:
    DO
      Muster 11000101 senden
      lang warten (LEDs an)
      00111010 senden
      kurz warten (anderen LEDs kurz an)
    LOOP
    Lowcurrents will ich keine nehmen, wird sonst zu dunkel - 20mA sollte die Schaltung schon können.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress