Skocz do zawartości

[Atmega8L][Bascom] Generator przebiegu 36kHz dla diody IR


lukpep

Pomocna odpowiedź

Witam

W projekcie robota staram sie uzyskac wykrywanie przeszkod za pomoca zestawu dioda nadawcza IR + TSOP1736. TSOPki maja strome charakterystyki czestotliwosciowe wiec staram sie jak najdokladniej uzyskac przebieg znamionowy 36kHz.

Robie to przy uzyciu nastepujacego kodu:

$crystal = 8000000 
(...) 
Config Timer2 = Timer , Prescale = 8 , Compare = Toggle , Clear Timer = 1 
Dim Count As Byte , Akcja As Bit 
(...)
Ocr2 = 28

i w petli glownej:
  Incr Count                                              
  If Count = 250 Then Count = 0                           
  If Count = 109 Then                                      
     Start Timer2                                         
     Akcja = 1                                             
  Else                                                     
     Stop Timer2                                           
     Akcja = 0                                            
  End If                                                   
  Waitms 1

I slowem objasnienia - jestem poczatkujacy wiec jezeli popelniam jakis banalny blad to wdzieczny bede za niezbesztanie mnie totalnie 😉

Zegar procka ustawiony jest na 8 Mhz, dzielnik Timera jest na 8 co daje 1MHz, W OCR2 wpisane mam 28 czyli po doliczeniu do tej wartosci zmienia sie stan wyprowadzenia OC2, pod ktore podpiete mam diody nadawcze. Licze i wychodzi, ze dzieje sie to 35714 razy w ciagu sekundy - czyli 35,7 kHz

Akcja to przelacznik startujacy (gdy ma wartosc 1) detekcje przeszkod przez odbiorniki.

Proc taktowany jest z kwarcu 8 MHz rzecz jasna, fusy ustawione:

high na D9

low na DC

czyli 011100:Ext. Crystal/Resonator Medium Freq.; Start-up time: 258 CK + 64 ms; [CKSEL=1100 SUT=01]

No i teraz problem .... nie dziala. Na takim ustawieniu jak powyzej przeszkody jakoby wykrywane sa caly czas. Zjezdzajac z wartoscia OCR2 stwierdzam:

OCR2 w przedziale 30-8 - stale wykrywanie przeszkod

OCR2 w przedziale 0-5 - brak wykrywania przeszkod

OCR2 ustawione na wartosc 6 lub 7 daje jakis tam kontakt z otoczeniem - ale niezbyt skuteczny:

Zbyt czesto znajduje przeszkode, ktorej nie ma - powienien jechac do przodu i tylko w przypadku wykrycia przeszkody manewrowac - a jak widac kreci baczki i kombinuje - cos tam niby zlapie ale to nie jest to co powinno byc 😉

Zarowno diody nadawcze jak i odbiorniki odpowiednio osloniete - tak zeby promieniowanie z diod nie wplywalo na odczyty - oczywiscie oprocz wiazki odbitej.

Mam nadzieje, ze wszystko opisalem w miare klarownie i przepraszam za ewentualne glupoty zawarte w moim problemie.

Pozdrawiam

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.