klonyyy Kwiecień 10, 2012 Autor tematu Udostępnij Kwiecień 10, 2012 Dzięki, za około 5 godz wstawię zdjęcia pocynowanej płytki
ps19 Kwiecień 10, 2012 Udostępnij Kwiecień 10, 2012 Nie, żebym był natrętny ale dalej masz nie połączone ścieżki.Ale jak masz już płytkę to spróbuj jakimś drutem. Jak nie masz pomysłu to spróbuj opcji follow-me (Route) pojeździć trochę myszką po ekranie i Eagle pokaże ci możliwe prowadzenia, ale czasami trzeba trochę po poprawiać.
klonyyy Kwiecień 14, 2012 Autor tematu Udostępnij Kwiecień 14, 2012 Płytkę wytrawiłem i pocynowałem, ale oczywiście pojawił się inny problem - czujniki. Czy ktoś mógłby mi wytłumaczyć jak najlepiej i najłatwiej wygenerować 36khz ? używam timera z pinu pd.5 Skleciłem taki program na podstawie artykułu KD93 ale działa slabo ( na pewno coś robię źle tylko nie wiem co ): $regfile = "m16def.dat" $crystal = 16000000 Config Portb = Output Config Porta = Input Config Portd.5 = Output Config Portd.7 = Output Config Portd.4 = Output Config Portd.6 = Output Ocr1a = 21 Ocr1a = 21 Tccr1a = &B10111111 Tccr1b = 1 Portd.4 = 1 Portd.7 = 1 Do If Pina.1 = 0 Then Portb = &B00000 Elseif Pina.1 = 1 Then Portb = &B11111 End If Loop
KD93 Kwiecień 14, 2012 Udostępnij Kwiecień 14, 2012 Co to znaczy, że "działa słabo"? Generuje złą częstotliwość czy w ogóle nie działa? Sprawdzę dokładniej program za ~2h, teraz nie mogę.
klonyyy Kwiecień 15, 2012 Autor tematu Udostępnij Kwiecień 15, 2012 Po prostu robi tak : Gdy przejadę ręką z góry na dół czujnik reaguje poprzez jaśniejsze zapalenie się diod led. Za to gdy przybliżam rękę stopniowo ( poziomo) diody zaczynają 'dragć' po czym gasną.
KD93 Kwiecień 15, 2012 Udostępnij Kwiecień 15, 2012 To jest SFH czy TSOP? Jakie masz diody (pasmo i średnica)? Dodaj sobie paczkowanie dla diodek, zobacz w dokumentacji odbiornika jaka powinna być długość impulsów. Pokombinuj w okolicach tej długości, wychodzą całkiem ciekawe wyniki.
klonyyy Kwiecień 15, 2012 Autor tematu Udostępnij Kwiecień 15, 2012 Odbiotniki to TSOP'Y ( sfh nie mogę nigdzie dopaść) , diody LD271, o paczkowaniu nie wiem nic więc idę szukać [ Dodano: 15-04-2012, 09:10 ] Znalazłem w dokumentacji, gdy wpisałem wavelength ale nie wiem czy to to.
KD93 Kwiecień 15, 2012 Udostępnij Kwiecień 15, 2012 Są takie rysunki z paczkami, str. 3, tam jest "Optical Test Signal", pooglądaj sobie tez inne wykresy, tam mogą być jakieś zależności. Zrób jeszcze zdjęcie jak masz zabezpieczone diody. Jesteś pewny, że światło nie odbija się od podłoża? Spróbuj skierować czujnik w przestrzeń, daleko od wszelkich przeszkód.
klonyyy Kwiecień 15, 2012 Autor tematu Udostępnij Kwiecień 15, 2012 Tsop jest obudowany z każdej strony kartonem ( tylko soczewka wystaje poza karton ) I jeśli dobrze myślę to gdy dodam paczkowanie to diody będą pulsowały niezależni czy jest przeszkoda czy jej nie ma, ponieważ tsop będzie odbierał paczki ( jeśli źle myślęto proszę o wytłumaczenie lub jakiśprzykładowy program ) Z datasheeta wyczytałem że ta paczka (lub przerwa między paczkami ) powinna mieć ok 600us, tak?
KD93 Kwiecień 15, 2012 Udostępnij Kwiecień 15, 2012 Tak, 600us tam było. Tsop jest obudowany z każdej strony kartonem ( tylko soczewka wystaje poza karton ) No to kijowo, soczewka nie może wystawać, bo światło jest upierdliwe, zawsze się gdzieś poodbija i wpadnie do odbiornika Zostaw TSOP'a w spokoju, zajmij się izolowaniem diodek IR, najlepiej przy pomocy rurek aluminiowych i plasteliny. U mnie wygląda to tak: Malutkie zdjęcie, bo wycinane z wycinanego etc, ale widać o co chodzi. [ Dodano: 15-04-2012, 09:42 ] A, zapomniałem. Z tym paczkowaniem to jest tak, że TSOP jest bardzo "mądry", sam sobie reguluje czułość, po dłuższym czasie odbierania blokuje się (możliwe, że dlatego gasła ci dioda po tym migotaniu). Dlatego wysyła się z diody krótkie impulsy i przerwy, żeby odbiornik je odebrał, ale nie zablokował się. Do tego do minisumo paczkowanie jest niemal konieczne, pamiętaj że czujniki na TSOP'ach są w dalszym ciągu stosowane w wielu robotach i emitując światło ciągiem dajesz przeciwnikowi informację, gdzie się znajdujesz, innymi słowy twój robot "świeci jak latarnia". Jeśli paczkujesz to twoje impulsy nie pokryją się z impulsami przeciwnika i roboty nie będa się zakłócać. 1
klonyyy Kwiecień 15, 2012 Autor tematu Udostępnij Kwiecień 15, 2012 No dobra diody zaizoluję( niestety dopiero jak wrócę z kościoła :-> ) Chodzi mi o te 600us to musi być długość paczki czy odstep między nimi ? I jak to zealizować w programie? Włączać diodę na 600 us i włączać odbiornik w tym samym momencie ( na 600us) by czekał na sygnał ?
KD93 Kwiecień 15, 2012 Udostępnij Kwiecień 15, 2012 Ja to robię tak: -włączasz diodę -czekasz 600us -sprawdzasz stan na TSOP -wyłaczasz diodę -czekasz 600us W pętli oczywiście. Ja to robię jeszcze nieco inaczej z racji moich 6 diodek, ale zawsze działa to na takiej zasadzie. 1
klonyyy Kwiecień 15, 2012 Autor tematu Udostępnij Kwiecień 15, 2012 $regfile = "m16def.dat" $crystal = 16000000 Config Portb = Output Config Porta = Input Config Portd.5 = Output Config Portd.7 = Output Config Portd.4 = Output Config Portd.6 = Output Ocr1a = 21 Ocr1a = 21 Tccr1a = &B10111111 Tccr1b = 1 Do Portd.4 = 1 Portd.7 = 1 Waitus 600 If Pina.1 = 0 Then Portb = &B00000 Elseif Pina.1 = 1 Then Portb = &B1111111 Portd.4 = 0 Portd.7 = 0 Waitus 600 End If Loop Coś w tym stylu ? [ Dodano: 15-04-2012, 10:14 ] $regfile = "m16def.dat" $crystal = 16000000 Config Portb = Output Config Porta = Input Config Portd.5 = Output Config Portd.7 = Output Config Portd.4 = Output Config Portd.6 = Output Pina.1 = 1 Portd.4 = 0 Ocr1a = 21 Ocr1a = 21 Tccr1a = &B10111111 Tccr1b = 1 Do Portd.4 = 1 Waitus 600 If Pina.1 = 0 Then Portb = &B00000 Elseif Pina.1 = 1 Then Portb = &B1111111 Portd.4 = 0 Waitus 600 End If Loop Ten program działa jako tako. gdy przed czujnikiem znajduje się przedmiot diody zaczynają mrugać a gdy nie ma nie palą się.
KD93 Kwiecień 15, 2012 Udostępnij Kwiecień 15, 2012 Teraz to już się pogubiłem Róbmy po kolei, bo walczymy tu już z izolacją a okazuje się, że już rejestry są źle ustawione. Chcesz mieć OC1A jako generator 36kHz, a OC1B jako zwykły pin I/O. Spójrz w DS'a: http://www.atmel.com/Images/doc2466.pdf Strona 110. Dla każdego pinu są po 2 bity do ustawienia, w tabelkach jest napisane jak ustawić te dwa bity żeby osiągnąć zamierzony efekt. Patrz na tabelki dla non-PWM. Wspomóż się polską wersja DS'a, akurat masz szczęście bo jest pod megę16. Spróbuj to sam poustawiać, bo wtedy najlepiej się nauczysz. Jak skończysz to Ci ewentualnie poprawię.
klonyyy Kwiecień 15, 2012 Autor tematu Udostępnij Kwiecień 15, 2012 No dobra znalazłem tabelkę, i te rejestry tylko zupełnie nie wiem gdzie wpisać te wartości... Znalazłem nawet artykuł black jacka ale nadal nic nie rozumiem. [ Dodano: 15-04-2012, 14:20 ]
Pomocna odpowiedź
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ę »