Skocz do zawartości
KD93

Czujnik optyczny

Pomocna odpowiedź

Trochę zamotałem się z tym attiny2313 więc zakupiłem to co autor pokazał na początku (attiny13) 🙂

Tylko chciałbym wprowadzić jedną zmianę a dokładnie mówiąc po odczytaniu przez procesor odbitej fali miałby podtrzymać działanie przekaźnika na 15 minut. W jaki sposób to rozwiązać? Czy za pomocą komendy "Wait" ? Zmieniłem to tak: (ale tam jest 10 sekund i nie działa)

$regfile = "attiny13.dat"                                   'procesor Attiny13

$crystal = 1200000                                          'niższe taktowanie, CKDIV=0
                                                            'przy zmianie CKDIV = 1
                                                            'zmienić wartośc na 9600000

Config Portb.4 = Output                                     'output czujnika

Config Portb.1 = Output                                     'OC0B, wyjście generujące
                                                            'częstotliwość dla diody

Config Portb.2 = Output                                     'wyjście sterujące diodą

Config Pinb.3 = Input                                       'czujnik podczerwieni, SFH


Ocr0b = 16                                                  'obliczyć z działania:
                                                           'taktowanie / (częstotliwość * 2)
                                                           'np. 1200000 / (36000 * 2)

Ocr0a = 16                                                  'j.w.

Tccr0a = &B00010010                                         'rejestry timera, przepisać

Tccr0b = 1                                                  'j.w.


Set Portb.3                                                 'rezystor podciągający
                                                           'wejście czujnika


Do                                                          'pętla


If Pinb.3 = 1 Then Portb.4 = 1                              'warunki na widzenie czujnika

Waitms 10

Portb.4 = 0

Delay                                                       'opóźnienie zmniejszające
                                                           'zakłócenia


Loop                                                        'koniec pętli

End                                                         'koniec programu

Z góry dziękuję za odpowiedź 🙂

Udostępnij ten post


Link to post
Share on other sites

To zależy czy przez te 15 minut chcesz mierzyć czujnikiem dalej czy go wyłączyć. Wyłaczyć będzie prościej, bo wtedy robisz sobie rzeczywiście coś w stylu wait i zliczasz 15 minut (no. 15 razy po 60s). Warto wtedy wprowadzić jakieś sprawdzanie pomiarów, np. zamiast delay dać waitms 10, zliczyć np. 20 impulsów i jeśli czujnik wykrył przeszkodę ponad 10 razy, to zmieniasz dopiero stan.

Jeśli chcesz w czasie tych 15 minut mierzyć, to już gorzej, tu przydałby się Timer, ale w tiny13 jest tylko 1. Wtedy mógłbyś obniżyć częstotliwość mierzenia do powiedzmy 50ms, zliczać w pętli, 20 takich cykli da Ci wtedy minutę.

Udostępnij ten post


Link to post
Share on other sites

Chodzi mi o to aby po zauważeniu "przeszkody" czujnik przestał wysyłać fale podczerwone i po prostu załączył nóżkę PINB.4 na 15 minut. Po tym czasie wraca do poprzedniego stanu pracy. Bo przykładowo przeszkoda może się pojawić i za chwilę zniknąć a przekaźnik dalej ma być włączony przez te 15 minut 🙂

Udostępnij ten post


Link to post
Share on other sites

15 minut to strasznie dużo czasu, chyba 15 sek. Zakładam że chcesz to użyć w mini sumo ?

Udostępnij ten post


Link to post
Share on other sites

BlackJack, raczej źle zakładasz.

miałby podtrzymać działanie przekaźnika na 15 minut.
Bo przykładowo przeszkoda może się pojawić i za chwilę zniknąć a przekaźnik dalej ma być włączony przez te 15 minut 🙂

Nie wygląda mi to na czujnik do minisumo, a te 15min to nie pomyłka bo jest tak napisane 3 razy.

Udostępnij ten post


Link to post
Share on other sites

Czy jako nadajnik IR mozna uzyc diody SFH4550 lub SFH4511 ?

Udostępnij ten post


Link to post
Share on other sites

matt90, w tej roli możesz użyć jedynie diody SFH4511. Ona nadaje w widmie 950nm, które jest najbardziej zbliżone do tego "widzianego" przez odbiornik.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Z jakim rezystorem używacie ten czujnik aby zakres pomiaru był znaczący, nie w okolicy 5-10cm?

Udostępnij ten post


Link to post
Share on other sites

Przy 100R miałem ponad pół metra w podobnej konstrukcji. Niżej czujnik robił wykrycie od samych zakłóceń na zasilaniu

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Witam. Konstruuję właśnie czujnik z tematu i chciałbym zapytać o to czy mój schemat się zgadza. Chodzi mi głównie o poprawność pod katem tranzystorów bo nie jestem pewien na 100% czy będą spełniały swoją rolę (czy są poprawnie umieszczone/połaczone). Chciałbym jeszcze zapytać o to ile V potrzebuje taka dioda żeby dobrać odpowiedni rezystor w tym przypadku R3 i R4.

Pozdrawiam.

Udostępnij ten post


Link to post
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!

Gość
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...