Elektroda.pl
Elektroda.pl
X
Relpol przekaźniki nadzorczeRelpol przekaźniki nadzorcze
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega8 problem przy sterowaniu 230V

18 Wrz 2007 20:05 1896 12
  • Poziom 10  
    Witam
    Mam problem.
    Zrobiłem układ, który ma przełączać napięcie na cewce silnika
    Silnik od bramy garażowej. Jedno 0 i dwa wejścia fazowe, od kierunku obrotów.

    Układ, na sucho, bez podpięcia do silnika działa prawidłowo. Reaguje na przerwania itp.
    Problem pojawia sie podczas podłączenia fazy do układu.

    uC działa przez jakąś chwile, potem przestaje reagować na INT0 i INT1

    początkowo myślałem że to przez jakieś przepięcia.
    uruchomiłem Wachtdoga na fusebitach i podłączyłem leda, który uruchomi się tylko przy starcie uC. potem gaśnie.
    nic to nie dało.

    Po podłączeniu zwykłej żarówki, dzieje się tak samo.

    Co może być przyczyną ??
    Prawdopodobnie coś w schemacie, skoro program działa normalnie.
    Jeżeli ktoś może to niech doradzi co i jak poprawić.
    Schemat w załączniku.

    Pozdrawiam Grzegorz

    Program :
    Code:
       .nolist
    
       .include "m8def.inc"
       .list
       .listmac

       .equ   czaszegara = 0x01
       .equ   mnoznik   =   0x05
       .equ   licznik   =   240
       .cseg
       .org 0
       rjmp resetProc;

       .org   INT0addr   ; External Interrupt0 Vector Address
       rjmp przerwanie0;
       .org   INT1addr   ; External Interrupt1 Vector Address
       rjmp przerwanie1;
       .org   OC2addr    ; Output Compare2 Interrupt Vector Address
       reti
       .org   OVF2addr   ; Overflow2 Interrupt Vector Address
       reti
       .org   ICP1addr   ; Input Capture1 Interrupt Vector Address
       reti
       .org   OC1Aaddr   ; Output Compare1A Interrupt Vector Address
       reti
       .org   OC1Baddr   ; Output Compare1B Interrupt Vector Address
       reti
       .org   OVF1addr   ; Overflow1 Interrupt Vector Address
       reti
       .org   OVF0addr   ; Overflow0 Interrupt Vector Address
       rjmp p_licznika;
       .org   SPIaddr    ; SPI Interrupt Vector Address
       reti
       .org   URXCaddr   ; USART Receive Complete Interrupt Vector Address
       reti
       .org   UDREaddr   ; USART Data Register Empty Interrupt Vector Address
       reti
       .org   UTXCaddr   ; USART Transmit Complete Interrupt Vector Address
       reti
       .org   ADCCaddr   ; ADC Interrupt Vector Address
       reti
       .org   ERDYaddr   ; EEPROM Interrupt Vector Address
       reti
       .org   ACIaddr    ; Analog Comparator Interrupt Vector Address
       reti
       .org    TWIaddr    ; Irq. vector address for Two-Wire Interface
       reti
       .org   SPMRaddr    ; SPM complete Interrupt Vector Address
       reti

    ResetProc:
       wdr
       cli                  ;ustawienie stosu
       ldi   r16,low(ramend)
       out spl,r16
       ldi r16,high(ramend)
       out sph,r16
       wdr
       ldi r16,0xff         ;ustawienie portu B na wyjscia
       out ddrb,r16
       ldi r16,0xff
       out portb,r16
       wdr   
       ldi r16,0xff         ;ustawienie portu C na we i ustawienie pinow
       out ddrc,r16
       ldi r16,0xff
       out portc,r16
       wdr
       ldi r16,0xf3         ;ustawienie wejscia pin 1 i 2 na porcie D
       out ddrd,r16
       ldi r16,0xff
       out portd,r16

    ;   rcall delay

       in r16,wdtcr
       ori r16,31
       out wdtcr,r16
       wdr

       ldi r16,0x0f
       out MCUCR,r16

       ldi r16,0xcc
       out GICR,r16

       ldi r16,0xf3
       out Portc,r16

       ldi r20,0            ;wyzerowanie klucza
       ldi r21,1            ;gora
       ldi r22,2            ;dol
       ldi r23,4            ;w ruchu
       ldi r24,5            ;stop
       ldi r25,6            ;stop
       ldi r26,0            ;licznik czasu
       wdr
       sei                ;odblokowanie przerwan
       
    petla_g:


       cpse r20,r21
       rjmp skok1
       rcall procedura_1
    skok1:
       wdr
       cpse r20,r22
       rjmp skok2
       rcall procedura_0
    skok2:
       wdr
       cpse r20,r25
       rjmp skok3
       rcall procedura_stop
    skok3:
        wdr
       cpse r20,r24
       rjmp skok4
       rcall procedura_stop
    skok4:
       wdr
       ldi r16,licznik
       cpse r26,r16
       rjmp skok5
       rcall procedura_stop
    skok5:
       wdr
       rjmp petla_g


    procedura_1:;#########################################
       ldi r16,czaszegara               ;ustawienie zegara
       out TCNT0,r16               
       ldi r16,0x01               ;odblokowanie przerwania zegara po przepelnieniu
       out TIMSK,r16
       ldi r16,mnoznik
       out TCCR0,r16               ;skalowanie 1:1

       ldi r16,0xFB
       out PortB,r16               ;wylaczenie pinu 2 na porcie B
       ldi r20,0x04               ;ustawienie 3 bitu na 1
       ret                        ; koniec

    procedura_0:;###############################################   
       ldi r16,czaszegara            ;ustawienie zegara
       out TCNT0,r16               
       ldi r16,0x01               ;odblokowanie przerwania zegara po przepelnieniu
       out TIMSK,r16
       ldi r16,mnoznik
       out TCCR0,r16               ;skalowanie 1:1

       ldi r16,0xFD
       out PortB,r16               ;wlaczenie wszystkich pinow na porcie B
       ldi r20,0x04               ;ustawienie 3 bitu na 1
       ret         

    procedura_stop:;#############################################

       ldi r16,0xFF
       out PortB,r16               ;wyzerwanie portu B

       ldi r16,0
       out TCCR0,r16               ;zatrzymanie licznika T0
       out TCNT0,r16               ;wyzerowanie licznika T0
       out TIMSK,r16               ;wylaczenie przewania licznika

       ldi r20,0x00               ;wyzerowanie wszystkich bitow
       ldi r26,0x00               ;wyzerowanie licznika czasu
       ret
       
    przerwanie0:;################################################
       ldi r30,0x02
       or r20,r30
       ;############
       reti                     ;koniec

    przerwanie1:;###############################################
       ldi r30,0x01
       or r20,r30
       reti                     ; koniec

    p_licznika:;###################################################
       inc r26
       reti

    delay:                ; realizacji opóźnienia
         ldi    r16,0    ; zawartość acc2 = 0
         ldi    r17,0    ; zawartość acc = 0
       ldi      r18,240
    Del_0    :         ;
         inc    r17    ; zwiększ zawartość acc
       wdr
         brne    Del_0    ; skocz gdy acc różne od 0
         inc    r16    ; zwiększ zawartość acc2
         brne    Del_0    ; skocz gdy acc2 różne od 0
         inc    r18    ; zwiększ zawartość acc2
         brne    Del_0    ; skocz gdy acc2 różne od 0

         ret         ; powrót z podprogramu

       .exit
  • Relpol przekaźniki nadzorczeRelpol przekaźniki nadzorcze
  • Poziom 30  
    Witam !!

    Mam pytanie, czy przypadkiem te włączniki nie są podłączone na dłuższych przewodach?

    Pozdr. Daniel
  • Poziom 10  
    włączniki od przerwań są sterowane przez moduł zdalnego sterowania. Takiego od zamka centralnego. Długość ok 30 cm
    Sprawdzałem na pinach od uC, to po nadaniu sygnału napięcie bezpośrednio na nóżce uC spada do 0.04 V, takie same napięcie dostaje przy podłączeniu napięcia 230 i bez niego.
  • Relpol przekaźniki nadzorczeRelpol przekaźniki nadzorcze
  • Poziom 16  
    Ze schematu nie wynika wprost, czy jest separacja galwaniczna. Transoptory niby są, ale masa jest jednakowo zaznaczona po obu stronach.

    Jak to jest w rzeczywistości?
  • Poziom 10  
    masa jest jedna dla układu +5V i +17V zasilanie +17V idzie z zasilacza od jakiego starego telefonu komórkowego. +5V idzie z L7805, ale masa jest ta sama dla stabilizatora, transoptorów i buzów.
  • Poziom 34  
    Po dwa kondensatory na stabilizatorze 5V z każdej strony - ceramiczny 100n i elektrolit równolegle. Piny uC zwieraj przez przyciski bezpośrednio do masy. Rezystory wykorzystaj do podciągnięcia tych pinów do +5V. Daj popracować tranzystorom w transoptorach i zmniejsz 1000razy rezystory emiterowe. Jak możesz to wepnij przekaźniki pomiędzy +17V a dren BUZów (oczywiście źródło do masy.). Poprowadź masę i zasilanie od jednego punktu przy stabilizatorze osobno do uC i elementów wykonawczych. Jak to nie pomoże to wstaw dławiki w obwód zasilania uC, później ekranuj uC.
  • Poziom 10  
    wielkie dzięki za rady.
    jutro przerobie układzik i napisze co i jak.
    pozdrawiam grzegorz
  • Poziom 10  
    Witam
    Przerobiłem układ według wskazówek. Wszystko zaczęło chodzić, ale zauważyłem, że bardzo mocno zaczął się grzać stabilizator napięcia. Sprawdzałem czy gdzieś nie ma zwarcia, ale nic nie znalazłem. Po wyjęciu uC z podstawki, stabilizator stygnie.

    Dodanie radiatora teoretycznie pomoże, ale nie bardzo podoba mi sie takie rozwiązanie. Pewnie znacznie spada żywotność takiego układu, jak jest tak mocno obciążony.

    Pozdrawiam Grzegorz
  • Pomocny post
    Poziom 34  
    Sprawdź, które elementy jeszcze się grzeją. Pomierz napięcia w układzie - w szczególności napięcia na rezystorach aby ustalić gdzie nadmierna moc się odkłada. Zamieść schemat z aktualnymi wartościami rezystorów.
    Zabieg miał na celu zwiększenie prądów w układzie tak aby małe prądy zakłócające nie wpływały na pracę układu. Teraz trzeba je odpowiednio dobrać.
  • Poziom 10  
    ok już znalazłem przyczyne grzania się stabilizatora.
    Wszystkie rezystory podciągające są 270. programowo podciągnięte są wszystkie nie używane piny.
    Problemem grzania było połączenie pod kondensatorem 100n przed uC, od strony kondensatora. otwór w płytce był za duży i podczas lutowania przepłynęło mi trochę cyny na drugą stronę.
    dzięki wielkie za porady.
    pozdrawiam Grzegorz
  • Poziom 20  
    Rezystory podciągające przy klawiszach daj 10k. Szkoda prądu.
  • Poziom 34  
    Cytat:
    Rezystory podciągające przy klawiszach daj 10k. Szkoda prądu.

    Prawda, ale mam nadzieję, że kolega nie bawi się tymi przyciskami przez całe godziny - prąd idzie na marne tylko kiedy przyciski są wciśnięte. Poza tym to i tak kropla w morzu potrzeb silnika.
    Przy solidnych zakłóceniach i długich kablach do przycisków trzeba by stosować jednak małe rezystancje.
    Do ogólnego rachunku trzeba jeszcze doliczyć ewentualne uszkodzenia auta podczas przypadkowego zadziałania sterownika bramy.
  • Poziom 20  
    M. S napisał:
    Cytat:
    Przy solidnych zakłóceniach i długich kablach do przycisków trzeba by stosować jednak małe rezystancje.



    Takie problemy rozwiązuje się za pomocą kondensatora ceramicznego dopiętego pomiędzy port a masę