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

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...

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.