klimek13 Napisano Marzec 10, 2018 Udostępnij Napisano Marzec 10, 2018 Witam, mam problem ze sterowaniem roletami. Założyłem dwa silniki do obu rolet, po dwie krańcówki na okno (góra i dół), zrobiłem sobie apke na androida i steruje tym przez bluetooth. Wszystko ogólnie działa, krańcóweczki wyłączają silnik gdy roleta sie opuści bądź podniesie. Ale jest jedno ale. Program jest dość prosty żeby nie powiedzieć banalny. Do przycisków w aplikacji przypisane są odpowiednio cyfry, 1, 2, 3, 4 i 0. Opuszczanie i podnoszenie rolety pierwszej to 1 i 2, zaś drugiej 3 i 4. Silniki zatrzymuje sie wysyłając 0. Mój problem polega na tym, że kiedy chcę sterować obiema roletami jednoczenie to raz działa wszystko, a innym razem kiedy włączam drugą rolete pierwsza przestaje działać. I w sumie właśnie tak powinno być bo program jest tak skonstruowany, że nie powinno sie dać sterować jednoczenie dwoma silnikami. Poniżej wklejam program. Jest ktoś w stanie powiedzieć co jest nie tak? Dodam że obie rolety działaja kiedy najpierw włączą tą drugą czyli wysyłam cyfre 3 a później pierwszą (cyfra 1). int odebraneDane; void setup () { Serial.begin(9600); pinMode(8, OUTPUT); //obroty w góre pinMode(9, OUTPUT); //obroty w dół pinMode(2, OUTPUT); //obroty w góre pinMode(3, OUTPUT); //obroty w dół pinMode(10, INPUT_PULLUP); // krańcówki pinMode(11, INPUT_PULLUP); pinMode(12, INPUT_PULLUP); pinMode(13, INPUT_PULLUP); } void loop() { if(Serial.available()>0) { odebraneDane=Serial.read(); } if ((odebraneDane == '1') && (digitalRead(10) == HIGH)) { digitalWrite(8, HIGH); digitalWrite(9, LOW); } else if ((odebraneDane == '2') && (digitalRead(11) == HIGH)) { digitalWrite(9, HIGH); digitalWrite(8, LOW); } else if ((odebraneDane == '3') && (digitalRead(12) == HIGH)) { digitalWrite(2, HIGH); digitalWrite(3, LOW); } else if ((odebraneDane == '4') && (digitalRead(13) == HIGH)) { digitalWrite(3, HIGH); digitalWrite(2, LOW); } else { digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); } delay(50); } Cytuj Link do komentarza Share on other sites More sharing options...
klimek13 Marzec 12, 2018 Autor tematu Udostępnij Marzec 12, 2018 Odłączyłem silniki i kiedy sprawdzam miernikiem to bez znaczenia jakie kombinacje zastosuje (mogę jedną opuszczac drugą podnosić) to miernik na wyjsciach do podłączenia silników pokazuje napięcie takie jakie powinno być. Podlacze silniki i chce opuścić obie rolety na raz, klikam przycisk od jednej rolety i leci w dół, klikam przycisk od drugiej i tez leci w dol ale pierwsza sie zatrzymuje. Kiedy zrobię odwrotnie czyli najpierw zaczne opuszczac drugą rolete a pozniej puerwsza to działa. Ale tez nie zawsze. Na odłączonych silnikach moge robic co chce i podaje napiecie jednocześnie na oba silniki. Obie opuszczam, obie podnoszę, jedną opuszczam drugą podnoszę i jest napięcie na wyjściu. Na podlaczonych silnikach wariuje. Dodam że zastosowany jest sterownil silnika l293d. Jeden silnik pobiera max 200mA pradu bo sprawdzalem miernikiem. To oba wezmą łącznie 400mA. Przy czym sterownik pozwala na max prad jednego silnika 600mA. Zgłupiałem totalnie. Jaki wplyw na działanie programu moze miec fakt czy silniki są odlaczone lub podłączone. Atmega wariuje na podlaczonych silnikach... Cytuj Link do komentarza Share on other sites More sharing options...
deshipu Marzec 12, 2018 Udostępnij Marzec 12, 2018 Spadek napięcia zasilania i restart mikrokontrolera. Cytuj Link do komentarza Share on other sites More sharing options...
klimek13 Marzec 12, 2018 Autor tematu Udostępnij Marzec 12, 2018 Ale modul bluetooth, sterownik silnika i atmege mam podłączoną pod stabilizator 5V. Zasilanie silnikow mam z oddzielnego stabilizatora 8V wiec to na nim bedzie spadek raczej. Przy zasilaniu atmegi i kazdym innym zasilaniu mam kondensatory który wydaje sie powinny filtrować tego typu spadki napięć. Poza tym gdyby atmega sie zrestartowala to nie wiem czy dalej by ta druga roleta sie opuszczała. Dlaczego obie sie nie zatrzymują tylko jedna? Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
Jamik Marzec 12, 2018 Udostępnij Marzec 12, 2018 Pokaż schemat. Wtedy łatwiej będzie wyszukać przyczynę. Cytuj Link do komentarza Share on other sites More sharing options...
klimek13 Marzec 12, 2018 Autor tematu Udostępnij Marzec 12, 2018 Oto schemat. Wydaje mi sie że powinno byc widac wszystko. __________ Komentarz dodany przez: Treker Cytuj Link do komentarza Share on other sites More sharing options...
Jamik Marzec 12, 2018 Udostępnij Marzec 12, 2018 To jeszcze dwa pytania. Co to za silniki, bo te 200mA to mi się wydaje ciut mało, i z czego zasilasz cały układ. Cytuj Link do komentarza Share on other sites More sharing options...
klimek13 Marzec 12, 2018 Autor tematu Udostępnij Marzec 12, 2018 Silniczki to zwykłe serwa pelnoobrotowe 360 stopni. Układ zasilany jest zasilaczem 12v o wydajności do 3A. Cytuj Link do komentarza Share on other sites More sharing options...
Jamik Marzec 12, 2018 Udostępnij Marzec 12, 2018 Zwykłe, czyli takie: https://botland.com.pl/serwa-praca-ciagla-360/4689-serwo-feetech-fs90r-micro-praca-ciagla-360-stopni.html takie: https://botland.com.pl/serwa-praca-ciagla-360/1882-serwo-powerhd-ar-1201mg-praca-ciagla.html czy może takie: https://botland.com.pl/serwa-praca-ciagla-360/7621-pololu-xyzrobot-smart-servo-a1-16-praca-ciagla-25kgcm.html Bo serwo, serwu nierówne. Nawet to najsłabsze w zatrzymaniu (a więc i w rozruchu) może pobrać ponad 700mA. Edit: Zaraz. Ale jak to serwa? Przez mostek? Cytuj Link do komentarza Share on other sites More sharing options...
klimek13 Marzec 12, 2018 Autor tematu Udostępnij Marzec 12, 2018 Może te wszystkie elementy umiescilem zbyt blisko siebie na płytce i są jakies zakłócenia. Bo nie wspomnialem o tym ale cały sterownik jest na plytce pcb. Wytrawilem, polutowalem i myślałem że bedzie spoko. Szkoda że nie sprawdzilem tej sprawy z dwoma roletami jednocześnie jak jeszcze miałem caly uklad na płytce stykowej. Sprawdzalem wszystkie ścieżki i zwarcia nie ma. Wszedzie na każdym pinie jest napięcie takie jakie powinno byc w danej chwili. Juz zgłupiałem w tej chwili. Dodam jeszcze że ten stabilizator na 5v bardzo się grzeje mimo że płynący przez niego prąd jest raczej niewielki bo zasila on tylko modul bluetooth, atmege i sterownik silnika a te elementy nie pobierają duzo prądu. [ Dodano: 12-03-2018, 21:50 ] Serwo cos pokroju tego z drugiego przykładu. Tak przez mostek bo wywalilem tą płytkę ze środka i przylutowałem przewody. Teraz serwo pracuje jak zwykly silnik. Cytuj Link do komentarza Share on other sites More sharing options...
Jamik Marzec 12, 2018 Udostępnij Marzec 12, 2018 No tak. Ale musi zbić napięcie z 12V na 5. Czyli wydzielać się musi na nim więcej mocy niż zużywają wszystkie zasilane przez niego elementy razem wzięte. Edit: To takie serwo spokojnie na rozruch może ponad 1A pobrać. Cytuj Link do komentarza Share on other sites More sharing options...
klimek13 Marzec 12, 2018 Autor tematu Udostępnij Marzec 12, 2018 Mierzylem prąd i podczas opuszczania rolety serwo pobiera okolo 170 mA zaś przy podnoszeniu gdy ma ciężej okolo 200 mA z małym hakiem. Dodam że akurat przy podnoszeniu obu na raz częściej działa ta opcja niz przy opuszczaniu. Poza tym przeciez gdyby atmega sie resetowala przez spadki napiec to oba silniczki by sie zatrzymały. Cytuj Link do komentarza Share on other sites More sharing options...
Jamik Marzec 12, 2018 Udostępnij Marzec 12, 2018 Problem może być nie po stronie atmegi, tylko mostka. To co mi przychodzi do głowy to spadek napięcia na nim. Silniki nigdy nie są identyczne, więc być może jeden pożera większość prądu i pracuje a drugi nie daje rady ruszyć. Mierzyłeś napięcie na silnikach? Może tu jest pies pogrzebany? Cytuj Link do komentarza Share on other sites More sharing options...
klimek13 Marzec 12, 2018 Autor tematu Udostępnij Marzec 12, 2018 No to załóżmy ze pobiera przy rozruchu ten jeden amper. W nocie katalogowej mostka jest info że wytrzymuje chwilowy prąd 1.2 ampera. No ale załóżmy że nie wytrzymuje tyle, to nie powinien sie spalić mostek? Jaki to może miec wpływ na to czy mikrokontroler daje sygnal czy nie? Byc może masz racje ale chciałbym to zrozumieć. Bo dalej nie widze związku tych faktów. [ Dodano: 12-03-2018, 22:11 ] Tzn mierzylem prad i oba pobierają praktycznie tyle samo. Napiecie w trakcie pracy jednego silnika jest 6.2 V bo na mostku jest spadek. No to ok. Przykladowo mostek nie wyrabia i jest na nim taki spadek napiecia że drugi silnik sie zatrzymuje. Tylko dlaczego gdy uruchamiam je w innej kolejności to działa. Mało tego, sprawdzałem napięcie na wyjsciu z atmegi gdzie wychodzi sygnał do mostka i właśnie gdy uruchamiam silnik drugi to na pinie gdzie jest sygnal pierwszego silnika z 5V robi sie 0V. Tego nie mogę zrozumiec. Bo to ze mostek moze nie wyrabiac to daloby sie wytlumaczyc. Cytuj Link do komentarza Share on other sites More sharing options...
Jamik Marzec 12, 2018 Udostępnij Marzec 12, 2018 Czy przy sterowaniu, przed cyfrą nie pojawia się jakiś znak, który zatrzymywałby oba silniki? Spróbuj zastąpić ostatnie "else" warunkiem wystąpienia "0". Tylko wtedy nie zadziała krańcówka... Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!