-         

Ergebnis 1 bis 7 von 7

Thema: PWM einer LED mit Tasterfunktion

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    20.11.2005
    Beiträge
    88

    PWM einer LED mit Tasterfunktion

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Code:
    '#################################
    '# Software Pulsweitenmodulation #
    '#################################
    
    
    $regfile = "M16def.dat"
    $crystal = 1000000
    
    Ddrd = &B00000001                                           'PD7, PD6,PD5 als Ausgänge festlegen, rest Eingang
    
    Do
    
    
    Enable Interrupts                                           'Interrupts Global einschalten
    
    Enable Timer0
    Config Timer0 = Timer , Prescale = 64
    On Timer0 Ontimer0
    
    Enable Timer1
    Config Timer1 = Timer , Prescale = 1
    On Timer1 Ontimer1
    
    Dim Reverse As Bit
    Dim Helligkeit As Byte
    
    Helligkeit = 255
    
    
    '###Deklarationen###
    
    
    Led_ro Alias Portd.0                                        'LED Rot
    
    
    Do
    
    Loop
    
    Ontimer0:
    
     Toggle Led_ro
    
     If Led_ro = 1 Then
      Timer0 = 255 - Helligkeit
     Else
      Timer0 = Helligkeit
     End If
    
    Return
    
    
    
    Ontimer1:
    
     If Helligkeit = 255 Then
      Set Reverse
     End If
    
     If Helligkeit = 1 Then
      Reset Reverse
     End If
    
     If Reverse = 0 Then
       Incr Helligkeit
     End If
    
     If Reverse = 1 Then
      Helligkeit = Helligkeit - 1
     End If
    
    Return
    
    
    Loop
    Moin Moin,

    so ich habe diesen Code hier im Forum gefunden und habe ihn so geändert, das auf Portd.0 eine LED immer ein und ausfaded. Sieht sehr schön aus, nur ich möchte eine PWM , circa 50 % sprich Helligkeit = 255-120 oder so ein und auschalten können mit einem Taster. Wenn ich den befehl
    Code:
    If porta.1 = 0 then
    ..
    ..
    End if
    dann dreht die PWM völlig durch.. Wie schalte ich eine PWM ein und aus..

    Schöne Grüße

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Du denkst zu kompliziert.

    Setz den Wert auf 0 dann isse aus.
    Gruß
    Ratber

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    20.11.2005
    Beiträge
    88
    Das Problem habe ich öfter mal, da hast du recht *gg* Ja das ist wohl war, aber es soll ein Ausgang werden, der wenn Eingang A.0 = 0 ist 2x blinken soll bzw wenn Eingang A.1 = 0 dann soll er auf halbe leuchtstärke leuchten. Dann muss ich ja irgendwie die Software PWM abschalten.. Geht das überhaupt ??

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Warum soll das denn nicht gehen ?

    Das Software-PWM nutzt den Timer und den dazugehöhrigen Interupt.

    Schalt den Timer ab (Stop Timerx) dann gibts auch keinen Int und folglich keinen Sprung in die Routinen.
    Jetzt kannste mit dem Port machen was dir beliebt.

    Danach schalteste den Timer wieder ein (Start Timerx) und weiter gehts mit soft-PWM.

    wie gesagt finde ich da jetzt keinen Denkfehler.
    Kann ich aber morgen mal schnell probieren.

    Wie gesagt würde es auch reichen wenn du die Variable für die LED (Helligkeit) einfach auf 0 für aus und 255 für an nimmst dann brauchste an der Soft-PWM nix zu drehen.


    Oder hab ich dein Problem immernoch nicht verstanden ?
    Gruß
    Ratber

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    28
    Beiträge
    718
    HeyWodka,
    hab grad nach einer Schltung gesucht um die Helligkeit von LEDs zu steuern.
    Danke .
    Hab aber 2 Fragen:
    1. Wie kann ich die intervall länge verändern? (ein/ausfädern)
    2. Ich möchte ca 30 LEDs steuern, wie verstärke ich am besten das signal?
    bzw wieviel LED kann ich an einen Ausgang hängen.

    Mfg
    lenox

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    20.11.2005
    Beiträge
    88
    Hallo Lenox,

    das ist schon länger her, dass ich mich damit beschäftigt habe, aber zu deinen Fragen:

    1.
    Der Intervall kann mit dem Prescaler (Teiler) verstellt werden. Oder du änderst deinen internen bzw exteren Takt des MC.

    2.
    Bei 30 Leds würde der MC den Ausgangsstrom garnicht erbringen. Nimm einen kleinen Transistor zur Stromverstärkung..

    mfg

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2006
    Ort
    Aachen
    Alter
    28
    Beiträge
    718
    problem ist ich möchte jede LED einzeln steuern wahrscheinlich doch "nur" 15
    siehe
    http://www.roboternetz.de/phpBB2/vie...=234994#234994

Berechtigungen

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