순수한 공상과학연구소

퍼온 글입니다. 

http://4343282.tistory.com/71

에 감사드립니다. 

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

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


아두이노는 오픈소스를 제공하여 별도의 코딩없이도 원하는 작업을 수행하기 쉽다. 그럼에도 많은 사람들이 아두이노 소프트웨어를 공부하고 있다. 

우선 오픈소스를 제공하는 아두이노 소프트웨어를 왜 공부하는 것일까?  아두이노를 자유자재로 이용하기 위해서는 오픈소스로는 한계가 있다. 따라서 개발하고자 하는 임베디드의 제품 완성도를 높이기 위해서는 아두이노 소프트웨어 공부는 필수적인 것 같다.

아두이노 언어는 프로세싱언어의 기반을 두고 있다. 프로세싱 언어를 공부한 사람이라면 아두이노를 수월하게 코딩해나갈 수 있을 것이다.

다음은 아두이노에서 특히 많이 사용되는 함수들을 정리한 것이다.


① Serial.println(value);

 : 아두이노 IDE의 시리얼 모니터에 value 값을 인쇄한다. 사용자의 컴퓨터에서 value값을 출력하기 위해 사용한다.

 pinMode( pin, mode );

 : 디지털 값을 읽거나 쓰도록 한다.(입력 & 출력 설정) 

③ digitalRead( pin );

 : 입력으로 설정된 pin의 디지털 값을 읽는다. ( 디지털 값은 HIGH/LOW 이다.) 

④ digitalWrite( pin, value );

 : 출력으로 설정된 핀에 디지털 값을 쓴다. ( 디지털 값은 HIGH/LOW이다.) 

'Hardware Info. > Arduino' 카테고리의 다른 글

AC/DC 전류측정 센서  (0) 2016.06.24
2015.6.8 Gyro Sensor 테스트  (0) 2015.06.08
2015.6.8 DHT11 온도 습도 센서  (0) 2015.06.08
pow( base, exponent ) - 함수  (0) 2015.02.21
Switch Button component principle  (0) 2015.01.26