Meanwell LCM-40 (10V PWM) dimmen mit Arduino 5V PWM

sabrikara

Member
Huhu,

doch noch was:
Wie merke ich denn, dass der Buz nicht genug durchschaltet bzw. der Lcm nicht richtig dimmt. Werde ich das "sehen" können?
 

omega

Well-Known Member
Hi Sabri,

sabrikara":1zhcr80q schrieb:
Wie merke ich denn, dass der Buz nicht genug durchschaltet bzw. der Lcm nicht richtig dimmt. Werde ich das "sehen" können?
wenn keine LEDs dranhängen sicher nicht. :wink:

Grüße, Markus
 

OttoFaerber

Member
BUZ

mit dem Raspberry bekommt der BUZ 3,5 Volt
Hab den Strom an der LED gemessen
0 (10%) - 100% = 0 - 1,4 A
schaltet also perfekt.
Aufgrund der "Schwellenspannung der 60W LED gehts aber erst bei ca 10% los.
 

sabrikara

Member
Morgen,

also bei meinen ersten Tests funktionierte es ganz gut, ging auch auf null. Wenn es nicht so ein Akt wäre Videos hochzuladen, würde ich das ja zeigen. Weiß natürlich jetzt nicht ob das durch die verkehrte Schaltung geklappt hat oder ob ich danach noch mal umgesteckt hab. Naja, wir werden sehen, wenn meine Bestellung angekommen ist.

Geht das eigentlich mit jeder dimmbaren KSQ ? Wahrscheinlich muss dieser Pwm und kurzschließen "aushalten". Ist das irgendwo ersichtlich oder kann man das einfach ohne Gefahr ausprobieren? Warum steht nicht überall "schließe einfach Mosfet xy an und fertig". Nur für den nächsten, der das hier liest.

Liebe Grüße
Sabri
 

Wuestenrose

Well-Known Member
Re: BUZ

Mahlzeit...

OttoFaerber":3dteoltt schrieb:
Aufgrund der "Schwellenspannung der 60W LED gehts aber erst bei ca 10% los.
Nein, mit der Schwellenspannung der LED hat das gar nichts zu tun, sondern damit, daß das LCM beim Raufdimmen von 0 auf ca. 6 % springt, beim Runterdimmen umgekehrt. Manche LED-Netzteile gehen erst ab 10 % los. Sofern es die Ansteuerelektronik beherrscht, kann man jede LED beliebig zwischen 0 und 100 % dimmen.

@sabrikara
sabrikara":3dteoltt schrieb:
Ist das irgendwo ersichtlich...
Ja. Die Meanwell-Netzteile, die mit "Built-in 3 in 1 dimming function (1~10VDC, PWM signal or resistance)" beschrieben sind, funktioniert die MOSFET-Methode. Beim LCM-40 steht zwar nur "Built-in 0~10VDC and PWM signal dimming function", funktioniert aber trotzdem.

Eine Garantie, daß das immer und mit jeder KSQ/jedem Netzteil klappt, kann ich nicht geben.

Grüße
Robert
 

sabrikara

Member
Hi zusammen,

Danke.
Ob da jetzt ein 10 / 6 % Sprung am Anfang und Ende geben wird macht dann erst mal nichts.

Die Hitze reichte mir Abends nicht mehr. Ich hab grade mal etwas gelötet und gebastelt.
Nicht besonders schön aber sollte doch vorerst reichen oder was meint ihr?
Der BUZ11 ist mit der Kunststoffseite an die "Box" geklebt – Sekundenkleber. Wahrscheinlich ein No-Go. Bin mal gespannt ob der das was macht.
... Achso, löten muss ich wohl auch noch ein zwei mal üben.
 

Anhänge

  • IMAG0996.jpg
    IMAG0996.jpg
    67,9 KB · Aufrufe: 854
  • IMAG0998.jpg
    IMAG0998.jpg
    78,4 KB · Aufrufe: 836

sabrikara

Member
Hi zusammen,

auf meine Bestellung warte ich noch immer. Muss das morgen mal klären. Ich war natürlich ungeduldig und hab mir anderweitig Arduinos besorgt. Das Netzteil, welches angekommen ist, hat gleich den Geist aufgegeben. Diesmal war alles richtig gesteckt. Habe ich reklamiert. Also hab ich den stärkeren benutzt. Mit diesem funktioniert es auch.
Alles habe ich die ersten Programme draufgespielt und getestet. Hab dann aber den aRduino versehentlich falsch in den Erweiterungsboard gesteckt und .... geschrottet :)
Ich habs ja schong eahnt und in meiner Bestellung und der Ersatzbeschaffung gleich je zwei bestellt/mitgenommen.
Jetzt läuft es mit diesem Code erst mal ein paar Tage:

Code:
int led = 10;

void setup () {
  // declare pin 10 to be an output:
 pinMode(led, OUTPUT);
}
 
void loop (){
  
  
  //60 Min Sonnenaufgang
  for(int fadeValue = 255; fadeValue >= 0; fadeValue -=1)
  {
  analogWrite(led, fadeValue);
  delay(14117);
  }

delay(28800000); //8 Studen volles Licht

  //60 min Sonnenuntergang
  for(int fadeValue = 0; fadeValue <= 255; fadeValue +=1)
  {
  analogWrite(led, fadeValue);
  delay(14117);
}

 delay(3600000);

}

Ich musste natürlich mit einer "Helligkeit" von 255 statt 0 anfangen, weil der BUZ11 erst mit einem PWM-Signal kurzschließt. Das ist dass, was ihr mit invertiert meintet, nehme ich an. Ist der BUZ11 dann selbstsperrend?
Dann wäre ein Mosfet, der ohne PWM-Signal leitend ist ja eigentlich besser. Also wenn kein PWM-Signal kommt, sind die Dimm-Anschlüsse kurzgeschlossen.

Dann wäre folgendes nicht nötig:
Beides an einer Zeitschaltuhr funktioniert nicht. Die KSQ ist schneller an als der Arduino seinen Code abspielen kann. Somit geht das Licht kurz an und wird dann erst dunkel, sodass ab dann der Sonnenaufgang stattfindet. Also muss eine zweite Zeitschaltuhr her. Der Arduino soll dann eine Minute früher Stromkriegen als die KSQ. Dafür hab ich eine per USB programmierbare Steckdosenleiste bestellen, Gembird ca. 27 €.

Der Sprung bei der Dimmung ist anfangs schon deutlich aber aktuell noch kein Problem. Rest muss ich erst noch Beobachten.

Danke noch mal, ohne euch hätte ich das nicht hingekriegt.
 

MajorMadness

Active Member
Sry das ich mich einmische, aber mir dreht sich grade der Magen um:
delay(28800000); :shock: :stumm:
Schick mir mal deine Adresse per PN, ich schick dir ne Echtzeituhr/RTC rüber. Dann kannst du das ohne delay machen und mit nur einer Steckdose.
Zudem ist die Dimmung linear, d.h. Schnell Hell anstelle langsam ansteigend. Das kann man mit ner Rampe (logarithmisch) umgehen. Bei 256 Werten also
Code:
0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,14,14,14,14,15,15,15,16,16,17,17,17,18,18,18,19,19,20,20,21,21,21,22,22,23,23,24,24,25,26,26,27,27,28,29,29,30,30,31,32,33,33,34,35,36,36,37,38,39,40,41,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,58,59,60,61,63,64,66,67,69,70,72,73,75,76,78,80,82,83,85,87,89,91,93,95,97,99,102,104,106,109,111,113,116,118,121,124,127,129,132,135,138,141,144,147,151,154,157,161,165,168,172,176,180,184,188,192,196,200,205,209,214,219,224,229,234,239,244,249,255
Geändert wäre das dann:
Code:
// Oben einbinden:
#include <avr/pgmspace.h>
// darunter:
PROGMEM  const uint16_t pwmtable[256] = {
0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8,8,8,8,9,9,9,9,9,10,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,14,14,14,14,15,15,15,16,16,17,17,17,18,18,18,19,19,20,20,21,21,21,22,22,23,23,24,24,25,26,26,27,27,28,29,29,30,30,31,32,33,33,34,35,36,36,37,38,39,40,41,41,42,43,44,45,46,47,48,49,50,52,53,54,55,56,58,59,60,61,63,64,66,67,69,70,72,73,75,76,78,80,82,83,85,87,89,91,93,95,97,99,102,104,106,109,111,113,116,118,121,124,127,129,132,135,138,141,144,147,151,154,157,161,165,168,172,176,180,184,188,192,196,200,205,209,214,219,224,229,234,239,244,249,255
};

//Bei der Dimmung:
n_PWM = pgm_read_word(&pwmtable[fadeValue]);
analogWrite(led, n_PWM);
Jetzt hast du unten langsam ansteigende Helligkeit und Oben schnelle was fast dem Auge entspricht.

Wie gesagt, schick mir mal Adresse oder Zeitpunkt wo du nach Frohenhausen kommen kannst abends und ich schenk dir auch gerne ne Uhr. Wollten uns ja länger schon treffen und hat nie geklappt. :(
 

sabrikara

Member
Huhu,

Sry das ich mich einmische
Quatsch, du sollst dich doch einmischen!

Eine RTC hatte ich vorsorglich bestellt. DS3231 AT24C32
Ich hab das Teil noch nicht angebracht. Man muss halt mit wachsen :)
Ist das delay so schlimm? Gut, 8 Stunden lang wartet das Ding und zählt sich zu Tode aber ich brauche den ja aktuell noch nicht für was anderes oder sehe ich das falsch?

//Bei der Dimmung:
n_PWM = pgm_read_word(&pwmtable[fadeValue]);
analogWrite(led, n_PWM);

Kommt das dann in die Klammern der For-Schleife? Wo wird hierbei die Dimm-Zeit deklariert?
Mit dem delay in der For-Schleife habe ich ja die 60 Minuten (14117 (Millisekunden) x 255 = 59,99725 Minuten) für den Sonnenaufgang vorgegeben. oder bleibt dieses delay einfach und nur "mein" analogWrite wird mit deinen beiden Zeilen ersetzt?

Der Sinn ist also, dass die unteren Helligkeitswerte länger (durch die Wiederholungen) "gezeigt" werden, sodass wir diese eher sehen/bemerken?

Ach und dieser Code kann dann auch schon ohne RTC eingebaut werden. Löst aber dann noch nicht das delay "Problem"... Dazu kommen wir dann auch noch, alles Schritt für Schritt.

Wollten uns ja länger schon treffen und hat nie geklappt.
So ist das manchmal. Kann man nicht ändern. Jetzt wo ich keine Vorlesungen mehr hab, hab ich etwas mehr Zeit (dass ich eine Bachelorarbeit schreiben müsste, verdrängen wir mal kurz :stumm: ) und hab hier ja auch einen anderen aber auch guten Vorschlag und Hilfe bekommen. Das heißt aber nicht, dass du dich zurückhalten muss.

Danke.
 

steppy

Active Member
Hi Sabri,
es ist nicht schlimm wenn der Controller ewig wartet aber halt auch nicht besonders elegant. Wichtig ist m. M., dass man versteht was man programmiert hat. Sonst bekommt man Probleme bei der Erweiterung und Wartung des Codes.

Im übrigen kann man auch streiten, ob es elegant ist riesige Tabellen für so triviale Dinge wie Dimmung zu nutzen...

Geht das eigentlich mit jeder dimmbaren KSQ ? Wahrscheinlich muss dieser Pwm und kurzschließen "aushalten". Ist das irgendwo ersichtlich oder kann man das einfach ohne Gefahr ausprobieren? Warum steht nicht überall "schließe einfach Mosfet xy an und fertig". Nur für den nächsten, der das hier liest.

Vorraussetzung ist, dass die KSQ selber eine entsprechende Spannung and Dim-Eingang zur Verfügung stellt (also auch per Poti/Widerstand dimmbar ist). Außerdem würde ich ins Datenblatt der KSQ schauen. Nicht immer ist dort die Dimmbarkeit per PWM gegeben. In diesem Fall kann man trotzdem deine Schaltung nutzen, muss das Signal an der KSQ aber über einen Filter wieder mitteln. So mache ich es bei mir auch.

Gruß
Stefan
 

MajorMadness

Active Member
Das
Code:
//Bei der Dimmung:
n_PWM = pgm_read_word(&pwmtable[fadeValue]);
analogWrite(led, n_PWM);
ersetzt dein analogWrite. Es ist nur dazu da die lineare Dimmung in Logoryhtmische um zu wandeln. Reswt ist gleich. Bei 8bit und 256 Schritten ist es aber immer stufig. Doch evt merkst du das bei deiner Dimmung nach 40 Minuten schon ganz hell ist und sich dann kaum noch was tut. Das gleicht der aus.

Wenn ich mir kurz was zusammenkopiere:
Code:
#include <Wire.h>
#include <RTClib.h>
#include <avr/pgmspace.h>
#include <WString.h>
RTC_DS1307 rtc; PROGMEM  const uint16_t pwmtable[256] = {
  0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4,
  4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 2, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 20, 20, 21, 21, 21, 22, 22, 23, 23, 24, 24, 25, 26, 26, 27, 7, 28, 29, 29, 30, 30, 31, 32, 33, 33, 34, 35, 36, 36, 37, 38, 39, 40, 41, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 58, 59, 60, 1, 63, 64, 66, 67, 69, 70, 72, 73, 75, 76, 78, 80, 82, 83, 85, 87, 89, 91, 93, 95, 97, 99, 102, 104, 106, 109, 111, 113, 116, 118, 121, 124, 27, 129, 132, 135, 138, 141, 144, 147, 151, 154, 157, 161, 165, 168, 172, 176, 180, 184, 188, 192, 196, 200, 205, 209, 214, 219,
  224, 229, 234, 239, 244, 249, 255
};
byte led = 10;

typedef struct {
  uint32_t time;
  byte level;
} LIGHT;

uint32_t get_ts(uint8_t h, uint8_t m, uint8_t s) {
  uint32_t t;
  t = h;
  t *= 60;
  t += m;
  t *= 60;
  t += s;
  return t;
}

// Licht Einstellungen immer paar aus Uhrzeit und % angabe. Je reihe Zahl von LIGHT_VALUES, so viele Reihen wie in LIGHT_CHANEL
LIGHT light_channels[1][8] = {
  {{get_ts(0, 1, 0), 0}, {get_ts(10, 0, 0), 0}, {get_ts(11, 30, 0), 100}, {get_ts(19, 0, 0), 100}, {get_ts(20, 0, 0), 0}, {get_ts(21, 30, 0), 0}, {get_ts(23, 30, 0), 0}, {get_ts(23, 32, 0), 0}}
};
void setup () {
  // declare pin 10 to be an output:
  pinMode(led, OUTPUT);
  rtc.begin();

  Serial.begin(9600);
}
void loop() {
  rtc.now();

  setLight();
}
void setLight() {
  uint16_t c_PWM = PWM_Licht(0);
  setLED(led , uint8_t(c_PWM));
}
void setLED(uint8_t channel, uint8_t Value) {

  word n_PWM;
  n_PWM = pgm_read_word(&pwmtable[Value]);
  if (n_PWM <= 0)	{
    digitalWrite(led, LOW);
  }
  else if (n_PWM >= 255) {
    digitalWrite(led, HIGH);
  }
  else {
    analogWrite(led, n_PWM);
  }
}

int PWM_Licht(int lightIndex) {

  long Max, Min, pwm = 255;
  float dimTime, f, p;
  float pastSeconds;
  uint32_t Start, Ende;
  byte oMin, oMax;

  if (light_channels[lightIndex][7].time < rtc.daystamp ) {
    Start = light_channels[lightIndex][7].time;
    Ende = light_channels[lightIndex][0].time;
    oMin = light_channels[lightIndex][7].level;
    oMax = light_channels[lightIndex][0].level;

    pastSeconds = rtc.daystamp - Start + 0.5; 
    dimTime = get_ts(24, 0, 0) - Start + Ende;

  } else if (light_channels[lightIndex][0].time > rtc.daystamp) {
    Start = light_channels[lightIndex][7].time; // 22:00-> 79200
    Ende = light_channels[lightIndex][0].time; // 4:00->  1440
    oMin = light_channels[lightIndex][7].level;
    oMax = light_channels[lightIndex][0].level;

    pastSeconds = get_ts(24, 0, 0) - Start + rtc.daystamp + 0.5;
    dimTime = get_ts(24, 0, 0) - Start + Ende + 0.5;
  } else {
    int curIndex = 0;

    for (byte n = 0; n < 8; n++) {
      if (light_channels[lightIndex][n].time < rtc.daystamp) {
        curIndex = n;
      }
    }
    Start = light_channels[lightIndex][curIndex].time;
    Ende = light_channels[lightIndex][curIndex + 1].time;
    oMin = light_channels[lightIndex][curIndex].level;
    oMax = light_channels[lightIndex][curIndex + 1].level;
    pastSeconds = rtc.daystamp - Start + 0.5; 
    dimTime = Ende - Start;
  }

  Min = (pwm - (pwm * oMin / 100));
  Max = (pwm - (pwm * oMax / 100)); 

  if (Min == Max) {
    return Min;
  }
  f = dimTime / (Max - Min);
  p = pastSeconds / f;
  pwm = Min + p;
  if (pwm <= 0) {
    pwm = 0;
  } else if (pwm > 255) {
    pwm = 255;

  }
  return pwm;    // Im Nofall ausschalten...
}
Die passenden Libaries (rtc) bekommst du unter https://github.com/MajorMadness/AquaGrowMiniControl
Funktion ist einfach: Im Array sagst du wann er wie hell sein soll: {get_ts(10, 0, 0), 0} <- 10:00:00 , 0% und er kalkuliert die richtige helligkeit und dimmt dann logorythmisch korrekt. Das ganze ohne delay und fest definierte zeiten. Code kommt von meinem MiniControl und ist nur auf deine 256 Schritte umgeschrieben. Kann also sein das 0 hell und 100 dunkel ist. :D im Prinzip kannst du damit aber Tagesverlauf dimmen und mittagspause einrichten. zudem noch mondlicht mit ner einfachen 12V led ect...
 

omega

Well-Known Member
Hi,

ich würde den Array pwmtable entweder erweitern oder die PWM-Werte gleich live berechnen. Eine 8-bit Auflösung ist schon ruckelig genug, da müssen nicht noch größere PWM-Schritte eingebracht werden, indem PWM-Werte ausgelassen werden. Ich mach das bei 12-bit 50x in der Sekunde.
Dazu muß der PWM-Wert öfter als 256x im Dimm-Zeitraum ausgegeben werden, je öfter, desto weniger PWM-Werte werden ausgelassen, bis alle benutzt werden.

Oder sieht man die Abstände ab 50 aufwärts gar nicht mehr, weil bereits hell genug und das Auge dafür nicht mehr differenziert genug?

Grüße, Markus
 

MajorMadness

Active Member
Ich habe nen 12bit Array mit 4095 Werten nur runtergebrochen. Klar man kann das riesen Array auch mit 256 Werten füllen. Platz hat man genug dafür... Oder halt direkt über Math.h berechnen lassen aber keine Ahnung wie das geht. Ich benutze im MiniControl nur die table und in den neuen nen ganz anderen weg (Kein Arduino mehr...).
Per 12bit, 256 schritte wäre das:
Code:
PROGMEM  const uint16_t pwmtable[4096] = {
0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3
,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24
,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,30,30
,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35
,35,35,35,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,42,42,42,42,42
,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49
,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,52,52,52,52,52,52,52,52,52,52,52,52,52,52,53,53,53,53,53,53,53,53,53,53,53,53,53,53,54,54,54,54,54,54,54,54,54,54,54,54,54,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,57,57,57,57,57,57,57,57,57,57,57,57,57,58,58,58,58,58,58,58,58,58,58,58,58,58,59,59,59,59,59,59,59,59,59,59,59,59,60,60,60,60,60,60,60,60,60,60,60,60,60,61,61,61,61,61,61,61,61,61,61,61,61,62,62,62,62,62,62,62,62,62,62,62,62,63,63,63,63,63,63,63,63,63,63,63,64,64,64,64,64,64,64,64,64,64,64,64,65,
65,65,65,65,65,65,65,65,65,65,66,66,66,66,66,66,66,66,66,66,66,67,67,67,67,67,67,67,67,67,67,67,67,68,68,68,68,68,68,68,68,68,68,69,69,69,69,69,69,69,69,69,69,69,70,70,70,70,70,70,70,70,70,70,70,71,71,71,71,71,71,71,71,71,71,72,72,72,72,72,72,72,72,72,72,73,73,73,73,73,73,73,73,73,73,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,76,76,76,76,76,76,76,76,76,
76,77,77,77,77,77,77,77,77,77,77,78,78,78,78,78,78,78,78,78,79,79,79,79,79,79,79,79,79,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,81,82,82,82,82,82,82,82,82,82,83,83,83,83,83,83,83,83,83,84,84,84,84,84,84,84,84,85,85,85,85,85,85,85,85,85,86,86,86,86,86,86,86,86,86,87,87,87,87,87,87,87,87,88,88,88,88,88,88,88,88,88,89,89,89,89,89,89,89,89,90,90,90,90,90,90,90
,90,91,91,91,91,91,91,91,91,92,92,92,92,92,92,92,92,93,93,93,93,93,93,93,93,94,94,94,94,94,94,94,94,95,95,95,95,95,95,95,95,96,96,96,96,96,96,96,96,97,97,97,97,97,97,97,98,98,98,98,98,98,98,98,99,99,99,99,99,99,99,100,100,100,100,100,100,100,100,101,101,101,101,101,101,101,102,102,102,102,102,102,102,103,103,103,103,103,103,103,104,104,104,104,104,104,104,105,105,105,105,105,105,105,106,106,106,106,106,106,106,107,107,107,107,107,107,107,108,108,108,108,108,108,108
,109,109,109,109,109,109,109,110,110,110,110,110,110,110,111,111,111,111,111,111,112,112,112,112,112,112,112,113,113,113,113,113,113,114,114,114,114,114,114,114,115,115,115,115,115,115,116,116,116,116,116,116,116,117,117,117,117,117,117,118,118,118,118,118,118,119,119,119,119,119,119,119,120,120,120,120,120,120,121,121,121,121,121,121,122,122,122,122,122,122,123,123,123,123,123,123,124,124,124,124,124,124,125,125,125,125,125,125,126,126,126,126,126,126,127,
127,127,127,127,128,128,128,128,128,128,129,129,129,129,129,129,130,130,130,130,130,130,131,131,131,131,131,132,132,132,132,132,132,133,133,133,133,133,134,134,134,134,134,134,135,135,135,135,135,136,136,136,136,136,136,137,137,137,137,137,138,138,138,138,138,138,139,139,139,139,139,140,140,140,140,140,141,141,141,141,141,142,142,142,142,142,142,143,143,143,143,143,144,144,144,144,144,145,145,145,145,145,146,146,146,146,146,147,147,147,147,147,148,148,148,
148,148,149,149,149,149,149,150,150,150,150,150,151,151,151,151,151,152,152,152,152,152,153,153,153,153,153,154,154,154,154,155,155,155,155,155,156,156,156,156,156,157,157,157,157,157,158,158,158,158,159,159,159,159,159,160,160,160,160,161,161,161,161,161,162,162,162,162,162,163,163,163,163,164,164,164,164,164,165,165,165,165,166,166,166,166,166,167,167,
167,167,168,168,168,168,169,169,169,169,169,170,170,170,170,171,171,171,171,172,172,172,172,172,173,173,173,173,174,174,174,174,175,175,175,175,176,176,176,176,176,177,177,177,177,178,178,178,178,179,179,179,179,180,180,180,180,181,181,181,181,182,182,182,182,183,183,183,183,184,184,184,184,185,185,185,185,186,186,186,186,187,187,187,187,188,188,188,188,
189,189,189,189,190,190,190,190,191,191,191,191,192,192,192,192,193,193,193,193,194,194,194,195,195,195,195,196,196,196,196,197,197,197,197,198,198,198,199,199,199,199,200,200,200,200,201,201,201,201,202,202,202,203,203,203,203,204,204,204,205,205,205
,205,206,206,206,206,207,207,207,208,208,208,208,209,209,209,210,210,210,210,211,211,211,212,212,212,212,213,213,213,214,214,214,214,215,215,215,216,216,216,216,217,217,217,218,218,218,219,219,219,219,220,220,220,221,221,221,222,222,222,222,223,223,223,
224,224,224,225,225,225,225,226,226,226,227,227,227,228,228,228,229,229,229,229,230,230,230,231,231,231,232,232,232,233,233,233,234,234,234,234,235,235,235,236,236,236,237,237,237,238,238,238,239,239,239,240,240,240,241,241,241,242,242,242,243,243,243,
244,244,244,245,245,245,246,246,246,247,247,247,248,248,248,249,249,249,250,250,250,251,251,251,252,252,252,253,253,253,254,254,254,255,255,255
};
Und
Code:
int PWM_Licht(int lightIndex) {

  long Max, Min, pwm = 4095; // <-- hier ändern
.....
 } else if (pwm > 4095) {
    pwm = 4095;

  }
  return pwm;    // Im Nofall ausschalten...
}
Danach ist es immer noch logodings und hat alle schritte drin. Weiterhin wird es langsam hell und somit für das Auge Linear gedimmt.
 

omega

Well-Known Member
Hi Moritz,

MajorMadness":cylt07g2 schrieb:
Per 12bit, 256 schritte wäre das:
anders rum: 4096 Schritte bei nach wie vor 8-bit Auflösung.
Statt des uint16_t würde ein uint8_t für die PWM-Level zwischen 0 und 255 reichen. Spart 4kB.

Grüße, Markus
 

Ähnliche Themen

Oben