티스토리 뷰

아두이노 프로그래밍을 하다보면 자주 사용하지 않는 함수가 많이 있다. 이러한 함수들의 정보를 찾는데 많은 시간을 허비하곤 한다. 그래서 블로그에 아두이노 함수에 대해 정리하기 시작하였고, 최대한 찾아보기 쉽게 만들고자 한다.

오늘 소개할 함수는 map함수와 constrain함수 이다. 이 두 함수는 주로 analogRead함수를 통해 읽어온 값의 범위를 확장하거나 한정할때 사용한다.

① 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함수를 통해 값을 한정해 주는 것이 좋다.

댓글