Skocz do zawartości

Problem z czujnikiem odległości US-015


Pomocna odpowiedź

Napisano

Witam

Mam problem z ultradźwiękowym czujnikiem odległości(2-400cm). Wyświetla on zawsze wartości z przedziału od 8 do 9.

(Zmieniają się nawet gdy odległość pozostaje taka sama). Dodam że pracuję na Arduino Uno R3.

KOD:

#define TRIG 12
#define ECHO 11
void setup()
{
 pinMode(TRIG,OUTPUT);
 pinMode(ECHO,INPUT);
 Serial.begin(9600);
}
float pomiar()
{
 unsigned czas;
 digitalWrite(TRIG,HIGH);
 delayMicroseconds(10);
 digitalWrite(TRIG,LOW);
 czas=pulseIn(ECHO,HIGH);
 return czas/58.00;
}
void loop()
{
 Serial.println(pomiar());
 delay(800);
}

Wydaje mi się, że problem jest, że dzielisz liczbę typu unsigned (czas) przez float (58.00).

i funkcja też powinna zawracać wartości typu float.

Może spróbuj zmienić funkcję na unsigned pomiar() i zadeklarować dzielnik by był tego samego typu (unsigned).

Może to głupie, ale jedyne co przychodzi mi w tej chwili do głowy.

Po zmienieniu wszystkich zmiennych na int, i dodatkowo okrojenia przelicznika(na cm),dalej pokazuje wartości losowe oscylujące między 450 a 550, pomimo zmian odległości. Może to być wina czujnika (kupiłem go kilka dni temu)?😕

#define NADAJNIK 3
#define ODBIORNIK 4
void setup()
{
 pinMode(NADAJNIK,OUTPUT);
 pinMode(ODBIORNIK,INPUT);
 Serial.begin(115200);
 digitalWrite(NADAJNIK,LOW);
}
int CZUJNIK()
{
int czas=0;
delay(800);
digitalWrite(NADAJNIK,HIGH);   
delayMicroseconds(10);
digitalWrite(NADAJNIK,LOW);
czas=pulseIn(ODBIORNIK,HIGH);
return czas;
}
void loop()
{
 Serial.println(CZUJNIK());
}

A dobrze podłączyłeś? Może podeślij zdjęcie.

Próbowałeś może skorzystać z tego przykładu: https://botland.com.pl/content/144-pomiar-odleglosci-z-wykorzystaniem-arduino-i-czujnika-hc-sr04-lub-us-015

Ten mój pierwszy post to był taki "strzał", bo miałem kiedyś podobny problem z przeliczaniem wartości, gdy jedna była typu int a druga typu float.

Przykład w linku jest bardzo podobny, więc może jednak podłączenie (może sprawdź na innych przewodach)?

Przekleiłem kod, zamieniłem piny i wyświetla tylko 7, czasem 8 centymetrów. Raczej nie jest to kwestia podlączenia(obwód jest prosty i sprawdzałem juz go kilka razy).

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...