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
Lauflicht mit zufälligem Stop
20.02.2020, 17:48
Beitrag #1
Question Lauflicht mit zufälligem Stop
Hallo zusammen,

ich beschäftige mich momentan mit einem Lauflicht aus 8 LED´s, was ich an sich auch am laufen habe. Meine neue Funktion soll sein, das die 8 LED´s immer der Reihe nach laufen wie bisher, zusätzlich aber langsamer werden und dann irgendwann nur eine LED an bleibt. Die Frage die sich mit stellt wäre, wie ich es am einfachsten hin bekomme, das nicht immer die gleiche LED am Ende an bleibt?

Müsste ich mir eine Zufallszeit erzeugen, die dann nach jedem Durchlauf einen bestimmten Wert abzieht? Gleiches mit dem langsamer werden?
Oder bin ich da auf dem falschen Weg?

Vielen Dank für eure Hilfe.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2020, 18:28
Beitrag #2
RE: Lauflicht mit zufälligem Stop
Da Du Deinen Sketch geheim hälst, wird Hilfe kaum sinnvoll möglich sein.

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
20.02.2020, 18:58 (Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2020 18:59 von Platinum.)
Beitrag #3
RE: Lauflicht mit zufälligem Stop
Der Sketch soll natürlich nicht geheim gehalten werden.
Als Info evtl. noch.... Die LED´s hängen an einem MCP23017 Port Expander in einem I2C-Bus.

//Zufallsgenerator
int LEDZufallPin[] = {8,9,10,11,12,13,14,15};
unsigned long letzterWechsel;
int ZeitProLED = 100;
int AktuelleLED = 15;

void setup() {
mcp3.pinMode(8, OUTPUT); //LED-1 Zufallsgenerator
//mcp3.pullUp(8, HIGH);
mcp3.pinMode(9, OUTPUT); //LED-2 Zufallsgenerator
//mcp3.pullUp(9, HIGH);
mcp3.pinMode(10, OUTPUT); //LED-3 Zufallsgenerator
//mcp3.pullUp(10, HIGH);
mcp3.pinMode(11, OUTPUT); //LED-4 Zufallsgenerator
//mcp3.pullUp(11, HIGH);
mcp3.pinMode(12, OUTPUT); //LED-5 Zufallsgenerator
//mcp3.pullUp(12, HIGH);
mcp3.pinMode(13, OUTPUT); //LED-6 Zufallsgenerator
//mcp3.pullUp(13, HIGH);
mcp3.pinMode(14, OUTPUT); //LED-7 Zufallsgenerator
//mcp3.pullUp(14, HIGH);
mcp3.pinMode(15, OUTPUT); //LED-8 Zufallsgenerator
//mcp3.pullUp(15, HIGH);
}


void loop() {


unsigned long aktuelleZeit = millis();

if (aktuelleZeit - letzterWechsel > ZeitProLED) {
mcp3.digitalWrite(LEDZufallPin[AktuelleLED], LOW);
AktuelleLED = (AktuelleLED + 1) % 8;
mcp3.digitalWrite(LEDZufallPin[AktuelleLED], HIGH);
letzterWechsel = aktuelleZeit;
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2020, 19:07 (Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2020 19:12 von Tommy56.)
Beitrag #4
RE: Lauflicht mit zufälligem Stop
Stelle Deinen Sketch bitte in Codetags. So ist er auch auf portablen Geräten lesbar.
Wie das geht, steht hier.
Das kannst Du auch noch nachträglich ändern.

Ordentlich Einrücken (<Strg>+T im der IDE hilft Dir dabei) erhöht auch die Lesbarkeit.

Gruß Tommy

Edit: Wirf bitte dabei auch alle Zeilen raus, die Du nicht brauchst.

"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
20.02.2020, 19:48
Beitrag #5
RE: Lauflicht mit zufälligem Stop
Code:
//Zufallsgenerator
int LEDZufallPin[] = {8,9,10,11,12,13,14,15};
unsigned long letzterWechsel;
int ZeitProLED = 100;
int AktuelleLED = 15;

void setup()  {
     mcp3.pinMode(8, OUTPUT);    //LED-1 Zufallsgenerator
     mcp3.pinMode(9, OUTPUT);    //LED-2 Zufallsgenerator
     mcp3.pinMode(10, OUTPUT);    //LED-3 Zufallsgenerator
     mcp3.pinMode(11, OUTPUT);    //LED-4 Zufallsgenerator
     mcp3.pinMode(12, OUTPUT);    //LED-5 Zufallsgenerator
     mcp3.pinMode(13, OUTPUT);    //LED-6 Zufallsgenerator
     mcp3.pinMode(14, OUTPUT);    //LED-7 Zufallsgenerator
     mcp3.pinMode(15, OUTPUT);    //LED-8 Zufallsgenerator
}


void loop()  {

unsigned long aktuelleZeit = millis();

if (aktuelleZeit - letzterWechsel > ZeitProLED)  {
        mcp3.digitalWrite(LEDZufallPin[AktuelleLED], LOW);
        AktuelleLED = (AktuelleLED + 1) % 8;
        mcp3.digitalWrite(LEDZufallPin[AktuelleLED], HIGH);
        letzterWechsel = aktuelleZeit;
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2020, 20:07
Beitrag #6
RE: Lauflicht mit zufälligem Stop
Das sieht doch schon viel übersichtlicher aus.
Du brauchst ein paar Variablen für die Zeitsteuerung und die letzte Runde (ungetestet)
(20.02.2020 19:48)Platinum schrieb:  
Code:
//Zufallsgenerator
int LEDZufallPin[] = {8,9,10,11,12,13,14,15};
unsigned long letzterWechsel;
int ZeitProLED = 100;
int AktuelleLED = 15;
unsigned int runden = 0, anzahlRunden;
byte letzteLed;
bool ende = false;

void setup()  {
     mcp3.pinMode(8, OUTPUT);    //LED-1 Zufallsgenerator
     mcp3.pinMode(9, OUTPUT);    //LED-2 Zufallsgenerator
     mcp3.pinMode(10, OUTPUT);    //LED-3 Zufallsgenerator
     mcp3.pinMode(11, OUTPUT);    //LED-4 Zufallsgenerator
     mcp3.pinMode(12, OUTPUT);    //LED-5 Zufallsgenerator
     mcp3.pinMode(13, OUTPUT);    //LED-6 Zufallsgenerator
     mcp3.pinMode(14, OUTPUT);    //LED-7 Zufallsgenerator
     mcp3.pinMode(15, OUTPUT);    //LED-8 Zufallsgenerator
     letzteLed = random(0,8); // 0 bis 7
     anzahlRunden = random(5,10); // 5 bis 9
}


void loop()  {

unsigned long aktuelleZeit = millis();

if (!ende && aktuelleZeit - letzterWechsel > ZeitProLED)  {
        mcp3.digitalWrite(LEDZufallPin[AktuelleLED], LOW);
        if (AktuelleLED++ >7) {
          runden++
          AktuelleLED = 0;
        }
        if (runden >= anzahlRunden) {
          AktuelleLED++;
          if (AktuelleLED >=letzteLed) ende = true;
        }
        else AktuelleLED = (AktuelleLED + 1) % 8;
        mcp3.digitalWrite(LEDZufallPin[AktuelleLED], HIGH);
        letzterWechsel = aktuelleZeit;
  }
}

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
Question Lauflicht Spezial Charlie 7 671 25.03.2020 00:23
Letzter Beitrag: senseman
  Lauflicht mit externem Takt Manny 21 2.147 02.03.2020 12:36
Letzter Beitrag: Harry
  Lauflicht mit Interrupt senseman 18 2.401 09.12.2019 22:37
Letzter Beitrag: senseman
  RGB LED Lauflicht per Taster unterbrechen AC_DC_new 28 5.665 05.08.2018 19:16
Letzter Beitrag: AC_DC_new
  Lauflicht mit Kontrolle Golffahrer 13 3.256 13.05.2018 19:59
Letzter Beitrag: Tommy56
  Lauflicht mit Fernbedienung und Shift Register Golffahrer 8 3.673 02.07.2017 19:05
Letzter Beitrag: Tommy56
  Lauflicht mit Nano Pixel und Joystick strobo 3 2.234 20.05.2017 20:16
Letzter Beitrag: Tommy56
  Mal wieder ein Lauflicht Legolas085 7 10.799 05.05.2015 08:38
Letzter Beitrag: Thorsten Pferdekämper
  $STOP Serial command huge 1 2.143 17.04.2015 11:21
Letzter Beitrag: Thorsten Pferdekämper
Question Bei Led Lauflicht delay ersetzen partizan0180 27 14.838 12.03.2015 19:35
Letzter Beitrag: partizan0180

Gehe zu:


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