Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Arduino Nano - Przerwanie pracy buzzera przyciskiem

maniolx 19 Sty 2017 23:41 627 8
  • #1 19 Sty 2017 23:41
    maniolx
    Poziom 14  

    Napisałem skecz który uruchamia buzzer po wykryciu stanu wysokiego na pinie 13 . Dodałem też przycisk do pinu 10 i chciałem aby po podaniu stanu niskiego na pin 10 program wyłączał buzzer . Skecz działa lecz po podaniu stanu niskiego na pin 10 nie wyłącza buzzera . Proszę o pomoc , gdzie popełniłem błąd .

    Kod: actionscript
    Zaloguj się, aby zobaczyć kod

    0 8
  • #2 20 Sty 2017 00:38
    BlueDraco
    Specjalista - Mikrokontrolery

    Przecież właśnie tak to napisałeś w programie:

    włącz dźwięk, poczekaj, wyłącz dźwięk, a kiedy już jest wyłączony - sprawdź przycisk pod PIN10 i jeśli jest wciśnięty - wyłącz dźwięk.

    0
  • #3 20 Sty 2017 04:14
    emarcus
    Poziom 35  

    maniolx napisał:

    Skecz działa lecz po podaniu stanu niskiego na pin 10 nie wyłącza buzzera . Proszę o pomoc , gdzie popełniłem błąd .

    A dlaczego miałby czytac pin 10, który nie jest skonfigurowany?
    Przecież port kontrolujący u ciebie jest na pinie13. i cały program winien zakończyc się na:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Daj przycisk na pin 13 do GND i wyłączysz bzykanie...
    Jednocześnie zgaśnie lampka na arduino.

    e marcus

    0
  • #4 20 Sty 2017 07:33
    rs6000
    Poziom 27  
  • #5 20 Sty 2017 10:38
    maniolx
    Poziom 14  

    emarcus napisał:



    Daj przycisk na pin 13 do GND i wyłączysz bzykanie...
    Jednocześnie zgaśnie lampka na arduino.

    e marcus

    Działa ale jeszcze nie tak .Teraz do pinu 13 mam podpięte dwa przewody (jeden ze stanem wysokim(+5v) a drugi (przycisk który podaje stan niski) - czy tak powinno być? Jak mam podany stan wysoki na pin 13 to oczywiście buzzer działa . Naciskam przycisk (czyli podaję stan niski na pin 13 ) to buzer się wyłącza , lecz po ok. 5 sekundach załącza się znowu sam aż nie podam mu stanu niskiego na pin 13 i znowu 5s przerwy itd. Na razie chciałem zrobić aby po podaniu stanu niskiego na jakiś zdefiniowany pin została przerwana praca buzzera na stałe pomimo iż np. na pin 13 jest ciągle podawany stan wysoki . A docelowo miało być że podając stan niski (z przycisku) na jakiś określony pin zostałby wyłączony buzer na jakiś czas (powiedzmy 5 minut) pomimo że na pin nr 13 podawany jest ciągle stan wysoki .

    0
  • #6 20 Sty 2017 11:35
    boniek_1987
    Poziom 11  

    Tyle powinno wystarczyć. Jak ustawić piny, powinieneś wiedzieć : )

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #7 20 Sty 2017 11:50
    maniolx
    Poziom 14  

    boniek_1987 napisał:
    Tyle powinno wystarczyć. Jak ustawić piny, powinieneś wiedzieć : )
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Do czego powinno wystarczyć ? Do załączenia buzera , a gdzie wyłączenie przyciskiem ?

    0
  • #8 20 Sty 2017 12:05
    boniek_1987
    Poziom 11  

    Dokładnie w tej linijce.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Gotowca nie pokaże, ale poniżej przykład, który pomoże zrozumieć.
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #9 20 Sty 2017 12:40
    krzysiek_krm
    Poziom 34  

    Witam,
    jeżeli chcesz wyłączać dźwięk w trakcie jego trwania nie możesz używać funkcji delay, ponieważ odbiera ona sterowanie na czas swojego trwania.
    Zapoznaj się i twórczo rozwiń przykład pod tytułem "blink without delay", dostępny w przykładach Arduino IDE.

    Pozdrawiam

    0
  Szukaj w 5mln produktów