- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Dimmer für 230V

  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.09.2005
    Beiträge
    276
    Anzeige

    Praxistest und DIY Projekte
    mit hinkelsteine auf spatzen ?
    Macht ein AVR nicht 10 000 AD Wandlungen/Sek bei 16 MHZ wo man sicher den Nulldurchgang erkennt ?
    Mal der andere Ansatz.
    Gento

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Der Nulldurchgang wird ja ohne Probleme erkannt!
    Einfach 230V an INT0, INT bei Change und alle 10mS wird ohne noch größere Verzögerung ein INT ausgelöst.

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Es lag am MOC. Hab heute einen 3020 gekauft, Widerstand angepasst und es geht.
    Jetzt hab ich nur das Problem, das ich nicht genau weiss, wie ich den 8-Bit Timer1 des Tiny26 nutzen kann.
    Kann mir da jemand helfen?

    Im Datenblatt steht er als Timer1.
    Ich hab ihn mit Config usw nach RNAVR eingestellt.
    Mit Timer0 funktioniert es alles. Aber wenn ich alles auf Timer1 umschreibe, kommt eine Fehlermeldung in der Zeile wo der Timer wieder vorgeladen werden soll.

    Timer1 = Timervorgabe
    erzeugt den Fehler:
    Assigment Error[Timer1:0 Timervorgabe:6]

    An der 6 für A=3 liegt es nicht.

    Hier nochmal der ganze Code:
    Code:
    $regfile = "at26def.dat"
    $crystal = 16000000
    
    Led Alias Porta.4
    Triac Alias Porta.7
    Taster Alias Pina.2
    
    Config Porta.4 = Output
    Config Porta.7 = Output
    Config Porta.2 = Input
    Porta = &B0000100                                           'PullUp von Pin PA2 aktivieren
    Config Timer1 = Timer , Prescale = 256
    'Config Rc5 = Pinb.2
    
    Dim A As Word
    Dim B As Word
    Dim C As Integer
    Dim Address As Byte , Command As Byte
    
    Dim Timervorgabe As Word
     'Const Timervorgae = 131
    
    
    Config Int0 = Change                                        'bei jeder Halbwelle reagieren
    Enable Int0
    Enable Interrupts
    On Int0 Int0_isr
    On Timer1 Timer_irq
    Enable Timer1
    
    Set Led
    
    
    Do
    
    'Getrc5(address , Command)
    
    
     If Taster = 0 Then
      Incr A
      Reset Led
      Waitms 10                                                 'entprellen
      Set Led
     End If
    
     If A = 4 Then A = 0
     If A = 0 Then Timervorgabe = 131
     If A = 1 Then Timervorgabe = 100
     If A = 2 Then Timervorgabe = 48
     If A = 3 Then Timervorgabe = 6
    
    
    Loop
    
    
    Int0_isr:
    
    'Waitus C
    'Set Triac
    'Waitus 100
    'Reset Triac
    Start Timer1
    
    Return
    
    
    Timer_irq:
    
    Timer1 = Timervorgabe
    
    Set Triac
    Stop Timer1
    
    Waitus 100
    Reset Triac
    
    Return

  4. #14
    Hallo Marco,

    ich baue zur Zeit auch an einem derartigen Dimmer. Mit dem elektronischen Teil bin ich vertraut, jedoch bisher weniger mit der AVR Programmierung. Dein letzter Code ist mir aber weitestgehend klar.
    Hast Du mittlerweile einen lauffähigen Code, den Du hier posten könntest?

    Und wo ist der Schaltplan hin? Kann auch sein, daß ich blind bin. Ich finde ihn jedenfalls nicht. Über diesen würde ich mich also auch sehr freuen! [-o<

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Ich denke mal, den Schaltplan siehst du nur, wenn du angemeldet bist.

    Ich habe mir jetzt ein paar Tiny45 bestellt (sind auch schon da) weil ich keine Lust mehr hatte da rumzurätseln.
    Es wundert mich aber doch, das es keine Lösung gibt was den Timer angeht.

    Einen neueren Code habe ich bis jetzt noch nicht. Mir fehlt noch eine Routine für IR. Dieses Jahr werde ich das wohl auch nicht fertig bekommen.

    Wo ist denn dein Problem bei der Programmierung? Vielleicht kann ich dir ja auch ohne neueren Code helfen.

  6. #16
    Deine Timerzeiten (Timervorgabe) sind mir noch nicht ganz klar. Wie kommst Du auf diese?
    Alle 10ms beginnt eine neue Halbwelle. Ich gehe davon aus, daß Dein ZC-Interrupt genau beim Nulldurchgang auslöst.
    Bei Timervorgabe = 131 würde der Triac bei 16Mhz und Prescale=256 ca. 2 ms nach Nulldurchgang auslösen.
    Bei Timervorgabe = 6 nach ca. 0,1 ms.
    Also kann die Lampe ja nur ziemlich schwach runtergedimmt werden, oder versteh ich da was falsch?

    Löst Dein ZC-Interrupt denn überhaupt genau im Nulldurchgang aus, oder etwas später?

    Ausserdem dürfte das Hoch- und Runterdimmer etwas zu schnell gehen, wenn bei Taster=0 in der Schleife nur 10ms gewartet wird, oder?

    Danke!

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress