1. 시작
Photoresistor 를 가지고 놀아 봤더랬습니다. (아래 글)
* Hardware | Arduino 로 Photoresister 가지고 놀기 - 1
- http://chocoball.tistory.com/entry/Hardware-Arduino-Photoresister-1
다만, 위의 사진에서 보이듯 광원을 받는 센서부의 홈 갯수가 적어 보이는 것 같았습니다.
밑의 사진처럼 촘촘하면, 뭔가 더 예민하게 반응할 것 같았습니다.
이미 PIR motion sensor 에도 GL5528 을 가지고 적용해 봤으나 (아래 글),
완벽한 어둠이 있지 않으면 동작하지 않아, 적당한 어둠에도 동작하도록 하기 위해 위와 같이 촘촘한 센서를 찾아보게 됩니다.
* Hardware | HC-SR501 PIR motion sensor
- http://chocoball.tistory.com/entry/Hardware-HCSR501-PIR-motion-sensor
2. 주문
AliExpress 를 뒤져 봅니다.
제가 GL5528을 구입할 때만 해도 다양한 센서를 한묶음으로 파는 경우를 못본것 같은데, 이제는 팔고 있네요.
* Photoresistor Kit 5Kindsx10pcs 5506 5516 5528 5537 5539 Light Dependent Resistor LDR Pack Photoresistor Package for Arduino
미리 이런게 있었더라면...
하면서 바로 주문을 넣습니다.
다양한 센서라 그런지, 다른 부품들보다는 다소 비싼 편 입니다. 한, 500원 정도 ?! :-)
3. 도착
한 2주 걸려서 도착했습니다. 알리에서 주문한 것 치곤 빠른 편 입니다.
스폰지 형태로 잘 포장되어 왔구요.
한뭉텅이로 왔구요.
각 부품이 10개씩 포장되어 들어 있구요.
네 그렇습니다.
이렇게 촘촘한 photoresistor 센서를 얻기 위해, 첫번째 시행착오를 거쳐 두번째 구매를 하게 된 것이죠.
다만, 각 센서의 감도 차이를 알고 싶어졌습니다.
물론 spec. 문서를 보면 나와 있습니다만, 주변의 빛의 세기에 따라 어떤 형태의 값들로 움직이는지 보고 싶었습니다.
또한 예전에 구입한 GL5528 이 다른 센서들과 비교하여,
PIR 센서에 적합한 센서를 찾기 위해 값을 비교해 보기로 합니다.
4. Layout
입력은 5V 이지만, 0~1023 레벨로 결과값을 받을 수 있게, 3.3V 를 AREF pin 에 연결합니다.
저도 이번에 AREF를 사용하면서 AREF 의 용도를 알게 되었습니다.
AREF 에 대해서는 따로 정리해 봤습니다.
* Hardware | Arduino 의 AREF pin 에 대해 알아보자
- http://chocoball.tistory.com/entry/Hardware-Arduino-AREF-pin
아래는 구성도 입니다.
아래는 실제 배선 샷 입니다.
사진에는 마지막에 추가한 GL5528 이 없습니다.
이 테스트를 하기 전에 사진을 찍은 후, 자고 일어났더니 예전 GL5528 이 생각이 나, 추가하여 결과값을 추출하였습니다.
저항은 10k ohm 입니다.
이는 아래 사양서에서 볼 수 있듯이, 일반적인 낮의 100 lux 에서 대략 10k ohm 의 값을 가지기 때문입니다.
5. Sketch
원리는 다음과 같습니다.
V = IR
* case 1 : 10KΩ
- 10KΩ + 10KΩ = 20KΩ
- I = 5V / 20KΩ = 0.25mA
- 0.25mA * 10KΩ = 2.5V
- 5V - 2.5V = 2.5V --> analog input
* case 2 : 30KΩ
- 30KΩ + 10KΩ = 40KΩ
- I = 5V / 40KΩ = 0.125mA
- 0.125mA * 30KΩ = 3.75V
- 5V - 3.75V = 1.25V --> analog input
* case 3 : 100KΩ
- 100KΩ + 10KΩ = 110KΩ
- I = 5V / 110KΩ = 0.045mA
- 0.045mA * 100KΩ = 4.54V
- 5V - 4.54V = 0.54V --> analog input
less light --> more resistance --> less analog input
more light --> less resistance --> more analog input
결론은,
많은 광량일 경우는 높은 치수를, 즉 낮은 저항 수치를 가지고,
적은 광량일 경우는 낮은 치수를, 즉 높은 저항 수치를 가지고 서로의 성능을 비교하는 과정입니다.
지금까지의 과정과 아래 소스는 다음 blog 를 참조하였습니다.
* Photo resistors, in depth
- https://piandmore.wordpress.com/2016/10/14/photo-resistors-in-depth/
예전에 구입한 GL5528 를 A5 에 추가 연결하였으므로, 소스에서도 입력과 출력에 대해 A5 를 추가하였습니다.
//////////////////////////////////////////////////////////////////////////////////// // // PI and more // Photo resistors in depth // // https://piandmore.wordpress.com/2016/10/14/photo-resistors-in-depth/ // //////////////////////////////////////////////////////////////////////////////////// // // The number of steps after which the header is repeated // #define STEPCOUNT 10 // // The current step count // byte step = STEPCOUNT; void setup() { // // Setup serial // Serial.begin(115200); Serial.println("Ready"); // // Set the reference for measuring the analog signals // For some reason I got incorrect readings without connecting // the 3.3v (on my Arduino Nano) to AREF and setting this // reference analogReference(EXTERNAL); // // Setup all analog inputs. We are using 5 which is the maximum // for the Nano on which I tested. // pinMode(A0,INPUT); pinMode(A1,INPUT); pinMode(A2,INPUT); pinMode(A3,INPUT); pinMode(A4,INPUT); pinMode(A5,INPUT); } void loop() { // // Increase our counter // step++; // // If we are over our STEPCOUNT then we repeat the header // if (step>STEPCOUNT) { // // The reference to the different photo resistors // GL5506, GL5516, GL5528, GL5537 and GL 5539 // Serial.println("* 5506 5516 5528 5537 5539 GL5528"); step = 0; } // // Print all analog values to serial // Serial.print(" "); Serial.print(analogRead(A0)); Serial.print(" "); Serial.print(analogRead(A1)); Serial.print(" "); Serial.print(analogRead(A2)); Serial.print(" "); Serial.print(analogRead(A3)); Serial.print(" "); Serial.print(analogRead(A4)); Serial.print(" "); Serial.print(analogRead(A5)); Serial.println(); delay(250); }
위의 sketch 를 실행시키면 다음과 같이 "Serial Monitor" 를 통해서 값을 확인할 수 있습니다.
6. 결과
제조사의 사양서는 찾을 수 없었지만, 5506 부터 나와있는 사양 테이블은 아래와 같습니다.
그래프를 보면 결과값과 비슷하게 나온것 같습니다.
강한 불빛인 휴대폰 플레쉬부터, 거실 불 하나만의 광량, 손으로 그늘을 만들고,
마지막에 손으로 가리는 순간들의 값을 EXCEL 정리해 봤습니다.
* EXCEL
- photoresistor_record_20180225.xlsx
숫자로만 보면 들쑥날쑥 하여 알아보기 힘듭니다.
아래의 그래프로 그려봤습니다.
EXCEL 숫자만 보면, 과연 순서대로 나열해서 했나 싶을 정도로 들쑥날쑥 합니다만,
그래프로 그리면 확실히 그 경향을 알 수 있습니다.
FIN
예전에 구입한 GL5528 (녹색) 은, 이번에 구입한 5528 (회색) 과 확연한 값의 차이를 나타냅니다.
오히려 5537 (노랑) 과 더 비슷해 보이는군요.
위의 결과를 가지고 생각해 보면, photoresistor 를 직접 사용하기 전에는 측정을 통하여 사용처에 맞는 센서를 골라야 하겠군요.
'Hardware' 카테고리의 다른 글
Hardware | Arduino 의 AREF pin 에 대해 알아보자 (0) | 2018.03.04 |
---|---|
Hardware | HC-SR501 PIR motion sensor - 2 (2) | 2018.03.01 |
Hardware | Digitial Compass - HMC5883L 사용기 - 1 (0) | 2018.02.19 |
Hardware | MAX4466 마이크 앰프 breakout board 사용해 보기 (0) | 2018.02.11 |
Hardware | 2.54mm pin header 구매하기 (0) | 2018.02.11 |