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

Sterownik klapki nawigacji z ATmega8 – obsługa przekaźników i przycisków open/close

badboypatryk 16 Lis 2014 17:44 2880 20
REKLAMA
  • #1 14137451
    badboypatryk
    Poziom 10  
    Posty: 13
    Witam potrzebuje zrobić sterowanie do nawigacji i pomyślałem o atmega 8 myślę ze da się to zrobić na tym mikroprocesorze a także o pomoc fachowców w napisaniu programu. A wiec do rzeczy sterować muszę otwieraniem i zamykaniem klapki oraz ustawieniem nachylenia. Przyciski jakie mam do wykorzystania to przycisk open/close i tittle oraz dwa sygnały otwarta klapka i zamknięta klapka. Mozę troszkę opisze według mnie jak to ma działać. Po naciśnięciu przycisku open/close to załącza mi przekaźnik od otwarcia klapki aż do uzyskania sygnału klapki otwartej kolejne wciśniecie przycisku open/close wysteruje mi przekaźnik zamykania klapki az do uzyskania sygnału klapki zamkniętej . Jeśli chodzi o przycisk tittle to tak zwane ręczne otwarcie lub zamkniecie tylko ze na przykład po otwarciu przyciskiem open /close po otwarciu można będzie skorygować przyciskiem tittle kont otwarcia czyli przymyka jak się trzyma przycisk. Myślę ze w miarę wyraźnie opisałem co chciałbym osiągnąć. Proszę o wyrozumiałość i ewentualne poprawki 
    pozdrawiam
  • REKLAMA
  • #2 14137468
    bearq
    Poziom 39  
    Posty: 4880
    Pomógł: 414
    Ocena: 1601
    Jakiś schemat, czy kawałek kody masz?
  • #3 14141439
    badboypatryk
    Poziom 10  
    Posty: 13
    Po przekręceniu kluczyka pojawia się nam napięcie na przekaźniku K1 który daje sygnał na PC1 że mamy włączone zasilanie i automatycznie sterownik powinien wystawić nam sygnał na wyjście PD0(zał/wył nawigacji K4) i na PD2(Otwarcie klapki K2) przy czym na PD0(zał/wył nawigacji) na jakieś 5sek. a na PD2(otwarcie klapki) do uzyskania sygnału z krańcówki KS3(klapka otwarta) na wejście PC3. Mamy teraz nawigacje włączoną i otwarta klapkę. Po wciśnięciu przycisku S1(open/close) i otrzymaniu sygnału na wejście PC5 sterownik powinien nam wystawić sygnał na PD1(zamykanie klapki K3) i PD0(zał/wył nawigacji K4) przy czym na PD0(zał/wył nawigacji) na jakieś 5sek. a na PD1(zamkniecie klapki) do uzyskania sygnału z krańcówki KS4(klapka zamknięta) na wejście PC2. Mamy nawigacje wyłączoną i klapkę zamkniętą. I po wciśnięciu przycisku S1(open/close) wystawia sygnał na PD2(otwarcie klapki K2) i na PD0(wył/zał nawigacje) przy czym na PD0(zał/wył nawigacji) na jakieś 5sek. a na PD2(otwarcie klapki) do uzyskania sygnału z krańcówki KS3(klapka otwarta) na wejście PC3. Przycisk S2(tittle) działa tylko gdy klapka jest otwarta a co za tym idzie nawigacja włączona. Gdy przycisk S2(tittle) daje sygnał na wejście PC4 sterownik powinien wystawiać sygnał tylko na PD1(zamykanie klapki). Sygnał ten wystawia równolegle do wejścia PC4 (S2 tittle) czyli jeśli trzymamy to zamyka(ktoś mi sugerował ze np. kolejne wciśniecie S2(tittle) może otwierać i każde wciśniecie będzie powodowało ze raz zamyka a raz otwiera nie wiem które lepsze zdaje się na fachowców w tej dziedzinie) ja myślałem ze może otwierać aż do sygnału z KS4(klapka zamknięta) i odrazu otwierać. Myślę że mnie rozumiecie o co chodzi. Po wyłączeniu zasilnia i zaniku napięcia na K1 sterownik nie otrzymuje sygnału na PC1 to znak że trzeba nawigacje wyłączyć czyli powinien wystawić sygnał na PD1(zamykanie klapki K3) i PD0(zał/wył nawigacji K4) przy czym na PD0(zał/wył nawigacji) na jakieś 5sek. a na PD1(zamkniecie klapki) do uzyskania sygnału z krańcówki KS4(klapka zamknięta) na wejście PC2. Podtrzymanie zasilania na tą operacje chcę uzyskać z kondensatorów C1 i C2

    dziękuje za wszystkie sugestie i porady i ewentualne poprawki schematu

    Sterownik klapki nawigacji z ATmega8 – obsługa przekaźników i przycisków open/close

    Dodano po 1 [minuty]:

    schemat odręczny bo synek nie pozwoli coś lepszego stworzyć
  • #4 14141514
    BlueDraco
    Specjalista - Mikrokontrolery
    Posty: 6479
    Pomógł: 939
    Ocena: 421
    Tak na początek: styki powinny zwierać wejścia do masy, a nie do plusa.
  • REKLAMA
  • #5 14141828
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    Słowotoki strasznie się czyta na ekranie komputera :)
    Staraj się w przyszłości jakoś pogrupować tekst, wypunktować itp.

    badboypatryk napisał:
    Podtrzymanie zasilania na tą operacje chcę uzyskać z kondensatorów C1 i C2

    Jeżeli to ma być 5 sekund, to musisz wykonać próby, bo C1 i C2 są przed regulatorem napięcia.
    Co ma działać przez te 5 sekund? Tylko mikrokontroler? Jeśli tak to należy ukłąd rozwiązać inaczej.
    Poza tym ATmega8A lub 8L, a nie standardowa ATmega8 z powodu możliwości zasilania niższym napięciem, co tutaj może być istotne a propos tych 5 sekund.

    A uwaga BlueDraco jest bardzo istotna.
  • REKLAMA
  • #6 14142240
    badboypatryk
    Poziom 10  
    Posty: 13
    Witam te 5 sekund to musi mi wysterować wył/zał nawigacji. A te kondensatory C1 i C2 to muszą mi utrzymać tak zasilanie aby po wyłączeniu zapłonu sterownik miał energie do wysterowania i uruchomienia silnika zamykania klapki. Zdaje sobie sprawę za pewnie dobór tych kondensatorów będę musiał dobrać eksperymentowalnie.
    Przepraszam ale nie za bardzo rozumiem BlueDarco.

    Tak na początek: styki powinny zwierać wejścia do masy, a nie do plusa.

    Można troszkę jaśniej.
  • #7 14142317
    LA72
    Poziom 41  
    Posty: 6583
    Pomógł: 646
    Ocena: 1649
    W twoim schemacie poprzez wciśnięcie przycisków doprowadzisz napięcie na port C.

    Poniżej przykład:
    Sterownik klapki nawigacji z ATmega8 – obsługa przekaźników i przycisków open/close
  • #8 14142593
    badboypatryk
    Poziom 10  
    Posty: 13
    Aha czyli tutaj powinno być gnd tak ??? Sterownik klapki nawigacji z ATmega8 – obsługa przekaźników i przycisków open/close


    Dobrze zrozumiałem jeśli nie to prosze pokazać mi na schemacie dziękuje
  • REKLAMA
  • #10 14144465
    badboypatryk
    Poziom 10  
    Posty: 13
    Powiem tak właśnie nie rozumiem dlaczego musi byc minus. Powiem tak że z avr-ów to bardzo rzadko korzystam tylko dla swojego hobby tylko że teraz nie mam czasu na zabawe i nuke. Było by mi bardzo milo jeśli mógłbyś mi to wytłumaczyć. Czyli mogę już płytkę robić. I szukać fachowca do napisania programu.
  • #11 14144944
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    Tak sądziłem dlatego zadałem pytanie. Chodzi o to, że aby mikrokontroler mógł odczytać poprawnie stan pinu, do którego podłączony jest przycisk, musi on (pin) przyjmować stan 1 lub 0.

    Tak jak podłączyłeś przycisk na początku wymusiłbyś stan 1 w momencie włączenia przycisku - więc OK. W tym momencie naładuje się bramka tranzystora MOSFET na wejściu tego pinu w mikrokontrolerze. Następnie zwalniasz przycisk i ... bramka nadal jest naładowana a mikrokontroler nadal widzi 1 na wejściu a Ty zdziwiony dlaczego? :)






    W takiej sytuacji należy do pinu dodać rezystor pull-down np. 1k zwierający pin do masy i rozładowujący go w momencie puszczenia przycisku.

    Ale jest inne rozwiązanie - wykorzystanie wewnętrznych rezystorów pull-up (podciągających do Vcc) znajdujących się w mikorkontrolerze na prawie każdym pinie. Włączamy programowo ten rezystor i mamy 1 na wejściu. Interpretujemy ją programem jako przycisk nieprzyciśnięty. Przycisk natomiast zamiast do Vcc podłączamy do GND. gdy go przyciśniemy pojawi się 0 a gdy puścimy rezystor pull-up ponownie wymusi jedynkę. W ten sposób zaoszczędzamy jeden rezystor dla każdego przycisku.

    Tak, możesz płytkę projektować, a fachowca do programu szukać nie musisz, bo sam go spokojnie napiszesz z naszą pomocą i przykładami. :)
  • #12 14145092
    badboypatryk
    Poziom 10  
    Posty: 13
    Aha teraz już rozumiem. Pamiętałem właśnie o tych rezystorach ale nie chciałem palnąć bo nie byłem pewien. No to super jak pomożecie tylko kurcze musicie mi naprawdę dużo pomagać bo szczerze nigdy nie pisałem programu a tu tez bym skłamał byłem raz na szkoleniu w programowaniu sterownika B&R ale było ono już na takim poziomie że dużo nie rozumiałem.
    Ok tak więc liczę na wasze pierwsze podpowiedzi i sugestie jak zacząć
    pozdrawiam
  • #13 14146965
    badboypatryk
    Poziom 10  
    Posty: 13
    Witam mam mały problem z płytka PCB. narysowałem schemat w eagle ale kurcze chce mi robić dwie warstwy może ktoś okaże trochę chęci i spróbuje zrobić PCB nie jest to skomplikowany schemat ale coś mi nie wychodzi. aha płytka musi mieć maksymalnie 11,5cmx5,5cm pozdrawiam
  • #14 14150060
    badboypatryk
    Poziom 10  
    Posty: 13
    Witam
    wszystko już mam
    zostało mi tylko program napisać ale potrzebuje waszej pomocy jak zacząć
  • #15 14153741
    dondu
    VIP Zasłużony dla elektroda
    Posty: 13906
    Pomógł: 1292
    Ocena: 809
    Zacznij od przerobienia przykładów z kursu AVR: http://mikrokontrolery.blogspot.com/2011/03/drzaskowy-pamietnik-wstep.html

    Następnie zapoznaj się ze zjawiskiem drgań styków: http://mikrokontrolery.blogspot.com/2011/04/przycisk-drgania-stykow-debouncing.html
    oraz biblioteką: http://mikrokontrolery.blogspot.com/2011/04/jezyk-c-biblioteka-obsluga-klawiatury.html

    Możesz śledzić także ten aktualnie omawiany wątek o tej bibliotece: https://www.elektroda.pl/rtvforum/topic2933236.html

    Gdy już to zrobisz, będziesz w stanie napisać swój program. Napisz go tak jak będziesz potrafił i wklejaj w tym temacie - będziemy go wspólnie analizować i poprawiać.
  • #16 14156767
    Konto nie istnieje
    Poziom 1  
  • #17 14157038
    vonar
    Poziom 28  
    Posty: 690
    Pomógł: 151
    Ocena: 30
    @emarcus
    Dwa przekaźniki wystarczą – np. DPDT do odwracania polaryzacji, SPST do włączania (SPDT jeśli z hamowaniem).
  • #18 14160016
    Konto nie istnieje
    Poziom 1  
  • #19 14192880
    badboypatryk
    Poziom 10  
    Posty: 13
    Czyli że na tym układzie co ja mam zrobiony to nie będzie działało ???

    Dodano po 5 [sekundy]:

    Czyli że na tym układzie co ja mam zrobiony to nie będzie działało ???
  • #20 14193495
    Konto nie istnieje
    Poziom 1  
  • #21 14607673
    badboypatryk
    Poziom 10  
    Posty: 13
    Witam coś próbuje zrobić z tym programem ale nie mam pojęcia czy wogole w dobrym kierunku i ten brak czasu jest straszny mam coś takiego jeśli by ktoś to mógł sprawdzić i ewentualnie poprawić bo ja już nie daje rady jak narazie dziękuje wszystkim za pomoc

    #define F_CPU 1000000L
    #include <avr/io.h>
    #include <util/delay.h>


    int main(void)
    {
    DDRD = 0xFF;
    DDRC = 0x00;
    PORTD = 0x00;
    PORTC = 0xff;
    int a,b,c;


    /* Petla programu glownego*/
    for(;;)
    {
    if(PINC & 0x01)
    {
    if(!(PINC & 0x08))
    {
    PORTD |= 0x04;
    //tu wstawic delay na 5sek na PD0
    };

    if((PINC & 0x40)&&(a != 1)) a = 1; //nacisnieto klawisz S1
    if((PINC & 0x40)&&(a == 1)) a = 0; //ponownie nacisnieto s1

    if(a == 1)
    {
    if(!(PINC & 0x04))
    {
    PORTD |= 0x02;
    //tu wstawic delay na 5sek na PD0
    };
    };

    if(a == 0)
    {
    if(!(PINC & 0x08))
    {
    PORTD |= 0x04;
    //tu wstawic delay na 5sek na PD0
    };
    };

    //tutaj siedzi obsluga S2
    if(PINC & 0x16)
    {
    if(PORTD & 0x01) PORTD |= 0x01;
    };

    };

    //tutaj zakonczenie dzialania ukladu
    if(!(PINC & 0x01))
    {
    if(!(PINC & 0x04))
    {
    PORTD |= 0x01;
    //tu wstawic delay na 5sek na PD0
    };
    };
    }
    }

Podsumowanie tematu

✨ Użytkownik planuje stworzyć system sterowania do nawigacji z wykorzystaniem mikroprocesora ATmega 8. System ma umożliwiać otwieranie i zamykanie klapki oraz regulację jej nachylenia za pomocą przycisków. W dyskusji poruszono kwestie dotyczące schematów połączeń, konieczności użycia rezystorów pull-down oraz problemów z zakłóceniami EMI przy użyciu przekaźników do sterowania silnikiem. Użytkownik otrzymał wskazówki dotyczące programowania oraz linki do materiałów edukacyjnych, które pomogą w napisaniu kodu. Wspomniano również o potrzebie wykonania płytki PCB oraz o problemach z jej projektowaniem.
Wygenerowane przez model językowy.
REKLAMA