Elektroda.pl
Elektroda.pl
X
Sklep HeluKabel
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Atmega328P - Zawiesza się przy obciążonym przekaźniku

MrChewe 27 Sty 2016 10:55 1218 23
  • #1 27 Sty 2016 10:55
    MrChewe
    Poziom 6  

    Witam,

    Problem dotyczy zawieszania się atmegi328p ,gdy na którymś z przekaźników
    mam podpiętą żarówkę 60W (i zaczynam nią szybko mrugać),
    gdy nie podpinam żarówki to wszystko idealnie pracuje.

    Dołączam schemat mojego układu (na ten moment wykonany na płytce stykowej)
    Atmega328P - Zawiesza się przy obciążonym przekaźniku

    Moderowany przez tmf:


    Usunąłem treści niepotrzebne
    3.1.10. Nie reklamuj stron internetowych lub usług w jakiejkolwiek formie.



    Niestety podejrzewam, że jednak coś "sknociłem" przy filtracji zasilania:(.
    Winę programu, myślę można wykluczyć, ponieważ okroiłem go i zostawiłem do testu tylko 2 przyciski plus przekaźniki do nich , i także się zawieszał(przy szybkim klikaniu przyciskiem)

    Przyciski są na panelu(już tego nie rysowałem) ,są tam 3 pcfy8574(zasilania mają kondensator ceramiczny 100nF, a zasilanie jest podpięte przez rezystor 1KOhm)

    Moduł do sterowania przekaźnikami to ULN2803(zapomniałem nazwać).
    Zasilanie rozdzieliłem na optotriaku(widać na schemacie), atmega zasilana jest z laboratoryjnego zasilacza , a przekaźniki z jakiegoś (chińskiego) na 12V

    Przewody na płytkę z klawiaturą długość 20cm
    Przewody z atmegi do optotriaka 20-25cm
    Reszta max 5cm

    Kondensatory ceramiczne bardzo blisko nóżek atmegi,pcf'ow,stabilizatora
    Na schemacie dałem zły symbol kondensatora ceramicznego ale wszystkie 100nF i 15nF to ceramika
    100uF i 22uF to elektrolit
    AAAA i przy SDA , SCL podciągnięcie przez 4k7R

    Docelowo sterownik ma sterować trakiem taśmowym gdzie jest kilka silników, większość 0,75kW i jeden 7,5kW, więc zakłócenia będą większe niż z żarówki.:(

    0 23
  • Sklep HeluKabel
  • Pomocny post
    #2 27 Sty 2016 12:34
    excray
    Poziom 39  

    Na schemacie masz AREF zwarte do zasilania. Pokaż kod. Dlaczego masz taki dziwny sposób sterowania transoptorami - zwierasz zasilający je rezystor do masy? Generuje to znaczy prąd na pinie masy w uC.

    0
  • Pomocny post
    #3 27 Sty 2016 12:49
    dondu
    Moderator Mikrokontrolery Projektowanie

    Pokaż zdjęcia.

    1. Transoptory są źle podłączone.
    2. Nie podłączaj AREF do Vcc: http://mikrokontrolery.blogspot.com/2011/03/avr-adc-podlaczenie.html
    Skoro nie używasz ADC, możesz go zostawić niepodłączony.
    3. Filtrowanie ULN także warto dodać.

    4. No i najważniejsze pytanie: Dlaczego przekaźniki?
    Przeczytaj: http://mikrokontrolery.blogspot.com/2011/03/przekaznik-i-zaklocenia.html

    Drobne:
    5. Symbol Vcc (12V i 5V) podłączasz nieprawidłowo. Pomijam już fakt, że kierujemy strzałkę w górę, ale na pewno nie w kierunku przewodu. Innymi słowy tak jak przy przekaźnikach jest prawidłowo.
    6. W jakim celu PD3 i PB2 są podłączone do Vcc przez rezystory?

    0
  • Sklep HeluKabel
  • Pomocny post
    #4 27 Sty 2016 12:50
    atom1477
    Poziom 43  

    Daj gasiki na stykach przekaźników.
    Np. rezystor 39R/1W i kondensator 10nF/630V połączone szeregowo.

    0
  • Pomocny post
    #5 27 Sty 2016 13:42
    szelus
    Specjalista - Mikrokontrolery

    I jeszcze, skoro już stosujesz optoizolację, to dlaczego transoptory, na wyjściu, podlączasz do tego samego zasilania, co mikrokontroler? I po co dwa rezystory (R16+R17 itd.) w szereg?
    Poprawnie byłoby dać R17 od wejścia ULN do masy, R16 zwiekszyć do np. 1k i zasilić z tego samego zasilania, co ULN.

    0
  • #6 27 Sty 2016 13:59
    MrChewe
    Poziom 6  

    Z AREF się pomyliłem na schemacie

    Przekaźniki dałem dlatego ponieważ muszę załączyć stycznik 3fazowy cewke ma na 230V, do uruchomienia silnika

    I tak ,jeden przekaźnik uruchamia stycznik na którym silnik kręci się w lewo ,
    drugi w prawo, tak mam rozwiązane podnoszenie piły góra, dół

    Pozostałe 3 przekaźniki odpowiadają za załączenie falownika do przodu i do tyłu,
    wiem , że tutaj można by na rs485 ,ale nie czuję się na siłach, chyba ,że nie ruszy na przekaźnikach to będę musiał zrobić rs485 i dokupić falownik do silnika który podnosi piłę w górę i dół

    Wydawało mi się, transoptory są dobrze podpięte , tylko tak mi to zadziałało
    Transoptor odpalam podając wysoki stan na wyjściu z mikrokontrolera.
    Będę szukał jakiegoś schematu jeszcze do tych transoptorów


    Jeżeli chodzi o zasilanie to wyjście z transoptora jest zasilone 5V ale z drugiego zasilacza , zrobiony taki sam stabilizator na 5V jak do mikrokontrolera bo nie wiem czy mogłem tam 12V podać

    0
  • Pomocny post
    #7 27 Sty 2016 14:10
    atom1477
    Poziom 43  

    Jeżeli podajesz stan wysoki z mikrokontrolera przy takim podłączeniu jak na schemacie z pierwszego postu, to jest to absurd do kwadratu. Kolejny przykład złego podłączenia transoptora.
    Pierwszym było pomylenie kolektora z emiterem.

    0
  • #8 27 Sty 2016 14:57
    MrChewe
    Poziom 6  

    wow poprawiłem optoizolację według tego schematu

    Atmega328P - Zawiesza się przy obciążonym przekaźniku

    ,teraz praktycznie nie skacze natężenie przy załączeniu przekaźnika, powiedzcie jeszcze jedno ,sterować niskim czy wysokim stanem.

    Zaraz sprawdzę czy teraz będzie się zawieszał, i poprawie schemat


    Niestety zawieszanie zostało

    0
  • Pomocny post
    #9 27 Sty 2016 16:11
    szelus
    Specjalista - Mikrokontrolery

    Może zrób zdjęcie, jak to wygląda; w szczególności zasilanie.
    Pytanie podstawowe - po czym poznajesz, że się zawiesza?

    0
  • #10 27 Sty 2016 16:32
    MrChewe
    Poziom 6  

    Gdyby się resetował to by wracał do napisu początkowego(tak się dzieje jak podam masę na reset), a on zostaje w tym miejscu gdzie był i przyciski przestają działać, zero oddzewu, zacząłem robić gasik ale coś źle podpiąłem albo dobrałem bo rezystor się nagrzał do czerwoności

    0
  • Pomocny post
    #12 27 Sty 2016 17:27
    szelus
    Specjalista - Mikrokontrolery

    + jednak program. I zdjęcia tego panelu.
    Mocno podejrzewam, że jak coś się wiesza, to program lub PCF.
    Możesz też podłączyć LEDa (z rezystorem) np. pod PB2 (do czego ma służyć R5?) i dodać zapalanie i gaszenie w newralgicznych miejscach - będziesz bardziej wiedział, co się dzieje.
    Albo napisać program testowy, który będzie w pętli przełączał te przekaźniki - jeżeli to problem z zasilaniem procesora, to też powinien się reprodukować.

    0
  • #13 27 Sty 2016 17:59
    MrChewe
    Poziom 6  

    Dzięki za podpowiedź problem leży w pcf'ach
    zrobiłem pętelkę z załączeniem przekaźnika z przerwą 15ms przekaźnik ,działa i nic się nie dzieje.

    Ale doradźcie teraz co mam zrobić z tymi pcf'ami , przyciski muszą być
    konkretnie 24szt, chyba że można zastosować inny układ(bardziej odporny)

    Zdjęcia panel z przyciskami
    Atmega328P - Zawiesza się przy obciążonym przekaźniku

    Atmega328P - Zawiesza się przy obciążonym przekaźniku

    0
  • Pomocny post
    #14 27 Sty 2016 19:07
    atom1477
    Poziom 43  

    Projekt płytki jest fatalny.
    Do tego schemat połączeń (brak kondensatorów filtrujących zasilanie).
    Tu nie trzeba myśleć o zmianie układów ale o zmianie płytki.
    Poza tym to nie pdfy się zawieszają tylko procek. A konkretnie jak się domyślam transmisja I2C (pewnie w kodzie jest jakieś oczekiwanie na konkretny stan transmisji, i nie jest ono odporne na stany nieoczekiwane).

    0
  • #15 27 Sty 2016 19:31
    MrChewe
    Poziom 6  

    A ja byłem taki dumny z mojej pierwszej płytki , ..... a tu ......
    Jeśli chodzi o Vcc to jest filtracja na stykowej 44uF elektrolit i 100nF ceramika
    a na płytce faktycznie nie zrobiłem kondensatorów, ale dolutowałem ceramiczne od spodu, wszystkie vcc,

    Jeśli chodzi o oprogramowanie to faktycznie sprawdzam konkretne wartość pcfa
    ,ale jak nie spełnia warunku to powinien zacząć pętlę od nowa

    0
  • #16 27 Sty 2016 19:37
    atom1477
    Poziom 43  

    Ale mi chodzi o wartości maszyny stanów która zarządza transmisją I2C.
    Do tej pory nie widziałem programu, więc nie wiem jak masz zrobioną obsługę transmisji I2C.

    0
  • #17 27 Sty 2016 19:51
    MrChewe
    Poziom 6  

    Biblioteka i2c, z netu gdzieś znalazłem

    Kod: c
    Zaloguj się, aby zobaczyć kod


    main.c
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #18 27 Sty 2016 20:20
    szelus
    Specjalista - Mikrokontrolery

    Ja tam się nie znam, ale gdzie są rezystory terminujące I2C?
    Elektrolit koniecznie na płytce przycisków. Może być drugi. :)

    0
  • #19 27 Sty 2016 20:44
    MrChewe
    Poziom 6  

    jak chodzi o rezystory na sda,scl to są przy uC wartości 4,7KOhm

    0
  • #20 27 Sty 2016 21:06
    szelus
    Specjalista - Mikrokontrolery

    Na schemacie nie ma. :)
    Spróbuj zmniejszyć do 1,5k.

    A tak poza tematem, to patrząc na to wszystko trochę się obawiam, że tym trakiem to zrobisz sobie, albo co gorsza komuś, krzywdę...

    0
  • #21 28 Sty 2016 13:41
    MrChewe
    Poziom 6  

    Problem faktycznie leży w płytce , zrobiłem na stykowej tylko, że jeden pcf, ale dodałem elektrolit i ceramikę na zasilanie, plus na przycisku dodałem sprzętową eliminację drgań styków , i nie wiem co pomogło ale to mi się nie zawiesza.
    Natomiast na płytce dodałem elektrolity i ceramikę od spodu i było bez efektu, więc pewnie najlepszy efekt daje , sprzętowa eliminacja drgań styku na przycisku

    0
  • #22 28 Sty 2016 17:45
    szelus
    Specjalista - Mikrokontrolery

    Jeżeli mogę się jeszcze wtrącić - na Twoim miejscu przemyślałbym jeszcze raz całą koncepcję.
    Chodzi o to, że I2C to nie jest szyna przemysłowa. Natomiast od sterownika dużej, bądź co bądź, maszyny wymaga się pewnej niezawodności. I zupełnie nie chdzi mi o żadne przepisy czy coś, bo się na nich nie znam, ale o zdrowy rozsądek.
    Sądząc po fragmencie programu, który pokazałeś, wygląda mi, że zamierzasz podłączyć m.in. krańcówki przez te PCF-y, dobrze zinterpretowałem?
    To nie jest dobry pomysł. Powiedziałbym, ze w maszynie występują (co najmniej) dwie klasy sygnałów:
    1. sygnały, których przekłamanie może doprowadzić do (dalszego) uszkodzenia sprzętu (nie mówiąc już o ludziach),
    2. pozostałe sygnały.
    I sygnałów z obu grup nie powinno się traktować tak samo (no chyba, że kogoś stać, by wszystkie traktować, jak te z grupy 1).

    Krańcówki należą zazwyczaj do pierwszej grupy, przy obsłudze której należy przede wszystkim myśleć o niezawodności. Co sprowadza się do starej, dobrej zasady "nie komplikować rzeczy bardziej, niż jest to absolutnie niezbędne".
    W związku z czym uważam, że najlepiej tutaj się sprawdza podłączenie wprost do wejścia procesora. Wprost, znaczy jedynie poprzez układ dopasowujący, zapewniający jakąś ochronę przed zakłóceniami i przepięciami. Korzystanie z układów w rodzaju PCF to proszenie się o kłopoty, jak widać na przykładzie.
    Do pierwszej grupy zaliczyłbym też ewentualne przyciski do ręcznego sterowania maszyną, w rodzaju start, stop, jazda itp.
    Natomiast sygnały z grupy drugiej nie wymagają takiej atencji. Np. wyświetlacz, klawisze do sterowania menu itp. możesz podłączyć przez PCF. A jak brakuje wejść/wyjść, to po prostu możez wziąć większy procesor. Ewentualnie można by podłączyć wyjścia (na opto) przez ekspander na SPI w rodzaju 74LS595, jak nie będziesz tego ciągał na inną płytkę. :)

    Powodzenia.

    0
  • #23 29 Sty 2016 00:48
    MrChewe
    Poziom 6  

    szelus ,Dzięki za radę, za bardzo się wkręciłem tym ,że mogę mieć masę wy/we.
    Wszystko na tym miało być robione :)

    Powiem tylko tyle ,że dzisiaj zrobiłem test z odpiętym panelem, (wgrałem program ) ,żeby podnosił przez 2s do góry potem jazda p 10s , opuszczanie 2s, i znowu jazda t 10s.

    Sterownik nie zawiesił się ani razu, a działał z 1,5h i do tego jeszcze załączaliśmy mu od czasu do czasu piłę ,czyli silnik 5,5kW ,gdzie potrafiło delikatnie przygasić światło.

    Pytanie teraz takie, (bo odeszła mi ochota całkowicie na pcf'y ,a na jeden uC nie upchnę wszystkiego).

    Czy RS232 będzie się nadawał do komunikacji między uC , przy takich zakłóceniach. 2xatmega 32L, Jedną dał bym na panel, ładnie by przefiltrowała dane i wysłała gotowe info na drugą, więcej kombinacji ale chyba najstabilniejsze?

    A może atmega 32L ,a na pcfy zostawić tylko klawiaturę 0-9 i lcd (tyle ,że jak ten pcf się wywalał(komunikacja) to i tak zawieszał uC, a jak go zostawię to prawdopodobieństwo istnieje)?

    A powiedzcie mi jeszcze jedno czy jak przewody od krańcówek(4szt) będą długości ok 2m(pewnie jakaś dobra skrętka), podpinane pod uC ,będzie to stabilne??

    0
  • #24 02 Lut 2016 11:52
    MrChewe
    Poziom 6  

    Problem z pcf'ami rozwiązany, panel działa , ale i tak zmienię koncepcję całego układu na tą którą doradził szelus.

    Gdyby ktoś miał kiedyś podobny problem , rozwiązania szukajcie w programie, ja źle napisałem funkcję do podnoszenia (w zasadzie cały program będę przerabiał,mam nowy lepszy pomysł) , na ten moment problem rozwiązałem delay'em 5ms, ta przerwa wystarcza by komunikacja się nie zawieszała

    0