@@codingpeople2020 //초음파센서로 거리에 따라서 LED 제어하기 int trig = 3, echo = 4; int rLED = 13, yLED = 11, bLED = 7; void setup() { //시리얼 통신 설정 Serial.begin(9600); //핀모드 설정 pinMode(trig, OUTPUT); pinMode(echo, INPUT); pinMode(rLED, OUTPUT); pinMode(yLED, OUTPUT); pinMode(bLED, OUTPUT); } void loop() { float duration, distance; //초음파 발사 trig digitalWrite(trig, HIGH); delay(1); digitalWrite(trig, LOW); //초음파가 사물 맞고 돌아온 시간 설정 duration = pulseIn(echo, HIGH); //시간을 거리로 cm단위 환산 distance = ((float)(duration * 340) / 10000) / 2; //시리얼 모니터에 거리 출력 Serial.print("거리 : 출력"); Serial.print(distance); Serial.println("cm"); //거리에 따라 LED 제어하기 if (distance
유용한 공부가 되었습니다! 감사합니다. 질문이 하나 있는데 delay(1)이 1000분의 1초를 뜻한다고 하셨는데 이 함수가 센서의 측정 간격을 의미하는 건가요? 똑같이 따라해보니 측정 간격이 너무 짧아서 굉장히 빠른 속도로 측정이 되어 시리얼 모니터에 나타는 화면이 괴장히 빨리 지나가서 도저히 실시간 거리를 눈으로 확인하기가 힘들더라구요 혹시 이렇게 나타나는 이유가 delay()함수가 원인인지 궁금합니다! 조금 더 간격을 늦추기 위해서는 어떤 방법이 있나요?
아 너무 재미있네요 감사합니다. 신세계입니다,
거리가 계속 0cm라 뜨는데 뭐가 문제일까요?ㅜㅜ
영상 너무 잘 봤어요! 혹시 초음파센서로 물이 담긴 비커의 깊이도 측정할 수 있을까요?
@@codingpeople2020 왜 그 방법이 더 좋은지 여쭤봐도 될까요?
@@codingpeople2020 그렇군요!! 그럼 초음파탐촉자와 초음파센서의 차이는 뭔가요?
@@codingpeople2020 감사합니다!! 하나만 더 여쭤볼게요
초음파는 이론적으로 액체를 통과할 수 있는데 초음파센서는 통과하지 못하는 이유가 뭔가요??
@@codingpeople2020 죄송해요 이해가 잘 안 되어서요ㅠㅠ 초음파센서가 물을 통과하는데 왜 비커의 깊이 측정이 불가능한거죠?
물체가 멀어졌을때 -값이 나오는데 이 부분은 어떻게 해결할 수 있나요? 센서의 한계인가요...
영상 감사하게 봤습니다. 그대로 따라하였는데 HIGH에서 꺼지고 LOW에서 켜지는데 왜 그런지 궁금합니다.....
@@codingpeople2020
//초음파센서로 거리에 따라서 LED 제어하기
int trig = 3, echo = 4;
int rLED = 13, yLED = 11, bLED = 7;
void setup() {
//시리얼 통신 설정
Serial.begin(9600);
//핀모드 설정
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(rLED, OUTPUT);
pinMode(yLED, OUTPUT);
pinMode(bLED, OUTPUT);
}
void loop() {
float duration, distance;
//초음파 발사 trig
digitalWrite(trig, HIGH);
delay(1);
digitalWrite(trig, LOW);
//초음파가 사물 맞고 돌아온 시간 설정
duration = pulseIn(echo, HIGH);
//시간을 거리로 cm단위 환산
distance = ((float)(duration * 340) / 10000) / 2;
//시리얼 모니터에 거리 출력
Serial.print("거리 : 출력");
Serial.print(distance);
Serial.println("cm");
//거리에 따라 LED 제어하기
if (distance
안녕하세요 코딩피플님 궁금한 내용을 댓글에 적어두신 메일로 남겨두었습니다!
시간 나실때 답변 부탁드립니다.
영상이 큰 도움이 되었습니다! 영상 4:17 (시간을 거리로 cm 단위 환산하는 부분)에서, 340/10000 , 2라는 숫자가 어떻게 나오게 된 건가요?
거리이기때문에 왔다갔다하는 왕복값이라 2로 나눠주셔야 합니다!
유용한 공부가 되었습니다! 감사합니다. 질문이 하나 있는데 delay(1)이 1000분의 1초를 뜻한다고 하셨는데 이 함수가 센서의 측정 간격을 의미하는 건가요? 똑같이 따라해보니 측정 간격이 너무 짧아서 굉장히 빠른 속도로 측정이 되어 시리얼 모니터에 나타는 화면이 괴장히 빨리 지나가서 도저히 실시간 거리를 눈으로 확인하기가 힘들더라구요 혹시 이렇게 나타나는 이유가 delay()함수가 원인인지 궁금합니다! 조금 더 간격을 늦추기 위해서는 어떤 방법이 있나요?
답변 감사합니다!
@@codingpeople2020 딜레이 300을 넣기 전에는 잘 되는데, 넣은 후는 다 0으로 뜨는데 왜그런가요..ㅡ?ㅠㅠㅠ
@@codingpeople2020 int trig = 2, echo = 3;
int rLED = 13, yLED = 10, bLED = 7;
void setup() {
//시리얼 통신 설정
Serial.begin(9600);
//핀모드 설정
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(rLED, OUTPUT);
pinMode(yLED, OUTPUT);
pinMode(bLED, OUTPUT);
}
void loop() {
float duration, distance;
//초음파 발사 trig
digitalWrite(trig, HIGH);
delay(1);
digitalWrite(trig, LOW);
delay(300);
//초음파가 사물 맞고 돌아온 시간 저장
duration = pulseIn(echo, HIGH);
//시간을 거리로 cm단위 환산
distance = ((float) (duration * 340) / 10000) / 2;
//시리얼 모니터에 거리 출력
Serial.print("거리 : ");
Serial.print(distance);
Serial.print("cm");
//거리에 따라 LED 제어하기
if(distance
@@codingpeople2020 int trig = 2, echo = 3;
int rLED = 13, yLED = 10, bLED = 7;
void setup() {
//시리얼 통신 설정
Serial.begin(9600);
//핀모드 설정
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(rLED, OUTPUT);
pinMode(yLED, OUTPUT);
pinMode(bLED, OUTPUT);
}
void loop() {
float duration, distance;
//초음파 발사 trig
digitalWrite(trig, HIGH);
delay(1);
digitalWrite(trig, LOW);
//초음파가 사물 맞고 돌아온 시간 저장
duration = pulseIn(echo, HIGH);
//시간을 거리로 cm단위 환산
distance = ((float) (duration * 340) / 10000) / 2;
//시리얼 모니터에 거리 출력
Serial.print("거리 : ");
Serial.print(distance);
Serial.print("cm");
//거리에 따라 LED 제어하기
if(distance
@@codingpeople2020 아 감사합니당
궁금한 점이 있어서 댓글 남깁니다!! 제가 저항을 330옴짜리를 가지고 있는데 이걸로는 할 수 없는건가요??
led제어 말씀이시죠? 사용해도 괜찮아요.
저항이 전압의 크기를 줄여주기 때문에 220보다는 약간의 차이로 led 빛이 약하겠지만 실습하는데는 관계 없습니다.
아하 감사합니다!! 혹시 초음파센서는 물속의 장애물의 거리는 볼 수 없겠죠..?
@@현정류-r6o 해보진않았는데, 될것같아요 방수처리만 잘하면요
왜냐면 초음파식기세척기, 태아 초음파 검사
이런게 다 물속에으로 초음파 쏘는거니까
제 의견입니다 ^^
중간에 Distance가 (float)라는 것이 들어가는게 무엇이며 어떤 의미를 지니는 건가요? 어차피 duration, distance 둘다 float로 정의하였는데, 계산식에 (float)가 들어갈 필요가 있나요?
말씀처럼 없어도 괜찮아요^^
정수와 정수를 나누었을때 정수값이 나오기때문에 나눠주는 값 중 하나를 실수로 강제형변환시키는 코드인데, 실수처리 되어있기때문에 없어도 되는 코드예요
@@codingpeople2020 감사합니다.
궁금한 사항이 있는데 메일로 질문 드려도 되나요 ??
영상 덕분에 무사히 해결했습니다!
그런데 초음파 센서가 너무 멀거나 아예 신호기 앞에 붙어있게 해서 신호를 감지 못할 때 갑자기 터무니 없는 큰 값들이 나오는데 이유를 알 수 있을까요??
@@codingpeople2020 그런데 값이 1208cm가 반복해서 나오는데 이 값만 나오는 이유가 뭘까요??
영상 잘봤습니다~! 질문이 있는데요~ usb연결 없이 wireless로 rc카 같은거에 달아서 사용하려면 어떤방법이 있을까요?? rc카 조종은 조이스틱으로하고 아두이노로 데이터만 받을수 있는 방법이 있을까요?
블루투스 모듈을 사용하시면 가능할것 같아요 ^^
너무 감사해요!! 혹시 질문할 수 있는 이메일 주실 수 있나요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ!
안녕하세요 궁금한점이 있어서 댓글에 있는 메일로 문의드렸습니다. 답장 부탁드려요!!!