• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

CircuitPython

VPS Starter Arubacloud
0 głosów
102 wizyt
pytanie zadane 23 sierpnia 2023 w Mikrokontrolery przez MacieKap Bywalec (2,400 p.)

Witam,

chciałbym żeby lampka zapalała się gdy naciśnięty przycisk. Lecz niestety nie działa to, lampka cały czas jest zgaszona.

Płytka: Seeduino xiao samd21 circuit python 8

lampka: zwykła dioda z rezystorem 100om

przycisk: zwykły tact switch

Jest w stanie mi ktoś z tym pomóc?

import time
import board
from digitalio import DigitalInOut, Direction, Pull
 
led = DigitalInOut(board.D7)
led.direction = Direction.OUTPUT
 
 
btn = DigitalInOut(board.D6)
btn.direction = Direction.INPUT
btn.pull = Pull.UP
 
while True:
    if not btn.value:
        print("BTN is down")
        led.value = False
    else:
        #print("BTN is up")
        pass
        led.value = True
 
     time.sleep(0.1) # sleep for debounce

Z góry dziękuję za wszystkie odpowiedzi

komentarz 23 sierpnia 2023 przez Oscar Nałogowiec (29,320 p.)
Dopytywałem się o szczegóły techniczne bo najczęściej układy "komputerowe" nie działają przez złe połączenia... Wystarczy, że odwrotnie połączysz diodę (ona przewodzi tylko "w jedną stronę"). Układ daje logikę 3.3V - to może być mało dla białych lub niebieskich LED.

Najprościej spróbuj uruchamiać kolejne elementy układu pojedynczo, nie wszystko naraz. Najpierw powoli zmieniaj stan jakiego pinu ustawionego jako wyjście. Sprawdź wszystkie piny (najlepiej sondą logiczną, ostatecznie miernikiem - być może oznaczenie nie zgadza się z połączeniami. Być może trzeba (a w różnych ARMach trzeba) poustawiać odpowiednie piny na odpowiednie funkcje - tam pojedyncze wyprowadzenie może mieć kilka różnych funkcji (GPIO, I2C, ADC, UART, itp). Potem pobaw się LEDem - niewiele roboty, ale dobrze mieć pewność że działa i jest prawidłowo połączony. Z przyciskiem już potem nie powinno być kłopotu, tylko upewnij się, że pull-up działa.

1 odpowiedź

0 głosów
odpowiedź 23 sierpnia 2023 przez neo1020 Dyskutant (8,550 p.)
while True:
    if not btn.value:
        print("BTN is down")
        led.value = False

nie powinno być na odwrót ? Tutaj True a niże false ?

komentarz 23 sierpnia 2023 przez Oscar Nałogowiec (29,320 p.)
Pin od przycisku ma pull-up (w zamierzeniu) więc przycisk powinien zwierać do masy i naciśniety przycisk daje 0. Jeszcze pytanie jak jest podłączona LED - do masy czy do Vcc.
komentarz 23 sierpnia 2023 przez MacieKap Bywalec (2,400 p.)
Dioda podłączona jest do masy, przycisk jest podłączony do vcc
komentarz 24 sierpnia 2023 przez Oscar Nałogowiec (29,320 p.)
To jak masz przycisk do Vcc to z pull-upem nie będzie działać, bo bez względu na stan przycisku masz wysoki stan na wejściu.

Podobne pytania

0 głosów
0 odpowiedzi 219 wizyt
0 głosów
1 odpowiedź 577 wizyt
0 głosów
0 odpowiedzi 196 wizyt
pytanie zadane 22 lipca 2022 w C i C++ przez gkli23 Nowicjusz (120 p.)

92,770 zapytań

141,695 odpowiedzi

320,518 komentarzy

62,107 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...