* 기술문의 안내
- 에듀이노에서는 판매중인 제품에 한정하여 기술문의 답변을 제공하고 있습니다.
- 입점사 제품 관련 문의경우, 제조사를 통해 답변을 제공하기 때문에 제조사의 사정에 따라 약 2~3일정도의 시간이 소요될 수 있습니다.
- 정확한 답변을 위해서, 사용환경에 대한 이미지 또는 영상을 함께 첨부해 주시면 정확한 답변을 제공하는데 도움이 됩니다.
(텍스트로만 이루어진 기술문의는, 정확한 원인 파악이 어려워 답변이 잘못되거나, 늦어질 수 있습니다.)
[제품 또는 키트명]
-
아두이노 MG-90S / MG90S 180도 메탈기어 서보모터 / Arduino Servo Motor
아두이노 적외선 거리측정센서 / 10~80cm / 2Y0A21
[기술문의 내용]
-
에듀이노에서 구매한 아두이노 우노 초급자 키트에 서보모터와 거리측정센서를 더하여 사용하였습니다.
적회선 거리측정센서에서 측정한 거리가 10cm 이상일 때 서보모터가 작동하고
그 이하이거나 같을 때 정지하도록 예제 코드를 합쳐보려고 하는데
서보 모터가 덜걱거리기만 하고 돌아가지 않습니다.
오류가 뜨진 않던데 코드가 잘못된 건지 제품 문제인지 궁금합니다.
코드 문제라면 도움 주시면 감사하겠습니다
#include <Servo.h> Servo servo;
int distance = 0; // 거리값을 저장할 변수
void setup(){
Serial.begin(9600); // PC와의 시리얼 통신속도를 9600bps로 설정
servo.attach(10);
}
void loop(){
int volt = map(analogRead(A0), 0, 1023, 0, 5000); // 0~1023 사이 값을 갖는 아날로그 신호값을 // 0~5000 (5V) 사이 값으로 변환 distance = (27.61 / (volt - 0.1696)) * 1000; // 읽어들인 Voltage 값을 거리값(단위: cm)로 변환하는 공 Serial.print(distance); //거리값을 시리얼모니터로 출력해줍니다. Serial.print(" cm"); Serial.println(" "); delay(1000);
if (distance>=10){
digitalWrite(10,HIGH); //릴레이 작동
}
else {
digitalWrite(10,LOW); //릴레이 멈춤
}
}
아래의링크를 참고하여 거리값을 확인하거나 출력하는 것을 확인한 다음, 사용하신 조건문을 그대로 사용하시면 가능할 것으로 보입니다.
https://eduino.kr/product/detail.html?product_no=235&cate_no=27&display_group=1