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:
  • 1 Bewertungen - 2 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Loop reset
08.12.2015, 10:01
Beitrag #1
Loop reset
Hallo zusammen,

Ich versuche einen "loop" zu resetten mit untere Code.

Wenn Pin 7 HIGH ist muss die void hochwasser einen reset bekommen dass diesen wieder bereit ist für die nächste

Code:
const int abschalt = 7;

int abschaltState = LOW;

void abschalten() {
  abschaltState = digitalRead(abschalt);
  if (abschaltlState == HIGH) // wenn HIGH dann solte die loop hochwasser ein reset bekommen.
    reset hochwasser ();
}

Ich hoffe dass ich es gut erkläre Deutsch reden geht sehr gut aber schreiben geht so.

Mit freundliche grüßen
Andreas
--
Es tut mir Leid dass ich nicht immer oder direkt ihre Antwort verstehe, durch Konzentration Probleme ist es für mich leichter zu lehren durch "Learning by seeing" bitte um Verständnis.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2015, 10:24
Beitrag #2
RE: Loop reset
(08.12.2015 10:01)Atwist schrieb:  Ich versuche einen "loop" zu resetten mit untere Code.
Wenn Pin 7 HIGH ist muss die void hochwasser einen reset bekommen dass diesen wieder bereit ist für die nächste
Code:
const int abschalt = 7;
int abschaltState = LOW;

void abschalten() {
  abschaltState = digitalRead(abschalt);
  if (abschaltlState == HIGH) // wenn HIGH dann solte die loop hochwasser ein reset bekommen.
    reset hochwasser ();
}
Ich hoffe dass ich es gut erkläre Deutsch reden geht sehr gut aber schreiben geht so.
Eine Loop kannst du nicht abschalten bzw. resetten.
Die Loop muss immer durchlaufen, sonnst wird dein Sketch nicht funktionieren.

Bitte poste mal den kompletten Sketch, damit wir sehen können, was genau du machen möchtest.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2015, 11:27
Beitrag #3
RE: Loop reset
Hier meine Code es gibt noch 1 Fehler mit der Hochwasser timer die kann ich noch nicht finden Dodgy ich arbeite dran.

Code:
const int pumpe = 2;
const int alarm = 6;
const int schwimmer = 7;
const int abschalt = 8;


int pumpeState   = LOW;
int alarmState  = LOW;
int schwimmerState = LOW;
int abschaltState = LOW;




void setup() {
  pinMode (pumpe, OUTPUT);
  pinMode (alarm, OUTPUT);
  pinMode (schwimmer, INPUT);
  pinMode (abschalt, INPUT);


  Serial.begin(9600);           //Monitor function an
  Serial.println ("Programm lauft");
}

void loop()
  {
    schwimmerState = digitalRead(schwimmer);
  if (schwimmerState == HIGH)
  { digitalWrite(pumpe, HIGH);
    hochwasser ();
      Serial.println ("Hochwasser pumpe An");
  }
  else
  {
    digitalWrite(pumpe, LOW);
  }

}
void alarm_abschalten() {                        
  int abschaltState = LOW;
  abschaltState = digitalRead(abschalt);
  if (abschaltState == HIGH)                   // Hier versuch ich die void hochwasser eine reset zugeben dass diesen loop stopt und dass alarm Zurück gesetst wirt
    hochwasser ();
}

void hochwasser() {
  Serial.println ("Alarm timer lauft");
  static int schwimmerState = 0;
  static unsigned long LastChangeTime = 0;
  static int alarmOff = 0;
  static int alarmOn = 1;
  int alarmZuruecksetzen = 1;
  int schwimmerSignal = 1;
  unsigned long now = millis();

  int NeueschwimmerState = digitalRead(schwimmer);


  if (NeueschwimmerState != schwimmerState)               // Schwimmer Zustand
  {  
    LastChangeTime = now;                                    
    schwimmerState = NeueschwimmerState;      
    alarmOn = alarmZuruecksetzen;                                                                                                      

  }
  else if (schwimmerState = schwimmerSignal)              //Fragt den Zustand des "schwimmerState" gegenüber dem "schwimmerSignal" ab und beginnt
  {
  if (now - LastChangeTime > 3000)                        // Diese zeit um noch geändert werden
  {
  digitalWrite(alarm, alarmOn);
    Serial.println ("Hochwasser Alarm");
  }
  if (now - LastChangeTime > 5000)                        // Diese zeit um noch geändert werden
  {
    alarmOn = alarmOff;
    digitalWrite(alarm, alarmOff);
    }
  }
}

Mit freundliche grüßen
Andreas
--
Es tut mir Leid dass ich nicht immer oder direkt ihre Antwort verstehe, durch Konzentration Probleme ist es für mich leichter zu lehren durch "Learning by seeing" bitte um Verständnis.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2015, 11:40
Beitrag #4
RE: Loop reset
(08.12.2015 11:27)Atwist schrieb:  Hier meine Code es gibt noch 1 Fehler mit der Hochwasser timer die kann ich noch nicht finden Dodgy ich arbeite dran.

Code:
const int pumpe = 2;
const int alarm = 6;
const int schwimmer = 7;
const int abschalt = 8;


int pumpeState   = LOW;
int alarmState  = LOW;
int schwimmerState = LOW;
int abschaltState = LOW;




void setup() {
  pinMode (pumpe, OUTPUT);
  pinMode (alarm, OUTPUT);
  pinMode (schwimmer, INPUT);
  pinMode (abschalt, INPUT);


  Serial.begin(9600);           //Monitor function an
  Serial.println ("Programm lauft");
}

void loop()
  {
    schwimmerState = digitalRead(schwimmer);
  if (schwimmerState == HIGH)
  { digitalWrite(pumpe, HIGH);
    hochwasser ();
      Serial.println ("Hochwasser pumpe An");
  }
  else
  {
    digitalWrite(pumpe, LOW);
  }

}
void alarm_abschalten() {                        
  int abschaltState = LOW;
  abschaltState = digitalRead(abschalt);
  if (abschaltState == HIGH)                   // Hier versuch ich die void hochwasser eine reset zugeben dass diesen loop stopt und dass alarm Zurück gesetst wirt
    hochwasser ();
}

void hochwasser() {
  Serial.println ("Alarm timer lauft");
  static int schwimmerState = 0;
  static unsigned long LastChangeTime = 0;
  static int alarmOff = 0;
  static int alarmOn = 1;
  int alarmZuruecksetzen = 1;
  int schwimmerSignal = 1;
  unsigned long now = millis();

  int NeueschwimmerState = digitalRead(schwimmer);


  if (NeueschwimmerState != schwimmerState)               // Schwimmer Zustand
  {  
    LastChangeTime = now;                                    
    schwimmerState = NeueschwimmerState;      
    alarmOn = alarmZuruecksetzen;                                                                                                      

  }
  else if (schwimmerState = schwimmerSignal)              //Fragt den Zustand des "schwimmerState" gegenüber dem "schwimmerSignal" ab und beginnt
  {
  if (now - LastChangeTime > 3000)                        // Diese zeit um noch geändert werden
  {
  digitalWrite(alarm, alarmOn);
    Serial.println ("Hochwasser Alarm");
  }
  if (now - LastChangeTime > 5000)                        // Diese zeit um noch geändert werden
  {
    alarmOn = alarmOff;
    digitalWrite(alarm, alarmOff);
    }
  }
}


Else if (schwimmerState == schwimmerSignal)

Muss es heißen.

Gruss[/quote]

Nicht denken,...
...nachdenken... Rolleyes
http://capsicum-felicitas.de.tl
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2015, 12:07
Beitrag #5
RE: Loop reset
Ja Danke Shy

Kennst du auch einen Lösung für das stoppen der alarm timer (void hochwasser) ich bekomme dass nicht im griff.

Schon mal Danke

Mit freundliche grüßen
Andreas
--
Es tut mir Leid dass ich nicht immer oder direkt ihre Antwort verstehe, durch Konzentration Probleme ist es für mich leichter zu lehren durch "Learning by seeing" bitte um Verständnis.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2015, 13:16
Beitrag #6
RE: Loop reset
Wann genau und warum soll der "Alarm Timer" gestoppt werden.

Leider ist dein Sketch für mich etwas schwer zu lesen.
Dazu gehört die Anordnung der Variablen. Warum sind die nicht als "Global" deklariert?
Macht es übersichtlicher.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2015, 13:37 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2015 13:38 von Hilgi.)
Beitrag #7
RE: Loop reset
@hotsystems

zwischenfrage, wo liegt der sinn bei c++ in global/private -> arduino
????


gruss hilgi

@ atwist


ja genau, was ist die abbruchbedingung?


gruss

Nicht denken,...
...nachdenken... Rolleyes
http://capsicum-felicitas.de.tl
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.12.2015, 14:04
Beitrag #8
RE: Loop reset
(08.12.2015 13:37)Hilgi schrieb:  @hotsystems
zwischenfrage, wo liegt der sinn bei c++ in global/private -> arduino
Steht oben, kein technischer Grund aber ist übersichtlicher.
Der Code wird einfach lesbarer.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Question Webserver, Client, Loop Marc2014 6 362 29.07.2016 21:04
Letzter Beitrag: Marc2014
  Funktion in Loop einmalig ausführen Haustechno 4 643 09.03.2016 22:43
Letzter Beitrag: Haustechno
  Gleichzeitig ein Reset ? arduinofan 3 335 02.01.2016 20:21
Letzter Beitrag: Bitklopfer
  Serielle Ausgabe, Reset ? Mathias 1 593 12.11.2015 18:12
Letzter Beitrag: hotsystems
  Unterprogram, loop, while Marc2014 1 804 27.08.2015 19:11
Letzter Beitrag: hotsystems
  AnalogRead aus Loop-Schleife auskoppeln dna5544 7 1.469 16.07.2015 12:31
Letzter Beitrag: dna5544
  Arduino Leonardo Reset für UART Norbie 4 830 04.07.2015 09:10
Letzter Beitrag: Norbie
  auslagern von Funktion aus der void loop? MaHaI976 19 2.862 22.06.2015 20:38
Letzter Beitrag: MaHaI976
  Loop nur einmal durchlaufen wowa 7 1.837 02.06.2015 20:05
Letzter Beitrag: wowa
  adruino mega 2560 reset manne 20 2.319 06.04.2015 14:31
Letzter Beitrag: Thorsten Pferdekämper

Gehe zu:


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