Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 19 sty 2026, o 18:22


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 22 ] 
Autor Wiadomość
PostNapisane: 24 wrz 2014, o 15:06 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

Cześć,
Mam problem z czujnikiem ultradzwikęowym mianowici mam dziwne odczyty mój kod to:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

odczyt typu: najpierw 9 (lub jakaś liczba) nagle zmienia se na 24 lub jakies randomowe liczby.
Próbowałemteż dzielenia przez 58 ale też nie idzie.

_________________
http://matkowalik.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2014, o 18:50 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

I jak pomoże ktoś? wiem że były takie tematy ale nie umiem sobie z tym poradzić...

_________________
http://matkowalik.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2014, o 19:21 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Kod wygląda OK. Może timer1 (ten co mierzy długość impulsu) się przekręca kilka razy. Jakie masz taktowanie procka? Jaką odległość mierzysz? Jakiego impulsu w mikrosekundach się spodziewasz?

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2014, o 19:58 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

taktowanie to 8Mhz wewnetrzny osc. niezależnie czy 3cm czy 10 czy 15 jest tak samo.

_________________
http://matkowalik.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 wrz 2014, o 20:37 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

A masz przestawione F_CPU w opcjach na 8 MHz?

Wzór na odległość jest taki:
Impuls[us]/58 = odległość[cm]
Jak masz kwarc 8 MHz i preskaler 1 to 1 us odpowiada 8 cyklom zegara, więc odległość to będzie PulseWidth/8/58 i maksymalna odległość mierzona wyniesie 65536/8/58 = 141 cm
Jakbyś ustawił preskaler timera1 na 8 to wtedy miabłyś pełny zakres do 4 metrów.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2014, o 12:59 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

Ok zmieniłem na podział przez 8 a nastepnie przez 58 i wynik jest ok, ale dalej nwm dlaczego są takie skoki typu mam 6cm i przeskakuje na 7 i znow na 6(to akurat moze byc noramlne) ale że jest 6 i nagle 11 i znów 6 albo coś w tym stylu i tak przeskakuje to uż nwm. A powyżej np 16 zm pokazuje cały czas 83.

_________________
http://matkowalik.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2014, o 17:21 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

Jeszcze jeden problem, mianowicie potrzebuje obsłużyć 2 takie czujniki ale widzę że atmega32 posiada tylko jedno wejscie ICP1, jak to teraz zrobić?

_________________
http://matkowalik.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2014, o 17:37 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

To 10us dla trigera to minimum, a wewnętrzny oscylator ma stosunkowo dużą tolerancję. Spróbuj troszkę zwiększyć ten czas.
KoWaL napisał(a):
potrzebuje obsłużyć 2 takie czujniki ale widzę że atmega32 posiada tylko jedno wejscie ICP1, jak to teraz zrobić?
Podłącz oba wyjścia przez tranzystory npn do wejścia ICP1 i włącz wewnętrzne podciąganie oraz zmień działanie na przeciwne zbocze. Programowo jeszcze będzie to wymagać zmiennej, która będzie informować jaki triger został wygenerowany i który wymiar należy obliczyć na podstawie PulseWidth.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2014, o 17:49 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

Ok rozumiem że 2 tranzystory wyzwalane naprzemian np.zmienną która pomoże zidentyfikować i obliczyć odległość danego czujnika???
Jeśli to zrobię mniej więcej co 300ms rezultat powinien wyjść jeszcze szybciej nawet niż poprzedni (zależy mi na dokonywaniu pomiaru w czasie co 300-400ms bo potrzebuje jako czujniki do robota).
Dobrze myśle?

_________________
http://matkowalik.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2014, o 18:06 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Tranzystory są sterowane z wyjść czujników.
Pomiar możesz robić co 60 ms (krótsze czasy nie są zalecane). W pętli głównej wysyłasz triger na 1 czujnik i po 100 ms czytasz wynik 1 i od razu wysyłasz triger na 2 czujnik i po 100ms czytasz wynik 2 i z powrotem wysyłasz triger na 1 czujnik itd.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2014, o 19:01 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

Kod na tranzystorze.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
http://matkowalik.pl/



Ostatnio edytowano 26 wrz 2014, o 16:01 przez KoWaL, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 wrz 2014, o 20:02 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Zrób po mojemu. Wyrzuć ten program powyżej i wróć do wersji z jednym czujnikiem.

Najlepiej podejdź do modyfikacji małymi krokami. Najpierw niech będzie jeden czujnik i jeden tranzystor, którego nie sterujesz z procesora. Te tranzystory maja działać jak bramka NOR. Do wyjścia czujnika podłącz rezystor i do niego bazę tranzystora, emiter do masy i kolektor do wejścia ICP.

W programie w pierwotnej wersji zmień:
- podciągnij ICP do plusa
- odwróć zbocza, bo tranzystor neguje sygnał

I to powinno działać na jednym czujniku. Jak to się uda to przejdź dalej.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2014, o 16:04 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

Dziękuję Ci kolego Kauser że chce się Tobie ze mną męczeyć ale jesem jeszcze początkującym i niektóre rzeczy słabo jeszcze mi idą, kod u gory uaktualniłem a wyjście z tranzystora podciągnąłem rezystoem 10kohm pod plus, lecz znów jakieś dziwne wyniki randomowe.

_________________
http://matkowalik.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2014, o 18:01 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Jeszcze zmiana w tym miejscu z:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

na:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2014, o 19:08 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

Ok na jednym działa, podłączyłem też collecter z drugiego tranzystora pod collecter pierwszego.
Programik taki ale chyba coś znów skopałem.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
http://matkowalik.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2014, o 19:35 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Żaden wait pomiędzy wyzwoleniami (ta funkcja i tak na oko nie zadziała) tylko raz jeden czujnik a raz drugi:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 wrz 2014, o 19:56 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

Kod zdaje się działać ale wynik na obydwóch jest podawany z prawego czujnika.

_________________
http://matkowalik.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2014, o 10:37 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

No nic trzeba znaleźć przyczynę. Może takie 2 opcje sobie wypróbuj:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A może 100 ms to za mało.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2014, o 11:28 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

Sprawdziłem, ale żaden z tych nie działa to samo.
A może między sobą się za szybko zmieniają.

_________________
http://matkowalik.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2014, o 18:08 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

I jak ma ktoś jeszcze jakiś pomysł?

_________________
http://matkowalik.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2014, o 19:25 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

KoWaL napisał(a):
Sprawdziłem, ale żaden z tych nie działa to samo.

To nie była poprawka. W pierwszym przypadku oba pomiary miały być z lewego czujnika, a w drugim oba z prawego.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 wrz 2014, o 19:55 
Offline
Użytkownik

Dołączył(a): 28 lis 2013
Posty: 173
Lokalizacja: Pszczyna
Pomógł: 0

Ok ale to i tak nie mam rozwiązania jeszcze jakieś pomysły?

------------------------ [ Dodano po: 11 minutach ]

Obojętnie czy ustawie na prawy czy na lewy i tak zczytuje z prawego co może byc przyczyna?

_________________
http://matkowalik.pl/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 22 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO