Skocz do zawartości

Czujnik optyczny


Pomocna odpowiedź

np. komunikacja przez I2C z generowaniem przerwań, skanowanie przestrzenne. wybór częstotliwości nośnej, kodowanie w SIRC, no chyba ze znajdę opis kodowania w pierwszych pilotach IR (RESC80), którego dziś się już nie używa, to by było lepsze, bo uodporniło by na zakłócenia z pilotów RTV.

Ale spoko pierwsze podejście będzie prostsze na TINY13, bo mi taka leżakuje w SMD, a i z TSOPem na 40KHz trzeba coś zrobić.

  • 2 tygodnie później...
  • 4 tygodnie później...

Fajne, Częstotliwość wyeliminuje zakłócenia ze strony światła, ja zawsze robiłem na diodzie i fototranzystorze i było to niestety czułe na światło zewnętrzne. uProcesor mogłeś dać smd bo jest tańszy i zajmuje mniej miejsca 🙂

Witam

Mam pytanie bo użyłem wszystkich części taki jak autor lecz mój czujnik to tsop34836

który też jest na 36kHz podłączyłem go zgodnie z Datasheet i schematem . I gdy do wyjścia podłączyłem diodę to czujnik działa tylko przez pierwszą sekundę gdy podłączam i odłączam diodę ir a później nie reaguje a dioda cały czas świeci. Gdy spróbowałem ne555 tak żeby miał 36kHz to tak samo a jednym pilotem to działa też tak samo a jak wiozłem inny to działał lepiej i wykrywał przeszkody lecz żeby czujnik coś zobaczył to musiałem ręką machnąć przed nim a jak powoli przesuwałem to nic nie wykrywał.A gdy ręką przesuwałem prosto na czujnik to też nic a poza tym to działa z drugim pilotem. Co może być przyczyną ?

Nie zacinający się, tylko działajacy całkowicie prawidłowo. Warto poczytać dokumentację TSOPa, tam jest podane, że w przypadku odebrania długiego pakietu (dłuższego niż określona liczba impulsów) przestaje widzieć - możliwe, że zmienia próg widzialności.

Można ten problem rozwiązać włączając i wyłączając diodę co kilka ms, i sprawdzać odbicie w okresie świecenia.

Dziękuję za odpowiedzi. Spróbuję coś tu dopisać żeby dioda włączała i wyłączała co kilka ms .Ale nie wiem czy uda mi się to napisać i czy ktoś by mógł pomóc to napisać ?

Są co najmniej 4 sposoby na zrobienie tego.

Można zaprząc drugi timer (chociaż nie wiem czy tiny13 posiada więcej niż 1) i w przerwaniu od niego włączać i wyłączać pierwszy (ten od generowania nośnej), wtedy w pętli głównej próbkujemy sobie stan nóżki TSOPa (ewentualnie można dodać eliminację false triggeringów itp, aby uodpornić się jeszcze bardziej na zakłócenia).

Można zrobić w przerwaniu od timera odpowiedzialnego za generację nośnej warunek, że co X impulsów zrobi przerwę trwającą Y przerwań, do tego potrzeba by zmiennej przechowującej ilość impulsów i timer nie może działać w trybie CTC, pseudokod:

if(zmienna < X)
{
*zamień stan nóżki na przeciwny*
zmienna = zmienna + 1
}
else
{
zmienna + 1
}
if(zmienna > (X+Y))
{
zmienna = 0
}

Można włączać timer co X czasu w pętli głównej, tylko przy użyciu delay'i/wait'ów stan byłby próbkowany bardzo rzadko, zamiast wyżej wymienionych można użyć pętli for, z bardzo dużą ilością powtórzeń (tyle, żeby całe wykonanie pętli trwało te kilkanaście impulsów, po forze może być już delay lub wait).

Można podłączyć diodę jedną stroną do jednego pinu i drugą do drugiego i na jednym mieć ciągle nośną, a drugim ją włączać lub wyłączać, a stan sprawdzać tylko gdy dioda jest włączona, można wykorzystać pętle for, delaye (ale wtedy próbkowanie będzie rzadkie). Wtedy timer od generacji nośnej może działać w trybie CTC, ale trzeba poświęcić dodatkowy pin.

Jak na razie do głowy przychodzą mi tylko te sposoby, ale raczej są też inne. Osobiście zwykle używam sposobu z ifami, tylko musisz uważać na jedną rzecz przy przerwaniach - żeby zdążyło się ono wykonać, zanim wykona się następne lub to kolejny raz.

  • Lubię! 1
  • 6 miesiące później...

Witam!

Mam takie pytanie dotyczące tego czujnika przy wykorzystaniu Attiny13.

Co muszę użyć dokładnie jakich diod nadawczych i jaki odbiornik podczerwieni aby osiągnąć zasięg około 100 cm? Czy jest to w ogóle możliwe?

Zadanie tego czujnika ma polegać na wykryciu osoby w nocy jak i za dnia oraz przy oświetleniu sztucznym 🙂

Pozdrawiam!

Nie lepiej zrobić tzw. barierę optyczną? Dioda laserowa z jednej strony (albo laser z bazarku, dla 1m powinien wystarczyć), fototranzystor z drugiej, dobrze wycelować i voilla. Jeśli ktoś przetnie wiązkę lasera, będziesz miał spadek napięcia na odbiorniku - wystarczy to obsłużyć np. mikrokontrolerem.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...