'GL5528'에 해당되는 글 2건
- 2018.03.01 Hardware | HC-SR501 PIR motion sensor - 2 2
- 2018.02.28 Hardware | Arduino 로 Photoresister 가지고 놀기 - 2
1. 시작
HC-SR501 을 가지고 움직임이 있을 시 반응하는 센서를 가지고 놀아 봤더랬습니다.
* Hardware | HC-SR501 PIR motion sensor
- http://chocoball.tistory.com/entry/Hardware-HCSR501-PIR-motion-sensor
그러던 중, Photoresistor 단자를 발견합니다.
아래는 HC-SR501 회로도 입니다.
제조사의 사이트에 올라와 있는 회로도와 실제 기판을 봐도 이미 R3 (1MΩ) 이 실장되어 있어서,
제대로 된 값의 photoresistor 만 달면 기능하게 되어 있네요.
좀더 찾아 보니, 아예 세트로 파는 업자도 있습니다.
요는 photoresistor 를 이용하여, 항상 모션 탐지를 하는 것이 아니라,
어두워졌을 때에만 작동하도록 하는 것 입니다.
흠흠, 그럼 photoresistor 를 구입해야 겠죠?
2. Photoresistor 가지고 놀기
HC-SR501 에 photoresistor 를 붙여서 구동하기 위해, 우선 photoresistor 를 가지고 놀아봅니다.
* Hardware | Arduino 로 Photoresister 가지고 놀기 - 1
- http://chocoball.tistory.com/entry/Hardware-Arduino-Photoresister-1
이때 구입한 제품이 GL5528.
간단한 동작을 확인 했으니, 본격적으로 HC-SR501 에 붙여 봅니다.
3. HC-SR501 에 납땜하기
Photoresistor 는 RL 이라는 자리에 납땜하면 됩니다.
+/- 전극 구분이 없어서 그냥 두 다리 고정하고 납땜하면 됩니다.
높이 잘 계산해서 올려주고요.
장착되면 위와 같은 모습이 됩니다.
다리를 옆으로 벌려서 흔들리지 않게 하고 납땜합니다.
짜잔 !!!
4. Layout 및 Sketch
구성은 예전 글에서 사용했던 구성과 sketch 와 완벽히 동일합니다.
HC-SR501 PIR sensor | Arduino Nano ---------------------------------- S | D8 + | 5V - | GND ---------------------------------- Piezo busser | Arduino Nano ---------------------------------- S | D11 + | 5V - | GND ----------------------------------
회로 구성입니다.
Sketch 입니다.
/******************************************************* Uses a PIR sensor to detect movement, sounds a buzzer *******************************************************/ //the time we give the sensor to calibrate (10-60 secs according to the datasheet) int calibrationTime = 30; int ledPin = 13; // choose the pin for the LED int inputPin = 8; // choose the input pin (for PIR sensor) int pirState = LOW; // we start, assuming no motion detected int val = 0; // variable for reading the pin status int pinSpeaker = 11; //Set up a speaker on a PWM pin (digital 9, 10, or 11) void setup() { pinMode(ledPin, OUTPUT); // declare LED as output pinMode(inputPin, INPUT); // declare sensor as input pinMode(pinSpeaker, OUTPUT); //give the sensor some time to calibrate Serial.begin(9600); Serial.print("Calibrating sensor "); for(int i = 0; i < calibrationTime; i++) { Serial.print("."); delay(1000); } Serial.println(" Done!"); Serial.println("SENSOR is ACTIVE now"); delay(50); } void loop() { val = digitalRead(inputPin); // read input value if (val == HIGH) { // check if the input is HIGH blinky(); // blink LED when motion haas been detected // digitalWrite(ledPin, HIGH); // turn LED ON playTone(300, 160); delay(150); if (pirState == LOW) { // we have just turned on Serial.println("Motion detected!"); // We only want to print on the output change, not state pirState = HIGH; } } else { digitalWrite(ledPin, LOW); // turn LED OFF playTone(0, 0); delay(300); if (pirState == HIGH){ // we have just turned off Serial.println("Motion ended!"); // We only want to print on the output change, not state pirState = LOW; } } } void playTone(long duration, int freq) { // duration in mSecs, frequency in hertz duration *= 1000; int period = (1.0 / freq) * 1000000; long elapsed_time = 0; while (elapsed_time < duration) { digitalWrite(pinSpeaker,HIGH); delayMicroseconds(period / 2); digitalWrite(pinSpeaker, LOW); delayMicroseconds(period / 2); elapsed_time += (period); } } void blinky() { for(int i=0; i<3; i++) { digitalWrite(13, HIGH); delay(200); digitalWrite(13, LOW); delay(200); } }
5. 흠...
손으로 photoresistor 를 가리면 동작은 하는데, 기민하게 동작하지 않았습니다.
원래 회로는 short 된 회로인데,
photoresistor 를 연결하면 광원이 있는 곳에서 close 상태로 만들어 주어 모션 감지를 하지 않게 (disable) 됩니다.
주위가 어두워 지면 photoresistor 의 dark resistance 가 올라가
원래 회로가 가지고 있던 short 상태를 만들어 주는 것인데,
어정쩡하게 저항이 발생하면 제대로 short 된 상태로 넘어가지 못하는 것이었습니다.
뭔가 Photoresistor 가 망가졌나? 생각하고 다른 GL5528 센서로 교환하다, 옆에 있던 캐패시터 옆구리를 지져버렸습니다.
아놔...
다행히 기존에 구입해 놨던 capacitor 가 있어서 교체합니다.
* Hardware | AliExpress 에서 condenser 를 구입해 보자
- http://chocoball.tistory.com/entry/Hardware-AliExpress-condenser-buy
기존의 capacitor 보다는 굵은 소자라 뭔가 신뢰가 가네요.
6. 다른 Photoresistor
Capacitor 를 교환했고, photoresistor 도 교환했음에도 불구하고 여전히 기민하게 동작하지 않습니다.
Photoresistor 를 가리고 한참 기다리고 있어도 운 좋으면 detecting 하고, 그렇지 않으면 아무 반응이 오지 않았습니다.
결국 구입한 photoresistor 의 수치적인 한계라고 확신하고, 다른 photoresistor 를 구입해서 테스트 해보기로 합니다.
처음 구입할때는 보이지 않았던, 5가지 묶음 세트가 있네요.
바로 구입합니다. (아니 왜 저 세트로 처음부터 안파냐고...)
* Photoresistor Kit 5Kindsx10pcs 5506 5516 5528 5537 5539 Light Dependent Resistor LDR Pack Photoresistor Package for Arduino
각 소자 번호에 따라 어떤 값을 보이는지 테스트 해봤습니다.
* Hardware | Arduino 로 Photoresister 가지고 놀기 - 2
- http://chocoball.tistory.com/entry/Hardware-Arduino-Photoresister-2
수치를 그래프화 해본 결과, 처음 구입한 GL5528 (녹색) 은 가장 어둡게 해도
dark resistance 가 조금 높게 나옵니다. (스펙상으로는 1MΩ 이긴 한데...)
확인 결과 새로 구입한 세트에 있는 5539 (하늘색) 이 더 높은 dark resistance 를 보여 줬습니다.
어둡게 하면 거의 short 상태를 만들어 줄 수 있을 것 같습니다.
수치적으로도 5MΩ 정도면 short 상황을 만들 수 있겠네요.
7. 구동 확인
기존 GL5528을 제거하고 새로 구입한 5539 를 납땜해 주었습니다.
이제 대망의 마지막 확인 입니다.
5539 photoresistor 는 센서의 구불구불이 더 촘촘하네요.
어둡게 하면 의도대로 잘 동작합니다.
Photoresistor 에 샤프심 캡을 씌워, 어두운 상황을 만들어 동작 시키니 예상대로 반응합니다.
FIN
작년 7월에 처음 photoresistor 를 구매하여 실패의 실패를 거듭하여 겨우 확인 했습니다.
HC-SR501 센서는 이제 서랍으로 들어갈 수 있게 되었습니다.
Photoresistor 는 종류와 가용 범위가 많아서 잘 선택하고 사용해야겠습니다.
이제야 마음 편하게 다른 센서들 공부를 할 수 있겠네요.
'Hardware' 카테고리의 다른 글
Hardware | RadarBox24 신청부터 설치까지 (0) | 2018.03.07 |
---|---|
Hardware | Arduino 의 AREF pin 에 대해 알아보자 (0) | 2018.03.04 |
Hardware | Arduino 로 Photoresister 가지고 놀기 - 2 (0) | 2018.02.28 |
Hardware | Digitial Compass - HMC5883L 사용기 - 1 (0) | 2018.02.19 |
Hardware | MAX4466 마이크 앰프 breakout board 사용해 보기 (0) | 2018.02.11 |
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 |