[Arduino] 12 거리 감지하기

exercise

IR(Infra-Red) 센서로 거리 감지해 봅시다

material

IR Distance sensor(GP2Y0A21YK)​

LED(any color) 6개​

220 Ω resistor 6개

circuit

code

#include <SharpIR.h>​


int irpin = 2;​
int val;​

int ledpins[] = {9,10,11,12,13};​
int numpin = 5;​
int pwmpin = 6;​

SharpIR sharp(irpin, 1080); //Sharp IR 센서 오브젝트 선언​

void setup() {​
  Serial.begin(9600);​
  for(int i=0; i<numpin; i++) {​
    pinMode(ledpins[i], OUTPUT);​
  }​
}​

void loop() {​
  val = sharp.distance();  //sharp IR센서에서 거리 측정​
  Serial.println(val);​
​
  LightLEDs( 10, 80, 5);  //10~80cm​
  DimLED( 10, 80);​
}​

void LightLEDs(int mim_range, int max_range, int num) {​
  int numleds = map(val, mim_range, max_range, 0, num);​
  numleds = constrain(numleds, 0, num);​

  for(int i=0; i<numleds; i++){​
    digitalWrite(ledpins[i], HIGH);​
  }​
  for(int j=numleds; j<numpin; j++) {​
    digitalWrite(ledpins[j], LOW);​
  }  ​
}​

void DimLED(int mim_range, int max_range) {​
  int brightness = map(val, mim_range, max_range, 0, 255);​
  brightness = constrain(brightness, 0, 255);​

  analogWrite(pwmpin, brightness);  ​

}​


further exercise

[초급] 더 많은 LED를 가지고 켜지는 LED 개수를 조절해 봅시다

[중급] LightLEDs 함수에 LED 핀과 개수를 지정할 수 있도록 해봅시다

[중급] DimLED 함수에 LED 핀을 지정할 수 있도록 해봅시다

[고급] RGB LED 색깔을 조정할 수 있는 함수를 만들어 봅시다