-         

Ergebnis 1 bis 7 von 7

Thema: Hardware PWM Dimmer Mega8

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.04.2006
    Ort
    Dortmund
    Alter
    30
    Beiträge
    379

    Hardware PWM Dimmer Mega8

    Anzeige

    Hallo!
    Also ich habe ein kleines Problem mit einer PWM Schaltung die ich gelötet habe. Ich habe an den PWM Ausgang 1 (PortB.1) einen BC337 über einen 1k Widerstand angeschlossen (Basis). der Kollektor liegt auf +12V und am Emitter befindet sich eine Klemme um einen Verbraucher anzuschließen. Wenn ich jetzt eine LED über einen 470 Ohm widerstand an die Klemme anschließe (die Anode) und die Kathode auf Masse lege funktioniert das ganze auch so wie ich mir das vorstelle. Wenn ich auf 100% high und 0% low schalte leuchtet die LED dauerhaft mit voller Leuchtkraft. Bei niedrigeren Tastverhältnissen entsprechend weniger.

    Ich will mit der Schaltung allerdings 5 LED`s betreiben die parallel geschaltet sind mit einem Vorwiderstand. Wenn ich diese LED`s anschließe leuchten die bei 100% high wesentlich dunkler als wenn ich direkt 12V Spannung anlege. Woran kann das liegen? Der Transistor kann 1A laut Datenblatt ab. Das sollte also reichen. Die Spannung am Emitter des Transistors liegt komischerweise auch nur bei rund 5V bei 100% high. Einen Lötfehler kann ich nahezu ausschließen. Ich wär euch dankbar für ein wenige Hilfe. Ich hänge mal noch den Sourcecode an und die Schaltung.

    Code:
    $regfile = "m8def.dat"
    $crystal = 4000000
    
    Config Portb.1 = Output
    Config Pinb.0 = Input
    
    Portb.0 = 1
    
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1
    Compare1a = 255
    
    Dim Richtung As Integer
    Richtung = 0
    Do
    
    Debounce Pinb.0 , 0 , Pr , Sub
    
    Loop
    End
    
    
    Pr:
     If Richtung = 1 Then
      Do
       Compare1a = Compare1a + 1
       Waitms 10
      Loop Until Compare1a = 255
      Richtung = 0
     Else
      Do
       Compare1a = Compare1a - 1
       Waitms 30
      Loop Until Compare1a = 0
      Richtung = 1
     End If
    
    Return
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken pwm_143.jpg  

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.07.2004
    Ort
    bei Stuttgart
    Alter
    35
    Beiträge
    760
    hi,
    ich hoffe du hast auch deinen widerstand auf ein fünftel verkleinert. allerdings würde ich das nicht machen. ich würde jeder led einen eigenen vorwiderstand verpassen, sioe danken es dir mit einer hohen lebensdauer.
    mfg jeffrey

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    47
    Beiträge
    2.556
    ....vielleicht ist einfach nur der Basisvorwiderstand mit 1k zu groß und der Transistor schaltet deswegen nicht voll durch.
    Danke an Alle, die uns bei der erfolgreichen 1.000€-Aktion der IngDiba unterstützt haben! | https://www.hackerspace-bremen.de | http://www.pixelklecks.de |

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.04.2006
    Ort
    Dortmund
    Alter
    30
    Beiträge
    379
    hmm den vorwiderstand der LEDs habe ich nicht geändert aber das scheint nicht das Problem zu sein. Die LED`s leuchten ja mit voller kraft wenn ich einfach direkt 12V anlege anstelle des PWM Moduls. Das mit dem Basiswiderstand kann ich mir eigentlich auch nicht vorstellen aber es wäre ein Lösungsansatz. Ich mess gleich mal einen durch um zu schauen ob wirklich 12V anliegen.


    Edit:
    Also ich habe jetzt grade mal einfach einen Transistor genommen und an die Basis über 1k 5V angelegt. Kollektor auf +12V gelegt und dann zwischen emitter und masse gemessen. Ergebniss: wieder knappe 5V. Sah für mich so aus als würde er wirklich nicht ganz durchsteuern. Also habe ich mal auf gut glück ohne basiswiderstand gemessen aber es liegen nach wie vor nur besagte knappe 5V an... Ich weiß echt nicht weiter. Falls das wichtig ist: Auch mit Verbraucher bekomme ich keine anderen Ergebnisse.

    Edit2:
    Fehler gefunden. Es geht scheinbar nur, wenn ich nicht dem Emitter des Transistors offen lasse sondern den Kollektor. Also Emitter liegt auf Masse und an den Kollektor wird die Kathode des LED angeschlossen. An die Anode kommt natürlich der Vorwiderstand und danach +12V.
    Kann mir eventuell jemand erklären warum das so ist? Warum kann ich nicht den Emitter benutzen?

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Eigentlich ganz einfach:
    Die Basis muss immer um etwa 0,7V positiver sein als der Emitter damit Strom in die Basis fließt und damit ein um die Stromverstärkung höherer Strom von Kollektor nach Emitter.
    Wenn du nun die Last am Emitter hast, kann die Spannung dort nie höher werden als an der Basis.
    Für Schaltanwendungen also die Last immer in den Kollektorkreis geben.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.04.2006
    Ort
    Dortmund
    Alter
    30
    Beiträge
    379
    Wow danke Hubert! Wieder was gelernt
    Die neue Platine ätzt schon fleißig und dann läuft alles so wie ich mir das vorgestellt habe.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    25.07.2006
    Beiträge
    53
    Hey,

    ich hab das Problem so wie hier im Thread Geschrieben gelöst.

    Ich benutze Portb.1 Portb.2 als Output. Nun stehe ich aber vor dem Problem das ich nicht weiß wie ich einen dritten Ausgang ansteuer. Kann mir jemand zeigen wie ich einen weitern Timer hinzufüge und welchen Port ich bei meinem a168 benutzen soll?

    Wäre echt wunderbar wenn mir das einer schreiben könnte Dann kann ich endlich losstarten und hab keine Hindernisse =).

    MfG
    Placa

Berechtigungen

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