아 또 newPing이 그런 장점이 있군요. 저는 아두이노로 초음파 센서 다룰 때 생각보다 오차가 너무 큰 것 같아서 이걸 과연 실제로 쓸 수 있을까 그런 생각이 들더라구요. 비싼 센서는 다를 수도 있을 것 같은데, 제꺼는 기본 아두이노 세트 센서라서요. 제가 못 다뤄서 저만 그렇게 느낀건지 ㅋㅋ
그 오차는 초음파센서 자체 부품에 따라 달라요.
공식 : distance = ((float)(340 * duration) / 10000) / 2;
인데요 340이라는 수치가 초음파센서 4핀짜리 실험에 사용한 부품의 사양이에요.
부품마다 이 수치가 다르거든요. 그래서 오차가 발생하고요.
참고로 아두이노 자체의 노이즈 전류값도 있기 때문에 몇차례 측정해보고 30cm 자같은걸로 그 오차율 거리를 보정하셔야 해요.
백프로 무조건 읽은 값이 거리다라고 생각하시면 안돼요.
직접 코딩을 하나의 함수로 만들어 놓고 계속 복사해서 쓰면 되기 때문에 라이브러리를 구지 안써도 되지만 newPing은 좀 더 정교하게 제어할 수 있게 구성되어 있어서 newPing 라이브러리가 좋아 보이더군요. 우선 다중 초음파센서를 다룰 때 특화 된 것 같아요.
아 또 newPing이 그런 장점이 있군요. 저는 아두이노로 초음파 센서 다룰 때 생각보다 오차가 너무 큰 것 같아서 이걸 과연 실제로 쓸 수 있을까 그런 생각이 들더라구요. 비싼 센서는 다를 수도 있을 것 같은데, 제꺼는 기본 아두이노 세트 센서라서요. 제가 못 다뤄서 저만 그렇게 느낀건지 ㅋㅋ
그 오차는 초음파센서 자체 부품에 따라 달라요.
공식 : distance = ((float)(340 * duration) / 10000) / 2;
인데요 340이라는 수치가 초음파센서 4핀짜리 실험에 사용한 부품의 사양이에요.
부품마다 이 수치가 다르거든요. 그래서 오차가 발생하고요.
참고로 아두이노 자체의 노이즈 전류값도 있기 때문에 몇차례 측정해보고 30cm 자같은걸로 그 오차율 거리를 보정하셔야 해요.
백프로 무조건 읽은 값이 거리다라고 생각하시면 안돼요.
아, 부품 자체에 스펙이 있군요. 노이즈 전류값도 영향을 줄 줄이야. 전기 속도가 거의 빛의 속도랑 5~6배 정도 밖에 차이 안 난다고 들어서 별 영향 없을 줄 알았는데... 그렇군요. 아, 하긴 직접 측정하면서 해보면 제일 정확하겠네요.
원래 초음파센서 뿐 아니라 모든 부품이 정확하게 원하는 값이 출력되지 않습니다. 근사값을 출력하고 그 값을 기반으로 보정작업을 하시면 원하는 결과를 얻게 되는데 어쩔 수 없는 부분인 것 같아요.^^