Arduino Polska Forum
Czujnik odległości HC-SR04 - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino)
+--- Wątek: Czujnik odległości HC-SR04 (/watek-czujnik-odleg%C5%82o%C5%9Bci-hc-sr04)



Czujnik odległości HC-SR04 - robo1973 - 01-05-2019

Witam !!
Podłączyłem czujnik odległości do Ardurino Uno , napisałem poniższy program

Kod:
#define trigPin A1
#define echoPin A0

void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT); //Pin, do którego podłączymy trig jako wyjście
pinMode(echoPin, INPUT); //a echo, jako wejście
}

void loop() {
long czas, dystans;

digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

czas = pulseIn(echoPin, HIGH);
dystans = czas / 58;

Serial.print(dystans);
Serial.println(" cm");
 delay(500);
}

Problem polega na tym, żeby działał czujnik muszę pomiędzy trigPin a echoPin przylutować rezystor 10 kom. Inaczej czujnik nie działa. Może coś musze zmienić w programie, żeby czujnik odległości działał bez dodatkowego rezystora.
Pozdrawiam !!


RE: Czujnik odległości HC-SR04 - kaczakat - 01-05-2019

Jak na to wpadłeś by tam dodać akurat 10k w takiej konfiguracji? Nie słyszałem o takiej konieczności, jest to na kursie Arduino i nikt tam się nie skarżył, że coś nie działa. Program masz też identyczny: link.


RE: Czujnik odległości HC-SR04 - robo1973 - 02-05-2019

W zależności od miejsca gdzie kupiłem czujnik jedne działały a inne nie. Pomyślałem że nie mają sygnałów pociągniętych do +5V Próbowałem podciągać i zaczęły coś pokazywać ale niestabilnie. Więc wlutowałem rezystor 10k om pomiędzy trig a echo i łanie działa. Dziwne co ale prawdziwe. Tak samo jest z oryginalnym czujnikiem odległości z mBot /Makeblock/ . Na bibliotece z mBota działa bez rezystora ale już na powyższym programie nie.


RE: Czujnik odległości HC-SR04 - es2 - 02-05-2019

(02-05-2019, 09:22)robo1973 napisał(a): wlutowałem rezystor 10k om pomiędzy trig a echo i łanie działa.
Przez przypadek.
Zastanowiłeś się co tak naprawdę zrobiłeś?
Sprawdzałeś oscyloskopem jak wyglądają sygnały bez i z rezystorem?


RE: Czujnik odległości HC-SR04 - robo1973 - 02-05-2019

(02-05-2019, 11:11)es2 napisał(a):
(02-05-2019, 09:22)robo1973 napisał(a): wlutowałem rezystor 10k om pomiędzy trig a echo i łanie działa.
Przez przypadek.
Zastanowiłeś się co tak naprawdę zrobiłeś?
Sprawdzałeś oscyloskopem jak wyglądają sygnały bez i z rezystorem?
Po analizie przebiegów czasowych problem rozwiązany

Kod:
void loop() {
 long czas, dystans;

   pinMode(echoPin, INPUT_PULLUP);// dla czujnika mBot
   pinMode(echoPin, INPUT);// dla czujnika mBot
 
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);

 czas = pulseIn(echoPin, HIGH);
 dystans = czas / 58;

 Serial.print(dystans);
 Serial.println(" cm");
  delay(500);
}

trzeba zmienić stan przed pomiarem
 
Kod:
pinMode(echoPin, INPUT_PULLUP);// dla czujnika mBot
   pinMode(echoPin, INPUT);// dla czujnika mBot