logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[atmega8] timer i pomiar odległości dźwiękiem

siwy_693 02 Sty 2012 23:29 3649 15
  • #1 10340774
    siwy_693
    Poziom 11  
    Witam,
    niestety to już mój drugi watek w związku z miernikiem ultradźwiękowym który robię.
    Najpierw próbowałem z przetwornikiem a/c ale nie dawało to żadnych odczytów i teraz spróbowałem z komparatorem a/c i timerem.

    Do atmegi podłączyłem nadajnik ultradźwiękowy przeciwsobnie. Włączam timer1 z przerwaniem od przechwytywania. Programowo wysyłam paczkę impulsów o częstotliwości 40kHz. Gdy echo dociera do odbiornika teoretycznie powinno wystąpić wzrost napięcia na pinie ANI1. Powinno wystąpić przerwanie przepisanie wartości timera1 do rejestru CRI1, a potem wyświetlenie przeliczonej wartości.

    Niestety tak się nie dzieje miernik rejestruje ciągle jakieś wartości, a jak przystawię rękę około 3cm nad odbiornik to niezależnie czy jest podłączony nadajnik wyświetla około 3cm -3,6cm.

    Proszę o jakaś podpowiedź co źle robię. Sprawdzałem czy pętla while jest wykonywana ciągle i wychodzi na to, że gdy występują przerwania to pętla jest wykonywana, a gdy nie ma nic przed odbiornikiem to dioda od wykonywania pętli nie włącza się czyli pętla nie jest wykonywana.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #2 10341644
    pawel-jwe
    Poziom 30  
    siwy_693 napisał:
    Najpierw próbowałem z przetwornikiem a/c ale nie dawało to żadnych odczytów i teraz spróbowałem z komparatorem a/c i timerem.
    Do atmegi podłączyłem nadajnik ultradźwiękowy przeciwsobnie.

    Jeśli przetwornik podłączyłeś bezpośrednio do pinów mikro-kontrolera to nic dziwnego.
    Po pierwsze nadajnik ma wtedy bardzo małą sprawność, jak budowałem swój miernik to dla amplitudy 5V osiągałem zasięg do 1m (przy odpowiednim układzie odbiornika!). Przetwornik nadajnika może pracować z amplitudą nawet ponad 100V, pomyśl nad tym.
    A co do odbiornika to konieczne jest zastosowanie układu wzmacniającego sygnał odbiornika, najlepiej na 2 wzmacniaczach operacyjnych. U mnie prawidłowe działanie jest przy wzmocnieniu sygnału odbiornika ok 1100 razy (oczywiście jest dodane ograniczenie żeby nie spalić wejścia mikro-procka zbyt dużym napięciem).
    Standardowe peryferia Atmegi (przetwornik a/c czy komparator) nie poradzą sobie z tym.
  • #3 10342131
    siwy_693
    Poziom 11  
    Ja rozumiem, że zasilanie tego układu jest do dopracowania i na pewno będzie przerobione. Ogólnie pomiar ma być od 20cm do 120cm. Z możliwie dużo dokładnością.

    Podłączone jest to tak żeby sprawdzić czy program który napisałem działa. Dodam tylko, że jest to mój pierwszy projekt na avr. Do końca nie rozumiem przerwań od wystąpienia zmiany napięcia na pinie ANI1 dla timera1. Na "logike" napisałem program i chętnie przeczytam jakieś podpowiedzi co jest źle, bądź jak twoja na co zwrócić uwagę. :D
  • #4 10342422
    tmf
    VIP Zasłużony dla elektroda
    Z tym nadajnikiem to bez przesady, robiłem taki miernik ultradźwiękowy odległości, gdzie nadajnik był zasilany bezpośrednio z pinów i zasięg rzędu 6m dało się uzyskać. Z tym, że odbiornik był podłączony poprzez prosty wzmacniacz operacyjny (na LM358 o ile pamiętam), wyjście wzmacniacza do detektora szczytowego i na ADC. Jest to o tyle istotne, że możesz sobie ustalić programowo treshold powyżej którego dopiero uznaje coś za echo. Na komparatorze byle śmieć od razu zostanie potraktowany jako echo i kaplica.
  • #5 10342598
    pawel-jwe
    Poziom 30  
    tmf napisał:
    nadajnik był zasilany bezpośrednio z pinów i zasięg rzędu 6m

    To już zależy dużo od samego przetwornika (nawet średnica ma tu znaczenie). Te z których ja korzystałem (a były malutkie) optymalną sprawność miały od ok 20V, ale z prób zauważyłem że duże znaczenie ma też ilość generowanych impulsów (zbyt mało powodowało zmniejszenie sprawności, a za dużo zakłócenia). W swoim projekcie miałem dwa "zasięgi", jeden na amplitudzie 5V, a drugi 18V (przy czym ilość generowanych impulsów do każdej z amplitud dobierałem doświadczalnie).

    Dodano po 1 [godziny] 39 [minuty]:

    Widziałeś może ten schemat: https://obrazki.elektroda.pl/76_1153914416.gif
    Stronka autora niestety już nie istnieje, ale sam schemat był już rzucony na tym temacie: https://www.elektroda.pl/rtvforum/topic551800.html
    Schemat nadajnika/odbiornika jest sprawdzony i przetestowany przeze mnie i działa znakomicie.
  • #7 10344768
    Konto nie istnieje
    Konto nie istnieje  
  • #8 10344868
    siwy_693
    Poziom 11  
    Co do schematu to widziałem go tylko ten miernik to jest "projekt kompetencyjny" mój i kolegi który się nie poczuwa do wykonania. Dlatego stwierdziłem, że skoro sam nie mogę wymyślić to zapytam ludzi obcykanych. Wszystko co zamieszczę w układzie musi mieć swoje zadanie i muszę wiedzieć dokładnie jak ono wpływa na prace układu. Dlatego układ jest taki skąpy narazie. Jak by udało się odmierzyć jakąś odległość to mógłbym rozwijać projekt. Jak teraz nawtykam elektroniki to nie bedzie wiadomo czy oprogramowanie jest źle napisane czy to wina podłączonej elektroniki. Właśnie dokształcam się co do filtrów i wzmacniania tylko pasma 40kHz.

    Panowie, a co możecie powiedzieć o moim programie?? Wiem, że jest pewnie sporo błędów których ja nie widzę ale proszę tylko o porady, a postaram się nauczyć i poprawić. :D
  • #9 10378482
    siwy_693
    Poziom 11  
    Odpowiadam sam sobie, żeby podnieść temat.

    Byłem u mojego promotora... masakra.

    Wszystko co wymyśliłem zostało obsypane słowami krytyki jak i sam pomysł wykorzystania atmegi8. Wg dr powinienem wykorzystać 51 "bo jest lepsza", wszystko fajnie tylko podciął mi skrzydła trochę bo już kręciło mnie programowanie uC.

    Moje nowe pomysły(w oparciu o słowa promotora "więcej analogowo"):
    -wykorzystanie rezonansu RLC do zasilania nadajnika(na razie nie wiem za bardzo czy da się tak w ogóle ale pracuje nad tym)

    -dostałem generator 8MHz ponieważ ten w atmedze jest niestabilny i niedokładny. Mam dorobić sobie analogowy dzielnik częstotliwości. Wg wytycznych da się to zrobić na obwodzie RC. Przeszukałem internet i nic takiego nie mogę znaleźć.

    -inny sposób (mój ) to przerzutniki asynchroniczne. Jakby zbudować od podstaw przerzutnik na bramkach i potem to wszystko sterować tymi 8MHz. Bardzo to rozbuduje mój projekt(niepotrzebnie).

    Jeśli ktoś może mi coś podpowiedzieć czy wskazać miejsce gdzie powinienem szukać będę wdzięczny. Pozdrawiam
  • #10 10378866
    janbernat
    Poziom 38  
    Zmienić promotora :cry:
    Dzielnik analogowy częstotliwości- to antonim.
    Jedyne co mi się kojarzy to pętla fazowa.
    Układ rezonansowy RLC- to się da.
    No ale wymaga wzmacniacza choćby na tranzystorze.
  • #11 10378875
    pawel-jwe
    Poziom 30  
    siwy_693 napisał:
    Wg dr powinienem wykorzystać 51 "bo jest lepsza"

    Mam wrażenie, że twój promotor zatrzymał się w poprzedniej "epoce".
    Generator w oparciu o ATMEGA8 (z wykorzystaniem wbudowanych liczników) jest wystarczająco dokładny i stabilny do tych celów.
    Nawet jeśli już generator zrobić osobno to wykorzystaj do tego przerzutnik schmitta (konstrukcja spotykana czasem w miernikach ultradźwiękowych), zerknij na ten temat:
    https://www.elektroda.pl/rtvforum/topic228540.html
    Wykorzystanie generatora i dzielnika, który Ci dał promotor sprawi że układ może stać się "dużo" większy i niepotrzebnie przekombinowany (Zresztą z wykorzystaniem nawet '51 generator można by zrobić dużo prościej).
    Ja bym nie rezygnował mimo wszystko z ATMEGA8, wykorzystaj do pomiaru czasu od nadania do odbioru impulsów (przerwania zewnętrzne + licznik sprzętowy). Nadajnik tak jak wspomniałem zrób na przerzutniku, a odbiornik na wzmacniaczach operacyjnych (na początek zajmij się samym wzmocnieniem, bez selekcji pasma, zresztą jak wybierzesz dobre przetworniki ultradźwiękowe to mają one wystarczająco selektywną charakterystykę, widziałem takie co mają 38-42kHz).
  • #12 10378950
    siwy_693
    Poziom 11  
    No niestety nie mogę zmienić promotora.

    Fajnie dzięki za wyjaśnienie z tym dzielnikiem bo kombinuje i szukam, a nic z tego nie wychodzi.
    Postanowione, zrobię na przerzutnikach ale już gotowych w jakimś scalaku i koniec. Z tym obwodem RLC to też jest ciężki mit mam 5V zasilające układ z tego raczej nie wyczaruje 50V czy 100V napięcia między szczytowego do zasilania nadajnika. Spróbuje z max232 tam jest 12V czyli dobrze podłączając dostane 24V między szczytowego. Chyba, żeby do RLC dać napięcie z max232 ale to w ogóle kombinację bez sensu taki przerost formy nad treścią...

    Co do atmegi to oczywiście zostanie w moim projekcie Od zera nauczyłem się obsługi jej (chociaż w małym stopniu :D ) to będzie obsługiwała timery i wyświetlacz.
  • #13 10379207
    Konto nie istnieje
    Konto nie istnieje  
  • #15 10474796
    siwy_693
    Poziom 11  
    No i nadal klapa...
    Co do układu RLC faktycznie fajna sprawa nie trzeba kombinować z max232. Tylko nadal nie potrafię ogarnąć odbioru. Zaczynam poważnie się zastanawiać czy mój odbiornik i nadajnik jest sprawny. Jest jakiś sposób na sprawdzenie ich? Niby odbieram sygnał ale jest to odbiór na odległości 30-40cm od nadajnika do odbiornika. Jak odbije od przeszkody to nic nie dostanę praktycznie. Zrobiłem 2 filtry jeden do 35kHz a drugi od 45kHz żeby wyciszyć resztę rzeczy ale to również nie dało polepszenia odbioru. Mam pytanie do kolegi który wstawił układ czy mógłby mi powiedzieć jakie napięcie pojawia się na odbiorniku podczas odbierania sygnału?
  • #16 10531066
    siwy_693
    Poziom 11  
    Projekt zakończony na poziomie nadawania i odbierania sygnału.
    W temacie nadawania wykorzystaliśmy rezonans napięć obwodu RLC, bardzo ważną sprawą jest dokładność z jaką liczymy i mierzymy elementy tego układu. Wiadomo, że nadajnik i odbiornik mają maksimum swojej sprawności w 40kHz i należy jak najdokładniej dążyć do nadania mocnego sygnału z taką częstotliwością. Do zrobienia układu RLC trzeba nawinąć sobie cewkę bo niestety większość "rynkowych" nie pasuje z wartością przynajmniej do naszego nadajnika który miał 2.2nF.
    Odbiór sygnały też nie jest taki banalnie prosty. W naszym projekcie użyliśmy filtra środkowo przepustowego, po czym wzmocniliśmy sygnał na układzie wzmacniacza nieodwracającego. Ogólnie projekt spełnił swoje zadanie zmusił nas do szukania możliwości wykonania go oraz nauczył, że nie wolno za mocno wierzyć danym katalogowym. Na razie zostały mi 2 egzaminy jak się z nimi uporam to pewnie dokończę projekt tak by wreszcie mierzył odległość. Dziękuję wszystkim którzy pomogli mi i pozdrawiam.
REKLAMA