BASIC4MCU | 질문게시판 | 초음파센서 아두이노
페이지 정보
작성자 아두노 작성일2018-06-06 21:50 조회8,459회 댓글0건본문
저번에 알려주신 사이트 참조해서 만들었습니다.
센서 두개 개별로 사용하여 인식시 led가 10초동안 켜지고 다시 처음으로 리셋하는 코딩인데 한쪽 센서가 작동을 안합니다 이유가 뭔가요?
#define TRIG 2
#define ECHO 3
#define TRIG1 4
#define ECHO1 5
#define RED 11
#define GREEN 10
#define BLUE 9
int distance;
int distance1;
void setup(){
pinMode(TRIG,OUTPUT);
pinMode(ECHO,INPUT);
pinMode(TRIG1,OUTPUT);
pinMode(ECHO1,INPUT);
}
void loop(){
digitalWrite(TRIG, LOW);
digitalWrite(TRIG1, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
digitalWrite(TRIG1, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
digitalWrite(TRIG1, LOW);
long distance = pulseIn (ECHO, HIGH)/58.2;
long distance1 =pulseIn (ECHO1, HIGH)/58.2;
analogWrite(RED,0);
analogWrite(GREEN,0);
analogWrite(BLUE,0);if(distance<5){analogWrite(RED,255); distance = 4;
delay (10000);
return;
if (distance1<5){analogWrite(10,255); distance1 = 4;
delay (10000);
return;
} }}
그리고 시리얼 모니터에 거리도 띄우게 하고싶은데 코드는
int trigPinTop = 12;
int echoPinTop = 11;
int trigPinBot = 8;
int echoPinBot = 9;
int cntStair=0;
int cntWall=0;
long durationTop, distanceTop, durationBot, distanceBot;
void checkBarrier(int distanceTop, int distanceBot);
void initVal();
void setup() {
Serial.begin (9600);
pinMode(trigPinTop, OUTPUT);
pinMode(echoPinTop, INPUT);
pinMode(trigPinBot, OUTPUT);
pinMode(echoPinBot, INPUT);
}
void loop() {
digitalWrite(trigPinTop, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPinTop, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPinTop, LOW);
durationTop = pulseIn(echoPinTop, HIGH);
digitalWrite(trigPinBot, LOW);
delayMicroseconds(2); // Added this line
digitalWrite(trigPinBot, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPinBot, LOW);
durationBot = pulseIn(echoPinBot, HIGH);
distanceTop = (durationTop/2)/29.1;
distanceBot = (durationBot/2)/29.1;
checkBarrier(distanceTop, distanceBot);
delay(500);
}
void checkBarrier(int distanceTop, int distanceBot) // 1 : not, 2 : stair, 3: wall
{
// For the ocha
Serial.print(distanceTop);
Serial.print(" ");
Serial.println(distanceBot);
if(distanceTop >= 100 && distanceBot >= 90) // non barrier
{
initVal();
}
else if(distanceTop >= 90) // Stair
{
if(cntStair == 0)
{
initVal();
}
cntStair++;
if(cntStair == 3)
{
Serial.println('b');
initVal();
}
}
else // wall
{
if(cntWall == 0)
{
initVal();
}
cntWall++;
if(cntWall == 3)
{
Serial.println('a');
initVal();
}
}
}
void initVal()
{
cntStair =0;
cntWall = 0;
}
이런식으로 하던데 루프 안에 led를 출력을 넣어도 출력이 되질 않네요 어디다 넣어야되는건가요?
댓글 0
조회수 8,459등록된 댓글이 없습니다.