본문 바로가기
Programming/Arduino

CDS (조도센서) + OLED(I2C) 조도 값(ADC) 모니터링

by 크레노트 2020. 1. 9.
반응형

안녕하세요.

 

오늘은 많이 사용하시는 CDS(조도센서) 값을 모니터링 해보았습니다.

 

생각보다 조도 센서는 많이들 사용하시지요?? 간단하게 한번 값을 읽어 보겠습니다

 

[필요부품]

-조도센서 CDS (A9012)-

-100K 저항-

-0.1uF 콘덴서-

-OLED(I2C)-

 

///저항은 10K 하나로 사용하셔도 됩니다. 저는 집에 저항이 저것 밖에 없어서 콘덴서랑 같이 사용하였습니다.

 

[조도센서 회로]

저는 100K 저항을 사용하여 범위를 조금 좁혀 사용하였습니다; 큰 범위를 원하시는 분은

 

저항 분배 법칙을 사용하여 원하시는 값을 받아 보세요 ^^ 보통 10K 많이 사용하십니다.

 

콘덴서는 없어도 되요 .

 

[OLED 배선]

OLED Arduino UNO
VCC 5V
GND GND
SCK(SCL) A5
SDA A4

아두이노 우노의 경우 I2C통신에 필요한 SCK,SDA가 위와 같이 되어 있습니다.

 

그리고 OLED를 편하게 사용할려면 라이브러리를 다운 받아야 하는데요.

 

u8glib : https://code.google.com/archive/p/u8glib/

 

여기 사이트에 들어가서 받으시면 됩니다.

 

 

<소스코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// OLED 라이브러리 파일
#include "U8glib.h"
 
//OLED 타입별 지정값
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
 
void setup() {
 
}
void loop() {
    int cds = analogRead(A1); //조도값 받기
    delay(1000);
    u8g.firstPage();
 
    do{
        u8g.setFont(u8g_font_unifont);
        u8g.setPrintPos(0,10);
        u8g.print("CDS Monitoring");    
        u8g.setPrintPos(0,30);
        u8g.print(cds);
               
    }while(u8g.nextPage());
 
}
cs

 

<동작영상>

반응형

댓글