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

Dziwne zachowanie czujnika piezoelektrycznego

Krolas 09 Wrz 2011 14:59 1077 4
REKLAMA
  • #1 9910452
    Krolas
    Poziom 9  
    Witajcie!

    Mam podstawy do tego aby sądzić, że uzyskanie milimetrowej dokładności w mierzeniu odległości przy pomocy ultradźwięków to fikcja. Przy odseparowanym nadajniku i odbiorniku, gdy wysyłam paczki 5 impulsów sygnału 40kHz co równe odstępy czasu, odbieram, w zależności od odległości interwały różniące się od siebie o 25us czyli dokładnie tyle ile trwa jeden okres sygnału. Wnioskuję, że w miarę zwiększania odległości odbiornik wychwytuje nie pierwszy ale dopiero drugi i dalsze okresy sygnału- pierwsze są za słabe i odbiornik wzmacnia kolejne przez rezonans. Zatem z danych, które uzyskałem wynikałoby, że w odległości 1m jest wychwytywany dopiero 4 i 5 okres (przy konkretnym wzmocnieniu, przy innym będzie to np 1 i 2) czyli dokładność najwyżej 3cm. Należałoby wziąć poprawkę na te 8mm (jeden okres 40kHz) w zależności od mierzonej odległości. Lecz to jest chyba niewykonalne bo granice są strasznie rozmyte.

    Pomysłu, że da się uzyskać taką dokładność broni fakt, że nawet przy minimalnej odległości komparator do którego jest podłączony układ odbiorczy łapał a to pierwszy z okresów a to drugi. Zdaje się, że skoro zasięgu mam prawie 3m to bez problemu przy 5cm powinien odbierać już pierwszy okres. Nigdzie też nie napotkałem na wyjaśnienie tego problemu ani w przedstawionych projektach nie był omówiony.

    Mam nadzieję, że przedstawiłem zrozumiale problem. Czy ktoś z forumowiczów natknął się wcześniej na coś takiego?

    Układ odbiorczy z wyjściem do komparatora Atmega162 (do ain1)(ain0 do 2,5V- połowy zasilania):
    Dziwne zachowanie czujnika piezoelektrycznego

    Nadajnik jest zasilany 20V.

    Program to po prostu przerwanie od komparatora . Przepisuje wtedy stan 32bitowego licznika (zrealizowanego dzięki przerwaniu overflow) i wysyłam przez usart do PC.

    Badam różnice w odebranych stanach licznika. Stany różnią się od siebie o 500, 1000(przypadkowo), przy częstotliwości taktowania procesora 20Mhz.
    Paczka 5 impulsów jest wysyłana 20, 40, 80, 120, razy na sekundę. Problem pojawia się zawsze.

    Skoro w projektach na jakie trafiłem jest określony zazwyczaj zasięg maksymalny to uważam, że duże znaczenie ma właśnie to podbijanie kolejnych okresów przez rezonans. A w takim razie jak stwierdzi, który został wychwycony?
    Czy układ odbiorczy wymaga przerobienia?
    Czy nie jest to wina czegoś innego?
  • REKLAMA
  • #2 9910622
    netotron
    Poziom 26  
    Witam
    Masz możliwość sprawdzenia oscyloskopem dwu kanałowym sygnału wyjściowego
    i powrotnego jednocześnie? Dokładnie byłoby widać różnice w opóźnieniu sygnałów.
  • REKLAMA
  • #3 9910811
    Krolas
    Poziom 9  
    Taką możliwość będę miał niestety dopiero za trzy tygodnie.
  • REKLAMA
  • #4 9911082
    Konto nie istnieje
    Konto nie istnieje  
  • #5 9928483
    Wieslaw Bicz

    Poziom 18  
    Pomiar z dokładnością nawet znacznie lepszą niż 1mm (i to bardzo znacznie) jest możliwy, ale wymaga zastosowania lepszej elektroniki, lepszych przetworników i lepszych algorytmów. Oczywiście konieczna jest też kompensacja zmian temperatury na drodze wiązki. Przy odpowiednio wykonanym pomiarze da się nawet osiągnąć dokładności zbliżone do mikrometrów.

    W prostych zastosowaniach lepiej pracować na obwiedni sygnału. Jest to mniej podatne na zakłócenia. Inna ewentualność: próbkować sygnał i stosować bardziej "mądry algorytm".

    Bez kompensacji temperatury cały pomiar też ma niewielką dokładność. Zmiana temperatury o jeden stopień na dystansie 3m odpowiada zmianie odległości o ok. 14mm.

    Sprawa jest dość oczywista dla ludzi zajmujących się takimi rzeczami.

    W. Bicz
REKLAMA