(10-07-2024, 22:56)Łowiczak napisał(a): Nie mam pojęcia jaka jest prędkość transmisji czujnika HC-SR04 czy jakis producent w ogóle podaje coś takiego z jaką prędkością komunikują się peryferia z mikrokontrolerami?
Dokumentacja czujnika
Z opisu wynika, że czujnik ten wystawia impulsy, których długość wynika ze wzoru:
distance [cm] = ( high level time [us] * 34 ) / 1000 / 2
To wskazuje, że czujnik po prostu zaczyna impuls w momencie wysłania fali ultradźwiekowej i kończy w momencie odebrania echa. Operacja pomiaru inicjowana jest impulsem na wejściu.
W takim przypadku liczą się te dwa ostatnie czynniki - pojemność kabla, która "łagodzi" zbocza sygnały i trudniej będzie określić ich faktyczną długość, oraz odbicia - też zakłócające czas wykrycia zbocza. Sam pobór prądu jest max 20mA, przy podanej w dokumentacji minimalnej wartości zasilania 4.5V daje dopuszczalną rezystancje przewodów 25ohm (to w obie strony), o ile masz ładne 5.0V z drugiej strony kabla. Aby pozbyć się problemów można np. obok czujnika zainstalować jakiś kawałek płytki zawierającej lokalny stabilizator zasilania - wtedy w kabel wpuszczasz napięcie odpowiednio większe i jakieś tam spadki na kablu będą usunięte przez stabilizator. Wpływ pojemności zależy od tego, jaki prąd jest w stanie "wyprodukować" element, który steruje danym sygnałem. O ile taka informacja jest podana dla procka (prąd pinów IO) to dla czujnika pozostaje nieznana. Najwyżej trzeba będzie razem z czujnikiem dodać jakąś bramkę lub tranzystor wzmacniający. Odbicia mogą powodować, że zamiast jednego zbocza wystąpi kilka, ale to w odstępach nanosekundowych - tutaj bez znaczenia bo operujemu impulsami o 2-3 rzędy wielkości dłuższymi.
Ja, w pierwszym podejściu podłączym bym wszystko bezpośrednio i potestował trochę. Rezystancje przerwodów można łatwo zmierzyć multimetrem, napięcie zasilania też. Ponieważ pobór prądy przez czujnik jest znacznie większy (10razy) większy w czasie pomiaru - daj kondensatorek 10-100 mikro bezpośrednio przy nóżnach zasilania czyjnika. Zasada jest taka - nie rozwiązywać problemów, których nie ma.