Haragorn Napisano Marzec 13, 2018 Udostępnij Napisano Marzec 13, 2018 Witam. Wykorzystuję przykład z biblioteki Bounce2, aby sterować diodą on/off (wciskam raz, dioda się zapala; wciskam drugi raz, dioda gaśnie). Wiem, że muszę wpisać odpowiednią wartość w debouncer.interval(x),aby zniwelować drgania styków. Jednak nie mogę określić jaki to miałby być czas. Próbowałem standardowego 20ms, ale nic (inne wartości też). Chyba, że ja źle rozumiem działanie tej biblioteki to proszę mnie poprawić. Co do samego przycisku to używam Tact Switch 12x12mm z nasadką. #include <Bounce2.h> #define BUTTON_PIN 2 #define LED_PIN 13 // Instantiate a Bounce object Bounce debouncer = Bounce(); void setup() { // Setup the button with an internal pull-up : pinMode(BUTTON_PIN,INPUT_PULLUP); // After setting up the button, setup the Bounce instance : debouncer.attach(BUTTON_PIN); debouncer.interval(15); // interval in ms //Setup the LED : pinMode(LED_PIN,OUTPUT); } void loop() { // Update the Bounce instance : debouncer.update(); // Get the updated value : int value = debouncer.read(); // Turn on or off the LED as determined by the state : if ( value == LOW ) { digitalWrite(LED_PIN, HIGH ); } else { digitalWrite(LED_PIN, LOW ); } } Cytuj Link do komentarza Share on other sites More sharing options...
deshipu Marzec 13, 2018 Udostępnij Marzec 13, 2018 A masz jakiegoś linka do źródeł i dokumentacji tej biblioteki? Bo standardowo do Arduino chyba nie jest dołączona. Drgania styków najłatwiej jest zobaczyć na oscyloskopie, jeśli tylko masz gdzieś dostęp do takiego urządzenia. Cytuj Link do komentarza Share on other sites More sharing options...
Haragorn Marzec 13, 2018 Autor tematu Udostępnij Marzec 13, 2018 Niestety, ale oscyloskopu nie posiadam. A co do źródła to zainstalowałem ją poprzez menedżer bibliotek w Arduino (https://github.com/thomasfredericks/Bounce2 - takie wyświetliło mi się źródło) Cytuj Link do komentarza Share on other sites More sharing options...
deshipu Marzec 13, 2018 Udostępnij Marzec 13, 2018 Patrząc na dokumentację na https://github.com/thomasfredericks/Bounce2/wiki oraz przykład w https://github.com/thomasfredericks/Bounce2/blob/master/examples/bounce/bounce.ino powinno działać. Zatem błąd musi być gdzie indziej. Możesz pokazać nam schemat połączeń? Niejasne jest także co rozumiesz przez "ale nic"? Co dokładnie ci nie działa? Czego oczekujesz, a co dostajesz zamiast tego? Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
kaczakat Marzec 27, 2018 Udostępnij Marzec 27, 2018 Wg tego co tu jest w kodzie led zmienia stan tylko na czas wciśnięcia przycisku. Jeśli przykładowo value == LOW oznacza wciśnięty klawisz to led zgaśnie natychmiast po jego puszczeniu (wykona się else). Powinno być tak #include <Bounce2.h> #define BUTTON_PIN 2 #define LED_PIN 13 // Instantiate a Bounce object Bounce debouncer = Bounce(); void setup() { // Setup the button with an internal pull-up : pinMode(BUTTON_PIN,INPUT_PULLUP); // After setting up the button, setup the Bounce instance : debouncer.attach(BUTTON_PIN); debouncer.interval(15); // interval in ms //Setup the LED : pinMode(LED_PIN,OUTPUT); } void loop() { // Update the Bounce instance : debouncer.update(); // Get the updated value : int value = debouncer.read(); // Turn on or off the LED as determined by the state : if ( value == LOW ) digitalWrite(LED_PIN, !(digitalRead(LED_PIN )); //jak wciśnięty to odczytaj stan led i wpisz przeciwnie } Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!