아두이노 적외선 근접센서
******************** 적외선 근접센서 ********************
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++;
}
댓글
댓글 쓰기