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
Variableninhalt (Schleife) geht verloren
14.04.2015, 06:28
Beitrag #9
RE: Variableninhalt (Schleife) geht verloren
while(random_rot > temp_rot || random_rot < temp_rot){

Ist das nicht immer wahr?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.04.2015, 06:57
Beitrag #10
RE: Variableninhalt (Schleife) geht verloren
(14.04.2015 06:50)kurti schrieb:  Moin,
wenn A größer B oder A kleiner B ist dann unwahr,
wenn A = B ist.

Gruss
Kurti

Ah jetzt hab ich's. Danke Sleepy
ein != wäre einfacher ...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.04.2015, 09:28 (Dieser Beitrag wurde zuletzt bearbeitet: 14.04.2015 09:30 von scritch.)
Beitrag #11
RE: Variableninhalt (Schleife) geht verloren
(14.04.2015 06:57)memeqri schrieb:  
(14.04.2015 06:50)kurti schrieb:  Moin,
wenn A größer B oder A kleiner B ist dann unwahr,
wenn A = B ist.

Gruss
Kurti

Ah jetzt hab ich's. Danke Sleepy
ein != wäre einfacher ...

Stimmt, gar nicht dran gedacht. Danke. Aber das hilft mir bei meinem Problem noch nicht weiter :-)

@Thorsten: A ist ein Wert der sich dem Wert B langsam annähert, in der while-Schleife. Das kann ich mit einer if-Anweisung leider nicht darstellen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.04.2015, 09:45
Beitrag #12
RE: Variableninhalt (Schleife) geht verloren
Hast Du dann vielleicht im ersten if etwas vergessen? temp_rot++ ?

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.04.2015, 10:27
Beitrag #13
RE: Variableninhalt (Schleife) geht verloren
(14.04.2015 09:45)Thorsten Pferdekämper schrieb:  Hast Du dann vielleicht im ersten if etwas vergessen? temp_rot++ ?

Gut aufgepasst, das ist aber bloß beim Übertrag und der neuen Formatierung für das Forum verloren gegangen. Es scheitert auch nicht an der Erfüllung der Bedingung der while-Schleife. Wenn ich z. B. vor der while-Schleife ein serial.print von i oder j ausgebe, funktioniert das. j und i zählen hoch, wie sie sollen. Sobald ich den serial.print IN die while-Schleife packe, kommt da nur noch 0 raus.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.04.2015, 10:29
Beitrag #14
RE: Variableninhalt (Schleife) geht verloren
Dann zeige mal die zwei Coding-Varianten.

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.04.2015, 11:01
Beitrag #15
RE: Variableninhalt (Schleife) geht verloren
Öhm,
ich weiß ja nicht ob der gezeigte Codeschnipsel in irgendeiner Schleife läuft.
Wenn ja, wird so geschrieben random() nicht wirklich sich ändernde Werte bringen.
Zitat:Note:
If it is important for a sequence of values generated by random() to differ, on subsequent executions of a sketch, use randomSeed() to initialize the random number generator with a fairly random input, such as analogRead() on an unconnected pin.
Andererseits hat Thorsten wohl recht, wenn er sagt, dass das while mit if ersetzt werden sollte. Ansonsten würde While nur verlassen werden wenn zufällig
temp-rot=random_rot ist. Und nur dann würden j und folgend i hochgezählt werden.
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.04.2015, 11:53 (Dieser Beitrag wurde zuletzt bearbeitet: 14.04.2015 11:55 von scritch.)
Beitrag #16
RE: Variableninhalt (Schleife) geht verloren
(14.04.2015 11:01)rkuehle schrieb:  Öhm,
ich weiß ja nicht ob der gezeigte Codeschnipsel in irgendeiner Schleife läuft.
Wenn ja, wird so geschrieben random() nicht wirklich sich ändernde Werte bringen.
Zitat:Note:
If it is important for a sequence of values generated by random() to differ, on subsequent executions of a sketch, use randomSeed() to initialize the random number generator with a fairly random input, such as analogRead() on an unconnected pin.
Andererseits hat Thorsten wohl recht, wenn er sagt, dass das while mit if ersetzt werden sollte. Ansonsten würde While nur verlassen werden wenn zufällig
temp-rot=random_rot ist. Und nur dann würden j und folgend i hochgezählt werden.
Grüße Ricardo

Ja, der Code läuft in der Hauptschleife und die Randomwerte werden in jedem Durchlauf neu erzeugt, das funktioniert soweit wie es soll. Es verhält sich so:

Ich habe eine LED-Lampe, diese besteht aus 4 LED-Streifen mit je 4 LEDs, also gesamt 16 LEDs. Ich möchte dass alle LEDs nacheinander langsam die Farbe wechseln. Also erst LED-Streifen 1 die 1. LED, dann LED-Streifen 1 die 2. LED, dann LED-Streifen 1 die 3. LED usw.

Für jeden Durchgang soll eine Zufallsfarbe generiert werden (der Einfacheit halber arbeiten wir jetzt nur mit rot).

1. randomwert zwischen 0 und 255 wird erzeugt
2. ist der vorherige Farbwert größer oder kleiner der randwomwert, wird dieser Wert dem neuen Randomwert langsam angenähert. Das passiert, damit der Farbwechsel nicht abrupt vonstatten geht, sondern damit ein sanfter Farbwechsel zustande kommt. Z. B.:
random_rot = 100; //neuer Wert
temp_rot = 200; //alter, zwischengespeicherter Wert

Da random_rot dunkler ist als temp_rot und die LED nicht plötzlich innerhalb 1ms dunkler werden soll, wird die while-Schleife durchlaufen. In dieser while-Schleife wird geprüft, ob random_rot =! temp_rot ist. Ist random_rot < tempt_rot, wie in diesem Beispiel, wird temp_rot (200) langsam dem Wert von random_rot (100) angenähert. Immer einen Minus pro while-Schleifendurchgang. Solange bis temp_rot = random_rot ist. Dann wird die while-Schleife verlassen, die erste LED (j) des ersten Streifens (i) ist fertig. Es folg die nächste LED mit demselben Prozess.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Rainbow File geht nicht zum compilieren!!!! Jocky 7 180 19.02.2017 20:01
Letzter Beitrag: Binatone
  Code aus 1.6.9 geht mit 1.8.1 nicht mehr zu kompilieren DL1AKP 7 290 02.02.2017 12:16
Letzter Beitrag: Tommy56
  Loop Schleife abbrechen mittlig1977 1 256 06.01.2017 22:18
Letzter Beitrag: Tommy56
  Uhr geht ungenau trotz RTC3231 Grot 2 224 26.12.2016 13:32
Letzter Beitrag: Grot
  Sketch geht,geht nicht? malsehen 0 182 25.12.2016 21:24
Letzter Beitrag: malsehen
  mit if aus do-while oder while Schleife aussteigen Nafetz 6 301 05.12.2016 21:41
Letzter Beitrag: Pit
  while Schleife nach sleep mode interrupt tklaus 13 436 23.11.2016 17:40
Letzter Beitrag: Tommy56
  Do-While-Schleife Abbruchbedinung Majera 14 504 22.11.2016 18:07
Letzter Beitrag: Pit
  Schleife Hannes 3 303 16.11.2016 00:54
Letzter Beitrag: Hannes
  SoftwareSerial Baudrate automatisch korrekt erkennen - geht das? Gelegenheitsbastler 5 650 21.04.2016 12:32
Letzter Beitrag: SkobyMobil

Gehe zu:


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