Mit Werten von 2000 - 1000 LED dimmen

Hallo,

ich würde gern eine LED dimmen anhand von eingelesenen Werten, die sich von 1000 bis 2000 erstrecken. 2000 bedeutet LED aus und 1000 Bedeutet LED voll an. Dazwischen soll gedimmt werden. Ich habe etwas über eine Map gelesen. Wie genau stelle ich das an ?

Danke! :slight_smile:

Wir reden über PWM Steuerung, ok?
Dann mapst Du 1000 auf PWM 0 und 2000 auf PWM 255. Fertig. Nee, andersrum willst Du's ja, Prinzip ist das gleiche. In der Referenz schön erklärt.

Referenz hier:
http://arduino.cc/en/Reference/Map

Hi,

bin ich hiermit richtig?:

map(value, fromLow, fromHigh, toLow, toHigh)

map(aktuellerWert, 2000, 1000, 0, 255);

Probiers doch mal aus. Gibt den besten Kick wenns geht.

nitromethan:
bin ich hiermit richtig?:

map(value, fromLow, fromHigh, toLow, toHigh)

map(aktuellerWert, 2000, 1000, 0, 255);

Mach Dir doch ein kleines Testprogramm, dann siehst Du, wie es läuft.

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  for (int aktuellerWert=2000;aktuellerWert>=1000;aktuellerWert--)
  {
    Serial.print(aktuellerWert);
    Serial.print(" ");
    Serial.println(map(aktuellerWert, 2000, 1000, 0, 255));  
  }
}

void loop() {
  // put your main code here, to run repeatedly: 
}

OK, du mappst 1001 verschiedene Eingangswerte auf 256 verschiedene Ausgangswerte.

Dann werden je (meist) vier oder (selten) drei Eingangswerte auf einen Ausgangswert gemappt.
Nur am Ende wird nur ein einziger Eingangswert (1000) auf einen einzigen Ausgangswert (255) gemappt.

Wenn auch am Ende drei Eingangswerte (1002,1001,1000) auf einen einzigen Ausgangswert (255) gemappt werden sollen, nimmst Du zum Mapping besser:
map(aktuellerWert, 2000, 999, 0, 256)

Der letzte Wert (999), der dann am Ende nur einzeln auf einen Wert (256) gemappt werden würde, ist dann außerhalb des von Dir vorgegebenen Wertebereichs (und wird von Dir dann hoffentlich nicht verwendet werden).