Go Down

Topic: Lauflicht ohne delay mit Unterbrechung (Read 4678 times) previous topic - next topic

Whandall

#30
Feb 17, 2017, 10:26 am Last Edit: Feb 17, 2017, 10:30 am by Whandall
Ist ja deren Teufelskreis.

Ich knoble gerne, simple Aufgaben sind da 'nett'.  ;)

Auch schule ich so meine Fähigkeiten Anwendern die Spezifikation abzuringen.*

Edit: *Hier dachte ich viel zu früh alles zu wissen...
Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. (D.Adams)

combie

#31
Feb 17, 2017, 10:40 am Last Edit: Feb 17, 2017, 10:46 am by combie
Quote
Ist ja deren Teufelskreis.
Tut mir beim zuschauen weh...

Tut auch dem Forum nicht gut, glaube ich..

Einem Anfänger auf die Sprünge helfen, GERNE!
Spannende Probleme überdenken, Gerne, Danke!

"Mach du mal die Arbeit für mich, weil ich zu doof oder zu faul bin die Doku zu lesen."
No!



Rein aus Selbstschutz muss ich mich dann irgendwann abwenden.
Dann doch vorher eben noch eine klare Ansage.
Ich hoffe, dass ich unseren dimix100 nicht all zu sehr verärgert habe.
Alle sagen: Das geht nicht!
Einer wusste das nicht und probierte es aus.
Und: Es ging nicht.

Whandall

So hat halt jeder seine persönlichen Absichten/Ziele etc.

Ich weiss nicht wirklich was "dem Forum gut tut", dafür fehlt mir der Maßstab.
(die Freiheit von SPAM empfinde ich als sehr angenehm, aber sonst?)

Ich fühle mich auch nicht berufen jeden zum Lernen zu zwingen.

Hausaufgaben / (Schul- Uni-) Projekte mache ich nicht.
Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. (D.Adams)

combie

#33
Feb 17, 2017, 12:00 pm Last Edit: Feb 17, 2017, 12:01 pm by combie
Quote
Ich fühle mich auch nicht berufen jeden zum Lernen zu zwingen.
Ich auch nicht.

Ich würde gerne jeden beim lernen unterstützen.


Quote
So hat halt jeder seine persönlichen Absichten/Ziele etc.
Ja, das gefällt mir!



Quote
dafür fehlt mir der Maßstab
Hmm...
Ein kleines bisschen Erfahrung habe ich da schon, denke ich mal.
So auf ca 50.000 Postings dürfte ich mittlerweile kommen...
Aber das heißt längst nicht, dass ich hier, jetzt, und unbedingt immer, richtig liege.
Denn gerade die sozialen Aspekte sind die komplexesten.

Alle sagen: Das geht nicht!
Einer wusste das nicht und probierte es aus.
Und: Es ging nicht.

dimix100

Hallo Leute,
jetzt habe ich so viel Referenz bekommen.... Ich beantworte eins nach dem anderen.

Als alle erste!!!! Ich bin sehr dankbar wenn whandall mir hilft! Ich habe ihm auch geschrieben, wenn er mir helfen könnte, wäre ich sehr dankbar!!!

Dann, habt ihr ja recht, es dauert seine Zeit die Sprache zu lernen und die Technik zu beherrschen! Aber ich stehe am Anfang! Ich habe da keine Ausbildung oder Lerngang oder sonst was... Ich mache das in meine Privatzeit!

Und ich wette, ihr habt auch mal Hilfe bekommen als ihr noch nicht so weit mit den Kenntnissen wart!

Ich bin nicht zu doof Doku zu lesen, hab schon genug gelesen!

Noch mal, bin für jede Hilfe dankbar!

dimix100

Whandall,
ich benutze als Eingang eine 5v Spannung die über einen Schalter geschaltet wird!
Mit der positive Flanke soll das Programm gestartet werden.


Whandall

#36
Feb 17, 2017, 02:20 pm Last Edit: Feb 17, 2017, 02:21 pm by Whandall
ich benutze als Eingang eine 5v Spannung die über einen Schalter geschaltet wird!
Ich benutze immer Pins als Eingang.

Dann brauchst du einen externen Pulldown.
Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. (D.Adams)

dimix100

Whandall,

wofür ist die Zeile:
const byte ledPins = sizeof(ledPin) / sizeof(ledPin[0]);

Gruß

Whandall

sizeof(Array)/sizeof(Array[0]) ergibt die Anzahl von Elementen im Array,
diese wird einer Konstanten zugewiesen.
Ah, this is obviously some strange usage of the word 'safe' that I wasn't previously aware of. (D.Adams)

dimix100

Danke, ich teste das mal nachher!
Gruß

combie

#40
Feb 17, 2017, 02:57 pm Last Edit: Feb 19, 2017, 03:19 pm by combie
Quote
Und ich wette, ihr habt auch mal Hilfe bekommen als ihr noch nicht so weit mit den Kenntnissen wart!
Naja...
Autodidakt, trifft es eher... (zumindest bei mir)


Quote
Als alle erste!!!! Ich bin sehr dankbar wenn whandall mir hilft! Ich habe ihm auch geschrieben, wenn er mir helfen könnte, wäre ich sehr dankbar!!!
Stimmt, ich könnte dir vermutlich sowieso nicht helfen....

Bei mir würde das nämlich so, oder so ähnlich aussehen:
(Und das ist natürlich viel zu kompliziert für den Anfang)
Code: [Select]
#include <TaskMacro.h>
// https://forum.arduino.cc/index.php?topic=415229.0

const byte taster = 50; // interner Pullup, Taster schaltet gegen GND
const byte ledPin[] = { 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37};
const byte ledPins = sizeof(ledPin) / sizeof(ledPin[0]);


void setup()
{
  pinMode(taster,INPUT_PULLUP); // intern PullUp
  for (byte i = 0; i < ledPins; i++)
  {
    pinMode(ledPin[i], OUTPUT);
    digitalWrite(ledPin[i], LOW); // Anfangszustand
  }
}

void tueLauflicht()
{
  static byte i; // Rundenzähler
  taskBegin();
  while(1)
  {
    taskWaitFor(!digitalRead(taster)); // warte auf Taster

    // in 5 Sekunden Abstand an
    for (i = 0; i < ledPins; i++)
    {
      digitalWrite(ledPin[i],HIGH);
      taskPause(5000);
    }

    // 10 Sekunden alle an
    taskPause(10000);

    // in 5 Sekunden Abstand aus
    for (i = 0; i < ledPins; i++)
    {
      digitalWrite(ledPin[i],LOW);
      taskPause(5000);
    }
  }
  taskEnd();
}

void loop()
{
  tueLauflicht();
}

Code teilweise von Whandall übernommen
* und völlig ungetestet *
Alle sagen: Das geht nicht!
Einer wusste das nicht und probierte es aus.
Und: Es ging nicht.

dimix100

Ich bin für jede Hilfe dankbar,

werde morgen auch deinen Sketch testen.
Gruß

ElEspanol

Tu dir das jetzt noch nicht an, versuche lieber, das konventionell zu programmieren, ohne Taskmacros.

agmue

Ich bin für jede Hilfe dankbar,
Möglicherweise kannst Du was für Dich herausholen:

Treppenbeleuchtung mit 2 PIR Sensoren und FastLED

Treppen Beleuchtung mit LED Strips

Projekt Treppenbeleuchtung

Code: [Select]
const byte taster = 8; // interner Pullup, Taster schaltet gegen GND
const byte ledPin[] = { 2, 3, 4, 5};
const byte ledPins = sizeof(ledPin) / sizeof(ledPin[0]);
#define EIN LOW
#define AUS HIGH
#define BLINKZEIT 500
#define PAUSENZEIT 5000
uint32_t aktMillis, blinkMillis, blinkIntervall;
enum {WARTEN, RAUF, RUNTER};
byte led, status = WARTEN;

void loop()
{
  aktMillis = millis();
  if (!digitalRead(taster))
  {
    status = RAUF;
  }
  if (aktMillis - blinkMillis >= blinkIntervall)
  {
    switch (status)
    {
      case WARTEN:
        led = 0;
        break;
      case RAUF:
        blinkMillis = aktMillis;
        digitalWrite(ledPin[led], EIN);
        if (led < ledPins - 1)
        {
          blinkIntervall = BLINKZEIT;
          led++;
        } else {
          blinkIntervall = PAUSENZEIT;
          status = RUNTER;
        }
        break;
      case RUNTER:
        blinkMillis = aktMillis;
        digitalWrite(ledPin[led], AUS);
        if (led > 0)
        {
          blinkIntervall = BLINKZEIT;
          led--;
        } else {
          blinkIntervall = 0;
          status = WARTEN;
        }
        break;
    }
  }
}

void setup()
{
  pinMode(taster, INPUT_PULLUP); // intern PullUp
  for (byte i = 0; i < ledPins; i++)
  {
    digitalWrite(ledPin[i], AUS); // Anfangszustand
    pinMode(ledPin[i], OUTPUT);
  }
}
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

combie

Tu dir das jetzt noch nicht an, versuche lieber, das konventionell zu programmieren, ohne Taskmacros.
Sach ich ja...
Wird ihm nicht helfen...
(kann mich aber auch täuschen, wäre nicht das erste mal)
Alle sagen: Das geht nicht!
Einer wusste das nicht und probierte es aus.
Und: Es ging nicht.

Go Up