przekazywanie liczby z zmiennej do nazwy zmiennejw kodzie programu

0

jak przekazać zmienną liczbę do części nazwy zmiennej ??

 for (int licz = 1; licz <= 5; licz++)
  {
    digitalWrite(led(licz), HIGH); 
    delay(500); 
    digitalWrite(led(licz), LOW); 
    delay(500);
  }

// led to zdefiniowane stałe pinów pod nazwą: led1, led2, led3, led4, led5
1

Czy chodzi Ci o to, że mając zmienną o nazwie licz, chcesz utworzyć zmienną o nazwie led<tutaj wartość zmiennej licz>?


UPDATE Czy coś takiego? -> https://stackoverflow.com/questions/4444427/variable-name-from-template-argument

0

dokładnie to mam tak że pod led1, led2, led3, led4, led5 mam zdefiniowane piny i chcę aby
w pętli głównej nie pisać 5 razy tą samą linijkę tylko żeby pętla for to zmieniała podstawiając liczbę za słowem led

4

Użyj tablicy.

typ leds[5];
for(int i = 0; i < 5; i++) {
    digitalWrite(led[i], HIGH); 
    delay(500); 
    digitalWrite(led[i], LOW); 
    delay(500);
}
1

Arduino obiecuje, że można programować nie czytając NIC o języku ...

0

wywala błąd na typ leds[5];

1

Jaki to błąd? Generalnie mówiąc w miejsce słowa typ musisz wstawić typ elementów tablicy leds, czyli u Ciebie najpewniej typ zmiennych stałych led1, led2 itd. Czy jest to int? string? char? Inny?

0

Wystarczy

for(int i=0;i<5;++i)
{
    for(int h=0;h<2;++h)
    {
        digitalWrite(led1+i,h?LOW:HIGH); 
        delay(500); 
    }
}
0

Nie udaje mi się rozłożyć led1... do tablicy (nie wczytuje)

  char leds[5][5][5][5][5]= {
  {'l','e','d','1'},
  {'l','e','d','2'},
  {'l','e','d','3'},
  {'l','e','d','4'},
  {'l','e','d','5'}
  };
                            
  
  for(int i = 0; i < 5; i++) {
    Serial.println(i);
    Serial.println(leds[i][i][i][i][i]);
    digitalWrite(leds[i][i][i][i][i], HIGH); 
    delay(500); 
    digitalWrite(leds[i][i][i][i][i], LOW); 
    delay(500);
  }

Nie tego oczekiwałem...
Kiedyś jak pisałem w języku C++ to się tak dało ale nie pamiętam jak.
W arduino nie wiem czy tak się da.

1

To jest C++, i to co robisz nie ma sensu. Czym są led1 itd?

alternatywnie, po prostu zadeklaruj tablicę tak:

static constexpr decltype(led1) leds[] = {led1, led2, led3, led4, led5};
0

działa metoda kq za co DZIĘKUJE.
Uważam że da się to jeszcze prościej ale nie wiem jak... i dalej będe szukał

wpis _3th_Dragon nie działami

for(int i=0;i<5;++i)
{
    for(int h=0;h<2;++h)
    {
        digitalWrite(led1+i,h?LOW:HIGH); 
        delay(500); 
    }
}
``

1 użytkowników online, w tym zalogowanych: 0, gości: 1