Skocz do zawartości

Pi pico błąd w kodzie


Michal88

Pomocna odpowiedź

Mam czujnik PIR 3v3 bez potencjometrów czujnik tylko co jakiś czas wykrywa ruch sprawdzane na dwóch czujnikach, to gdzieś musi być błąd w kodzie.

 

from machine import Pin
import utime
led = Pin('LED', Pin.OUT)
pir = Pin(1, Pin.IN, Pin.PULL_UP)
led.low()
utime.sleep(3)
while True:
   print(pir.value())
   if pir.value() == 0:
       print("LED On")
       led.high()
       utime.sleep(5)
   else:
       print("Waiting for movement")
       led.low()
       utime.sleep(0.2)

 

Link do komentarza
Share on other sites

Zamknij układ w kartonie, może coś łapie o czym nie wiesz. Sprawdź, czy wtedy będzie wariował.

Ale, czy nie powinno być:

pir = Pin(1, Pin.IN, Pin.PULL_DOWN)
  .
  .
if pir.value() == 1:

? Czujnik idzie wysoko, jak coś jest w zasięgu.

Edytowano przez matsobdev
  • Lubię! 1
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

Twoje rozwiązanie pomogło, ale chyba mój nowy kod jest lepszy niż poprzedni.

 

from machine import Pin
from time import sleep

led = Pin('LED', Pin.OUT)
pir = Pin(1, Pin.IN)

while True:
  if pir():
    print('Motion detected!')
    led.on()
    sleep(1)
    led.off()
    if not pir():
        print('Motion stopped')

 

Link do komentarza
Share on other sites

W sumie tutaj podciąganie może nie być potrzebne, bo sam czujnik może trzymać wysoko, czy nisko i nie będzie pływać samo sobie. Generalnie jest to ważna rzecz do mniej inteligentnych czujników, czy w ogóle przycisków itp. Pomijając jakiś stan przejścowy, np. start Pico, kiedy to wszystkie piny są podciągnięte w dół.

Edytowano przez matsobdev
Link do komentarza
Share on other sites

Próbuję robić tak, aby czujnik po wykryciu ruchu cały czas wyświetlał napis o wykryciu ruchu, a zatrzymał się dopiero po wciśnięciu klawisza

 

from machine import Pin
from time import sleep

led = Pin('LED', Pin.OUT)
pir = Pin(1, Pin.IN)
a = 1

while True:
  if pir():
    print('Motion detected!')
    led.on()
    led.off()
    if input(a):
        print ('STOP')

 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

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