본문 바로가기
IOT 로봇 아두이노/아두이노 명령어

map( 넣고 싶은변수, 변수의 최솟값, 변수의 최댓값,변환할 최솟값,변환할 최댓값 )

by Jango_infoinno 2021. 4. 19.

설명

map(넣고 싶은변수, 변수의 최솟값, 변수의 최댓값,변환할 최솟값,변환할 최댓값);
변수가 가지고 있는 0~1024 센서 값을 0~255로 연산하여 변수값에 넣어주는 함수입니다

 

숫자를 한 범위에서 다른 곳으로 변환한다. 즉, fromLow 의 값은 toLow 으로 변환되고, fromHigh 값은 toHigh 으로, 값들 사이의 값은 값들 사이의 값으로, 등등. 값을 범위 안으로 제한하지 않는데, 왜냐면 범위 밖의 값이 때때로 의도되고 쓸모있기 때문. 범위 제한이 필요하면, constrain() 함수를 이 함수 전 또는 후에 쓸 수 있다.

어떤 범위의 "하한"이 "상한" 보다 크거나 작을 수 있으므로 map() 함수는 숫자의 범위를 뒤집는데 쓸 수 있다. 예를 들어

y = map(x, 1, 50, 50, 1);

이 함수는 음수도 잘 다루므로, 이 예는

y = map(x, 1, 50, 50, -100);

이 역시 타당하며 잘 돌아간다.

map() 함수는 정수 수학을 쓰므로, 수학이 그렇게 해야 할 때, 분수를 만들지 않음을 주의하세요. 분수 나머지는 잘리며, 반올림되거나 평균되지 않는다.

문법

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

매개변수

value: 변환할 수

fromLow: 현재 범위 값의 하한

fromHigh: 현재 범위 값의 상한

toLow: 목표 범위 값의 하한

toHigh: 목표 범위 값의 상한

반환

변환된 값.

예제 코드

/* Map an analog value to 8 bits (0 to 255) */

void setup() {

}

void loop() {

  int val = analogRead(0);

  val = map(val, 0, 1023, 0, 255);

  analogWrite(9, val);

}

반응형

'IOT 로봇 아두이노 > 아두이노 명령어' 카테고리의 다른 글

LCD 명령어 정리  (0) 2021.04.26
6. 시리얼 통신  (0) 2021.03.23
tone()  (0) 2021.03.22
analogWrite()  (0) 2021.03.17
delay()  (0) 2021.03.17

댓글