Skocz do zawartości

Odczyt sygnału z modułu IR


Frodus

Pomocna odpowiedź

Panowie, pomóżcie mi w pewnej kwestii. 

Pisząc mały program sterowania obrotami silnika (bez użycia switch case, a zrobione na if'ach). 

Problem polega w tym, że gdy celuje pilotem bezpośrednio w moduł odbiorczy IR - sygnał jest odczytywany poprawnie. Jednak dla testów sprawdziłem jak zachowuje się sygnał który trafia do odbiornika ale po odbiciu od np ściany. Do odbiornika dochodzą jakieś śmieci. Czy jest jakaś możliwość filtracji tego? Jak za dużo się tego nabiera, to układ nie reaguje już na żaden sygnał 

Link do komentarza
Share on other sites

To dość skomplikowany sygnał a całość wzmacniania i filtrowania odbywa się w odbiorniku IR. Dalej jest już tylko kabelek (tu niewiele możesz zrobić) i program procesora. Od tego jak ten kod został napisany zależy jak sprawnie będą dekodowane impulsy i jak bardzo odbiór będzie czuły na śmiecie. O ile pamiętam paczki sygnałów z pilotów IR nie mają żadnych sum kontrolnych (bit parzystości?) ani tym bardziej kodów korekcyjnych umożliwiających poprawianie danych. Wszystko zatem bazuje na najniższej, fizycznej poprawności przesyłania pojedynczego bitu. Program zwykle sprawdza czy przebieg bitu jest zgodny ze standardem (plus minus dopuszczalne/przewidziane odchyłki) i jeśli wszystkie bity w kodzie były dobrze odebrane, następuje dekodowanie i sygnalizacja odbioru znaku. Poprawnie zbudowany nadajnik IR działa całkiem dobrze na odległości nawet kilkudziesięciu metrów, w tym także po odbciu od ścian czy mebli (wtedy oczywiście sporo bliżej) . Może być tak, że Twój pilot jest słaby/tani/bardziewny albo nadaje w bardzo szerokiej wiązce przez co marnuje moc na "oświetlanie" całego pokoju. A na dodatek jeśli program wiesza się po zakłóceniach to nie świadczy to dobrze o bibliotece IR lub o sposobie jej wykorzystania w Twoim programie. Coś takiego nie powinno w ogóle mieć miejsca, bo zakłócenia i błędy są związane z transmisją (nie tylko IR) jak Polska z węglem i każdy dobry program musi taką sytuację przewidywać i umieć się z niej wydobyć.

Możesz spróbować ze zmianą diody nadawczej na węższą, zbudowaniem lepszego pilota lub modyfikacją (to chyba teraz nazywa się hakowaniem) obecnego - podwyższeniem zasilania lub poprawieniem stopnia wyjściowego na silniejszy. Poprawę powinno też dać zawężenie pola widzenia odbiornika, ale nie wiem czy o to Ci chodzi.

Edytowano przez marek1707
Link do komentarza
Share on other sites

37 minut temu, Frodus napisał:

Panowie, pomóżcie mi w pewnej kwestii. 

Pisząc mały program sterowania obrotami silnika (bez użycia switch case, a zrobione na if'ach). 

Problem polega w tym, że gdy celuje pilotem bezpośrednio w moduł odbiorczy IR - sygnał jest odczytywany poprawnie. Jednak dla testów sprawdziłem jak zachowuje się sygnał który trafia do odbiornika ale po odbiciu od np ściany. Do odbiornika dochodzą jakieś śmieci. Czy jest jakaś możliwość filtracji tego? Jak za dużo się tego nabiera, to układ nie reaguje już na żaden sygnał 

Wiele  wskazuje na to, że być może silnik generuje spore zakłócenia, a istotnym elementem jest moduł filtra odbiornika IR.

Wg moich doświadczeń w środowisku o małych zakłóceniach większość scalonych odbiorników podczerwieni działa prawidłowo, nawet bez filtra.

Przy większych zakłóceniach, a tak może być przy pracy z silnikami zalecałbym zacząć od poprawnej filtracji, której schemat na pewno znajdziesz w datasheet od odbiornika. Sam schemat jest podobny dla odbiorników różnych producentów i jest to zwykły filtr dolnoprzepustowy RC.

Jeśli nie masz doświadczenia w pisaniu kodu, to wg mnie dobrze jest na początek zastosować jakąś dedykowaną bibliotekę. W mojej ocenie najlepsza to IRMP:

https://www.mikrocontroller.net/articles/IRMP_-_english

Od dawna z powodzeniem stosuję ją na różnych mikrokontrolerach, a wspiera zarówno AVR, PICE czy STM32.

Niestety nie podałeś żadnych informacji na temat platformy, elektroniki, zastosowanych elementów itp, więc ciężko też jakoś specjalnie wyrokować.

Link do komentarza
Share on other sites

Różne projekty buduje na arduino. I to różnych od nano po mega. Zależnie ile miejsca zajmuje kod. Zdaje sobie sprawę, że to co mi nie mieści się przykładowo na Uno, to bardziej zaawansowani rozpiszą program, że zajmie ze 40% mniej pamięci. 

Obecnie układ testowałem na płytce stykowej z przerobionym servo mg995.

Zobaczę jak to się zachowa, odłączając napęd 

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

4 godziny temu, Frodus napisał:

Obecnie układ testowałem na płytce stykowej z przerobionym servo mg995.

A z czego zasilasz ten układ? Jakiego konkretnie odbiornika i pilota używasz? Jeśli korzystasz z pilota DIY, albo jakiegoś malutkiego pilota zasilanego bateryjkami pastylkowymi to zawsze będziesz miał problemy, aby odczytywać poprawnie sygnały odbijane od ścian. 

Link do komentarza
Share on other sites

Obecnie układy zasilany zasilaczem laboratoryjnym 5A.

Pilot to faktycznie malutki, zasilany 1 pastylką. 

Temat ten już rozwiązałem 🙂 wystarczyło użyć konkretnego pilota i efekt jest dla mnie OK 🙂

  • Lubię! 1
Link do komentarza
Share on other sites

Fajnie, że udało się wyjaśnić problem. Małe piloty są wygodne (bo małe), ale niestety właśnie ich zasięg jest znacznie mniejszy - lepiej zawsze testować wszystko na "zwykłych" pilotach od TV.

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.