본문 바로가기

소프트박스 코딩

소프트박스에서 조도센서 데이터 확인하기

반응형


아두이노 피지컬 소프트웨어 교육키트 소프트박스의 조도센서를 실습한다. 소프트박스에서 조도센서의 위치를 확인한다.

조도센서는 빛의 세기를 아날로그 값으로 출력하거나 일정 기준점을 정할 경우 밝은 때는 1(0)을 출력하고 어두울 때는 0(1)을 디지털 값으로 출력한다. 아두이노메가 보드에서는 디지털 값은 핀 13번을 입력으로 하여 읽고, 아날로그 값은 핀 A3 핀으로 읽는다.


디지털과 아날로그  값의 차이에 대해 설명이 아주 잘 되어있는 곳 링크 참고

신호와 정보의 차이, 아날로그와 디지털의 차이 :: 키스세븐지식 - http://bit.ly/2HFXApz

 

    

조도센서 사진




조도센서 모듈의 핀 할당 이미지는 아래와 같다. 구매하는 모듈에 따라 출력핀이 3핀, 4핀으로 다르고 각 핀의 위치와 이름이 다르므로 아래 이미지를 절대적으로 생각하지 말고 사용 용도와 구입하는 모듈에 따라 달라진다는 사실을 꼭 기억한다.


조도센서 아날로그 출력을 확인하는 스케치 코드이다. 핀 13으로 읽어 현재 실내가 밝은지 어두운지를 씨리얼포트를 통해 데이터를 표시한다. 조도센서의 가변저항은 밝고 어두운 기준점을 상향조정, 하향조정하는데 사용한다. 


아두이노 메가와 연결할 경우 회로 연결도는 아래와 같다.


중요한 점은 디지털 데이터를 사용할 때 기준점을 어느 위치에 잡느냐에 따라 테스트하는 환경에 따라 다른 값이 나올 수 있다. 즉, 어떤 환경에서 "밝음"으로 데이터가 나왔는데 다른 환경에서는 어두움으로 나올 수 있다는 말이다. 따라서 일정한 밝기에서 일정하게 동작하는 데이터를 얻기 위해서는 아날로그 데이터를 읽어 사용하는 것이 더 좋은 방법이다.


아래는 조도센서 디지털 출력인 핀 13을 확인하는 스케치 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void setup() {
 
  Serial.begin(9600); /* PC모니터로 결과를 쉽게 확인하기위해 시리얼 통신을 정의해 줍니다.*/   
  pinMode(13, INPUT); // 8번 핀으로 데이터를 값을 받습니다.
}
 
void loop() {
/*조건문인 IF문을 사용하여 빛이 차단되면 "Dark"문구가 출력 됩니다.*/
 
  if (digitalRead(13== HIGH) 
    Serial.println("Dark ");  // 빛이차단되면 출력됩니다
  else
    Serial.println("light");
  
  delay(500);
}
cs

 

아두이노 통합개발환경의 "씨리얼모니터를 열어서 값을 확인한다. 밝은 상태에서는 Light(밝다) 메시지를 출력한다. 이때 조도센서를 손으로 가리면 Dark(어둡다) 표시가 나오는 것을 확인한다.


아래는 조도센서 아날로그 출력 핀 A3 데이터를 확인하는 스케치 코드이다. 아래 코드를 입력하고 컴파일과 업로드를 하고 결과를 확인한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int cds = A3;       // 변수 cds를 선언하고, A0을 대입
 
void setup() 
{
    Serial.begin(9600);  // 시리얼 통신을 시작하며, 속도는 9600으로 설정.
}
 
 
 
void loop() {                                
 
    int val= analogRead(cds);  // 변수 val을 선언, cds(A0) 아날로그 값을 저장
    Serial.println(val);   // 변수 val에 저장된 값을 시리얼 통신을 통해 출력.
    delay(1000);     // 1초 동안 딜레이.
 }
cs


이때도 마찬가지로 손으로 조도센서를 가리면 아날로그 값이 변하는 것을 "씨리얼 모니터"로 확인할 수 있다. 값이 큰 값이 나오면 어두운 상태고 낮은 값이 나오면 밝은 상태라는 것을 알 수 있다. 여기서도 주의 할 점은 반드시 값이 크고 작고에 따라 밝고 어둡고가 결정되지 않는다는 의미이다. 조도센서 모듈에 따라, 그리고 회로를 어떻게 구성하느냐에 따라 값이 우리가 보는 값이 달라지기 때문이다. 



여기까지 배우느냐고 고생하셨습니다. 



반응형