아두이노 적외선 근접센서

******************** 적외선 근접센서 ******************** 

3.3~5V 사이 동작

2~30cm 이내 동작

LM393칩 사용

int LED=13; // use the onboard Uno LED

int isObstaclePin=7; // This is our input pin

int isObstacle=HIGH; // HIGH means no obstacle


void setup(){

pinMode(LED, output);

pinMode(isObstaclePin, INPUT);

Serial.begin(9600);

}


void loop(){

isObstacle=digitalRead(isObstaclePin);

if(isObstacle==LOW)

{

Serial.println("OBSTACLE!!, OBSTACLE!!");

digitalWrite(LED, HIGH);

}

else

{

Serial.println("clear");

digitalWrite(LED, LOW);

}
delay(200);
}

******************** 포토인터럽트 ******************** 
******************** a0핀으로 테스트 ******************** 
int value=0;

void setup() {
Serial.begin(9600);
}

void loop(){
value=analogRead(A0);
Serial.println(value);
delay(10);
}

******************** 포토인터럽트 ******************** 
******************** d2 디지털 핀 테스트******************** 
int value=0;
int pin=2;

void setup() {
Serial.begin(9600);
}

void loop(){
value=digitalRead(pin);
Serial.println("digital="+(String)value+" ");

if(value==HIGH)
{
Serial.println("interrupt=detected---");
delay(100);
} else{
Serial.println("interrupt=NONE");
delay(100);
}
}

const byte interruptPin=2;
int count=0;

//회전량 계산
void setup(){
Serial.begin(9600);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, FALLING);
}

void loop(){
//속도 계산
// count/2.0 : 인터럽트 회수
// 3.5 : 바퀴의 지름 l=2r
float distance=(count/2.0)*(3.5*PI); // unit:cm
float velocity=distance/1; // unit:cm/s
// 단위변환
velocity=velocity/100000*3600; //unit:km/h
Serial.println(velocity);

count=0;
delay(1000);
}

void blink(){
count++;
}

댓글

이 블로그의 인기 게시물

ARIMA or ARMA

How to Use SpaceDesk : Multi DIsplay

TorchAudio의 사운드 분석