Skocz do zawartości

Czujniki PIR- wadliwe?


Krisk

Pomocna odpowiedź

Hej,

jakie macie doświadczenia z czunikami  PIR jeśli chodzi o wadliwość? Kupiłem 1, przestał działać po kilku próbach, zareklamowałem i otrzymałem kolejny, który też nie działa...

Przy minimalnych ustawieniach cały czas wykrywa ruch, chyba że coś źle robię.

Prosty układ z 1 LED, który pokazuje wykrycie ruchu, LED świeci cały czas.

 

void setup() {
  pinMode(7, OUTPUT); //LED
  pinMode(2, INPUT); //PIR jako wejście

}
 
void loop() {
  if (digitalRead(2) == LOW) { //Jeśli wykryto ruch
    digitalWrite(7, HIGH); }
  else {
    digitalWrite(7, LOW); }
  
}

 

  • Lubię! 1
Link do komentarza
Share on other sites

Ja bym napisał 

dogitalWrite(LED, digitalRead(pir)) 

Oczywiście poprawnie dla arduino, bez niepotrzebnych ifów

Edytowano przez _LM_
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Może na początek podaj link do swojego czujnika. Jeśli to np. taki:

https://botland.com.pl/czujniki-ruchu/1655-czujnik-ruchu-pir-hc-sr501-zielony-justpi-5903351241359.html?cd=20567593583&ad=&kd=&gad_source=1&gclid=EAIaIQobChMI0JCLgNiAgwMVtKlmAh0uVgJ-EAQYASABEgKXdvD_BwE

to akurat on sygnalizuje wykrycie ruchu stanem wysokim, a nie niskim. Są tam także 2 potencjometry i zworka konfiguracyjna. Pokaż więcej informacji na temat swojego układu. Jak to podłączyłeś itp. Spróbuj jeszcze dodać opóźnienie na koncu loop np. delay(500)

Link do komentarza
Share on other sites

14 godzin temu, Belferek napisał:

Może na początek podaj link do swojego czujnika. Jeśli to np. taki:

https://botland.com.pl/czujniki-ruchu/1655-czujnik-ruchu-pir-hc-sr501-zielony-justpi-5903351241359.html?cd=20567593583&ad=&kd=&gad_source=1&gclid=EAIaIQobChMI0JCLgNiAgwMVtKlmAh0uVgJ-EAQYASABEgKXdvD_BwE

to akurat on sygnalizuje wykrycie ruchu stanem wysokim, a nie niskim. Są tam także 2 potencjometry i zworka konfiguracyjna. Pokaż więcej informacji na temat swojego układu. Jak to podłączyłeś itp. Spróbuj jeszcze dodać opóźnienie na koncu loop np. delay(500)

Czujnik jaki posiadam to hc-sr501
Zworka przestawiona na tryb "retriggering".

 

obraz.png

Link do komentarza
Share on other sites

No to cudów tu nie ma jeśli podłączyłeś prawidłowo czujnik.
Na początek sprawdź swoje połączenia.
Zrób czytelne zdjęcie całego swojego układu podłączonego czujnika do płytki uC (Arduino, czy co tam używasz) tak by można było zobaczyć jak ten czujnik zasiliłeś (+ i -) i jak podłączyłeś do płytki jego wyjście.

Poeksperymentuj z ustawieniami potencjometrów i zworki. Jednym z nich regulujesz czułość czujnika. By mieć pewność, że czujnik nie powinien wykrywać ruchu możesz go osłonić np. kartonowym pudełkiem. Wtedy na jego wyjściu powinien być stan LOW (0) i taki stan powinien odczytać program.

Ja często wykorzystuję do "debugowania" działania programu port szeregowy i Tobie też to polecam. Twój programik diagnostyczny mógłby więc wyglądać tak:

void setup() {
  pinMode(7, OUTPUT); //LED
  pinMode(2, INPUT); //PIR jako wejście
  Serial.begin(9600);

}
 
void loop() {
  int czujnik = digitalRead(2);
  Serial.println(czujnik);
  
  if (czujnik == 1) { //Jeśli wykryto ruch
    digitalWrite(7, HIGH); }
  else {
    digitalWrite(7, LOW); }
  
  delay(500);
}

Przy działającym czujniku w monitorze portu szeregowego powinieneś widzieć zmieniające się 0 i 1.

Na stronie BOTLAND masz to wszystko ładnie pokazane:

https://botland.com.pl/content/152-wykrywanie-ruchu-z-arduino

Edytowano przez Belferek
Link do komentarza
Share on other sites

(edytowany)

Teraz czujnik nic nie reaguje, monitor portu szer. pokazuje 0. Dotknąłem czujnik i zaczął widzieć... Coś jakby nie łączyło...

Podłączenie jak na zdjęciu.

Wcześniej zanim reklamowałem czujnik to działało.

 

obraz.thumb.png.af1f12328e7efb33aaa47e9ec662cc1f.png

Edytowano przez Krisk
Link do komentarza
Share on other sites

4 minuty temu, Krisk napisał:

Wcześniej zanim reklamowałem czujnik to działało.

To znaczy - zepsułeś? Jak wszystko działało to po co reklamowałeś?

Na Twoim zdjęciu nie widać ... czujnika z którym masz problem. Zrób porządne i ostre zdjęcie całości.

Link do komentarza
Share on other sites

No cóż, wygląda dobrze. Twoje kabelki są już trochę sfatygowane. Wyrzuć na razie tego LED (kabelków będzie mniej) masz przecież port szeregowy do diagnostyki.
Sprawdź (wymień) kabelki może to pomoże.
Czy na pewno do czujnika dochodzi zasilanie?
Regulowałeś potencjometrem T2 (tym bliżej zworki). W każdym jego położeniu jest taki efekt (blisko skrajnych położeń, środek)?
Zmieniałeś ustawienie zworki i regulowałeś potencjometrem T1?
Zasłaniałeś czujnik ręką z pewnej odległości? Na przeszkodę w postaci kartki papieru niekoniecznie czujnik zareaguje.
Podłączałeś czujnik do innego pinu GPIO?
Testowy przykład BLINK działa?

Jeśli nic z tych porad nie pomoże to uszkodzony jest czujnik - pytanie dlaczego? Podłączałeś czujnik i LED przy włączonym Arduino?

Edytowano przez Belferek
Link do komentarza
Share on other sites

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.