logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] Jak podłączyć i zaprogramować przyciski w Arduino?

Jaremka 08 Kwi 2025 12:05 666 12
REKLAMA
  • #1 21511494
    Jaremka
    Poziom 14  
    Posty: 291
    Jak zacząć pisanie kodu programu , który ma działać tak :
    5 przycisków typu switch pierwszy załącza na stałe np ; diodę 1 , tym przyciskiem 1 mogę ją wyłączyć, jeśli jest załączona dioda 1 to drugim wyłączam pierwszą diodę a załączam drugą . Drugi przycisk działanie funkcji tak ja pierwszy i tak 5 przycisków
  • REKLAMA
  • #2 21511504
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1460
    A pisałeś już własnoręcznie COKOLWIEK ?
    Nie ma magicznej drogi

    Moze zacznij od jednego i diody itd...
  • REKLAMA
  • #3 21511607
    gps79
    Poziom 37  
    Posty: 2180
    Pomógł: 494
    Ocena: 782
    Zorganizuj potrzebny sprzęt (lub zacznij od emulatora wokwi.com ), zbuduj przykładowy program (examples z menu Arduino) mrugający diodą, wgraj na swój sprzęt, a następnie, jak kolega wyżej pisał.
  • #4 21511756
    Jaremka
    Poziom 14  
    Posty: 291
    Sprzęt mam już , ja nie potrzebuje programu na mrugająca diodę tylko program do obsługi przycisków
  • REKLAMA
  • #5 21511773
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1460
    Jaremka napisał:
    Sprzęt mam już , ja nie potrzebuje programu na mrugająca diodę tylko program do obsługi przycisków


    Dział ogłoszenia drobne to dobre miejsce

    Dodano po 10 [minuty]:

    Jaremka napisał:
    Jak zacząć pisanie kodu programu


    Zacząć? Tak samo, jak każdego innego programu na Arduino. Choć wątpię, aby tobie cokolwiek to mówiło.
  • #6 21511829
    emarcus
    Poziom 20  
    Posty: 336
    Pomógł: 40
    Ocena: 65
    Jaremka napisał:
    Jak zacząć pisanie kodu programu , który ma działać .....
    5 przycisków typu switch pierwszy załącza na stałe np ; diodę 1 , tym przyciskiem 1 mogę ją wyłączyć, jeśli jest załączona dioda 1 to drugim wyłączam pierwszą diodę a załączam drugą . Drugi przycisk działanie funkcji tak ja pierwszy i tak 5 przycisków

    W zasadzie to program już masz napisany...!
    Potrzebujesz go tylko przetłumaczyć na jakiś wybrany język programistyczny tak, aby kompilator dedykowany do tego języka, skompilował go na formę zrozumiałą przez processor.
    Językiem tym może być BASIC, w którym jest zorientowany "Bascom", możesz to przerobić na 'C' (troche trudniej!), albo sięgnąć do środowiska Arduino zorientowany pod C++.
    Ten ostatni będzie łatwiejszy, bo dla niego znajdziesz w internecie najwięcej publikacji, kursów i przykładowej składni programu , szczegółnie w języku polskim.
    Jeden z licznych przykładowych źródeł dla środowiska Arduino:
    https://www.youtube.com/watch?v=R2SYi5NKIF8

    e markus
  • #7 21512147
    inot
    Poziom 38  
    Posty: 3507
    Pomógł: 434
    Ocena: 786
    Jak zacząć pisanie programu obsługującego przyciski, wyjaśnia przykład "Button" albo "Debounce" w środowisku Arduino IDE.
  • #8 21512252
    tos18
    Poziom 42  
    Posty: 7023
    Pomógł: 1089
    Ocena: 1811
    plik->przykłady->02.digital->button
    i dostajemy przykładową obsługę przycisku
  • #9 21512307
    Jaremka
    Poziom 14  
    Posty: 291
    To już wiem , nie jestem taki żebym o tym nie wiedział
  • #10 21512323
    tos18
    Poziom 42  
    Posty: 7023
    Pomógł: 1089
    Ocena: 1811
    Debounce opanowany ?
    bez tego się nie uda
  • REKLAMA
  • #11 21512384
    inot
    Poziom 38  
    Posty: 3507
    Pomógł: 434
    Ocena: 786
    Jaremka napisał:
    To już wiem

    To, czego nie wiesz?
    Pytałeś przecież, od czego zacząć.
  • #12 21513688
    Jaremka
    Poziom 14  
    Posty: 291
    Chat GPT napisał dla mnie taki program
    
    const int buttonPins[] = {2, 3, 4, 5, 6};
    const int ledPins[] = {8, 9, 10, 11, 12};
    const int numButtons = 5;
    
    bool buttonState[numButtons] = {false};
    bool lastButtonState[numButtons] = {false};
    bool ledState[numButtons] = {false};
    void setup() {
    
      for (int i = 0; i < numButtons; i++) {
        pinMode(buttonPins[i], INPUT_PULLUP);
        pinMode(ledPins[i], OUTPUT);
        digitalWrite(ledPins[i], LOW);
      }
    }
    void loop() {
      for (int i = 0; i < numButtons; i++) {
        bool currentState = !digitalRead(buttonPins[i]);  // aktywny niski (przycisk wciśnięty)
        
        if (currentState && !lastButtonState[i]) { // wykrycie zbocza opadającego (naciśnięcie)
          if (!ledState[i]) {
            // Wyłącz wszystkie diody
            for (int j = 0; j < numButtons; j++) {
              digitalWrite(ledPins[j], LOW);
              ledState[j] = false;
            }
            // Włącz bieżącą diodę
            digitalWrite(ledPins[i], HIGH);
            ledState[i] = true;
          } else {
            // Jeśli dioda była włączona – wyłącz ją
            digitalWrite(ledPins[i], LOW);
            ledState[i] = false;
          }
        }
        lastButtonState[i] = currentState;
      }
    
      delay(50); // proste debounce
       
    }
    


    Po podłączeniu pinów według instrukcji działa bez problemów. Tak jak chciałem .
  • #13 21837096
    Jaremka
    Poziom 14  
    Posty: 291
    Wszystko za pomocą ChatGPT

Podsumowanie tematu

✨ Dyskusja dotyczy programowania obsługi pięciu przycisków typu switch w Arduino, gdzie każdy przycisk ma załączać i wyłączać przypisaną diodę LED oraz umożliwiać przełączanie między nimi. Zalecane jest rozpoczęcie od prostych przykładów dostępnych w środowisku Arduino IDE, takich jak "Button" i "Debounce", które pokazują podstawową obsługę przycisków i eliminację drgań styków. Wskazano na konieczność opanowania debouncowania, aby poprawnie wykrywać naciśnięcia. Podkreślono, że programowanie odbywa się w języku C++ w środowisku Arduino, które oferuje liczne przykłady i materiały edukacyjne, także w języku polskim. Użytkownik otrzymał przykładowy kod wygenerowany przez ChatGPT, implementujący obsługę pięciu przycisków i pięciu diod LED z wykorzystaniem tablic do przechowywania stanów przycisków i diod oraz logiką przełączania stanów LED w funkcji loop().
Wygenerowane przez model językowy.
REKLAMA