Proszę szanownych kolegów o pomoc. Pokrótce opiszę problem:
Zakupiłem jakiś czas temu moduł oświetlenia mojego samolotu od pewnego kolegi z innego forum. Przeraziła mnie ilość przewodów do jego podłączenia, więc zbudowałem swoją wersję tegoż modułu wraz z płytką dystrybucji zasilania, która zminimalizowała mi ilość przewodów w modelu. Całość oparta jest o Arduino Nano. Oprogramowanie, to zlepek różnych fragmentów programów znalezionych w sieci dostosowanych do moich potrzeb plus pomoc kolegi z forum pfmrc.eu plus moja skromna wiedza.
![Obrazek](https://obrazkiforum.atnel.pl/thumb/2483/a3d632a742c14e5d823ce285e0818722.png)
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
W kodzie podane tylko istotne fragmenty - resztę na tę chwilę wyciąłem.
Krótki opis:
Na podstawie wartości PWM odczytywanych z odbiornika RC samolotu (FRSky L9R) Arduino Nano załącza odpowiednie światła w samolocie. Na kanale 9 (CH9) mam przełącznik trójpozycyjny 1- światła wyłączone /2 - włączone światła nawigacyjne / 3 - włączone wszystkie światła.
Kanał 3 (CH3) steruje silnikiem i Arduino w momencie uruchomienia silnika włącza światła beacon (Arduino odczytuje wartość PWM z odbiornika na kanale 3). I to działa prawidłowo.
Na kanale 6 (CH6) załączane są klapy na skrzydłach i jednocześnie włączają się światła lądowania na podstawie odczytanej wartości PWM tegoż kanału. Niestety Arduino błędnie odczytuje wartość PWM na kanale 6 (odczytuje wartość 0).
Klapy sterowane są dwoma serwomechanizmami. Jeśli odłączę serwomechanizmy, to arduino poprawnie odczytuje PWM z tego kanału. Jeśli odłączę jeden serwomechanizm, to wartość PWM jest zaniżona o 200-250us (mimo, że klapa działa dobrze).
Czy ktoś jest w stanie wytłumaczyć mi, dlaczego tak się dzieje ?