직관적인느낌

아두이노 function, map / constrain 본문

공학/MCU

아두이노 function, map / constrain

범슐랭 2023. 3. 4. 09:50

constrain( value, min, max );
: 변수 value의 값을 min~max 사이의 값으로 한정한다.(최솟값 : min, 최댓값 : max)

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

 :  map함수은 analogRead의 return값을 min~max갑으로 매핑한다.

 

 

 

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

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

 

ii) map함수의 경우 예를들어 0~1023사이의 리턴값을 min~max로 매핑하게 된다. 

예를들어 map( val, 200, 800, 0, 100);의 경우 200~800의 analogRead의 리턴값을 백분율( 0 ~ 100 )로 매핑하게 된다. 

map함수의 경우 입력 범위의 시작이 0이 아닐때 유용하게 사용된다.

 

※map함수와 constrain함수의 경우 같이 사용되는 경우가 많다. 

왜냐하면 map함수의 경우 값의 제한이 없기때문에 예상치 못한 값을 출력할 수도 있다. 그렇기 때문에 constrain함수를 통해 값을 한정해 주는 것이 좋다.



출처: https://4343282.tistory.com/71 [딴따라 개발자 데일리]

 
+ C언어에서 사용하고자 하는 경우
:
 
1) Constrain
 
int constrain(int a, int b, int c)
{
    if(a<b)
        a=b;
    else if(a>c)
        a=c;
 
    return a;
}
728x90
반응형