Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Elektronika - obrácené napětí DC

Pokud se do toho pustíš, nepoužívej funkci map(), která se tady nabízí. Je špatně napsaná.
Doporučuji místo toho:

náhrada za funkci map:

int Range(int _x, int x1, int x2, int y1, float y2)    // jedna promenna musi byt float kvuli float vysledku
{
  float k = (y2-y1)/(x2-x1);
  int _y = round(k*(_x-x1)+y1);
  return _y;  
}


lepší výsledky bez zaokrouhlení
pro ESP8266 stačí typ proměnné int, pro 8mi bitové AVR328 musí být long

int improved_map(int value, int minIn, int maxIn, int minOut, int maxOut)
{
    const int rangeIn = maxIn - minIn;
    const int rangeOut = maxOut - minOut;
    const int deltaIn = value - minIn;
    // konstanty v pevne des.carce davaji lepsi vysledek pri deleni a zaokrouhlovani
    constexpr int fixedHalfDecimal = 1;
    constexpr int fixedDecimal = fixedHalfDecimal * 2;

    return ((deltaIn * rangeOut * fixedDecimal) / (rangeIn) + fixedHalfDecimal) / fixedDecimal + minOut;
}

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny