BASIC4MCU | 질문게시판 | 아두이노 시리얼 모니터 질문있습니다
페이지 정보
작성자 두이너 작성일2020-11-16 05:19 조회8,640회 댓글1건본문
const int echoPin1 = 10;
const int trigPin1 = 11;
const int echoPin2 = 12;
const int trigPin2 = 13;
float duration, distance1, distance2;
int lightValue;
void setup() {
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
Serial.begin(9600);
}
void loop() {
for (int thisSensor = 0; thisSensor < 3; thisSensor++) {
lightValue = analogRead(A0);
Serial.print(lightValue);
if (thisSensor == 2) {
digitalWrite(trigPin1, LOW);
delayMicroseconds(2);
digitalWrite(trigPin1, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
duration = pulseIn(echoPin1, HIGH);
distance1 = (duration*.0343)/2;
Serial.println(distance1);
} else {
digitalWrite(trigPin2, LOW);
delayMicroseconds(2);
digitalWrite(trigPin2, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin2, LOW);
duration = pulseIn(echoPin2, HIGH);
distance2 = (duration*.0343)/2;
Serial.print(",");
}
}
delay(1000);
}
지금 현재 각각 센서는 문제없이 잘 작동하고 있습니다.
시리얼모니터에 (lightValue, distance1, distance2) 이런식으로 결과를 나타나게 해야하는데 for 문을 사용했더니 제가 원하는 방법대로 정수, 정수, 정수의 값을 주긴 합니다.
그런데 저 코드로는 lightValue, lightValue, 그리고 이상한 값을 주더군요,,
어떻게 해야 제가 원하는 값을 얻을 수 있는 건가요
댓글 1
조회수 8,640master님의 댓글
master 작성일
const int echoPin1=10,trigPin1=11;
const int echoPin2=12,trigPin2=13;
//
float duration,distance1,distance2;
int lightValue;
//
void setup(){
pinMode(trigPin1,OUTPUT); pinMode(echoPin1,INPUT);
pinMode(trigPin2,OUTPUT); pinMode(echoPin2,INPUT);
Serial.begin(9600);
}
//
void loop(){
for (int thisSensor=0; thisSensor<3; thisSensor++) {
if (thisSensor==0) {
lightValue=analogRead(A0); Serial.print(lightValue); Serial.print(",");
}
else if (thisSensor==1) {
digitalWrite(trigPin1,1); delayMicroseconds(10); digitalWrite(trigPin1,0);
duration=pulseIn(echoPin1,1);
distance1=(duration*.0343)/2;
Serial.print(distance1); Serial.print(",");
delay(100);
}
else {
digitalWrite(trigPin2,1); delayMicroseconds(10); digitalWrite(trigPin2,0);
duration=pulseIn(echoPin2,1);
distance2=(duration*.0343)/2;
Serial.println(distance2);
}
}
delay(900);
}