logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[attiny13][bascom] regulacja fazowa

armo1 08 Lis 2010 14:29 6069 7
REKLAMA
  • #1 8717649
    armo1
    Poziom 10  
    witam
    zaciekawił mnie temat regulacji fazowej więc na płytce stykowej zmontowałem prosty układ gdzie attiny13 ma za pomocą transoptora pc814 podłączonego do sieci ma wykrywać zero i odpowiednio sterować triakiem bt136 przez optotriak moc3042, napisałem taki prosty program:
    $regfile = "attiny13.dat"
    $crystal = 9600000
     Config Portb.1 = Input
     Config Portb.2 = Output
     Config Portb.3 = Output
     Portb.1 = 1
     Portb.2 = 0
     Portb.3 = 0
    
    Do
     If Pinb.1 = 0 Then
     Portb.2 = 0
     Portb.3 = 0
     Else
     Portb.2 = 1
     Portb.3 = 1
     End If
     Loop
     End
    

    gdzie portb.2 to port włączający triak do którego podpięty jest wentylator, portb.3 do tego portu podłączona jest dioda led jako dodatkowy wskaźnik czy attiny coś "robi", pinb.1 jest zwierany do minusa przez pc814. Mam z tym układem taki problem że mimo nie ustawionego żadnego opóźnienia włączania triaka to układ się zachowuje tak jak by było ustawione bardzo duże opóźnienie i wentylator kręci się bardzo powoli a dodanie jakiegokolwiek opóźnienia po else
    powoduje że wentylator staje całkiem, prosił bym o jakieś rady dlaczego tak się dzieje
    [attiny13][bascom] regulacja fazowa
  • REKLAMA
  • REKLAMA
  • #3 8717869
    armo1
    Poziom 10  
    ZbeeGin napisał:
    Takie rzeczy robi się na przerwaniach kolego.

    tak wiem, ale bardziej z ciekawości chciałem w ten sposób zrobić, bardzo mnie to nurtuje co powoduje to opóźnienie?:D
  • #5 8718031
    mirekk36
    Poziom 42  
    Poza tym to złego optotriaka użyłeś, MOC3042 posiada wbudowany deketor zera sieci, przez co nie załączysz go w dowolnej części połówki sinusoidy.

    Dodano po 1 [minuty]:

    armo1 napisał:
    ZbeeGin napisał:
    Takie rzeczy robi się na przerwaniach kolego.

    tak wiem, ale bardziej z ciekawości chciałem w ten sposób zrobić, bardzo mnie to nurtuje co powoduje to opóźnienie?:D

    Tym bardziej powinieneś to na przerwaniach zrobić jeśli cię to nurtuje, bo tak to do niczego cię to nie doprowadzi.
  • REKLAMA
  • #6 8718093
    armo1
    Poziom 10  
    ok, schemat podłączenia triaka "sciągnąłem" z książki "Programowanie w Języku Baskom" i tam na schemacie nie było że to triak z detekcją zera więc pewnie stąd ta pomyłka, dziękuje za podpowiedzi
  • REKLAMA
  • #7 8718410
    mirekk36
    Poziom 42  
    Taki triak z detekcją, nadaje się właśnie idealnie tam gdzie potrzebujesz robić tylko operacje włącz/wyłącz. Wbudowana detekcja pozwala uniknąć generowania zakłóceń.

    Tymczasem do sterowania fazowego musisz użyć np MOC3021 lub podobnego.
  • #8 8718683
    Jaca
    Poziom 31  
    Zasada liniowego sterowania fazowego jest taka:

    1. Przejście przez zero generuje przerwanie zewnętrzne INT (opadające zbocze), w którym:
    a) wyłączasz bramkę optotriaka
    b) przeładowujesz TIMER wartością, którą odczytujesz z tablicy w zależności od aktualnego poziomu mocy. TIMER ten będzie odliczał opóźnienie włączenia optotriaka
    c) uruchamiasz TIMER
    2. Odliczenie opóźnienia przez TIMER generuje przerwanie od TIMER'a, w którym:
    a) włączasz bramkę optotriaka
    b) zatrzymujesz TIMER

    Tablica opóźnień jest potrzebna aby regulacja mocy następowała w sposób liniowy, czyli np 25 krok w 100 krokowej regulacji będzie równoważny 25% sterowanej mocy. Spróbuj wykonać sam stosowne procedury a ja w razie potrzeby załączę programik do obliczania wartości tablicy opóźnień.
REKLAMA