Hallo leute,
ich habe wenig erfahrung mit Arduino und brauche hilfe.
Ich möchte folgenden sketch so hinbekommen dass ich per tastendruck auf einen anderen loop komme, ich denke man sieht auch worauf ich hinaus will (ja ich weiss es geht auch kleiner). Aktuell funktioniert "AUS" und "AN", "BLINKEN" und "PULSIEREN" funktionieren aber nicht . Das Display Funktioniert überall, es geht nur um die LEDs
const byte AUS = 22;
const byte AN = 23;
const byte BLINKEN = 24;
const byte PULSIEREN = 25;
int x = 1;
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_WIDTH 128 // OLED display Breite, in pixels
#define SCREEN_HEIGHT 64 // OLED display Höhe, in pixels
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
const byte inputPIN1 = 50;
const byte inputPIN2 = 52;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // I2C address = 0x3C
delay(1000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(30, 0);
display.print("MODUS");
display.display();
pinMode(2, OUTPUT); //LED
pinMode(3, OUTPUT); //LED
pinMode(4, OUTPUT); //LED
pinMode(5, OUTPUT); //LED
pinMode(6, OUTPUT); //LED
pinMode(7, OUTPUT); //LED
pinMode(8, OUTPUT);//LED
pinMode(9, OUTPUT);//LED
pinMode(10, OUTPUT);//LED
pinMode(11, OUTPUT);//LED
pinMode(12, OUTPUT);//LED
pinMode(13, OUTPUT);//LED
pinMode(AUS, INPUT);
pinMode(AN, INPUT);
pinMode(BLINKEN, INPUT);
pinMode(PULSIEREN, INPUT);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
}
void loop() {
digitalRead(22);
digitalRead(23);
digitalRead(24);
digitalRead(25);
if (digitalRead(22) == HIGH) { digitalWrite(2,LOW); //AUS
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(30, 0);
display.print("MODUS");
display.setTextSize(2);
display.setCursor(0, 10);
display.print("AUS");
display.display();
}
if (digitalRead(23) == HIGH) { digitalWrite(2,HIGH); //AN
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(30, 0);
display.print("MODUS");
display.setTextSize(2);
display.setCursor(0, 10);
display.print("AN");
display.display();
}
if (digitalRead(24) == HIGH) { //BLINKEN
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(30, 0);
display.print("MODUS");
display.setTextSize(2);
display.setCursor(0, 10);
display.print("BLINKEN");
display.display();
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
}
if (digitalRead(25) == HIGH) { //PULSIEREN
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(30, 0);
display.print("MODUS");
display.setTextSize(2);
display.setCursor(0, 10);
display.print("PULSIEREN");
display.display();
for (int i = 0; i > -1; i = i + x){
analogWrite(2, i);
analogWrite(3, i);
analogWrite(4, i);
analogWrite(5, i);
analogWrite(6, i);
analogWrite(7, i);
analogWrite(8, i);
analogWrite(9, i);
analogWrite(10, i);
analogWrite(11, i);
analogWrite(12, i);
analogWrite(13, i);
if (i == 255) {
x = -1; // Ändere die Richtung des Dimmens auf dem "Peek"
// Warte 10 Millisekunden
delay(10);
}
}
}
}