INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Programm Schwimmer optimieren
08.11.2020, 19:09 (Dieser Beitrag wurde zuletzt bearbeitet: 08.11.2020 22:42 von Bitklopfer.)
Beitrag #9
RE: Programm Schwimmer optimieren
Servus miteinander,
danke für die Antworten

In das Programm unten hätte ich gerne einen Taster eingebaut, damit die leuchtende LED vor Ablauf der Zeit abgeschaltet werden kann.
Wo müsste die "if" Abfrage eingebaut werden?
Daraus könnte dann meine Tank-Schwimmerschaltung realisiert werden.

Code:
//Testprogramm Timer mit Millis

unsigned long previousMillis = 0;
const long interval = 10*1000;
int LED = 6;
int taster = 5;

void setup(){
  pinMode(6, OUTPUT);
  pinMode(5, INPUT);
}

void loop() {
// Funktion 1
unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
  previousMillis = currentMillis;
    digitalWrite(LED, !digitalRead(LED));   // Funktion 2
  }
}

Wenn du das PHP nicht wegläßt bekommst hier eine Schreibsperre oder meinst ich habe nichts besseres zu tun als dir hinterherzufegen ???
bk Moderator
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.11.2020, 19:21 (Dieser Beitrag wurde zuletzt bearbeitet: 08.11.2020 19:22 von Tommy56.)
Beitrag #10
RE: Programm Schwimmer optimieren
Das ist der Nachteil, wenn man Zustandsbestimmung und Ausgabe vermischt.

Baue Deinen Sketch so um, dass Du erst mal nur eine Zustandsvariable setzt, ob geblinkt werdeb soll oder nicht. Die setzt Du am Anfang auf true, also Blinken.
Wenn der Taster betätigt wird, setzt Du sie auf false.
Dann ziehst Du die z.B. in die Blink-Abfrage mit rein.

Code:
if (isBlink && currentMillis - previousMillis >= interval) // Blinken.

Dann musst Du Dir noch überlegen, unter welchen Bedingungen Du diese Variable wieder zurück setzen willst.

Der Code ist übrigens kein PHP, also lieber die normalen Codetags benutzen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.11.2020, 22:32
Beitrag #11
RE: Programm Schwimmer optimieren
So wird der Sketch auch nicht funktionieren.
Wenn du Pins definierst, solltest du die auch richtig verwenden und diese auch als Ein bzw. Ausgang richtig definieren.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.11.2020, 19:12
Beitrag #12
RE: Programm Schwimmer optimieren
Servus miteinander,
danke für euere Bemühungen.
Nach mehrerem rumbasteln habe ich den Sketch soweit hinbekommen, dass der Schwimmerschalter das tut was er soll, nämlich das Befüllen des 10L Behälters unterbrechen wenn dieser voll ist, falls der Schwimmerschalter ausfallen sollte, stoppt die Wasserzufuhr (Magnetschalter) nach einer vorgegebenen Zeit.
Vielleicht könnte jemand drüberschauen, ob der Code so in das Hauptprogramm eingefügt werden kann.
Entschuldigt bitte meine schlechten Programmierkentnisse, Maschinenbau (Motorenbau) ist mein Hobby, da kenne ich mich besser aus.

Danke im Voraus
Gruß, Max
Code:
// Programm für Schwimmerschaltung
//Tank zeitliche Befüllung mit Schwimmerabschaltung

unsigned long previousMillisLED = 1;
const long intervalLed = 30*1000;  //  30 Sec tanken
int magnetventil = 6; //zum Befüllen vom Wassertank
int schwimmer = 5; // Schwimmerschalter

void setup(){
  pinMode(magnetventil, OUTPUT);
  pinMode(schwimmer, INPUT);
  Serial.begin(9600);
}

void loop(){
  unsigned long currentMillisPrint = millis();
if (digitalRead(schwimmer) == HIGH) {    
   digitalWrite(magnetventil,LOW);  
    Serial.println("Ventil zu");
  }

  unsigned long currentMillisLED = millis();
  if (magnetventil && currentMillisLED - previousMillisLED >= intervalLed){
    previousMillisLED = currentMillisLED;
   digitalWrite(magnetventil, !digitalRead(magnetventil));
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.11.2020, 19:25
Beitrag #13
RE: Programm Schwimmer optimieren
Warum testest Du Deinen Code nicht selbst?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino Programm funktioniert auf nano nicht Arduino DMX Master 10 1.689 15.06.2020 13:07
Letzter Beitrag: Arduino DMX Master
  Arduino Programm Geht nicht mehr auf Arduino DMX Master 2 1.513 09.06.2020 20:13
Letzter Beitrag: Arduino DMX Master
  Morse Programm Didi_0 14 1.769 04.04.2020 21:13
Letzter Beitrag: ardu_arne
  Programm läuft auf UNO aber nicht auf ATTINY85 Diwo13 55 5.738 17.12.2019 17:45
Letzter Beitrag: Diwo13
  Programm hängt sich auf Jonas Meier 3 833 13.11.2019 11:12
Letzter Beitrag: MicroBahner
Question Programm läuft nicht richtig CMeeep 22 3.369 04.07.2019 21:58
Letzter Beitrag: Franz54
  PWM Rampe + Impulszähler in einem Programm heini320 10 2.838 29.11.2018 18:31
Letzter Beitrag: heini320
Music MIDI Software optimieren solarmusic 6 1.546 22.11.2018 18:20
Letzter Beitrag: Tommy56
  Code für Speicher optimieren Sasch600xt 35 7.919 31.08.2018 12:41
Letzter Beitrag: Sasch600xt
Exclamation Programm pulsierende Lava Eranos 6 2.195 26.06.2018 22:39
Letzter Beitrag: Eranos

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste