Programowanie przycisku - Romeo V2 - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Instalacja i rozwiązywanie problemów (https://forum.arduinopolska.pl/dzial-instalacja-i-rozwi%C4%85zywanie-problem%C3%B3w) +--- Wątek: Programowanie przycisku - Romeo V2 (/watek-programowanie-przycisku-romeo-v2) |
Programowanie przycisku - Romeo V2 - TruePatrick0 - 27-05-2019 Witam, posiadam płytkę Dfrobot Romeo V2. Chciałem wykorzystać zamontowane na niej przyciski. W instrukcji na stronie producenta jest przykład ich użycia - Pod sekcją "Example use of Button S1-S5". Nie rozumiem w pełni tego kodu. Zamontowałem diodę led na pin 13 i ten program owszem działa. Chcę go zmodyfikować by po wciśnięciu konkretnego przycisku wykonał jakąś akcję. Zmodyfikowałem go trochę i wygląda tak: Kod: char msgs[5][15] = { Przechodząc do sedna, chcę jakoś uszczuplić ten program by nie był taki obszerny. Musi być jakieś prostsze wyjście aby odwołać się do konkretnego przycisku. Dziękuję z góry za pomoc. RE: Programowanie przycisku - Romeo V2 - kaczakat - 27-05-2019 Klawiaturka jest analogowa. Na początek dla każdego przycisku ustal jakie ma widełki wskazań ADC Serial.println(analogRead(0)); Przykładowo nominalnie przycisk UP może mieć rezystor ustalający odczyt ADC na 150, a odczyty będą pływać w zakresie 120-180. Kod może być prostszy albo bardziej rozbudowany, zależy co chcesz dalej z nim robić. RE: Programowanie przycisku - Romeo V2 - TruePatrick0 - 27-05-2019 Gdy odpalę kod i wcisnę każdy przycisk po kolei w konsoli wyskoczy mi coś takiego: Kod: 0 Co więcej, umieściłem to pytanie na angielskim forum i pewna osoba podała mi taki kod: Kod: const char* msgs[] = { Kod: Up Key OK RE: Programowanie przycisku - Romeo V2 - kaczakat - 27-05-2019 Pewnie warunki masz ustawione odwrotnie, po wykryciu że ADC<100 już nie powinien sprawdzać czy ADC<200, itd. No i debounce trzeba też ogarnąć, np. sprawdzasz co 5ms i jeśli przycisk jest wciśnięty przez 5-10 kolejnych sprawdzeń to jest wciśnięty, inaczej to były drgania po wciśnięciu/puszczeniu. Możesz też po prostu użyć byblioteki: https://github.com/MatCat/AnalogDebounce. RE: Programowanie przycisku - Romeo V2 - TruePatrick0 - 27-05-2019 Jestem początkujący i nie ukrywam, że nie umiem używać bibliotek. Muszę poczytać jakieś poradniki na ten temat. RE: Programowanie przycisku - Romeo V2 - TruePatrick0 - 28-05-2019 Wgrałem bibliotekę oraz użyłem szkicu przykładowego. Klikam przyciskami to wyświetlają się ich numery (w załączniku). Teraz tylko jak zaprogramować te przyciski to jakiś funkcji. RE: Programowanie przycisku - Romeo V2 - kaczakat - 28-05-2019 Masz na sumieniu jakiś kurs programowania? Z Youtube, bloga, książki? Arduino jest najłatwiejsze na początek, ale jakieś podstawy trzeba mieć. Może zerknij tutaj na początek: link. RE: Programowanie przycisku - Romeo V2 - TruePatrick0 - 28-05-2019 Przeczytałem wiele kursów na internecie. Zrobiłem kilka projektów z serwomechanizmami, sensorem dystansu, nawet robota który sam jeździ i omija przeszkody lub na bluetooth. Ale jestem osobą która mało czyta poradników a woli działać. Chyba nie w tym droga więc zaczynam czytać książki do C++, które dostałem od znajomego. Osobiście miałem styczność z wieloma językami programowania jako technik informatyk, który skończył szkołę w tym roku, ale jeżeli chcę pisać w arduino to muszę się jeszcze wiele nauczyć. Dzięki za odpowiedź. RE: Programowanie przycisku - Romeo V2 - TruePatrick0 - 28-05-2019 Udało mi się napisać działający kod, tak aby diody led świeciły się po wciśnięciu danego przycisku. Dziękuję za pomoc wszystkim. Umieszczam tutaj działający kod: Kod: char msgs[5][15] = { RE: Programowanie przycisku - Romeo V2 - kaczakat - 28-05-2019 Jak chcesz użyć biblioteki to po prostu ją czytasz i analizujesz. Czasami jest dużo przykładów i wyjaśnień, ale że ta biblioteka jest banalna, to i wiele nie ma. Wszystko dostałeś w jednej zmiennej Button, to ją drukujesz w funkcji callback: Kod: // Callback function W przykładowym callback'u drukujesz zmienną Button, co za problem przypisać tą zmienną do swojej zmiennej uint8_t "WcisnietyPrzycisk=Button", zamiast drukować Button. |