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:
  • 2 Bewertungen - 3 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
standheizung per gsmmodul bedienen :(
29.11.2015, 17:40 (Dieser Beitrag wurde zuletzt bearbeitet: 29.11.2015 17:40 von hoer173.)
Beitrag #33
RE: standheizung per gsmmodul bedienen :(
ich bin nun soweit das alles funktioniert...

hab jetzt mal das programm umgeschrieben das ich ne standlüftung hab für 1 minute erstmal..

bedienbar ist das alles per serial monitor mit den befehlen *an *aus für standlüftung
und #an #aus für die standheizung... leider haut der mir da wirre sachen raus.. ich find die fehler leider nicht..

mach ich die eingabe #aus oder #an schaltet sie die standlüftung ein oder aus usw...

starte ich die standlüftung mit *an und lass sie auslaufen startet nach 8 9 minuten das Klimabedienteil nochmal.....

hilfe wäre sehr toll.. danke

Code:
char inchar; //Puffert die eingehenden Symbole vom GSM MODUL

const int WebastoSchalter = 4;      // Relais 1
const int Webasto = 5;
const int Klimabedienteil = 6;      // Relais 2
const int shield = 9;
const int WasserPumpe = 10;         // Relais 3
const int StandLueften = 11;        // Relais 4

int StandlueftungAn = 0;
int Pumpe = 0;
int WebastoState = 0;
int LueftungIstAn = 0;
int HeizungIstAn = 0;
int ergebnis = 0; // ergebnis des sms empfangs
int arbeiten = 0; // wir haben was zu tun
unsigned long Startzeit = 0;
unsigned long LaufzeitHeizung = 0;
unsigned long LaufzeitLueftung = 0;
unsigned long StartzeitLueftung = 0;
unsigned long UmschaltzeitLueftung = 0;
unsigned long LaufzeitStandLueftung = 0;
unsigned long StartzeitStandLueftung = 0;


void setup()
{
  Serial.begin(19200);
  pinMode(WebastoSchalter, INPUT);
  pinMode(Webasto, OUTPUT);
  digitalWrite(Webasto, HIGH);
  pinMode(Klimabedienteil, OUTPUT);
  digitalWrite(Klimabedienteil, HIGH);
  pinMode(shield, OUTPUT);
  digitalWrite(shield, LOW);
  pinMode(WasserPumpe, OUTPUT);
  digitalWrite(WasserPumpe, HIGH);
  pinMode(StandLueften, OUTPUT);
  digitalWrite(StandLueften, HIGH);

  // GSM SHIELD Aktivieren
  Serial.println("Einschalten GSM");
  digitalWrite(shield, HIGH);
  delay(1500);
  digitalWrite(shield, LOW);
  delay(1000);
  digitalWrite(shield, HIGH);
  Serial.println("GSM BOOTEN");
  delay(10000); // Zeit zum Einloggen
  Serial.println("GSM SMS AKTIVIEREN");
  delay(100);
  delay(100);
  Serial.println("Modul BEREIT...");
  LueftungIstAn = 0;
  HeizungIstAn = 0;
  StandlueftungAn = 0;
}
void loop()
{
  WebastoState = digitalRead(WebastoSchalter);
  unsigned long w = 1;  //Standlueftung
  unsigned long x = 20; //Heizungszeit
  unsigned long y = 11; //Lüftungszeit
  unsigned long z = 5;  //Lüftung anheben nach 5 Minuten KlimabedienteilAn


  leseShield();
  if ( ergebnis > 0 )// schauen ob es eine sms gibt
  {
    {
      ergebnis = 0; // nur ein mal !!
      arbeiten = 1; // aber arbeiten
      Startzeit = 0;
      LaufzeitHeizung = 0;
      LaufzeitLueftung = 0;
      StartzeitLueftung = 0;
      UmschaltzeitLueftung = 0;   // Lüftung anheben über zeit z
      LueftungIstAn = 0;
      HeizungIstAn = 0;
      StandlueftungAn = 0;
      LaufzeitStandLueftung = 0;  // Laufzeit Standlueftung
      StartzeitStandLueftung = 0; // Startzeit Standlueftung
      Pumpe = 0;
      Startzeit = millis();

      if ( x < 0 )
      {
        WebastoEIN();
        // ausrechnen wann Heizung aus soll
        LaufzeitHeizung = Startzeit + (60000 * x);
      }

      if ( w > 0 )
      {
        StandLueftungEIN();
        // ausrechnen wann StandLueftung aus soll
        LaufzeitStandLueftung = Startzeit + (60000 * w);
      }

      if ( y > 0 )
      {
        // Heizung laeuft laenger wie Lueftung dann fängt Lüftung später an
        if ( x > y )
        {
          StartzeitLueftung = Startzeit + (60000 * (x - y));
        }
        else
        {
          StartzeitLueftung = Startzeit;
        }
        // ausrechnen wann Lueftung aus soll, dabei Startzeit beachten
        LaufzeitLueftung = StartzeitLueftung + (60000 * y);
      }
    } // ende an
  } // ende lese sms
  if (arbeiten > 0)
    if (LueftungIstAn == 0)
      if (StartzeitLueftung >= Startzeit)
        if (StartzeitLueftung <= millis())
          if (LaufzeitLueftung >= millis())
            KlimabedienteilAN();

  if (arbeiten > 0)
    if (HeizungIstAn == 1)
      if (LaufzeitHeizung < millis()) WebastoAUS();

  if (arbeiten > 0)
    if (StandlueftungAn == 1)
      if (LaufzeitStandLueftung < millis()) StandLueftungAUS();

  if (arbeiten > 0)
    if (LueftungIstAn == 1)
      if (StartzeitLueftung >= Startzeit )
        if (LaufzeitLueftung < millis()) AllesAUS();



}

void AllesAUS()
{
  StandLueftungAUS();
  WebastoAUS();
  delay(1000);
  PumpeAus();
  delay(2000);
  KlimabedienteilAUS();
  LueftungIstAn = 0;
  HeizungIstAn = 0;
  StandlueftungAn = 0;
  Serial.println("Heizung und Lueftung AUS Handbetrieb moeglich...");
}

void WebastoEIN()// SOLL 20 MINUTEN LAUFEN
{
  KlimabedienteilAUSFUNK();
  delay(1000);
  PumpeAn();
  delay(1500);
  digitalWrite(Webasto, LOW);
  LueftungIstAn = 0;
  HeizungIstAn = 1;
  Serial.println("Heizung AN... .. . In 9 Minuten geht die Lueftung AN...");
}

void WebastoAUS()
{
  digitalWrite(Webasto, HIGH);
  HeizungIstAn = 0;
  Serial.println("Heizung AUS...");
}

void KlimabedienteilAN()// SOLL NACH 9 MINUTEN STARTEN
{
  digitalWrite(Klimabedienteil, HIGH);
  delay(1000);
  KlimabedienteilEinstellen();
  LueftungIstAn = 1;
  Serial.println("Klimabedienteil AN fuer 11 Minuten...");
}

void KlimabedienteilAUS()
{
  digitalWrite(Klimabedienteil, HIGH);
  LueftungIstAn = 0;
  Serial.println("Klimabedienteil AUS... Durchgang Webasto Steuert");
}

void KlimabedienteilAUSFUNK()
{
  digitalWrite(Klimabedienteil, LOW);
  LueftungIstAn = 0;
  Serial.println("Klimabedienteil AUS... Arduino Steuert");
}

void KlimabedienteilEinstellen()
{
  Serial.println("Klimabedienteil auf niedrigste Luefterstufe, belueftung der Frontscheibe");
}

void KlimabedienteilRegeln()
{
  Serial.println("Klimabedienteil.. .. Lüfter auf mittlere Stufe");
}
void PumpeAn()
{
  digitalWrite(WasserPumpe, LOW);
  Pumpe = 1;
  Serial.println("Wasserpume AN... ..Steuerung durch Webasto");
}
void PumpeAus()
{
  digitalWrite(WasserPumpe, HIGH);
  Pumpe = 0;
  Serial.println("Wasserpumpe AUS... ..Steuerung durch Klimabedienteil");
}
void StandLueftungEIN() //5 Minuten!
{
  PumpeAn();
  digitalWrite(StandLueften, LOW);
  digitalWrite(Klimabedienteil, LOW);
  delay(1000);
  KlimabedienteilEinstellen();
  StandlueftungAn = 1;
  Serial.println("StandLueftung..... ..EIN");
}
void StandLueftungAUS()
{
  PumpeAus();
  digitalWrite(StandLueften, HIGH);
  digitalWrite(Klimabedienteil, HIGH);
  StandlueftungAn = 0;
  Serial.println("StandLueftung..... ..AUS");
}
int leseShield()
{
  ergebnis = 0;
  // wenn etwas reinkommt... ..
  if (Serial.available() > 0)
  {
    ergebnis = 1; // wir haben eine sms
    inchar = Serial.read();
    if (inchar == '#')
    {
      delay(10);
      inchar = Serial.read();
      if (inchar == 'a')
      {
        delay(10);
        inchar = Serial.read();
        if (inchar == 'n')
        {
          WebastoEIN();
          delay(10);

          Serial.println("SMS geloescht... nach AN");
          return ergebnis;
        }
        else if (inchar == 'u')
        {
          delay(10);
          inchar = Serial.read();
          if (inchar == 's')
          {
            AllesAUS();
            arbeiten = 0;
          }
          delay(10);

          Serial.println("SMS geloescht... nach AUS");
          return ergebnis;
        }
      }
    }
    else if (inchar == '*')
    {
      delay(10);
      inchar = Serial.read();
      if (inchar == 'a')
      {
        delay(10);
        inchar = Serial.read();
        if (inchar == 'n')
        {
          StandLueftungEIN();
          delay(10);

          Serial.println("SMS geloescht... nach StandLueftung AN");
          return ergebnis;
        }
        else if (inchar == 'u')
        {
          delay(10);
          inchar = Serial.read();
          if (inchar == 's')
          {
            AllesAUS();
            arbeiten = 0;
          }
          delay(10);

          Serial.println("SMS geloescht... nach StandLueftung AUS");
          return ergebnis;
        }
      }
    }
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.11.2015, 22:08
Beitrag #34
RE: standheizung per gsmmodul bedienen :(
Und ich habe immer noch das Gefühl, das hoer173 nichts dazu gelernt hat.

Wenn schon einen Code zusammen kopieren, dann sollte der wenigstens vernünftig dokumentiert werden, dass man den auch nachvollziehen kann.
Und dann merkt man selbst dabei, welche Fehler man einbaut.

Deine Hilfe hast du ja schon im anderen Forum erhalten. Und läuft der Code jetzt?

Wäre toll, wenn du uns das Ergebnis zeigst.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.11.2015, 09:50 (Dieser Beitrag wurde zuletzt bearbeitet: 30.11.2015 10:01 von hoer173.)
Beitrag #35
RE: standheizung per gsmmodul bedienen :(
nein habe immernoch das problem das die standlueftung nicht aus geht und das sich das klimabedienteil nach 1 minute einschaltet.. und nach 2 minuten erst alles ausgeht.

hab jetzt in der zeitberechnung heizungistan ==1 eingefügt.. nun geht das bedienteil nicht an aber die standlueftung läuft permanent weiter..

hier der aktuelle code

Code:
#include <SoftwareSerial.h>

String readString; //Puffert die eingehenden Symbole vom GSM MODUL

 

const int WebastoSchalter = 4;     

const int Webasto = 5;              // Relais 1

const int Klimabedienteil = 6;      // Relais 2

const int shield = 9;

const int Pumpe = 10;               // Relais 3

const int StandLueften = 11;        // Relais 4

 

int StandlueftungAn = 0;

int WebastoState = 0;

int lueftungIstAn = 0;

int heizungIstAn = 0;

 

int ergebnis = 0; // ergebnis des sms empfangs

int arbeiten = 0; // wir haben was zu tun

 

unsigned long Startzeit = 0;

unsigned long LaufzeitHeizung = 0;

 

unsigned long LaufzeitLueftung = 0;

unsigned long StartzeitLueftung = 0;

 

unsigned long LaufzeitStandLueftung = 0;

unsigned long StartzeitStandLueftung = 0;

unsigned long EndzeitStandLueftung = 0;

 

unsigned long UmschaltzeitLueftung = 0;

 

SoftwareSerial SIM900(7, 8);

void setup()

{

  Serial.begin(19200);

  pinMode(WebastoSchalter, INPUT);

  pinMode(Webasto, OUTPUT);

  digitalWrite(Webasto, HIGH);

  pinMode(Klimabedienteil, OUTPUT);

  digitalWrite(Klimabedienteil, HIGH);

  pinMode(shield, OUTPUT);

  digitalWrite(shield, LOW);

  pinMode(Pumpe, OUTPUT);

  digitalWrite(Pumpe, HIGH);

  pinMode(StandLueften, OUTPUT);

  digitalWrite(StandLueften, HIGH);

 

 

  // GSM SHIELD Aktivieren

  Serial.println("Einschalten GSM");

  digitalWrite(shield, HIGH);

  delay(1500);

  digitalWrite(shield, LOW);

  delay(1000);

  digitalWrite(shield, HIGH);

  Serial.println("GSM BOOTEN");

  SIM900.begin(19200);

  delay(6000); // Zeit zum Einloggen

  Serial.println("GSM SMS AKTIVIEREN");

  SIM900.print("AT+CMGF=1\r"); // setzt SMS Mode

  delay(100);

  SIM900.print("AT+CNMI=2,2,0,0,0\r");// gibt SMS direkt an den Arduino weiter

  delay(100);

  Serial.println("Modul BEREIT...");

  lueftungIstAn = 0;

  heizungIstAn = 0;

}

void loop()

{

  unsigned long w = 1;  //Standlueftung

 unsigned long  x = 2; //Heizungszeit

 unsigned long  y = 1; //Lüftungszeit

unsigned long   z = 5;  //Lüftung anheben nach 5 Minuten KlimabedienteilAn

 

 

  leseShield();

  if ( ergebnis > 0 )// schauen ob es eine sms gibt

  {

    {

      ergebnis = 0; // nus ein mal !!

      arbeiten = 1; // aber arbeiten

      Startzeit = 0;

      LaufzeitHeizung = 0;

      LaufzeitLueftung = 0;

      StartzeitLueftung = 0;

      lueftungIstAn = 0;

      heizungIstAn = 0;

      StandlueftungAn = 0;

      LaufzeitStandLueftung = 0;  // Laufzeit Standlueftung

      StartzeitStandLueftung = 0; // Einschaltzeit Standlueftung

      EndzeitStandLueftung = 0;   // Ausschaltzeit Standlueftung

      Startzeit = millis();

 

      if (heizungIstAn == 1)

      {

       

        // ausrechnen wann Heizung aus soll

        LaufzeitHeizung = Startzeit + (60000 * x);

      }

      if (StandlueftungAn == 1)

      {

       

        // ausrechnen wann Heizung aus soll

        LaufzeitStandLueftung = Startzeit + (60000 * w);

      }

 

      if ( y > 0 )

      {

        // Heizung laeuft laenger wie Lüeftung dann fängt Lüftung später an

        if ( x > y )

        {

          StartzeitLueftung = Startzeit + (60000 * (x - y));

        }

        else

        {

          StartzeitLueftung = Startzeit;

        }

        // ausrechnen wann Lüftung aus soll, dabei Startzeit beachten

        LaufzeitLueftung = StartzeitLueftung + (60000 * y);

      }

    } // ende an

  } // ende lese sms

  if (arbeiten > 0)
    if (heizungIstAn ==1)

    if (lueftungIstAn == 0)

      if (StartzeitLueftung >= Startzeit)

        if (StartzeitLueftung <= millis())

          if (LaufzeitLueftung >= millis())

            KlimabedienteilAN();

 

  if (arbeiten > 0)

    if (heizungIstAn == 1)

      if (LaufzeitHeizung < millis()) WebastoAUS();

 

  if (arbeiten > 0)

    if (StandlueftungAn == 1)

      if (LaufzeitStandLueftung < millis()) StandLueftungAUS();

 

  if (arbeiten > 0)

    if (lueftungIstAn == 1)

      if (StartzeitLueftung >= Startzeit )

        if ((LaufzeitLueftung < millis()) ) AllesAUS();

 

 

}

 

void AllesAUS()

{

  StandLueftungAUS();

  WebastoAUS();

  delay(1000);

  PumpeAus();

  delay(2000);

  KlimabedienteilAUS();

  lueftungIstAn = 0;

  heizungIstAn = 0;

  Serial.println("Heizung und Lueftung AUS Handbetrieb moeglich...");

}

 

void WebastoEIN()// SOLL 20 MINUTEN LAUFEN

{

  KlimabedienteilAUSFUNK();

  delay(1000);

  PumpeAn();

  delay(1500);

  digitalWrite(Webasto, LOW);

  lueftungIstAn = 0;

  heizungIstAn = 1;

  Serial.println("Heizung AN... .. . In 9 Minuten geht die Lueftung AN...");

}

 

void WebastoAUS()

{

  digitalWrite(Webasto, HIGH);

  heizungIstAn = 0;

  Serial.println("Heizung AUS...");

}

 

void KlimabedienteilAN()// SOLL NACH 9 MINUTEN STARTEN

{

  digitalWrite(Klimabedienteil, HIGH);

  delay(1000);

  KlimabedienteilEinstellen();

  lueftungIstAn = 1;

  Serial.println("Klimabedienteil AN fuer 11 Minuten...");

}

 

void KlimabedienteilAUS()

{

  digitalWrite(Klimabedienteil, HIGH);

  lueftungIstAn = 0;

  Serial.println("Klimabedienteil AUS... Durchgang Webasto Steuert");

}

 

void KlimabedienteilAUSFUNK()

{

  digitalWrite(Klimabedienteil, LOW);

  lueftungIstAn = 0;

  Serial.println("Klimabedienteil AUS... Arduino Steuert");

}

 

void KlimabedienteilEinstellen()

{

  Serial.println("Klimabedienteil auf niedrigste Luefterstufe, belueftung der Frontscheibe");

}

 

void KlimabedienteilRegeln()

{

  Serial.println("Klimabedienteil.. .. Lüfter auf mittlere Stufe");

}

void PumpeAn()

{

  digitalWrite(Pumpe, LOW);

  Serial.println("Wasserpume AN... ..Steuerung durch Webasto");

}

void PumpeAus()

{

  digitalWrite(Pumpe, HIGH);

  Serial.println("Wasserpumpe AUS... ..Steuerung durch Klimabedienteil");

}

 

void StandLueftungEIN() //5 Minuten!

{

  PumpeAn();

  digitalWrite(StandLueften, LOW);

  digitalWrite(Klimabedienteil, LOW);

  delay(1000);

  KlimabedienteilEinstellen();

  StandlueftungAn = 1;

  Serial.println("StandLueftung und Klimabedienteil..... ..EIN");

}

void StandLueftungAUS()

{

  PumpeAus();

  digitalWrite(StandLueften, HIGH);

  digitalWrite(Klimabedienteil, HIGH);

  StandlueftungAn = 0;

  Serial.println("StandLueftung und Klimabedienteil..... ..AUS");

}

 

int leseShield()

 

{ ergebnis = 0;

  // Texterkennung

  while (Serial.available())

  {

    ergebnis = 1;

    delay(100);

    char c = Serial.read();

    readString += c;

  }

  if (readString.length() > 0)

  {

    readString.trim();

    Serial.println(readString);

 

    if (readString.indexOf("#an") >= 0)

    {

      WebastoEIN();
            arbeiten = 1;

    }

 

    if (readString.indexOf("*an") >= 0)

    {

      StandLueftungEIN();
            arbeiten = 1;

    }

 

    if (readString.indexOf("#aus") >= 0)

    {

      AllesAUS();

      arbeiten = 0;

    }

 

    if (readString.indexOf("*aus") >= 0)

    {

      StandLueftungAUS();

      arbeiten = 0;

    }

 

    readString = "";

    delay(10);

    SIM900.println("AT+CMGD=1,4"); // alle SMS loeschen

    Serial.println("ALLE SMS geloescht...");

    return ergebnis;

  }

}

 


das programm funktioniert wunderbar im bereich der standheizung mit dem versetzten einschalten des klimabedienteils. auch wird mit erreichen der zeit x alles abgeschaltet.

einzig und allein die standlueftung macht jetzt probleme wie beschrieben.

ich find keine loesung..

und zusammenkopiert ist hier rein garnicht da ich von hier und da Verbesserungsvorschläge angenommen habe.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.12.2015, 09:49
Beitrag #36
RE: standheizung per gsmmodul bedienen :(
(30.11.2015 09:50)hoer173 schrieb:  ...und zusammenkopiert ist hier rein garnicht ...
Das sehe ich aber anders.

Hier schreibst du es ja selbst:
Zitat:...da ich von hier und da Verbesserungsvorschläge angenommen habe.

Wenn du verstehen würdest, was du da reinkopierst, wäre es ok.
Meinen Vorschlag, den Sketch zu dokumentieren, nimmst du ja auch nicht an.
Dann würdest du zumindest mal sehen und selbst lesen, was die einzelnen Befehle bewirken. Auch den Tipp, doch per "Serial.print" (Testausgaben) nimmst du nicht an. Wenn du so weiter machst, wirst du es nie lernen.

Versuch einfach mal zu verstehen, was dir alle (in zwei Foren) vermitteln möchten.

Wenn du nicht mal weißt, wie man eine "int Variable" auf 0 setzt, dann fehlen dir einfach die wichtigsten Grundlagen.
Und die solltest du einfach mal lernen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.12.2015, 09:53
Beitrag #37
RE: standheizung per gsmmodul bedienen :(
siehst du den den fehler?! aus fehlern lernt man ja... ich finde ihn nicht... lass ich mit serial print die zeiten ausgeben... seh ich nur das er laufzeitheizung auf 0 hat immer... und das wenn ich den aus befehl.sende er nicht die start und laufzeit der lueftung nicht nullt....

hilf mir msl bitte... hab dich schon oft gebeten.. sag mir wo der blöde fehler liegt das ich es endkich verstehe..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.12.2015, 10:20 (Dieser Beitrag wurde zuletzt bearbeitet: 01.12.2015 10:52 von hotsystems.)
Beitrag #38
RE: standheizung per gsmmodul bedienen :(
(01.12.2015 09:53)hoer173 schrieb:  siehst du den den fehler?! aus fehlern lernt man ja...

Man lernt nur daraus, wenn man es versteht und nachvollziehen kann.
Ich sehe leider immer nur, wie du Hinweise ignorierst.

Zitat:hilf mir msl bitte... hab dich schon oft gebeten.. sag mir wo der blöde fehler liegt das ich es endkich verstehe..

Ich helfe dir gern, so wie ich auch versuche, anderen zu helfen.
Nur deinen Code kann ich nicht richtig lesen da dieser NICHT dokumentiert ist. Schlech oder fast gar nicht formatiert und mit sehr vielen Leerzeilen versehen ist.

Ich möchte mich nicht "stundenlang" mit einem Code rumschlagen, um diesen zu verstehen.

Überlege mal, warum du hier kaum Hilfe bekommst.
Wir machen das alles in unserer privaten Zeit und als Hobby.

Und wenn du Hilfe (anderes Forum) bekommst, ignorierst du diese, ohne darauf einzugehen.

Warum machst du dir und uns das so schwer?

Edit:

Lies die letzte Antwort im anderen Forum. Da wird mein Hinweis von hier bestätigt.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.12.2015, 12:40
Beitrag #39
RE: standheizung per gsmmodul bedienen :(
Wenn ein Progrsmm (Sketch) schonmal fehlerfrei durch den Compiler geht und sich in den Arduino schiessen lässt, ist das schonmal ein gutes Zeichen.

Wenn das Programm dann nicht das macht, was man eigentlich wollte, muss man halt schauen, warum.

In Deinem Fall sind etliche kleine Funktionen ausgelagert, was ja auch sinnvoll ist.
Jetzt schreibst Du einfach in jede Funktion ein Serial.println("Funktionsname") hinein.
Dann siehst Du auf dem Bildschirm, in welcher Reihenfolge die Funktionen abgerufen werden.
Somit kannst Du erstmal schauen, wie der Fehler zustande kommt, wann ein ungewollter Funktionsaufruf stattfindet.
Wenn Du den lokalisiert hast, lässt Du Dir die Variableninhalte anzeigen, die bei der IF Abfrage VOR dem Funktionsaufruf verglichen werden.

So kommst Du Schritt für Schritt Deinem Problem auf die Spur.

Irgendwo nämlich hüpft das Programm falsch von Funktion zu Funktion, hab ich das Gefühl.
Aber das kann man nur schwer am Sketch erkennen, wenn der so umfangreich ist.


Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.12.2015, 14:36
Beitrag #40
RE: standheizung per gsmmodul bedienen :(
moin

Zitat:Jetzt schreibst Du einfach in jede Funktion ein Serial.println("Funktionsname") hinein.
Dann siehst Du auf dem Bildschirm, in welcher Reihenfolge die Funktionen abgerufen werden.
Somit kannst Du erstmal schauen, wie der Fehler zustande kommt, wann ein ungewollter Funktionsaufruf stattfindet.
Wenn Du den lokalisiert hast, lässt Du Dir die Variableninhalte anzeigen, die bei der IF Abfrage VOR dem Funktionsaufruf verglichen werden.

So kommst Du Schritt für Schritt Deinem Problem auf die Spur.


das sehe ich auch so, ich studiere technische informatik und speziell bei java benutzen wir genau diese methode um zb exceptions zu ermitteln.

ich denke das ist dein weg, ich hab mich gerade eingelesen und kann hotsystems nur zustimmen (und den anderen sicher auch), der code ist unübersichtlich formatiert, ich habe nach ner minute die lust verloren.

bitte sehe diese kritik hier als ansporn, du wirst sicher in zukunft noch mehr programieren, grundlagen erlernen hilft dir immer.

ansonsten bist du herzlich eingeladen, div. volkshochschulen und universitäten habe noch freie plätze um sogar speziell arduino programmierungen zu erlernen.

online tuts etc., sind auch in hülle und fülle vorhanden.

gruss hilgi

Nicht denken,...
...nachdenken... Rolleyes
http://capsicum-felicitas.de.tl
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Standheizung mit SMS steuern Mreichart 5 1.180 06.08.2015 11:58
Letzter Beitrag: Mreichart
  Motoren anhand von Wii Nunchuck bedienen? Cyberxgirl 1 420 10.06.2015 08:20
Letzter Beitrag: Thorsten Pferdekämper
  Standheizung mit GSM schalten strobo 9 2.916 11.07.2014 08:15
Letzter Beitrag: rkuehle

Gehe zu:


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