Programować umiem i program napisze sobie sam. Potrzebuję jedynie pomocy w logicznym rozwiązaniu tego problemu.
Buduję sobie prosty odbiciowy detektor zbliżeniowy IR. Ma jedynie w zasięgu 10cm wykrywać czy coś jest przed nim czy nie. Oprócz tego musi mieć możliwość przybliżonego pomiaru jasności światła w pomieszczeniu.
Żeby było trudniej, to urządzenie jest zasilane z baterii, więc na starcie mam 3V, a na końcu 1,8V. Użyty procesor to AtTiny24a.
Na początku zastosowałem podłączenie jak na schemacie powyżej. Program wyglądał tak:
treshold = 30
wylacz IRled i zrób pomiar ADC z fototranzystora
włącz IR i zrób pomiar ADC z fototranzystora
if "pomiar z włączonym IR"+treshold > "pomiar z wyłączonym IR" then "wykryto odbicie"
Program działał ale jest jeden istotny problem: działa tylko w statycznym oświetleniu zewnętrznym. Gdy świeci słonce i są chmury/firanka/inny przeszkadzacz to moc światła słońca jakby "faluje". I niestety detektor wykrywa fałszywe zbliżenie gdy trafi na taki szczyt "fali".
Znalazłem inne rozwiązanie ale jeszcze nie testowane:
treshold = 30
sumapomiarow = 0
srednia = 0
for i=0 to 10
wylacz IRled i zrób pomiar ADC z fototranzystora
włącz IR i zrób pomiar ADC z fototranzystora
sumapomiarow = sumapomiarów + ("pomiar z włączonym IR" - "pomiar z wyłączonym IR")
next i
srednia = sumapomiarow/10
if srednia > treshold then "wykryto odbicie"
Drugi program wygląda na bardziej odporny na "falowanie" światła. Postaram się go wkrótce przetestować.
Były jeszcze rozwiązania typu dioda nadawcza sterowana PWM + odbiornik z filtrem RC odcinającym składową stałą. Tyle że takie rozwiązanie działa bardzo źle gdy pomieszczenie jest oświetlone.
Może ktoś z was widział jakieś inne rozwiązania takiego detektora? Proszę o niedodawanie propozycji "weź sobie TSSOPcośtam" bo one nie działają na 1.8V.