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
  Typecasting oder nicht? Batucada 1 54 Gestern 18:51
Letzter Beitrag: Tommy56
  Problem mit Displayanzeige LCD2004 bzw. nicht Richtig magnum1795 39 1.500 18.12.2018 08:15
Letzter Beitrag: magnum1795
  Elegoo Mega 2560 R3 lässt sich nicht programieren Union1925 6 503 03.12.2018 21:21
Letzter Beitrag: Tommy56
Rainbow Sketch lässt sich nicht editieren HKestermann 3 441 03.11.2018 11:23
Letzter Beitrag: Hilgi
  mcp2515 CAN BUS nur eine ID auslesen Golf_Cabrio 6 673 24.10.2018 20:51
Letzter Beitrag: Golf_Cabrio
  Befehl wird nicht ausgeführt renesworld 15 831 19.10.2018 12:37
Letzter Beitrag: hotsystems
  Per Tastendruck Stepper-Motor eine bestimmte Drehung machen lassen Chef_2 2 490 09.10.2018 21:59
Letzter Beitrag: Chef_2
  Anfänger bekommt den Sketch nicht zum Laufen Maschinenbauer 6 901 06.10.2018 21:01
Letzter Beitrag: Tommy56
  Messwert auf OLED 0,96" SSD1306 darstellen geht nicht alpenpower 8 1.441 17.09.2018 10:56
Letzter Beitrag: alpenpower
  Neuer versuch eine Schaltung zu bauen. AndreasOHZ 2 636 16.09.2018 21:27
Letzter Beitrag: GuaAck

Gehe zu:


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