void callback(char* topic, byte* payload, int new_pwm, unsigned int length) {
Serial.println();
Serial.print(topic); // выводим в сериал порт название топика
Serial.print(" => ");
static int delta = +1;
static const int pwm_step = 2; // шаг изменения ШИМ
static const int pwm_step_time = 100; // время одного шага изменения ШИМ
static int stled;
int pwm = stled;
for (int i = 0; i < length; i++) {
Serial.print((char)payload[i]);
} // выводим в сериал порт значение полученных данных
String strTopic = String(topic); //получаем название топика
if (strTopic == "home/kinozal/led") //проверяем из нужного ли топика пришли данные
{
payload[length] = 0; //чистим от мусора, длинна строки
String strPayload = String((char*)payload); //считываем значение топика
int val = strPayload.toInt(); //конвертируем для шим
int stled = map(val, 0, 100, 0, 255); //приводим значение 0-100 в значение 255-0
while (pwm != new_pwm) {
int next_pwm = pwm + (pwm < new_pwm ? pwm_step : -pwm_step);
if ((pwm < new_pwm && next_pwm > new_pwm) ||
(pwm > new_pwm && next_pwm < new_pwm))
pwm = new_pwm;
else
pwm = next_pwm;
analogWrite(LEDPIN, pwm);
delay(pwm_step_time);
}
stled = new_pwm;
Serial.print(" => ");
Serial.print(pwm); // для отладки
}
}
$(function () {
$('.real-show-hint').once().on( 'click', function(e) {
e = e || window.event;
e.preventDefault();
var ypos = $(this).offset().top-270;
var xpos = $(this).offset().left+150;
var RealHint = $(this).data('hint');
$(RealHint).css('top',ypos);
$(RealHint).css('left',xpos);
$(RealHint).toggle('fast');
return;
});
});