Ich habe btw Natürlich die Kabel richtig verbunden falls das jemand fragt weil ich den arduino ausgelassen habe
Code:
const int Taster1 = 1; // Pin für den ersten Taster
const int Taster2 = 2; // Pin für den zweiten Taster
const int Taster3 = 3; // Pin für den dritten Taster
const int helligkeitsreglerPin = A5; // Pin für den Helligkeitsregler
const int numLEDs = 8;
const int AmpelLEDs = 2;
int LEDs1[numLEDs] = {6, 7, 8, 9, 10, 11, 12, 13}; // Pins für die LEDs
int LEDs2[numLEDs] = {12, 10, 9, 7, 13, 11, 8, 6}; // Another pattern
int LEDrot[AmpelLEDs] = {10, 11};
int LEDgelb[AmpelLEDs] = {9, 8};
int LEDgruen[AmpelLEDs] = {7, 6};
void setup() {
for (int i = 0; i < numLEDs; i++) {
pinMode(LEDs1[i], OUTPUT);
pinMode(LEDs2[i], OUTPUT);
}
gleichzeitigBlinken(LEDs1, 12, 13);
delay(200); // Warte 2 Sekunden
gleichzeitigBlinken(LEDs1, 10, 11);
delay(200); // Warte 2 Sekunden
gleichzeitigBlinken(LEDs1, 9, 8);
delay(200); // Warte 2 Sekunden
gleichzeitigBlinken(LEDs1, 7, 6);
delay(200); // Warte 2 Sekunden
}
void loop() {
if (digitalRead(Taster1) == HIGH) {
Variation1(LEDs1);
delay(1000); // Entprellzeit
}
if (digitalRead(Taster2) == HIGH) {
Variation2(LEDs2);
delay(1000); // Entprellzeit
}
if (digitalRead(Taster3) == HIGH) {
ampelProgram(LEDrot, LEDgelb, LEDgruen);
delay(1000); // Entprellzeit
}
// Weitere Bedingungen für andere Programme hinzufügen, wenn nötig
}
void Variation1(int LEDs[]) {
int brightness = analogRead(helligkeitsreglerPin) / 4; // 0-1023 to 0-255
for (int i = 0; i < numLEDs; i++) {
analogWrite(LEDs[i], brightness);
delay(200); // Beispiel: LED für 0,5 Sekunden einschalten
analogWrite(LEDs[i], LOW); // LED ausschalten
}
}
void Variation2(int LEDs[]) {
int brightness = analogRead(helligkeitsreglerPin) / 4; // 0-1023 to 0-255
for (int i = 0; i < numLEDs; i++) {
analogWrite(LEDs[i], brightness);
delay(200); // Beispiel: LED für 0,2 Sekunden einschalten
analogWrite(LEDs[i], LOW); // LED ausschalten
}
}
void ampelProgram(int redLEDs[], int yellowLEDs[], int greenLEDs[]) {
// Rote LEDs einschalten
turnOnLEDs(redLEDs, AmpelLEDs);
delay(200); // Warte 2 Sekunden
// Rote LEDs ausschalten
turnOffLEDs(redLEDs, AmpelLEDs);
// Gelbe LEDs einschalten
turnOnLEDs(yellowLEDs, AmpelLEDs);
delay(200); // Warte 1 Sekunde
// Gelbe LEDs ausschalten
turnOffLEDs(yellowLEDs, AmpelLEDs);
// Grüne LEDs einschalten
turnOnLEDs(greenLEDs, AmpelLEDs);
delay(200); // Warte 2 Sekunden
// Grüne LEDs ausschalten
turnOffLEDs(greenLEDs, AmpelLEDs);
}
void turnOnLEDs(int leds[], int num) {
for (int i = 0; i < num; i++) {
analogWrite(leds[i], 255); // Vollhelligkeit für die LEDs
}
}
void turnOffLEDs(int leds[], int num) {
for (int i = 0; i < num; i++) {
analogWrite(leds[i], 0); // LEDs ausschalten
}
}
void gleichzeitigBlinken(int LEDs[], int pin1, int pin2) {
for (int i = 0; i < numLEDs; i++) {
if (i == pin1 || i == pin2) {
digitalWrite(LEDs[i], HIGH);
}
}
delay(200); // Beispiel: LEDs für 1 Sekunde einschalten
for (int i = 0; i < numLEDs; i++) {
digitalWrite(LEDs[i], LOW);
}
}
Dankeschön für die Antwort :) ich hoffe so sehr das es heute weiterfliegt haha wegen der Convention, kann es sein das es sich schon weiter bewegt hat aber es nur später anzeigt wird wie am Montag? (Ist per 4PX Tracking)
Liebe Grüße