krycha88 / GUI-Generic

MIT License
17 stars 15 forks source link

ustawienie zakresu PWMu #86

Open Hrumque opened 2 years ago

Hrumque commented 2 years ago

W zasadzie nie wiem czy to pomysł do supladevice, czy tutaj... Przydało by się (z poziomu samego urządzenia) ustawianie zakresu PWMu na wyjściu, który przekłada się na sterowanie (0%-100%). Tak by nie było wprost przepisywane w tym miejscu brightnessAdj = brightness; tylko przeliczane ładnie wg funkcji

brightnessAdj_min = Min;  // wartość najmniejsza, np. 250
brightnessAdj _max = Max;  // wartość największa, np. 1000
zakres_brightness = 1023; // wartość maks przysyłana z Cloud/ustawiana dla brightness – jaka tam jest faktycznie w supla)
if brightnessAdj_min < brightnessAdj_max {
  brightnessAdj_współczynnik_b =  brightnessAdj_min; 
  brightnessAdj_współczynnik_a =  ((brightnessAdj_max - brightnessAdj_min) / zakres_brightness); 
}  else {
  brightnessAdj_współczynnik_b =  brightnessAdj_max; 
  brightnessAdj_współczynnik_a =  ((brightnessAdj_min - brightnessAdj_max) / zakres_brightness); 
}

(oczywiście wartości zmiennych-stałych konfigurujących te zakresy - gdzieś w konfiguratorze WWW modułu zaszyte) 

Po co? Przykładowo:

  1. by móc ograniczyć minimalną jasność/wartość , bo niektóre oświetlenia przy minimum zaczynają migotać już widocznie, albo np dla regulacji wentylatora - poniżej pewnej wartości nie kręci się już, więc nie ma sensu móc ustawiać tylko np 40%-100% a wszystko poniżej to stoi

  2. aby móc ograniczyć maksymalną jasność /wartość Przydatne np dla przewymiarowanych ledów - szkoda by się grzały zbędnie przy 100% prądu, skoro realnie wystarczy np. 80% pradu a jasność już znacząco nie wzrasta (a za to żywotność to zwiększy znacząco). Albo gdy zbalansować oświetlenie (gdy w jednym miejscu mamy mocniejsze, w innym słabsze realnie) - tak by ustawienie 100% na różnych dimmerach/kanałach - dawało taką samą jasność wszystkich ustawianych źródeł światła.

  3. (zwłaszcza jakby dało się takie zmienne wprowadzić nie tylko dla brightness ale też RGB) - aby zrobić kalibrację zakresu kolorów - bo większość taśm/lamp RGB ma beznadziejny balans, i ustawienie np 100R 100G 100B nie daje w ogóle niczego podobnego do białego - a tą metodą można by skalibrować nie tylko biały dla pełnej jasności, ale też wartości minimalnej (gdzie przez inną charakterystykę ledów różnych kolorów - to się rozjeżdża) i jasności pośrednich.

  4. aby dało się użyć "servo modelarskie" jako element wyjściowy podłączony do PWMu - przyjmują one PWM z różną częstotliwością, ale w ograniczonym zakresie wypełnienia (domyślnie - 1500us = wartość środkowa, 500us minimum, 2500us wartość maksimum, a wszystko dla impulsów co 20ms - czyli przydała by się jeszcze "regulacja czestotliwośći PWM" o której wspominałem już - ale większość serv realnie działa ok od 50Hz do 400Hz, a nawet wyżej, tylko trzeba sobie zakres pwm przeskalować by osiągnąć pełen zakres ruchu). Dałoby to możliwość zbudowania np serva modelarskiego podłączonego do ośki potencjometru regulacji głośności w jakimś sprzęcie audio ;) Albo jakiegoś dimmera czy innego regulatora który ma gałkę - sprzęgniętego z suplą w sposób czysto mechaniczny ;)