안녕하세요 에듀이노 개발팀입니다.
정확한 판단을위해서 MQ-3 센서 개별을 테스트해 정상값이 출력되는지 확인부탁드리겠습니다.
문의해주신 센서를 제거해도 값이 출력되는것은 소스코드에 설정되어 있는 A0번핀의 아날로그값이 출력되는 것입니다.
먼저 센서개별테스트를 통해 값이 변화하는지 확인해주시기 바라며, 이후 기술문의 게시판에 재문의 부탁드리겠습니다.
감사합니다.
[ Original Message ]
위에 표시한 아두이노 코딩 교육용 스크래치 메탈 RC카 키트와 MQ-3 센서를 구매했습니다. 저희가 생각하고 있는게 MQ-3에 찍히는 수치에 따라 RC카의 움직임을 제어하는 것입니다. 그런데 업로드를 하면 바퀴는 움직이나, 시리얼 모니터에 찍히는 수치가 알코올을 가져다 대어도 186가량에서 변화가 나타나지 않아 멈추질 않습니다. 또, MQ-3 센서를 .빼놔도 시리얼 모니터에 수치가 찍히는데 다른 측정 센서가 없는 것 같은데 왜 찍히는 지에 관한 원인도 답변을 듣고 싶습니다! 아래에 저희가 이용한 코드와 저희가 만든 키트 사진, 저희가 참고한 유튜브 주소를 첨부하겠습니다. 감사합니다.
<자료 1.>
#include <SoftwareSerial.h>
#include <AFMotor.h>
AF_DCMotor motor_L(1);
AF_DCMotor motor_R(4);
int mq3pin = A0; // MQ-3 센서핀을 아두이노 보드의 A5 핀으로 설정
void setup(){
Serial.begin(9600); // 아두이노 보드와 pc간의 통신속도 설정
motor_L.setSpeed(200);
motor_L.run(RELEASE);
motor_R.setSpeed(200);
motor_R.run(RELEASE);
}
void loop(){
Serial.println(analogRead(mq3pin)); // MQ-3센서 출력값을 시리얼 모니터로 출력
int val = analogRead(mq3pin);
if(val>=400){ //센서 값이 400 이상이면
motor_L.run(RELEASE);
motor_R.run(RELEASE);
delay(300000);
}
else if(val>=200 && val<400){ // 센서 값이 200 이상, 400미만이면
motor_L.run(FORWARD);
motor_R.run(FORWARD);
delay(100);
}
else if(val<200){ // 센서 값이 200 미만 이면
motor_L.run(FORWARD);
motor_R.run(FORWARD);
delay(100);
}
}