Dzień dobry, witam się ponieważ jestem nowy na forum. Przyprowadził mnie tu problem, który napotkałem przy pracy z Arduino Uno i dwoma czujnikami HC-SR04. Przeczytałem większość wątków które znalazłem na forum, ale żaden nie rozwiązał mojego problemu.
W dokumentacji do czujnika wyczytałem, że czujnik po ustawieniu stanu wysokiego na pinie Trig przez 10µs wysyła 8 sygnałów po 40kHZ. Następnie po odbiciu od obiektu sygnał wraca i jest zamieniany na stan wysoki na wyjściu Echo. Długość trwania stanu wysokiego na pinie Echo jest proporcjonalny do odległości jaki przebył sygnał ultradźwiękowego. Dzięki czemu Ardiuno mierzy jedynie czas trwania stanu wysokiego na wyjściu Echo, który po podzieleniu daję odległość w cm bądź inch.
Mnie interesuje jednak drobna modyfikacja. Mianowicie przylutowałem kable do nadajnika i odbiornika ultradźwiękowego i postawiłem je naprzeciw siebie w przykładowej odległości 10cm. Wykonałem to dla obydwu czujników. Zrobiłem tak ponieważ interesuje mnie czas od wysłania sygnału do jego odbioru. Nie interesuje mnie odległość między czujnikami, a czas między wysłaniem i odbiorem sygnału ultradźwiękowego. Taka modyfikacja powinna mi umożliwić obserwację zakłóceń czasu przepływu fali ultradźwiękowej, czyli np. zbudować czujnik wiatru.
Na forum znalazłem kilka przykładów kodów, jednak wszystkie wykorzystują metodę pomiaru czasu stanu wysokiego na Echo przy pomocy pulseIn(PinEcho, HIGH);
Czy Ardiuno jest w stanie mierzyć czas od wysłania do odbioru sygnału ultradźwiękowego ?
Będę wdzięczny za wszelką pomoc.
|