Skocz do zawartości

Pi Pico czujnik sam zmienia stan


Pomocna odpowiedź

Napisano

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

 

(edytowany)
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

@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?

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)

 

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