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
Switch erkennt eine Phase nicht
30.01.2019, 19:02 (Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2019 19:03 von DonSonora.)
Beitrag #17
RE: Switch erkennt eine Phase nicht
Also, ich will dass der LEDablauf auf Knopfdruck gestartet wird.

Bei diesem Programm funktioniert nicht, weil die Millis-schleife einfach läuft.
Wenn ich auf Knopf drücke, soll LED1 langsam mit PWM aufgehen, dann LED1 aus, dann LED2 mit PWM auf, dann wieder aus und LED3 an usw..

Es macht aber nicht. Ich druck den knopf und es geht beliebig eine Lampe an und bleibt einfach stehen.

Bin am überlegen, ob doch zwei Arduinos Sinn macht, während einer mit Delay die LEDs steuert und der zweite die Sensoren überwacht und so zum ersten zum Stoppen bringt.

Ich weiss nicht, ob ich mich da verständlich ausgedrückt habe. Tut mir leid, mein Kopf glüht.

LG Thomas
[/code]
Hier der aktuelle Script:

Code:
byte LED1 = 11;
byte LED2 = 10;
byte LED3 = 9;
byte LED4 = 6;

enum Phase {ON1, OFF1, ON2, OFF2}; // "Namen" fuer die Phasen
int d[] = {1000, 1000, 1000, 1000}; // Dauer der Phasen in ms
Phase phase; // Enthaelt die aktuelle Phase
unsigned long int millisMem; // Merker fuer millis()
const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  4;
int buttonState = 0;
unsigned long int lastTime;
unsigned long int lastTime2;
unsigned long int interval = 20;  // 2sec "delay"
int pwm;
int pwm2;
void setup()
{
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  phase = ON1;
  millisMem = millis();
  lastTime = millis();
  lastTime2 = millis();
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}

void loop()
{ buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH)
    switch (phase)
    {
      case ON1:

        if (millis() - millisMem < d[0])
        { if (255 >  pwm )  {
            if (millis() - lastTime > interval) {
              pwm += 1;
              analogWrite(LED1, pwm);
              lastTime = millis();
            }

           }

          digitalWrite(LED2, LOW);
          digitalWrite(LED3, LOW);
          digitalWrite(LED4, LOW);
        }
        else
        {
          phase = OFF1;
        }
        break;
      case OFF1:
        digitalWrite(LED1, LOW);
        if (millis() - millisMem < d[0] + d[1])
        { if (255 >  pwm2 )  {
            if (millis() - lastTime2 > interval) {
              pwm2 += 1;
              analogWrite(LED1, pwm2);
              lastTime = millis();

              analogWrite(LED2, pwm2);
            
            }
          }



          digitalWrite(LED3, LOW);
          digitalWrite(LED4, LOW);
        }
        else
        {
          phase = ON2;
        }
        break;
      case ON2:
        if (millis() - millisMem < d[0] + d[1] + d[2])
        { digitalWrite(LED1, LOW);
          digitalWrite(LED2, LOW);
          digitalWrite(LED3, HIGH);
          digitalWrite(LED4, LOW);
        }
        else
        {
          phase = OFF2;
        }
        break;
      case OFF2:
        if (millis() - millisMem < d[0] + d[1] + d[2] + d[3])
        { digitalWrite(LED1, LOW);
          digitalWrite(LED2, LOW);
          digitalWrite(LED3, LOW);
          digitalWrite(LED4, HIGH);
        }
        else
        { phase = ON1; millisMem = millis();
          lastTime = millis();
        }
        break;

    }

  // da werden die Sensoren programiert
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2019, 19:10
Beitrag #18
RE: Switch erkennt eine Phase nicht
Ich hatte ja ebenfalls bereits geschrieben, ich vermisse bei Dir den initialen AUS-Zustand in der ENUM. Wenn Du ON1 als Start hast, brauchst Du Dich nicht zu wundern, wenn er startet. Das aber später.

Wirf erst mal alles raus und fange nur mit dem Button an.

Wie hast Du Deinen Button an den Arduino angeschlossen? PullUp- oder PullDown-Widerstand?

Bevor das nicht geklärt ist, hat es keinen Sinn, weiter zu machen.

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
30.01.2019, 19:29
Beitrag #19
RE: Switch erkennt eine Phase nicht
Hallo Tommy;

also Button funktioniert. ganz klassisch mit 10KOhm am Pin2 und GRD, während am Pin2
über Schalter mit 5V+ verbunden ist. ( weiss nicht, on Pulldown oder Pullupwiderstand)

die über Auszustand im ENUM und ON1 als Start.... hätte ich gern gewusst.


LG Thomas

(30.01.2019 19:10)Tommy56 schrieb:  Ich hatte ja ebenfalls bereits geschrieben, ich vermisse bei Dir den initialen AUS-Zustand in der ENUM. Wenn Du ON1 als Start hast, brauchst Du Dich nicht zu wundern, wenn er startet. Das aber später.

Wirf erst mal alles raus und fange nur mit dem Button an.

Wie hast Du Deinen Button an den Arduino angeschlossen? PullUp- oder PullDown-Widerstand?

Bevor das nicht geklärt ist, hat es keinen Sinn, weiter zu machen.

Gruß Tommy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2019, 19:31
Beitrag #20
RE: Switch erkennt eine Phase nicht
(30.01.2019 19:29)DonSonora schrieb:  Hallo Tommy;

also Button funktioniert. ganz klassisch mit 10KOhm am Pin2 und GRD, während am Pin2
über Schalter mit 5V+ verbunden ist. ( weiss nicht, on Pulldown oder Pullupwiderstand)
Also Pulldown.

(30.01.2019 19:29)DonSonora schrieb:  die über Auszustand im ENUM und ON1 als Start.... hätte ich gern gewusst.
Gibt es dieses Fragment auch in einer verständlichen Form?

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
30.01.2019, 19:50
Beitrag #21
RE: Switch erkennt eine Phase nicht
Hallo Tommy,


Zitat:die über Auszustand im ENUM und ON1 als Start.... hätte ich gern gewusst.
Ich vertsehe deinen Hinweis nicht. Ich finde es im Programm nicht.

LG Thomas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2019, 20:08
Beitrag #22
RE: Switch erkennt eine Phase nicht
Wenn Du Deinen eigenen Text, den Du in #19 geschrieben hast schon nicht verstehst, wie soll ich ihn dann verstehen?

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
30.01.2019, 20:27
Beitrag #23
RE: Switch erkennt eine Phase nicht
Danke für die Hilfsbereitsschaft.

ich habe mich nun entschieden, die LED mit Delays laufen zu lassen und mit zweiten Arduino die Sensoren anzuschliessen.

Das ist so am einfachsten.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2019, 20:30
Beitrag #24
RE: Switch erkennt eine Phase nicht
Wenn Du meinst.

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
Wink Solar Roboter- Servo dreht nach Stopp nicht weiter Stagneth.Alexander 36 1.318 Gestern 13:15
Letzter Beitrag: Bitklopfer
  myport nicht gefunden? - Arduino und Visual Studio Stagneth.Alexander 3 191 04.08.2019 17:38
Letzter Beitrag: Tommy56
  Atmega 328 Sketchl läuft auf UNO3, alleine auf Breadboard nicht delay 9 487 02.08.2019 15:03
Letzter Beitrag: hotsystems
  Reaktionsspiel funktioniert nicht, wie es sollte... Stagneth.Alexander 27 1.016 21.07.2019 07:57
Letzter Beitrag: Stagneth.Alexander
Question Programm läuft nicht richtig CMeeep 22 1.346 04.07.2019 21:58
Letzter Beitrag: Franz54
  Sleep Modus aktivieren (Reed-Switch Falle) Wochenendprogrammierer 20 1.054 01.07.2019 21:16
Letzter Beitrag: hotsystems
  2 Sketche zusammenführen - korrelieren nicht Nicolai 11 1.030 24.05.2019 11:04
Letzter Beitrag: Nicolai
  Bedingung wird nicht wiederholt ausgeführt Lite 16 1.250 29.03.2019 05:11
Letzter Beitrag: Lite
  Gelöst ==> Arduino Nano, Kommunikation mit PC bringt nicht korrekten ASCII moehrle 4 673 02.03.2019 22:04
Letzter Beitrag: hotsystems
  Typecasting oder nicht? Batucada 1 493 19.02.2019 18:51
Letzter Beitrag: Tommy56

Gehe zu:


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