HotSystems:
Zeige uns doch einfach mal deine Sketche und wir können dir sicher helfen, die richtig zusammen zu setzen.
Das sollten dann entsprechend meiner "Vorredner" zu einem Sketch "zusammenschmelzen".
Poste die bitte in Code-Tags (Schaltfläche </>) oben links im Editor-Fenster, hier im Forum.
Hallo HotSystems,
ersteinmal Danke für die Hilfe habe mal die beiden Sketche hier hinzugefügt.
Der erste Sketch soll ein Blinkwithout Delay erzeugen und der zweite Sketch ein Lauflicht, dass von rechts nach links läuft.
Später möchte ich im Programm über einen Taster, die beiden Programme starten können.
Sprich Taster erstes mal gedrückt Sketch 1 starten, Taster zweites mal gedrückt Sketch 2 starten, Taster drittes mal gedrückt Automatikprogramm starten.
Im Automatikprogramm soll der erste Sketch (Blinkwithout Delay) dreimal durchlaufen und dannach der zweite Sketch (rechts nach links) gestartet werden und dieser auch dreimal durchlaufen.
Hier der erste Sktech das Blinkwithout Delay:
const int potiPin = A0;
int potiVal = 0;
const int LED1 = 6;
const int LED2 = 7;
const int LED3 = 8;
const int LED4 = 9;
const int LED5 = 10;
// Variables will change :
int ledState = LOW; // ledState used to set the LED
unsigned long previousMillis = 0; // will store last time LED was updated
void setup() {
for (int i = 0; i < 5; i++) //For-Schleife mit der Variable 1, die von 0-4 hochgezähglt wird
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
potiVal = analogRead(potiPin);
if (currentMillis - previousMillis >= potiVal) {
previousMillis = currentMillis;
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
digitalWrite(LED1 , ledState);
digitalWrite(LED2 , ledState);
digitalWrite(LED3 , ledState);
digitalWrite(LED4 , ledState);
digitalWrite(LED5, ledState);
}
}
und hier der zweite Sketch, der das Lauflicht von rechts nach Links durchlaufen lässt.
int LEDPins []= {10, 9, 8, 7, 6}; // Variable, die die Ausgänge zu einer Variablen mit den Namen LEDPins zusammenfasst
unsigned long letzterWechsel; // variable, die speichert, wann von der einen zu anderen LED gesprungen wurde
int zeitproled; // Variable, die speichert wie lange eine LED an bleiben soll
int aktuelleLED = 5; // Variable, die speichert welche LED gerade an ist
void setup()
{
for (int i = 0; i < 5; i++){ //For-Schleife mit der Variable 1, die von 0-4 hochgezähglt wird
pinMode (LEDPins [i], OUTPUT); // Legt die LEDPins als Ausgänge fest
}
}
void loop() {
zeitproled = analogRead(A0);
unsigned long aktuelleZeit = millis (); // Greift die Zeit für den wechsel der LED ab
if (aktuelleZeit - letzterWechsel > zeitproled) { // Überprüft, wann die letzte LED eingeschaltet wurde, wenn die Differenz größer ist als Zeit pro LED, dann
digitalWrite(LEDPins[aktuelleLED], LOW); // Schaltet die LED die gerade an ist aus und die nächste ein
aktuelleLED = (aktuelleLED + 1) % 5; // Die Variable AktuelleLED wird um 1 hochgezählt und durch 5 geteilt
digitalWrite (LEDPins[aktuelleLED], HIGH); // Setzt den Pegel der aktuellen LED auf HIGH
letzterWechsel = aktuelleZeit; // Aktualisert den Zeitpunkt aktueller Wechsel
}
}