Brauche Hilfe, bitte!

Hallo ich bin neu hier...
Kann mir jemand helfen? Ich habe morgen eine Präsentation.
Was bedeuten die folgenden 3 Zeilen?

  1. messwert=analogRead(sensor);
    2.helligkeit=map(messwert,6,679,0,255);
    3.analogWrite(ledPin,helligkeit);
    Ich bitte um Hilfe!

Was das bedeutet, kannst du hier nachlesen:

1 Like

Unabhängig von der Fargestellung ein offtopic:

Da messwert die maximale Grenze von alanlogRead() erreichen kann, ist das hier ein Problem.

map() bergrenzt ddas Ergebnis nicht auf die angegebenen Werte ( hier 0 ... 255 ),
sondern bildet eine Geradengleichung.

Mir ist das klar :slight_smile: Ich weiss nur nicht, was zum Schluss dabei rauskommt, wenn der Überlauf zuschlägt.
Es macht einen Unterschied, ob helligkeit ein int oder ein byte ist und wie es weiter genutzt wird.

Das war mir auch klar.
Ich dachte nur, dass es evtl. hilfreich sei, das noch explizit zu erwähnen.

Und wenn wir schon dabei sind:

Was das bedeutet, bleibt unklar, solange die Variablendefinitionen fehlen.

error: 'messwert' was not declared in this scope
  messwert=analogRead(sensor);
  ^~~~~~~~
 error: 'sensor' was not declared in this scope
  messwert=analogRead(sensor);
                      ^~~~~~

usw.
@my_xy_projekt
Es ist hier (in den drei Zeilen) übrigens egal, ob helligkeit ein byte oder int oder auto (hier long) ist.

void setup() {
  Serial.begin(115200);
  int messwert = 540; // statt = analogRead(sensor);
  auto helligkeit = map(messwert,300,500,0,255);
  Serial.println(sizeof helligkeit);  // 4 (map liefert long)
  Serial.println(helligkeit);         // map(540) -> 306
  analogWrite(3, helligkeit);         // kein Fehler 
  Serial.println((byte)helligkeit);
  analogWrite(5, (byte)helligkeit);
  byte he2 = map(messwert,300,500,0,255);  // map(540) -> 50
  analogWrite(6, he2);                // gleiche Helligkeit
  Serial.println(he2);
}  
void loop() {}

@j_kk : immer (den kürzest möglichen) einen kurzen, aber kompletten Sketch posten

1 Like

Nach der Beschreibung ( ja, ist nicht wirklich viel ) will der Lehrer einfach nur erklärt was diese 3 Zeilen code "machen"...

Ich frag mich ernsthaft, wieso der Lehrer was abfragt, was er nicht vorher geschult hat.

Und ob man in der heutigen Zeit nicht mehr sagen darf : "Sorry aber das habe ich nicht verstanden."

Damals war anscheinend doch vieles besser.

Gruß

Pucki

Wurde schon in #2 sofort geantwortet. (RTFM)
Klar hat @j_kk jetzt was anderes zu tun als den Thread per "Lösung"-Häkchen zu schließen.

Wobei selbst das hier nicht viel nützt, sich vor
    So einfach ist "einfach nur" auch nicht
Ergänzungen oder allgemeinen philosophischen Betrachtungen zu schützen.

Viel Erfolg bei der Präsentation @j_kk.

Wurde sagen schlimmer man war gezwungen das nutzen was man unter Schädel und hinter den Augen hat, wenigstens war das so bei mir damals,

OH, wir haben was gemeinsam. :thinking:

Gruß

Pucki

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.