BASIC4MCU | 질문게시판 | 아두이노 초음파센서
페이지 정보
작성자 행복지수업 작성일2022-01-14 20:10 조회950회 댓글2건본문
안녕하세요 아두이노(MEGA2560) 초음파센서2개(HC-SR04)를 이용하여 좌표값을 시리얼모니터에 구분되게 나타내는 코딩을 하는중 입니다. 제가 초음파센서 1개로는 거리를 나타내는 코딩을 했었는데 2개로 늘어나니까 어렵습니다. 업로드 했을때 에러는 없지만 시리얼모니터에는 나오지 않습니다.
int echo1 = 11;
int trig1 = 10;
int echo2 = 9;
int trig2 = 8;
void setup() {
Serial.begin(9600);
pinMode(trig1, OUTPUT);
pinMode(echo1, INPUT);
pinMode(trig2, OUTPUT);
pinMode(echo2, INPUT);
}
void loop() {
float duration1, duration2, distance1, distance2;
digitalWrite(trig1, HIGH);
delay(10);
digitalWrite(trig1, LOW);
digitalWrite(trig2, HIGH);
delay(10);
digitalWrite(trig2, LOW);
duration1 = pulseIn(echo1, HIGH);
distance1 = ((float)(344 * duration1) / 10000) / 2;
Serial.print(distance1);
Serial.println("cm");
duration2 = pulseIn(echo2, HIGH);
distance2 = ((float)(344 * duration2) / 10000) / 2;
Serial.print(distance2);
Serial.println("cm");
}
댓글 2
조회수 950master님의 댓글
master 작성일
int echo1 = 11,trig1 = 10;
int echo2 = 9,trig2 = 8;
//
void setup() {
Serial.begin(9600);
pinMode(trig1, OUTPUT); pinMode(echo1, INPUT);
pinMode(trig2, OUTPUT); pinMode(echo2, INPUT);
}
//
void loop() {
float duration1, duration2, distance1, distance2;
//
delay(100);
digitalWrite(trig1, HIGH); delayMicroseconds(10); digitalWrite(trig1, LOW);
duration1 = pulseIn(echo1, HIGH);
distance1 = ((float)(344 * duration1) / 10000) / 2;
Serial.print("1:"); Serial.print(distance1); Serial.println("cm");
//
delay(100);
digitalWrite(trig2, HIGH); delayMicroseconds(10); digitalWrite(trig2, LOW);
duration2 = pulseIn(echo2, HIGH);
distance2 = ((float)(344 * duration2) / 10000) / 2;
Serial.print("2:"); Serial.print(distance2); Serial.println("cm");
}
행복지수업님의 댓글
행복지수업 작성일감사합니다 열심히 공부하겠습니다 ㅜ