반응형
센서스펙
초음파를 이용하여 거리를 측정하는 제품이며,
약 2cm ~ 400cm 범위를 측정할 수 있습니다.
날씨, 초음파가 닿는 벽의 재질 등의 요건에 따라 약간의 오차가 발생할 수 있습니다.
동작전압: 5V
동작 전류: 15mA
동작 주파수: 40Hz
발생 주파수: 40kHz
측정 거리: 2~400cm
크기: 45x 20 x 15mm
회로도
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | int trigPin = 12; int echoPin = 11; void setup() { Serial.begin (9600); // 시리얼 모니터를 사용하기 위해 보드레이트를 9600으로 설정합니다. pinMode(trigPin, OUTPUT); // trigPin 핀을 출력핀으로 설정합니다. pinMode(echoPin, INPUT); // echoPin 핀을 입력핀으로 설정합니다. } void loop() { long duration, distance; // 각 변수를 선언합니다. digitalWrite(trigPin, LOW); // trigPin에 LOW를 출력하고 delayMicroseconds(2); // 2 마이크로초가 지나면 digitalWrite(trigPin, HIGH); // trigPin에 HIGH를 출력합니다. delayMicroseconds(10); // trigPin을 10마이크로초 동안 기다렸다가 digitalWrite(trigPin, LOW); // trigPin에 LOW를 출력합니다. duration = pulseIn(echoPin, HIGH); // echoPin핀에서 펄스값을 받아옵니다. /* trigPin핀에서 초음파를 발사하였고 그 초음파가 다시 돌아 올 때까지 기다립니다. 만약 벽이나 장애물에 닿아서 다시 echoPin으로 돌아왔다면 그동안의 시간을 duration에 저장합니다. */ distance = duration * 17 / 1000; // duration을 연산하여 센싱한 거리값을 distance에 저장합니다. /* 거리는 시간 * 속도입니다. 초음파의 속도는 빛의속도와 같은 초당 340m이므로 시간 * 340m이고 cm단위로 바꾸기 위해 34000cm로 변환합니다. 시간 값이 저장된 duration은 마이크로초 단위로 저장되어 있어, 변환하기 위해 1000000을 나눠줍니다. 그럼 시간 * 34000 / 1000000이라는 값이 나오고, 정리하여 거리 * 34 / 1000이 됩니다. 하지만 시간은 장애물에 닿기까지와 돌아오기까지 총 두 번의 시간이 걸렸으므로 2를 나누어줍니다. 그럼 시간 * 17 / 1000이라는 공식이 나옵니다. */ if (distance >= 200 || distance <= 0) // 거리가 200cm가 넘거나 0보다 작으면 { Serial.println("거리를 측정할 수 없음"); // 에러를 출력합니다. } else // 거리가 200cm가 넘지 않거나 0보다 작지 않으면 { Serial.print(distance); // distance를 시리얼 모니터에 출력합니다. Serial.println(" cm"); // cm를 출력하고 줄을 넘깁니다. // distance가 10이면 10 cm로 출력됩니다. } delay(500); // 0.5초동안 기다립니다. } | cs |
코드는 설명이 잘되있어서
http://makeshare.org/bbs/board.php?bo_table=arduinosensor&wr_id=366
사이트에서 가져왔습니다.
IOE-SR05모델에서는 안되는건지 고장난건지 15cm 만 계속나오네요. 혹시 IOE-SR05모델을 가지고 계신분은 코드가 적용되는지 다른 코드를 사용해야된다면 많은 가르침 부탁드립니다.
반응형
'아두이노' 카테고리의 다른 글
아두이노 버튼(연속) (0) | 2020.12.03 |
---|---|
아두이노 LCD+온습도센서 (0) | 2020.12.02 |
아두이노 온습도센서(DHT11) (0) | 2020.11.25 |
아두이노 블루투스로 servo모터 제어 (0) | 2020.06.12 |
아두이노 블루투스 연결 (0) | 2020.06.11 |
최근댓글