프로그래밍

아두이노 잘 아시는분...?

#define trigPin 9
#define echoPin 10
#define buzzer 8
#define ledPin 2

long duration;
int distance;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2;

  if (distance < 15) {
    if (distance <= 2) { 
      digitalWrite(ledPin, HIGH);
      tone(buzzer, 1000);
    } else {
      digitalWrite(ledPin, HIGH);
      tone(buzzer, 1000);
      delay(1000/(15 - distance + 1)); 
      digitalWrite(ledPin, LOW);
      noTone(buzzer);
      delay(1000/(15 - distance + 1)); 
    }
  } else {
    digitalWrite(ledPin, LOW);
    noTone(buzzer);
  }
}
 

 

HC-SR04를 사용하고 있는데

 

거리 탐지가 너무 이상함...

 

반응이 느린건지 탐지가 이상한건지 모르겠음...

 

시리얼 포트로 받아봐도 거리가 좀 이상한데,

 

하나 더 사야될 지 어떻게 해야 할 지 모르겠네요...

26개의 댓글

2023.06.06

어떻게 이상한지도 좀 써줘야지... 나도 몇번 안해보긴했는데 내꺼도 패키지에 딸려온거라그런지 그렇게 정확하진 않더라

0
2023.06.06
@silentScreamer

아두이노 UNO 사용중이고,

 

자동차 후방감지 카메라처럼 초음파 센서 이용해서 거리가 가까워지면 LED가 빨리 깜빡이면서, 부저도 삐소리 나게끔 만들려고하는데,

 

초음파센서가 이상한건지 연결선이 이상한건지 LED랑 부저는 문제 없는데, 거리 계산이 느린건지, 잘 안돼요....

 

시리얼모니터로 출력되게 해도 거리가 너무 이상해요... 아예 손을 갖다대도 100정도로 나오니까 미치겠음.....

0
2023.06.06
@변아

코드는 이상없는거 같은데, Serial prints 해서 센서에서 들어오는 distance 값 디버깅해보셈

0
2023.06.06
@silentScreamer

그렇게 해서 거리 본게 이상해요

 

거의 130 정도만 유지하고 있어요

 

센서에 가까이 손을 갖다대도 비슷한 값만 출력해요... 당연하겠지만 선을 만지면 거리 값 날뛰어요

0
2023.06.06
@변아

그래두 안되면 https://reference.arduino.cc/reference/en/libraries/newping/ 함 써보셈

https://forum.arduino.cc/t/very-slow-hc-sr04-ultrasonic-sensor/144091

0
2023.06.06
@silentScreamer

이번엔 거리 거의 대부분0만 출력해요 ㅠㅠㅠ

0
2023.06.06
@silentScreamer

PIR적외선 센서로 바꿧네요..

0
2023.06.06

gpt 돌려봐

0
2023.06.06
@려비

센서가 이상한거일수도 있는건데 GPT 가 어떻게 알음....

0
2023.06.06
@변아

그내용도 포함해서 물어봐

0
@변아

gpt 오류 찾는거 잘함

0
2023.06.06
@변아

GPT 은근히 잘 도와줘...

0
2023.06.06
@엔지니어

오류 찾는거 잘 하는거 아는데, 이미 사용 했고, 센서가 이상한지 선이 이상한지 모르는 상황에서 어떤 문제인줄 알고 물어보냐는 뜻이에요

 

거리값 자체를 이상하게 출력하고 있어요

0
2023.06.06
@변아

그럼 우리가 센서가 이상한건지 선이 이상한건지 어케암? 코드 이상없으면 그게 문제겠지

0
2023.06.06
@심보고약한놈

그래 너가 최고야

0
2023.06.06
@변아

최고인거 알면 다른 부품으로 해봐라

0
2023.06.06
@변아

지금 코드를 보고 있는데

혹시 Arduino IDE를 사용하고 있다면 자동으로 추가되지만, 그렇지 않다면

Arduino.h 헤더를 추가해줘야 할거에요 (pulseIn 함수 등등을 사용하기위해서)

 

만약 delay의 문제라면 mills() 함수를 이용해서 조절해주면 될 수 있겠지만

그게 아니라면 시리얼 모니터를 통해 값이 정확히 나오는지 보고 if 구문을 바꾸는게 좋을거 같아요

 

distance = duration * 0.034 /2 를

distance = ((duration * 340)/1000) / 2 혹은 (duration * 0.34) / 2 혹은 duration/ 2.9 / 2로 바꿔보시는게 좋을거 같아요

distance에 들어간 값이 int로 선언되어있는데 double이나 float로 선언해도 값이 비슷하게 나오는지도 궁금하네요

 

그래서 코드를 적어보면 이렇게 써봤는데 검증 후에 if 구문을 검증하면 동작하지 않을까 싶어요

 

#include <Arduino.h> //Arduino IDE를 이용하면 자동으로 추가 됨

 

int trigPin = 9;

int echoPin = 10;

 

void setup() {

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

Serial.begin(9600);

}

 

void loop(){

float distance, duration; //변수 선언

digitalWrite(trigPin, LOW); //트리거핀 초기화

digitalWrite(echoPin, LOW); //에코핀 초기화

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance = (duration /2.9) / 2; // duration

Serial.print(distance); //serial 모니터에 distance 값 출력, 단위 mm

delay(100);

}

 

 

0
2023.06.07
@엔지니어

센서자체가 잘못 된 거 같아서 RIP센서로 바꿧어요

0
2023.06.07
@변아

해결되신거라면 다행이에요!

0

distance = ((float)(340 * duration) / 1000) / 2; 이거 축약하면 0.034가 아니라 0.34아님?

0
@저소음흑축써주세요제발

0.34*duration / 2로 계산해야 값 제대로 나오는거 아닐까?

0
2023.06.06
@저소음흑축써주세요제발

말씀은 감사드립니다! 근데, 역시나 안되네요...

0

아두이노 부품 중국산 싸구려가 많아서 복권처럼 꽝인 경우도 자주 있는데 그거 스피커처럼 생긴 초음파 거리 측정기지?

그거 꽝좀 많아 다른부품으로 해보샘

0
2023.06.07
@이성적인도라이

맞아요... 그래서 RIP센서로 했네요

0
2023.06.06

인터넷 보면 저센서 관련 아두이노 코드가 있음 그거 일단 드래그해서 센서 테스트를 해봐야 할 듯?

센서가 정상이라는 보장이 없어서 내가 학생 때 센서 오면 일단 테스트 코드로 테스트함

0
2023.06.07
@RX7900XTX

인터넷 코드 긁어서 해도 안되길래 RIP센서로 바꿧어요...

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
5711 [프로그래밍] 컴포즈 Box 컴포넌트가 안 나와... 집에가게해줘 0 14 분 전 14
5710 [프로그래밍] 아 ssl 적용햇는데 개정신없네 9 넌또화나있네 0 10 시간 전 159
5709 [프로그래밍] 패스트 캠퍼스 <---- 얘내는 가격 인상 원툴임? 5 조강현 0 3 일 전 294
5708 [프로그래밍] 클라가 파이썬 셀레니움같은거 써서 클릭하고 그러는걸 감지 ... 5 리옴므 0 4 일 전 208
5707 [프로그래밍] leetcode 50일 달성 1 JimmyMcGill 1 4 일 전 184
5706 [프로그래밍] 그냥 개인공부용 git 만들건데 5 년째재수강 0 4 일 전 268
5705 [프로그래밍] html 자바스크립트 질문 19 책걸이 0 5 일 전 313
5704 [프로그래밍] 아니 시바 이게 무슨일이야 4 인간지표 0 5 일 전 328
5703 [프로그래밍] 아두이노 키트 아무것도 모르고 사도 될까? 6 그것 0 6 일 전 265
5702 [프로그래밍] 횽들 Vimeo에 올라가있는 동영상의 원본크기를 확인할 수 있... 13 카뜨만두 0 6 일 전 187
5701 [프로그래밍] c# 이벤트와 델리게이트 13 RX7900XTX 0 8 일 전 307
5700 [프로그래밍] Aws 람다에 파이썬 올려서 결과 받아오는데 11 아르피쥐 0 10 일 전 345
5699 [프로그래밍] 마리아DB mediumtext 그냥 쓰고 싶은데 21 잉텔 0 11 일 전 222
5698 [프로그래밍] 안드로이드 씹뉴비 질문이요 2 집에가게해줘 0 11 일 전 129
5697 [프로그래밍] c언어 7년했는데 이런게 되는거 처음알았음.. 4 케로로중사 0 12 일 전 903
5696 [프로그래밍] 파이썬 1도 모르는데 GPT로 프로그램 뚝딱 만듬 2 푸르딩딩 1 15 일 전 753
5695 [프로그래밍] 담주 면접잡혔는데 8 삐라루꾸 0 16 일 전 506
5694 [프로그래밍] 아두이노 부트로더를 구웠는데.. 4 렙이말한다ㅡ니가옳다 0 16 일 전 236
5693 [프로그래밍] IOS 개발자 있나여? 1 g4eng 0 18 일 전 261
5692 [프로그래밍] 시스템 디자인 인터뷰 준비 도움좀!!! 1 Nognhyup 0 19 일 전 205