BASIC4MCU | 질문게시판 | 속도.초음파.서보모터 질문입니다.
페이지 정보
작성자 fiddn 작성일2018-08-09 18:07 조회7,305회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=2717
본문
#include <Servo.h>
Servo servo;
int trig=9,echo=8;
const byte interruptPin=2;
int count=0;
//
char flag=0;
unsigned long dis=0,time,trigTime=0;
//
void setup(){
pinMode(echo,INPUT); pinMode(trig,OUTPUT); pinMode(interruptPin,INPUT_PULLUP);
Serial.begin(9600);
servo.attach(7);
time=millis();
servo.write(0); // 서보모터 0도 위치
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, FALLING);
}
//
void loop(){
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);
digitalWrite(trig,HIGH); delayMicroseconds(10); digitalWrite(trig,LOW);
dis=pulseIn(echo,HIGH)/29/2; Serial.print(dis); Serial.println("cm");
if (velocity=0){ // 검출되지 않으면
if(dis>20){ // 사람이 없으면
servo.write(90); // 서보모터 90도 위치
delay(2000);
}
else{
servo.write(0);
delay(500);
}
}
}
void blink(){
count++;
}
속도가 영이거나 거리가가 20이상일 경우 서보모터가 작동하고 그렇지 않을 경우 서보모터가 원위치로 돌아옵니다.
그런데 포토인터럽트 코딩부분에 문제가 있는건지 작동이 제대로 안되네요
컴파일은 오류없이 잘 되었습니다.
댓글 0
조회수 7,305등록된 댓글이 없습니다.