정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

아두이노 음주측정기 제작과정 중 문제점 질문입니다.
최주노 | 2015-10-22

int dout = 6;    //센서 디지털 핀 선언
int aout = A0;   //센서 아날로그 핀 선언
int gasPin = 0;
int value = 0;

void setup() {
  pinMode(dout, INPUT);   //디지털 핀 입력용으로 선언
  Serial.begin(9600);
  
  Serial.begin(9600);
  pinMode(gasPin,INPUT);

}

void loop() {
  int analogValue = analogRead(aout);    //아날로그 값 읽음
  int digitalValue = digitalRead(dout);  //디지털 값 읽음
  
  Serial.println(analogValue);           //아날로그 값 출력
  Serial.println(digitalValue);          //디지털 값 출력
  Serial.println("-----------------");
  delay(500);
  
  value = analogRead(0)/2;
  Serial.print("Alcohol:");
  Serial.println(value);
  delay(100);
}

 

링크들어가셔서 보이는 사진처럼 아날로그 값에 알코올에 대한 수치가 뜨고

 

밑에는 알코올이 있는지 없는지 여부에따라 디지털값 0,1로 표현되어야 하는데 

 

기존에 올라와있는 예제소스를 대입해보니 안되서 위처럼 수정한 소스를 사용하는데

 

아날로그값이 2가지가 나오고  밑에 디지털값은 알코올 유무에 상관업이 0과 1이 의미없이 나오다 말다합니다.

 

이부분에 대해 질문드리고, 코코아팹에 올라와있는 예제소스는 뭐가 잘못된것인지도 좀 말씀남겨주시면 감사하겠습니다.

프로필사진

Klant 2015-10-22 10:32:04

알콜 센서 사용하기 링크의 첫 번째 예제는 실행시켜보셨나요? 

첫 번째 예제 소스로 먼저 테스트 해보시는게 좋을 것 같습니다. 간단한 소스라 문제는 없어보입니다.

혹시 컴파일 에러가 나신다면, 에러 내용(또는 시리얼 모니터)을 스크린샷을 통해 보여주시면 좋을 것 같네요.

올려주신 소스는 첫번째 예제와 두번째 소스를 합치신 것 같은데 첫 번째 예제로 테스트하셔도 무방합니다.

Serial.begin()도 두 번 들어가 있네요 ;) 

확인해보시고 댓글 달아주세요! 

프로필사진

최주노 2015-10-22 11:15:42

첫번째 예제로 하니까 알코올없을때 1 , 있을때 0이나와야하는데

 

없거나 있을때 둘다 0이나옵니다.

 

무엇이 문제일까요?

프로필사진

Klant 2015-10-22 20:43:52

시리얼 모니터에 analogValue의 출력값에는 변화가 있나요?

analogValue 값도 변화가 없다면 센서가 알코올을 측정하지 못하는 것인데 

센서나 와이어링의 문제일 가능성이 큽니다.

이전글   |    오렌지보드 BLE를 Firmata를 사용해 제어하는 모바일 앱 부탁드려 봅니다.... 2015-10-20
다음글   |    자전거 속도계 제작중 문제 2015-10-22