Variable a und b in Variable c schreiben

const unsigned int LED_Rot1 = 3, LED_Rot2 = 5, LED_Rot3 = 6;
const unsigned int LED_Blau1 = 9, LED_Blau2 = 10, LED_Blau3 = 11;
const unsigned int LedRot = ?

Hallo User,

ich hab die variable LED_Rot1 bis 3 und möchte diese Variablen in die Variable LedRot schreiben,
da alle drei Variablen später das gleiche tun, nur andere ports verwenden.

Damit möchte ich mir schreibarbeit ersparen.

Hab da jetzt schon im i net geschaut und bin hier gelandet.

Gruß

Du suchst Arrays und / oder Funktionen oder auch Beides. Je nachdem, wie man Deine unklare Beschreibung versteht.

Gruß Tommy

Hallo @Tommy56,

ich habe 3 LEDs die gehen alle zur gleichen Zeit an und dann wieder aus um jetzt nicht alles so

  digitalWrite(LED_Rot1, HIGH);   
  digitalWrite(LED_Rot2, HIGH);
  digitalWrite(LED_Rot3, HIGH);
  delay(50);  
  digitalWrite(LED_Rot1, LOW);   
  digitalWrite(LED_Rot2, LOW);
  digitalWrite(LED_Rot3, LOW);
  delay(50);

schreiben zu müssen sondern so,

  digitalWrite(LedRot, HIGH);   
  delay(50);  
  digitalWrite(LedRot, LOW);   
  delay(50);

aber trotzem alle drei Leds an und aus gehen wie oben, da spar ich mir doch schreibarbeit.

verwende Arrays und For Schleifen.

Das geht so nicht. Eine "normale" variable kann nicht gleichzeitig 3 verschiedene Werte annehmen.

Wenn DuSchreibarbeit sparen willst, solltest Du lernen, was Arrays sind und wie man mit ihnen arbeitet.

Gruß Tommy

OK danke.

werde ich mir mal anschauen.

Gruß

Schnellsieder-Kurs:

const byte ledRot[] {3, 5, 6};                // array anlegen, Pins definieren
const byte ledBlau[] {9, 10, 13};

void setup() {
  Serial.begin(115200);
  Serial.println(F("\nStart"));

  for (byte i = 0; i<sizeof(ledBlau); i++)     // in einer For schleife abarbeiten
    pinMode(ledBlau[i], OUTPUT);

  for (auto &pin : ledRot)                     // auto range for geht auch, pin ist dann eine Referenz auf den Inhalt von ledRot -> genau der Pin
    pinMode(pin, OUTPUT);

}

void loop() {
   machRot();
   machBlau();
}

void machBlau()
{
  for (byte i = 0; i<sizeof(ledBlau); i++)
    digitalWrite(ledBlau[i], HIGH);
  delay(500); // dirty delay
  for (byte i = 0; i<sizeof(ledBlau); i++)
    digitalWrite(ledBlau[i], LOW);
  delay(500); // dirty delay  
}

void machRot()
{
  for (auto &pin : ledRot)        // auto range for geht auch hier
    digitalWrite(pin, HIGH);
  delay(1000); // dirty delay
  
  for (auto &pin : ledRot)    
    digitalWrite(pin, LOW);
}

noiasca:
Schnellsieder-Kurs:

const byte ledRot[] {3, 5, 6};                // array anlegen, Pins definieren

const byte ledBlau {9, 10, 13};

void setup() {
  Serial.begin(115200);
  Serial.println(F("\nStart"));

for (byte i = 0; i<sizeof(ledBlau); i++)    // in einer For schleife abarbeiten
    pinMode(ledBlau[i], OUTPUT);

for (auto &pin : ledRot)                    // auto range for geht auch, pin ist dann eine Referenz auf den Inhalt von ledRot → genau der Pin
    pinMode(pin, OUTPUT);

}

void loop() {
  machRot();
  machBlau();
}

void machBlau()
{
  for (byte i = 0; i<sizeof(ledBlau); i++)
    digitalWrite(ledBlau[i], HIGH);
  delay(500); // dirty delay
  for (byte i = 0; i<sizeof(ledBlau); i++)
    digitalWrite(ledBlau[i], LOW);
  delay(500); // dirty delay 
}

void machRot()
{
  for (auto &pin : ledRot)        // auto range for geht auch hier
    digitalWrite(pin, HIGH);
  delay(1000); // dirty delay
 
  for (auto &pin : ledRot)   
    digitalWrite(pin, LOW);
}

Danke, werde ich mir mal anschauen.

Gruß