map()
설명
숫자를 한 범위에서 다른 곳으로 변환한다. 즉, fromLow 의 값은 toLow 으로 변환되고, fromHigh 값은 toHigh 으로, 값들 사이의 값은 값들 사이의 값으로, 등등.
값을 범위 안으로 제한하지 않는데, 왜냐면 범위 밖의 값이 때때로 의도되고 쓸모있기 때문. 범위 제한이 필요하면, constrain() 함수를 이 함수 전 또는 후에 쓸 수 있다.
어떤 범위의 "하한"이 "상한" 보다 크거나 작을 수 있으므로 map() 함수는 숫자의 범위를 뒤집는데 쓸 수 있다. 예를 들어
y = map(x, 1, 50, 50, 1);
이 함수는 음수도 잘 다루므로, 이 예는
y = map(x, 1, 50, 50, -100);
이 역시 타당하며 잘 돌아간다.
map() 함수는 정수 수학을 쓰므로, 수학이 그렇게 해야 할 때, 분수를 만들지 않음을 주의하세요. 분수 나머지는 잘리며, 반올림되거나 평균되지 않는다.
문법
map(value, fromLow, fromHigh, toLow, toHigh)
매개변수
- value: 변환할 수
- fromLow: 현재 범위 값의 하한
- fromHigh: 현재 범위 값의 상한
- toLow: 목표 범위 값의 하한
- toHigh: 목표 범위 값의 상한
반환값
- 변환된 값.
예제 코드
부록
수학적으로 기울이면, 여기에 전체 함수가 있다
Notes & Warnings
- 앞서 언급했듯이 map() 함수는 정수 수학을 사용합니다. 이로 인해 분수가 억제 될 수 있습니다. 예를 들어, 3/2, 4/3, 5/4와 같은 분수는 실제 값이 다르더라도 map() 함수에서 모두 1로 반환됩니다. 따라서 프로젝트에 정확한 계산 (예 : 소수점 3 자리까지 정확한 전압)이 필요한 경우 map ()을 피하고 직접 코드에서 계산을 수동으로 구현하는 것이 좋습니다.
- The map() function returns an integer number. If you want to get the float number, you need to put the below custom function in your sketch and use it:
- Or
더보기
- Tutorials : How to fade LED in a time period
- Tutorials : How to control speed of servo motor
- 언어 : abs()
- 언어 : constrain()
- 언어 : max()
- 언어 : min()
- 언어 : pow()
- 언어 : sq()
- 언어 : sqrt()
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |