Microbit funckia MAP

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Odpovědět
Tomas10
Příspěvky: 6
Registrován: 03 led 2023, 09:45
Reputation: 0

Microbit funckia MAP

Příspěvek od Tomas10 » 03 led 2023, 15:41

Pekný deň prajem, prosím v akých súvislostiach sa používa táto funckia MAP ?
Ďakujem
Přílohy
map.png

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Microbit funckia MAP

Příspěvek od kiRRow » 03 led 2023, 16:50

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 ...

martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: Microbit funckia MAP

Příspěvek od martinius96 » 06 led 2023, 00:14

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.

Tomas10
Příspěvky: 6
Registrován: 03 led 2023, 09:45
Reputation: 0

Re: Microbit funckia MAP

Příspěvek od Tomas10 » 09 led 2023, 20:48

Vďaka za odpoveď :)

Uživatelský avatar
SkullKeep
Příspěvky: 290
Registrován: 23 srp 2017, 18:51
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Microbit funckia MAP

Příspěvek od SkullKeep » 18 čer 2023, 18:48

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;
}
:twisted: :?: :arrow: :geek: P. Q. M.

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Microbit funckia MAP

Příspěvek od kiRRow » 19 čer 2023, 16:04

no já bych raději doporučil místo nahrazení původní funkce map spíš doplnění o novou funkci třeba newMap ...

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 18 hostů