Skocz do zawartości

Pi Pico czujnik sam zmienia stan


Michal88

Pomocna odpowiedź

Mam taki prosty kod 

from machine import Pin
import time

Kontaktron = Pin (21, Pin.IN)
led = Pin(25, Pin.OUT)

while True:
    print (Kontaktron.value())
    time.sleep_ms(1000)

Gdy czujnik kontaktron jest połączony ma wyświetlić 0 kiedy jest rozłączony 1. Gdy jest rozłączony cały czas to wyświetla

1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
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

Kontaktron = Pin (21, Pin.IN, Pin.PULL_UP)

Tylko zmiana w kodzie, jeśli kontaktron zwiera do masy. Tak będzie "1" jak nic nie będzie na pinie, a wewnątrz będzie rezystorem połączony do 3V3 przez rezystor.

Edytowano przez matsobdev
Link do komentarza
Share on other sites

@Michal88 mam wrażenie, że ostatnio w różnych tematach masz wiele niestandardowych problemów, których rozwiązanie trwa długo 😉 Może zacznijmy od samych podstaw, aby nie brnąć w złym kierunku:

  • Jaki konkretnie kontaktron masz podłączony?
  • Czy w okolicy nie ma jakiegoś zmiennego pola magnetycznego? Np. od pracujących silników?
  • Jak konkretnie go podłączyłeś?
  • Czy to na pewno cały program?
Link do komentarza
Share on other sites

Naprawione.

Ale mam przykładowy kod, który można lepiej napisać np w funkcji?

from machine import Pin
import time

Kontaktron0 = Pin (20, Pin.IN, Pin.PULL_UP)
Kontaktron1 = Pin (21, Pin.IN, Pin.PULL_UP)
Kontaktron2 = Pin (22, Pin.IN, Pin.PULL_UP)
Kontaktron3 = Pin (23, Pin.IN, Pin.PULL_UP)

led = Pin(25, Pin.OUT)

while True:
    print (Kontaktron0.value())
    time.sleep_ms(1000)
    print (Kontaktron1.value())
    time.sleep_ms(1000)
    print (Kontaktron2.value())
    time.sleep_ms(1000)
    print (Kontaktron3.value())
    time.sleep_ms(1000)

 

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.