Tytuł: 5 przekaźników sterowanych 5 kanałami z odbiornika RC
Napisane: środa, 4 listopada 2015, 21:54
Moderator
Dołączył(a): czwartek, 12 kwietnia 2012, 10:46 Posty: 5441 Wiek: 42 Lokalizacja: Kraków
Pewnie niewielu czytających obchodzi, że sterowanie Arduino za pomocą sygnału z odbiornika RC jest dość trudne. Nie dość, że czasy które trzeba policzyć są dość krótkie to jeszcze Piotrek złośliwie zamówił sterowanie 5 kanałami Nie patrząc na to, że małe Arduino ma tylko 2 porty, które mogą to wykonać - to te oznaczone jako INT0 i INT1 (porty 2 i 3) a co za tym idzie można sczytać tylko 2 kanały z odbiornika...
Załącznik:
ProMini.png [ 329.64 KiB | Przeglądane 7351 razy ]
Całość operacji polega na wychwyceniu na porcie, że coś się zmienia, uruchomieniu licznika, który policzy o ile to coś się zmieniło i następnie wykonaniu jakiejś czynności. I to wszystko razy 5. Żeby to zrobić wykorzystujemy przerwania. I tu zaczynają się schody gdyż jak wspominałem, najmniejsze płytki Ardunio (pro mini, nano, uno, itd) bazują na Atmedze328, która ma aż 2 porty obsługujące przerwania... a każde przerwanie może obsłużyć 1 kanał RC Do zamówionych 5 jest więc dość daleko.
Ale dość narzekań. Z pomocą przychodzi biblioteka PinChangeInt dostępna pod adresem: https://github.com/GreyGnome/PinChangeInt Ściągamy, rozpakowujemy wrzucamy do katalogu z bibliotekami.
W środku biblioteki w załączonych przykładach nie znajdziecie jednak takiego wykorzystania jak to poniższe.
Odbiornik RC podłączamy do portów: A1, A2, A3, A4, A5 a "przekaźniki" do portów: 12,11,10,9,8
wymienione w kolejności więc wejście A1 odpowiada wyjściu 12, itd
Na wyjściu nie musi to być oczywiście przekaźnik, może być tranzystor, dioda LED, czy coś innego.
W moim filmowym przykładzie wykorzystałem gotowy moduł więc nie musiałem się martwić o nic więcej, jeśli sami robicie płytkę z przekaźnikami pamiętajcie o diodach zabezpieczających jak na poniższych malunkach.
Załącznik:
Relay_KA05.jpg [ 25.63 KiB | Przeglądane 7351 razy ]
Załącznik:
FOLEWR3G1QWARRC.MEDIUM.jpg [ 8.01 KiB | Przeglądane 7351 razy ]
Miłego włączania.
edyta 11.07.2017: W kodzie była mała literówka, którą poprawiłem podmieniając plik zip w tym poście
Jak zawsze Hubert, solidnie dokładnie, i prosto co by taki tłuk jak ja zrozumiał, choć bym miał jutro nie wiem co to test zrobię , na razie na diodach , ale zrobię. Stokrotne dzięki. Edyta: -sterowanie oświetleniem -Przełączanie kamer -pstryk w aparacie -zom w aparacie (tylko trza dziada rozkręcić )
_________________ _____________________________ Pozdrawiam Jak się nie ma ,co się lubi , to się to buduje
Ostatnio edytowano środa, 4 listopada 2015, 23:02 przez piotrek75, łącznie edytowano 1 raz
Tytuł: Re: 5 przekaźników sterowanych 5 kanałami z odbiornika RC
Napisane: środa, 4 listopada 2015, 23:01
Moderator
Dołączył(a): czwartek, 12 kwietnia 2012, 10:46 Posty: 5441 Wiek: 42 Lokalizacja: Kraków
@Rumcajs Nie ma tak dobrze, Chińczycy robią moduły 1,2,4 i 8 przekaźnikowe. 5 chyba jest zakazane
@piotrek75 Na zdrowie
Jeśli nie chcemy żeby układ w czasie włączania zasilania Arduino wariował (klikał przekaźnikiem) to nie wykorzystujcie wyjścia na pinie 13. Należy zmodyfikować ten kawałek kodu:
Kod:
int relay1 = 13;
i wpisać jakiś inny wolny. Jeśli komuś to nie przeszkadza może zostawić jak jest.
..Jeśli nie chcemy żeby układ w czasie włączania zasilania Arduino wariował (klikał przekaźnikiem) to nie wykorzystujcie wyjścia na pinie 13. Należy zmodyfikować ten kawałek kodu:
Kod:
int relay1 = 13;
i wpisać jakiś inny wolny. Jeśli komuś to nie przeszkadza może zostawić jak jest.
Tzn że jak - mam wpisać inny wolny port i tam podpiąć przekaźnik?
_________________ Jak mówię że coś zrobię to zrobię, nie trzeba mi co pół roku przypominać.. - Sławek -
Tym razem muszę się wtrącić, bo miałem smutne przygody z takimi układami... Bardzo podobają mi się porady Huberta i z kilku skorzystałem (dzięki wielkie), ale jeśli chodzi o sterowanie przekaźnikami przez mikrokontroler mam zwyczaj (praktyka pokazała że dobry) stosować izolację optyczną między pinem procesora a przekaźnikiem. Zastosowany tu tranzystor umożliwia sterowanie cewki przekaźnika odpowiednim prądem (Arduino nie ma wystarczającej wydajności) ale nie zapobiega w 100% "bałaganowi" który pojawia się na procesorze w chwili odłączenia zasilania cewki przekaźnika (dynamiczne "rozładowanie" cewki), mimo zastosowanej diody. Układ, który ma bardzo dobrą filtrację zasilania powinien przetrwać takie impulsy, ale czasem wystarczy brak malutkiego kondensatora 100nF i mamy zwiechę...
Zachęcam do podmienienia tranzystora na transoptor (są całkiem tanie), pełno przykładów w sieci więc nie wklejam. Idealnym rozwiązaniem jest zasilanie proca i przekaźnika za izolacją z 2 różnych źródeł. Dzięki izolacji mogą to być źródła o różnych napięciach...
Tak też zmodyfikowałem układ przełącznika 4 kamer na 2 przekaźnikach z tego forum - zasilanie STM 3.3V z przetwornicy, a cewki przekaźników 5V z ESC. Nigdy nie złapałem "zwiechy" w takim układzie. Dodam jeszcze, że izolacja jest szczególnie ważna, jeśli przełączanie ma się odbywać w szybkich sekwencjach (kondensatory filtrujące zasianie nie radzą sobie wtedy).
Tytuł: Re: 5 przekaźników sterowanych 5 kanałami z odbiornika RC
Napisane: wtorek, 11 lipca 2017, 18:36
Moderator
Dołączył(a): czwartek, 12 kwietnia 2012, 10:46 Posty: 5441 Wiek: 42 Lokalizacja: Kraków
Chińskie moduły przekaźnikowe mają oprócz samego przekaźnika sporo elektroniki dodatkowej. Jest tranzystor, ze dwie diody i parę kondensatorów - a wszystko działa bez zakłoceń i zwieszeń.
Chińskie moduły przekaźnikowe mają oprócz samego przekaźnika sporo elektroniki dodatkowej. Jest tranzystor, ze dwie diody i parę kondensatorów - a wszystko działa bez zakłoceń i zwieszeń.
Mi nie zawsze działało... Oczywiście zwiesza się bardzo rzadko więc problemu niby nie ma, jest też w razie czego watchdog (którego w amatorskich zastosowaniach mało kto używa)... Sygnał PWM do serw tez puszczam przez optoizolację... Niby tylko sygnał sterujący, a wyjścia mikrokontrolera już 2x poległy na tandetnych serwach... Nie namawiam nikogo na siłę, ale zachęcam, bo moim zdaniem warto - kosztuje z 3,- zł.
Cześć Odgrzewam kotleta Od jakichś dwóch dni próbuję wgrać program do mikrocontrolera atmega328p robię to według porad z tego linka https://pawelwiejkut.net/programowanie- ... y-arduino/ niestety dzieją się dziwne rzeczy. 1) nie mogę wgrać bootloadea 2) z głupia spróbowałem wgrać program i w ide pisze że ładowanie zakończyło się pomyślnie i pod komunikatem wywala mi się coś takiego na czerwono avrdude: stk500_getsync(): not in sync: resp=0x1c 3) w pro mini chodzi bez probleów, w nano też i uno też daje radę Moja wersja ide to 1.0.6 Czy znacie jakiś inny sposób, lub co robię źle, jedyne co przychodzi mi do głowy to , że brakuje mi w bibliotece płytek mikrocontrolerów atmega
Załącznik:
sc1.png [ 64.62 KiB | Przeglądane 4835 razy ]
Załącznik:
sc2.png [ 98.21 KiB | Przeglądane 4835 razy ]
Załącznik:
sc3.png [ 66.74 KiB | Przeglądane 4835 razy ]
I jeszcze jedna rzecz, czy Hubercie da radę przerobić troszkę ten program , chodzi o to żeby jeden kanał był jakby na odwrót tzn. potrzebuję żeby zewnętrznym pstryczkiem włączać i wyłączać pwm (potrzebuję to żeby składać i rozkładać podwozie bez włączania radia z oddzielnego aku, taka fanaberia związana z pakowaniem coptera do walizki
_________________ _____________________________ Pozdrawiam Jak się nie ma ,co się lubi , to się to buduje
Hubercie wydaje mi się, że źle wypakowuję pliki, tzn nie tam gdzie powinienem. Poniżej kilka zrzutów gdzie i co mam zapisane.
Załącznik:
sc01.png [ 92.65 KiB | Przeglądane 4750 razy ]
Załącznik:
sc02.png [ 106.2 KiB | Przeglądane 4750 razy ]
Załącznik:
sc03.png [ 103.41 KiB | Przeglądane 4750 razy ]
Załącznik:
sc04.png [ 107.51 KiB | Przeglądane 4750 razy ]
Załącznik:
sc05.png [ 132.41 KiB | Przeglądane 4750 razy ]
Wydaje mi się , ten kawałek programu który ma być dopisany do pliku boards źle wklejam, ponieważ otwiera mi się on tylko w notatniku, i tam też go wkleiłem. Trochę mi wstyd bo to pewnie prosta sprawa, ale widzę że bez pomocy sobie nie poradzę Powiedz mi Hubert czy dużo roboty będzie z zmodyfikowaniem tego programu pod ten pstryczek? bo ja tylko potrafię zmieniać szybkość migania diody
_________________ _____________________________ Pozdrawiam Jak się nie ma ,co się lubi , to się to buduje
Atmega 328P Z powodu braku rezonatora właśnie szukałem takiej metody która by go ominęła, ale jeśli nie poradzę sobie to chyba zakupię takie cuś https://botland.com.pl/programatory/135 ... board.html , tylko że nie wiedzieć czemu mój usbasp nie chce się zkomunikować z moim nowym kompem niby komputer go widzi, niby sterownik ok , a arduino ide wywala mi cały czas jakieś błędy, zresztą z ftdi jest to samo
_________________ _____________________________ Pozdrawiam Jak się nie ma ,co się lubi , to się to buduje
Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości
Nie możesz rozpoczynać nowych wątków Nie możesz odpowiadać w wątkach Nie możesz edytować swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników