Stránka 1 z 1

Microbit funckia MAP

Napsal: 03 led 2023, 15:41
od Tomas10
Pekný deň prajem, prosím v akých súvislostiach sa používa táto funckia MAP ?
Ďakujem

Re: Microbit funckia MAP

Napsal: 03 led 2023, 16:50
od kiRRow
K tomu, že "přemapuješ" čísla v rozsahu od 0 do 1000 na rozsah od 100 do 0 ... vstupní hodnota 0 bude přemapována na výstupní hodnotu 100 ... vstup 500 na výstup 50 a vstup 1000 na výstup 0 ... jenže ... http://robodoupe.cz/2020/arduino-potouc ... unkce-map/

Používá se třeba k tomu, když analogovou vstupní hodnotu chceš upravit na hodnotu, kterou chceš vložit třeba servo motoru ...

Re: Microbit funckia MAP

Napsal: 06 led 2023, 00:14
od martinius96
Dokážeš si ňou napríklad transformovať analógový vstup na volty...
Nepoznám Microbit, tak to spomeniem u Arduina Uno...

Analógový vstup má hodnotu 0 až 1023 (10-bitový ADC prevodník). Maximálna hodnota je úmerná 5V, minimálna 0V.
Teda rozdiel dvoch susedných hodnôt je 4,9 mV. Funkciou map si dané číslo analógového vstupu dokážeš previesť 0 až 5000 mV (keďže je to pre integer). Funkciou fmap však dokážeš previesť aj na float t.j. desatinné čísla teda pôvodný rozsah na napr. 0 až 5V.

Re: Microbit funckia MAP

Napsal: 09 led 2023, 20:48
od Tomas10
Vďaka za odpoveď :)

Re: Microbit funckia MAP

Napsal: 18 čer 2023, 18:48
od SkullKeep
kiRRow píše:
03 led 2023, 16:50
... jenže ... http://robodoupe.cz/2020/arduino-potouc ... unkce-map/
Vím kam a kde dát upravu v arduinu.
Adresář : ..\Arduino\hardware\arduino\avr\cores\arduino
Soubor: WMath.cpp
Kde: Řádek 52
Co:

Kód: Vybrat vše

long map(long x, long in_min, long in_max, long out_min, long out_max)
{
  long in_size = in_max - in_min;
  long out_size = out_max - out_min;
  if( abs(in_size) > abs(out_size) )
  {
    if( in_size < 0 ) in_size--; else in_size++;
    if( out_size < 0 ) out_size--; else out_size++;
  }
  return (x - in_min) * (out_size) / (in_size) + out_min;
}
Za co:

Kód: Vybrat vše

long map(long x, long in_min, long in_max, long out_min, long out_max)
{
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

Re: Microbit funckia MAP

Napsal: 19 čer 2023, 16:04
od kiRRow
no já bych raději doporučil místo nahrazení původní funkce map spíš doplnění o novou funkci třeba newMap ...