Anfänger braucht Hilfe, zeitlicher Ablauf und Funktionen gleichzeitig

Guten Tag zusammen,

ich bin hier neu und beschäftige mich erst seit ein paar Tagen mit dem Arduino.

Vielleicht kann mir hier ja jemand helfen.

Ich möchte für meinen Fischteich eine kleine “Futtermaschine” bauen, die soll in einem kleinen Haus meiner Gartenbahn untergebracht werden.

Der Ablauf soll wie folgt sein:

  • Eine Auslösung soll automatisch alle ca. 24h (z.B. 18 Uhr) oder per Taster erfolgen
  • es soll eine LED anfangen zu blinken
  • 5 Sekunden Pause
  • dann soll Schrittmotor1 5 Umdrehungen vorwärts laufen
  • Pause 5 Sekunden
  • Schrittmotor2 soll 10 Umdrehungen vorwärts laufen
  • 2 Sekunden Pause
  • Schrittmotor2 soll 5 Umdrehungen rückwärts laufen
  • 2 Sekunden Pause
  • Schrittmotor1 5 Umdrehungen rückwärts laufen
  • 5 Sekunden Pause
  • LED soll aufhören zu blinken
  • das ganze soll sich dann nach ca. 24h (besser 23h:59min)oder bestimmte Uhrzeit (vielleicht DS3231), oder bei Tastendruck wiederholen

Ich weiß mein Sketch ist falsch und nicht komplett. Ich kenne mich noch nicht aus.
Mir fehlt der erste Teil mit der 24h Zeitschaltung und die parallele Auslösung per Taster und die LED blinkt auch nur einmal und nicht die ganze Zeit über.

Es wäre nett, wenn mir jemand helfen könnte.

#include <Stepper.h>
int LED=13;
int SPU = 2048;  // Schritte pro Umdrehung
Stepper MotorSchieber(SPU, 3,5,4,6);   //Motor für Schieber unter Abwurf
Stepper MotorSchnecke(SPU, 7,9,8,10);  // Motor für Förderschnecke

void setup() {
pinMode(13, OUTPUT);                  
MotorSchieber.setSpeed(5);        // Geschwindigkeit in U/min
MotorSchnecke.setSpeed(10);       // Geschwindigkeit in U/min
}





void loop() {
  digitalWrite(13, HIGH);         // LED an
  delay(1000);                    // Pause in Millisekunden
  digitalWrite(13, LOW);          // LED aus
  delay(1000);                    // Pause in Millisekunden
    
  MotorSchieber.step(10240);      // Motor macht 10240 Schritte also 5 Umdrehungen
  delay(5000);                    // Pause in Millisikunden
  

  MotorSchnecke.step(20480);      // Motor macht 20480 Schritte also 10 Umdrehungen vorwärts
  delay(2000);                    // Pause in Millisekunden
  MotorSchnecke.step(10240);      // Motor macht 10240 Schritte also 5 Umdrehungen zurück
  delay(2000);                    // Pause in Millisekunden

  MotorSchieber.step(-10240);     // Motor macht -10240 Schritte also 5 Umdrehungen zurück

tolotos789:
ich bin hier neu und beschäftige mich erst seit ein paar Tagen mit dem Arduino.

Du bist nicht allein :slight_smile:

Problem ist, dass Du mehrere Dinge gleichzeitig erledigen möchtest. Du möchtest einen Ablauf mit Schieber und Förderschnecke laufen lassen, während eine LED blinkt. Sieh Dir das „Modell“ eines endlichen Automaten an. Z. B. hier oder hier.

Das ist etwas abstrakt, aber auf die Art bekommst Du eigentlich alles in den Griff, wenn es um Gleichzeitigkeit geht.

Gruß

Gregor

Viele andere Antworten als im Nachbarforum werden hier auch nicht kommen.

(deleted)

Moko:
Viele andere Antworten als im Nachbarforum werden hier auch nicht kommen.

Oder in beiden Foren überhaupt keine mehr.

Gruß Tommy

@ Gregor danke für deine Hilfe, ich werde mich damit beschäfftigen.

@ alle anderen: wie gesagt als Anfänger versuche ich soviele Wege wie möglich kennen zulernen um dann den für mich besten zu finden. Also frage ich auch an verschiedenen Stellen um Hilfe.
Ich werde auch niemals experte werden in dem Thema, weil ich nur meine 5 Projekte durchziehen möchte und dafür ein paar Grundlagen brauche. Ich habe nicht vor mich Jahre lang mit dem Thema zu beschäfftigen, es ist ein kleines Hobby von vielen

(deleted)

Also frage ich auch an verschiedenen Stellen um Hilfe.

Es wäre "höflich" gewesen, der angetackerten Bitte "How to use this forum - please read." Folge zu leisten.
Dort steht u.a. dass Crosspostings unerwünscht sind.

Ich werde auch niemals experte werden in dem Thema, weil ich nur meine 5 Projekte durchziehen möchte und dafür ein paar Grundlagen brauche. Ich habe nicht vor mich Jahre lang mit dem Thema zu beschäfftigen, es ist ein kleines Hobby von vielen

Wenn du lernen wollen würdest, dann könntest du hier richtig sein.
So habe ich meine Zweifel......

Es wäre "höflich" gewesen, der angetackerten Bitte "How to use this forum - please read." Folge zu leisten.
Dort steht u.a. dass Crosspostings unerwünscht sind.

Wenn du lernen wollen würdest, dann könntest du hier richtig sein.
So habe ich meine Zweifel......

Was leider wieder bestätigt, die meisten Anfänger wollen Hilfe aber nicht lesen.
Da geht gerade mal Copy&Paste.

Was leider wieder bestätigt, die meisten Anfänger wollen Hilfe aber nicht lesen.

Ich unterscheide immer mehr zwischen Anfänger und "Anfänger".
Instinktiv und mehr oder weniger unreflektiert, tarnen sich "Anfänger" gerne als Anfänger.

PS:
Erarbeite gerade sowas wie ein Glossar, darin findet sich u.v.A.:

Anfänger
Ein Anfänger, ist jemand, der/die/das noch nicht viel, von dem zu bearbeitendem Themengebiet, weiß.
Ein Anfänger ist jemand, der/die/das sich in das neue Themengebiet einarbeiten möchte.
Ein Anfänger gibt sich Mühe, die Dinge zu verstehen.
Ein Anfänger behält den Anfängerstatus nicht lange aufrecht, bemüht sich davon weg zu kommen.
Diese Mühe ist für Außenstehende leicht zu erkennen.

Hallo,

um die Aufgabe zu lösen ist es zwingend erforderlich sich mit dem Thema zu beschäftigen. Geht nicht anders.
Als erstes mußt du dich vom delay lösen. Nutze millis(). Der Zeitzähler ähnlich deiner Armbanduhr mit der man unbewußt irgendwelche Zeitdifferenzen bildet.

Theseus erklärt millis()

GuntherB - BlinkwithoutDelay - Die Nachtwächtererklärung

Mit dem Wissen programmierst du zum Bsp. einen Blinker der nur bei Tastendruck blinkt. Wenn das verstanden ist bist du einen großen Schritt weiter.

allen die mir helfen wollten vielen Dank. Aus den viellen Ratschlägen habe ich mir die verständlichste Version rausgesucht und umgesetzt, alles läuft soweit.
Also nächstes muss ich noch die DS3231 verstehen und einbauen. (wenn geliefert).

Entschuldigt die Aufregung und entspannt euch wieder

Gruß
Christian