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 색깔을 조정할 수 있는 함수를 만들어 봅시다