Moduł oświetlenia arduino - poradnik - Wersja do druku +- Forum RC (https://rc-slask.pl) +-- Dział: TRIAL (https://rc-slask.pl/dzial-30.html) +--- Dział: Techniczne (https://rc-slask.pl/dzial-34.html) +---- Dział: Elektronika (https://rc-slask.pl/dzial-157.html) +---- Wątek: Moduł oświetlenia arduino - poradnik (/watek-1198.html) Strony:
1
2
|
Moduł oświetlenia arduino - poradnik - czapla - 2020-01-19 Moduł oświetlenia Arduino Spis części które będziemy potrzebować: - Arduino nano - Kabel mini USB - Oporniki 5% 2W 100R (10szt wystarczy) - Diody led 5mm - Kabelki (stare kable USB świetnie się nadają) - Wtyczki/złącza (złącze JST SM 6pin 2szt powinny wystarczyć) - Moduł mocy PWM IRF520 (tylko w przypadku jeśli chcemy zasilić listwę ledową) Na początek przyjrzymy się samemu arduino [attachment=4444] Na zdjęciu opisane są wszystkie piny, nas interesują te: VIN - zasilanie arduino zalecane 7-12V (na 6V też działa) GND - masa A0-A7 - piny typu IN tutaj będziemy podłączać sygnały z odbiornika D2 D4 D7 D8 D12 - Piny typu OUT które mają możliwość sterowania tylko 0-1 D3 D5 D6 D9 D10 D11 - Piny typu OUT które obsługują PWM (pulse width modulation) czyli możemy płynnie sterować jasnością LED. Na wszystkich pinach OUT mamy zasilanie max 5v (niezależnie jakie mamy napięcie zasilania arduino) dlatego potrzebujemy oporniki do ledów Zanim zaczniemy składać wszystko razem na początku musimy zastanowić się ile mamy dostępnych kanałów w aparaturze i jaki efekt chcemy uzyskać, bo mając nawet zwykłą apke 2/3 kanałową można uzyskać fajne efekty, ale im więcej kanałów w aparaturze tym też więcej możliwości. Na początek musimy spisać jakie chcemy mieć funkcje: drążek gazu - sterowanie światłami pozycyjnymi tył, światłami stop oraz wstecznym przełącznik trzy pozycyjny - sterowanie światłami pozycyjnymi przód i światłami drogowymi plus w pozycji 0 wyłączone sterowanie drążkiem gazu (wszystko zgaszone) drugi przełącznik trzy pozycyjny - sterowanie kierunkowskazami przełącznik dwu pozycyjny - sterowanie awaryjnymi drugi przełącznik dwu pozycyjny - lightbar Pierwszym krokiem będzie spisanie jaki przełącznik jest na jakim kanale w moim przypadku wygląda to tak: drążek gazu - Ch3 przełącznik świateł przód - Ch6 przełącznik kierunkowskazów - Ch7 przełącznik awaryjnych - Ch8 przełącznik lightbar - Ch10 Następnie przechodzimy do arduino, podłączamy zasilanie (piny VIN, GND), piny sygnałowe odpowiednich kanałów odbiornika do arduino oraz musimy pamiętać o wspólnej masie. Ch3 - A0 Ch6 - A1 Ch7 - A2 Ch8 - A3 Ch10 - A4 Teraz bierzemy 5szt oporników 100R 2W i lutujemy je bezpośrednio w arduino. To będą nasze wyjścia sterowane plusem podłączone do ledów D2 - wsteczny D3 - pozycja tył/stop D4 - kierunek lewy D7 - kierunek prawy D10 - pozycja przód/mijania Poniżej prosty rysunek poglądowy, zrobiony na szybko w paincie dla wzrokowców jak to wszystko podłączyć ze sobą [attachment=4445] Teraz informacja dla osób używających apki 2/3 kanałowej drążek gazu zostaje wiec sterowanie pozycyjnymi tył,stop oraz wsteczny pozostaje takie samo, w pin A2 w arduino można podłączyć sygnał z serwa skrętu i kierunki będą mrugać przy skręcie kół, a światła przednie można w programie wysterować aby świeciły cały czas albo użyć drążka gazu i wtedy podczas postoju będą świecić się pozycyjne a podczas jazdy będą świecić światła mijania. Musicie pamiętać o jeszcze jednej rzeczy mianowicie arduino nie jest w stanie przenosić dużych obciążen!!! Z kilkoma diodami led radzi sobie bez problemu ALE nie radzę zasilać listw ledowych ani innych lightbarów bezpośrednio z arduino. Do tego celu będziemy potrzebować moduł mocy PWM IRF520 który podłączamy w następujący sposób: [attachment=4446] Tylko pamiętajcie jakim napięciem zasilacie moduł mocy bo na wyjściu będzie takie samo, żeby lightbar nie poszedł z dymem. Teraz pozostało "tylko" napisać program i moduł gotowy. Pobieramy program arduino na naszego PC, uruchamiamy go. Wchodzimy w zakładkę 'Narzędzia' następnie 'płytka' i z listy wybieramy 'Arduino Nano' W zakładce 'Procesor' wybieramy 'ATmega328P' W zakładce 'Port' wybieramy port USB do którego podłączymy arduino (najlepiej zobaczyć jakie mamy dostępne później podłączyć arduino poprzez USB i zobaczyć czy pojawił się nowy, to właśnie jego wybieramy. Pamiętajcie przy pisaniu programu o wszystkich nawiasach (zwykłych i kwadratowych), o przecinkach i o dużych literach. Wszystko ma znaczenie. Kasujemy to co jest napisane w nowym sketchu i zaczynamy. int pin3 = A0; int pin7 = A1; int pin6 = A2; int pin8 = A3; int pin10 = A4; int WSTECZNY = 2; int STOP = 3; int KIERUNEKL = 4; int LIGHTBAR = 5; int KIERUNEKR = 7; int PRZOD = 10; //opis pinów #define INTERVAL_1 300 #define INTERVAL_2 300 byte led_1; byte led_2; unsigned long time_for_action_1; unsigned long time_for_action_2; //wartość 300 oznacza jak szybko będą mrugać kierunki, wartość możecie zmieniać wedle uznania void setup () { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(7, OUTPUT); pinMode(10, OUTPUT); // opis pinów typu output } void loop () { int ch3 = pulseIn(pin3, HIGH, 30000); int ch6 = pulseIn(pin6, HIGH, 30000); int ch7 = pulseIn(pin7, HIGH, 30000); int ch8 = pulseIn(pin8, HIGH, 30000); int ch10 = pulseIn(pin10, HIGH, 30000); // opis dla arduino żeby mogło czytać wartości jakie wysyła odbiornik (od 1000ms do 2000ms). Dalej zaczyna się już programowanie if (ch6 < 1300 and ch6 > 900) // po if w nawiasie wpisujemy kanał i jaka wartość nas interesuje { analogWrite(3, 0); // 3 oznacza pin D3 w naszym przypadku światło stop a po przecinku 0 ozancza światło wyłączone (wartość 255 oznacza 100% jasności a w przypadku pinów z pwm można wpisywać wartości od 0 do 255 np 50 i wtedy mamy światła pozycyjne } if (ch3 < 1400 and ch3 > 900 and ch6 > 1400 or ch3 > 1600 and ch6 > 1400) { analogWrite(3, 50); } if (ch3 > 1450 and ch3 < 1550 and ch6 > 1400) { analogWrite(3, 255); } if (ch3 > 1600 and ch6 > 1400) { analogWrite(2, 255); } if (ch3 < 1500 and ch3 > 900) { analogWrite(2, 0); } if (ch8 > 1700 or ch7 < 1300 and ch7 > 900) { if (millis() > time_for_action_1) { time_for_action_1 = millis() + (unsigned long) INTERVAL_1; led_1 = !led_1; } } else { time_for_action_1 = 0; led_1 = 0; } if (ch8 > 1700 or ch7 > 1700) { if (millis() > time_for_action_2) { time_for_action_2 = millis() + (unsigned long) INTERVAL_2; led_2 = !led_2; } } else { time_for_action_2 = 0; led_2 = 0; } digitalWrite(4,led_1); digitalWrite(7,led_2); // opis kierunkowskazów lewego, prawego i awaryjnych if (ch6 < 1300 and ch6 > 900) { analogWrite(10, 0); } if (ch6 > 1400 and ch6 < 1600) { analogWrite(10, 50); } if (ch6 > 1700) { analogWrite(10, 255); } //świtała przednie if (ch10 < 1300 and ch10 > 900) { analogWrite(5, 0); } if (ch10 > 1700) { analogWrite(5, 255); } // sterowanie lightbarem delay(50); //delay oznacza częstotliwość odświeżania } I tym oto sposobem dobrnęliśmy do końca programowania klikamy ptaszka u góry w celu zweryfikowania szkicu czy nigdzie nie popełniliśmy błędu i zapisujemy. Jeśli wszystko pójdzie pomyślnie na dole pojawi się napis 'Kompilacja zakończona' i dowiemy się że używamy jakichś 6% pamięci programu. No cóż. Włączamy model, podpinamy arduino do USB i klikamy obok ptaszka w strzałeczkę w prawo w celu wgrania programu do arduino, program jeszcze raz zweryfikuje poprawność szkicu a następnie wgra go do naszego arduino. Odpinamy USB w celu przetestowania (mi czasami podpięte usb powodowało jakieś zakłócenia) i teoretycznie wszystko powinno działać Opis wyszedł mi cholernie długi za co przepraszam ale mam nadzieję że wszystko jest zrozumiałe jeśli jednak coś pomiąłem do dajcie znać. Zrobienie tego modułu jest prostsze niż się wydaje oczywiście jeżeli ogarniamy lutowanie, podłączenie wszystkiego według schematu powyżej to kilka godzin mając wszystkie elementy następnie kopiujecie mój szkic do programu, wgrywacie do arduino i to wszystko. Moduł oświetlenia arduino - poradnik - zakopanypouszy - 2020-01-19 Dziekuje bardzo. Kawał dobrej roboty. Takich poradników to ze świecą szukać. Wysłane z mojego LG-H930 przy użyciu Tapatalka RE: Moduł oświetlenia arduino - poradnik - misiek - 2020-01-19 Spoko projekcik. Myślę że zamiast tego modułu mocy możemy zastosować tranzystor NPN BC337 a i na podobnej zasadzie jeśli zostały wolne piny dodać buzzer do dźwięku cofania. RE: Moduł oświetlenia arduino - poradnik - Gorg - 2020-01-19 Super. Dziekuje że chciało Ci się to spisać. Ja napewno sprubuję zbudować taki Moduł oświetlenia arduino - poradnik - kapi - 2020-01-19 Mistrz! Moduł oświetlenia arduino - poradnik - kokos - 2020-01-20 Wielkie dzięki!!! Wysłane z mojego moto g(7) power przy użyciu Tapatalka RE: Moduł oświetlenia arduino - poradnik - czapla - 2020-01-25 Małe sprostowanie, ostatnio zauważyłem że arduino nie widzi sygnałów z odbiornika na pinach A6 i A7 tylko teraz nie wiem czy mam uszkodzone arduino czy za dużo sygnałów albo po prostu nie nadają się do tego celu, w każdym bądź razie zwróćcie na to uwagę RE: Moduł oświetlenia arduino - poradnik - kapi - 2020-04-19 Wykonałem ten moduł u siebie. Dzięki pomocy kolegi Czapla, który ogarnął program i moduł działa jak sobie wymarzyłem. na apce 3CH. Dzieki ! RE: Moduł oświetlenia arduino - poradnik - kapi - 2021-04-12 Moduł jest na tyle "elastyczny", że można go adaptować do każdego modelu. drugą kopie wykonałem dla modelu SJ410 - opis i garaż wkrótce RE: Moduł oświetlenia arduino - poradnik - lucekma - 2021-07-23 Witam! kolego a na jakim kanale masz kierunek (skręt kół) w apce? Gaz CH3 a kierunek? jakoś nie mogę się doszukać ani w opisie ani w programie Pozdrawiam |