Обратная пропорциональность
- Войдите на сайт для отправки комментариев
Пнд, 26/12/2016 - 20:54
Есть функция -
void input (input)
{
freq = 65535 / b;
if (millis() - previousMillis > freq) {
previousMillis = millis();
if (value == LOW)
value = HIGH;
else
value = LOW;
digitalWrite(3, value);
}
где input - число от 0 до 65535, надо моргать светодиодом обратно пропорционально данному числу, правильно ли я рассчитываю переменную freq ибо нет ни какой линейности при данном подсчете?
какбы должно быть как то так -
при input = 0 freq = 65535
при input = 1 freq = 65534
.........................................
при input = 65535 freq = 1
при input = 65535 freq = 0
https://www.arduino.cc/en/Reference/Map
Я правильно понимаю, в данном случае - freq = map(b, 0, 65535, 65535, 0); ?
Простите, но вам надо не сюда, а на форум математиков . Обратная пропорциональность это не то что вы себе надумали.
http://www.for6cl.uznateshe.ru/obratno-proporcionalnaya-zavisimost/
period=1000/freq; где period это величина в миллисек, а freq (частота) в Гц.
Я думаю,в данном случае, все проще
void input (unsigned int input) { freq = 65535 - input; if (millis() - previousMillis > freq) { previousMillis = millis(); value = !value; digitalWrite(3, value); }; };Ну да: обратная пропорциональность и линейность - вещи взаимоисключающие.