Skocz do zawartości

Rolety i arduino


klimek13

Pomocna odpowiedź

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);
}





Link do komentarza
Share on other sites

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...

Link do komentarza
Share on other sites

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?

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

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?

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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ć.

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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?

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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...

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.