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
  mit if aus do-while oder while Schleife aussteigen Nafetz 6 131 05.12.2016 21:41
Letzter Beitrag: Pit
  while Schleife nach sleep mode interrupt tklaus 13 268 23.11.2016 17:40
Letzter Beitrag: Tommy56
  Do-While-Schleife Abbruchbedinung Majera 14 272 22.11.2016 18:07
Letzter Beitrag: Pit
  Schleife Hannes 3 200 16.11.2016 00:54
Letzter Beitrag: Hannes
  SoftwareSerial Baudrate automatisch korrekt erkennen - geht das? Gelegenheitsbastler 5 534 21.04.2016 12:32
Letzter Beitrag: SkobyMobil
  Problem: SDFat - Das Ende einer Datei finden und Schleife beenden MartinK 4 490 01.04.2016 05:49
Letzter Beitrag: MartinK
  for - Schleife #elextro19 6 719 27.03.2016 13:21
Letzter Beitrag: #elextro19
  Aus While-Schleife durch Interrupt aussteigen Zill3 10 1.195 08.02.2016 16:28
Letzter Beitrag: ardu_arne
  Den 1. nRF24L01 auf "T" setzen und den 2. auf "R" setzen, wie geht das bitte ? arduinofan 3 443 01.02.2016 20:10
Letzter Beitrag: arduinofan
  Stringvariable senden beim ESP8266 geht nicht , warum ? arduinofan 9 1.139 12.01.2016 11:05
Letzter Beitrag: arduinofan

Gehe zu:


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