728x90
반응형

아두이노에서는 각 매개변수에 long 타입 필수, 아두이노 int 2바이트(연산장치의 연산단위에 영향)

아두이노 mcu 16비트 연산장치

 

result = (val - iMin) * (oMax -oMin) / (iMax - iMin) + oMin;

map(val, min, max, min, max)

val : 입력값
iMin, iMax : 입력값의 최소 최대
oMin, oMax : 출력 값의 최소 최대

 

constrain(value, min, max);

: 변수 value의 값을 min-max 사이의 값으로 한정(min, max)

map(val, 0, 1023, min, max);

analogRead의 return 값에 대해 min-max 값으로 매핑.

 

1. constrain 함수의 경우 만일 변수 value 의 값이 min 보다 낮은 값일 경우 min값을 반환하고 

max 보다 높은 값일 경우 max 값을 반환

2. map 함수의 경우 예를 들어 0-1023 사이의 return 값을 min-max 로 매핑함

예를 들어 map(val, 200, 800, 0, 100); 의 경우 200-800의 analogRead의 리턴값을

백분율(0-100)으로 매핑하게됨

map 함수의 경우 입력 범위의 시작이 0이 아닐 때 유용히 사용됨.

 

** map 함수와 constrain 함수의 경우 같이 사용되는 경우가 많음

왜냐하면 map 함수의 경우 값의 제한이 없기 때문에 예상치 못한 값을 출력할 수도 있음

그렇기 때문에 constrain 함수를 통해 값을 한정해 주는 것이 좋음

constrain 변수 범위 제한

728x90
반응형

+ Recent posts