Skocz do zawartości

Rolety i arduino


klimek13

Pomocna odpowiedź

Nic innego poza cyfra nie jest wysyłane.

[ Dodano: 12-03-2018, 22:33 ]

Gdybym zastapil warunkiem to by zadzialala krancowka z tego co mi sie wydaje. Dlaczego by nie zadziałała? Tylko nie bardzo rozumiem zwiazku bo skoro na odlaczonych silnikach dziala wszystko to przy obciążeniu program się nie zmienia przecież.

Link do komentarza
Share on other sites

Wróciłem do programu, bo wspomniałeś, że to Atmega wysyła błędny sygnał sterujący. Jeżeli mikrokontroler masz w podstawce, to spróbuj go wyjąć i wymusić dwoma kabelkami uruchomienie przez mostek silników. Jeśli to zadziała za każdym razem, to mostek sobie radzi.

Program, z tego co widzę wyłącza oba silniki wtedy, jeżeli dostane sgnał inny niż 1,2,3,4, albo kiedy zwarta zostanie krańcówka. Może więc pojawia się fałszywy sygnał od krańcówki, albo odbierany jest jakiś fałszywy znak który wyłącza oba silniki, a potem już poprawny włącza drugi silnik.

Link do komentarza
Share on other sites

Nie wiem za bardzo jak mam to zrobic z tymi dwoma kabelkami? Mógłbyś to jakoś bardziej wyjaśnić? Co masz na mysli mówiąc błędny sygnał od krancowki? Tez nie bardzo rozumiem. Ten falszywy znak to raczej odpada ale postaram sie sprawdzić. Tylko dlaczego ten falszywy znak nie jest wysylany gdy silniki są odłączone? Dziwne to wszystko. Jeszcze sie z czymś takim nie spotkałem.

Link do komentarza
Share on other sites

Skoro sterujesz mostkiem, to robisz to podając określone sygnały (5V lub 0V) na jego wejścia sterujące. Podaj je bez pośrednictwa Atmegi. Jeśli uruchomienie obu silników tą metodą będzie wywoływało podobne efekty co teraz, to mostek nie wyrabia. Jeśli nie, to problem jest w sterowaniu przez Atmegę.

Błędny sygnał od krańcówki może być spowodowany tym, że pojawia się skok napięcia przy uruchamianiu silnika i na wejściu Atmegi na chwilę pojawia się sygnał taki, jak przy zwartej krańcówce. Wtedy program zatrzymuje oba silniki. A że sygnał zanika, to drugi silnik rusza, ale pierwszy już nie.

A co do fałszywego znaku, to też może być spowodowane zakłóceniami. Jeśli pojawi się błędny znak (spoza grupy 1,2,3,4) to program pominie wszystkie warunki i wykona ostatni (ten z samego else), czyli zatrzyma wszystkie silniki. A potem, już poprawny sygnał uruchomi drugi silnik.

Czy program sterujący z komórki wysyła tylko jeden raz cyfrę, czy kilka razy?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Program wysyła cyfrę tylko raz. Ale dzięki za rady. Spróbuję to posprawdzać w najblizszym czasie bo akurat dzisiaj wyjechalem i nie mam tego przy sobie ale jak wroce do domu to biore sie za sprawdzanie. Jeszcze tylko zapytam, no bo np te zaklocenia typu "inny znak" mogę wyeliminowac jakos programowo np zamieniajac te else na warunek albo wgl jakos inaczej sformułować program. Ale jak pozbyć się zakłóceń z krancowki. I w dalszym ciagu nie rozumiem jak to zakłócenie z krancowki by moglo powstać. Przeciez zasilanie silników jesy odseparowane od zasilania atmegi. A krancowki sa podlaczone do mikrokontrolera.

[ Dodano: 12-03-2018, 23:50 ]

Mimo wszystko odrzucilbym opcję z wysylalem blednych przypadkowych znaków bo skoro daną cyfre wysylam tylko raz to gdyby pojawily sie zaklocenia w trakcie ruszania silnika to juz wiecej ta cyfra nie jest wysylana i oba silniki by sie zatrzymały. Jedynie z tą krancowką jakos by sie przydalo sprawdzic i ten mostek sprawdze chociaż tez mysle ze on spokojnie daje radę.

Link do komentarza
Share on other sites

Działanie programu najłatwiej prześledzisz, jeśli dopiszesz mu sygnały zwrotne, które możesz odebrać za pomocą komputera, czy komórki. Niech każdy otrzymany rozkaz odsyła, zmianę krańcówki, czy moment uruchomienia mikrokontrolera (w razie resetu będzie wiadomo co się dzieje).

Mnie swego czasu restartowało się arduino pomimo tego, że zasilane było przez odrębny stabilizator. Po prostu były zbytnie spadki napięć. A do resetu wystarczyło uruchomienie zwykłych silniczków napędowych.

Spróbuj zasilić logikę z zupełnie osobnego źródła, baterii 9V, albo powerbanka.

Zakłócenia mogą przenieść się na przewody przyłączeniowe krańcówek, jeśli są one i biegną równolegle do tych, które zasilają silniki. Jeśli tu byłby problem, zastosuj podciągnięcie rezystorem 10k (albo nawet słabszym) zamiast wewnętrznym pullupem. Można by też spróbować dać tam kondensator.

Co do chwilowych skoków poboru prądu, o zwykły multimetr Ci ich nie pokarze. Jest zbyt wolny. A silnik elektryczny na początku rozruchu może pobrać 8-10 razy większy prąd niż przy normalnej pracy. Żeby to zauważyć musiałbyś podłączyć miernik analogowy (pokazałby ten skok), jakiś szybki miernik, albo oscyloskop.

Link do komentarza
Share on other sites

No z tym mozesz miec rację. Spróbuję wyjąć atmege z podstawki. Włożyć ją z powrotem do arduino i kabelkami podłączyć wszystkie potrzebne piny. Wtedy bedzie miala oddzielne zasilanie. Z tymi krancowkami tez dobry pomysł. Sprobuje to wszystko posprawdzac. Dzieki wielkie. Mam przynajmniej jakis punkt zaczepienia bo juz zgłupiałem porządnie.

Link do komentarza
Share on other sites

Ja jak to wszystko posprawdzam i nic nie wskuram to dalej cie będę męczył i pytał. To już nie chodzi nawet o to ze nie dziala jak powinno. Bo ja spokojnie mogę te rolety opuscic oddzielnie, mi sie nie spieszy. Tylko ja mam taki glupi charakter że jak cos nie dziala zgodnie z zamyslem i nie wiem czemu jest tak a nie inaczej to musze za wszelką cene sie tego dowiedzieć. Dopiero sie ucze elektroniki i programowania dlatego tym bardziej jestem dociekliwy. Nie mam zbytnio kogo zapytać wsrod znajomych bo nikt sie nie interesuje takimi rzeczami i musze was tutaj męczyć 😃 Dzięki jeszcze raz poświęcony czas i pomoc.

Link do komentarza
Share on other sites

I jeszcze jedno co mi przyszło do głowy. Piszesz, że programujesz w Arduino, a na schemacie masz oscylator 8MHz (Arduino działa na 16MHz). To błąd na schemacie, czy tak jest w rzeczywistości? Bo jeśli tak jest, to aż się dziwię, że jakiekolwiek polecenia są dla Atmegi czytelne, bo oczekuje danych z szybkością 4800 a nie 9600 (ze względu na 2x wolniejsze taktowanie).

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.