아두이노 매핑 함수, map()

한 범위에서 다른 범위의 값으로 매핑하는 함수인 map()에 대해 알아보겠습니다.

 

map(value, fromLow, fromHigh, toLow, toHigh)

 

매개 변수

 

value: 매핑 할 숫자입니다.
fromLow: 값의 현재 범위의 하한.
fromHigh: 값의 현재 범위의 상한.
toLow: 값의 목표 범위의 하한.
toHigh: 값의 목표 범위의 상한.

 

참고

 

map () 함수는 정수 수학을 사용합니다. 따라서 이로 인해 분수가 억제 될 수 있습니다. 예를 들어 3/2, 4/3, 5/4와 같은 분수는 실제 값이 다르더라도 map () 함수에서 모두 1로 반환됩니다. 따라서 프로젝트에서 정확한 계산 (예 : 소수점 3 자리까지 정확한 전압)이 필요한 경우 map ()을 피하고 코드에서 직접 계산을 구현하십시오.

 

예제 코드

 

map()함수는 adc입력값 0~1023을 출력범위인 0~255로 매핑할때 쓸 수 있듯, 입력값과 출력값의 범위를 맞출 때 사용하게 됩니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
 
 
void setup() {
  Serial.begin(9600);
 
  Serial.println(map(100,0,1023,0,255));
}
 
void loop() {
 
}
 

 

 

0~1023의 입력범위에 있는 100이란 값을 매핑하게되면( 0 ~255에 ) 24의 결과가 나오게 됩니다.

 

감사합니다.

댓글()