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
  Bedingung wird nicht wiederholt ausgeführt Lite 16 670 29.03.2019 05:11
Letzter Beitrag: Lite
  Gelöst ==> Arduino Nano, Kommunikation mit PC bringt nicht korrekten ASCII moehrle 4 317 02.03.2019 22:04
Letzter Beitrag: hotsystems
  Typecasting oder nicht? Batucada 1 261 19.02.2019 18:51
Letzter Beitrag: Tommy56
  Problem mit Displayanzeige LCD2004 bzw. nicht Richtig magnum1795 39 2.101 18.12.2018 08:15
Letzter Beitrag: magnum1795
  Elegoo Mega 2560 R3 lässt sich nicht programieren Union1925 6 780 03.12.2018 21:21
Letzter Beitrag: Tommy56
Rainbow Sketch lässt sich nicht editieren HKestermann 3 611 03.11.2018 11:23
Letzter Beitrag: Hilgi
  mcp2515 CAN BUS nur eine ID auslesen Golf_Cabrio 6 897 24.10.2018 20:51
Letzter Beitrag: Golf_Cabrio
  Befehl wird nicht ausgeführt renesworld 15 1.066 19.10.2018 12:37
Letzter Beitrag: hotsystems
  Per Tastendruck Stepper-Motor eine bestimmte Drehung machen lassen Chef_2 2 628 09.10.2018 21:59
Letzter Beitrag: Chef_2
  Anfänger bekommt den Sketch nicht zum Laufen Maschinenbauer 6 1.195 06.10.2018 21:01
Letzter Beitrag: Tommy56

Gehe zu:


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