아두이노 코딩-113: WeMos LOLIN 보드에서 조도센서로 LED를 ON OFF해보자.

in #kr8 years ago (edited)

noname01.png

조도 센서는 빛의 밝기에 의해 저항 값이 조절 되는 일종의 반도체성 가변 저항으로 실제로 도시의 수많은 가로등 ON OFF에 사용되는 센서이다.

noname02.png

한편 1957년에 신경망을 제작하여 인공지능 시대를 열었다고 하는 Rosenblatt이 퍼셉트론 장치를 제작하는데 망막을 포함하는 시각적 인식장치를 꾸미는데 20X20 즉 400개의 Cds 셀을 사용하였다. 하지만 지금은 시간이 많이 흘렀고 반도체가 엄청나게 발전했기 때문에 가장 작은 이미지 센서만 하더라도 30만 픽셀이기 때문에 그런 방법으로 실험 장치를 만들 필요는 없을 것이며 오히려 라즈베리 파이 보드에 맞게 제공되는 파이 카메라를 구입하여 설치 후 이미지 처리를 연구하는 것이 나을 듯하다.

이미 아두이노 우노 보드에서 1KΩ(멀티메터 실측 값 987Ω) 저항과 이 조도센서를 직렬 연결하여 창가에서 어두워질 때 조도센서의 급격한 저항 변화를 측정하였다. 물론 WeMos LOLIN 보드라고 해서 근본적으로 달라지는 것은 없겠으나 LOLIN 보드의 아날로그 입력 핀의 분해능이 12비트인 즉 0∼4095 단계까지로 보다 정밀한 측정이 가능해졌으므로 6.0KΩ을 중심으로 급격하게 변동되었던 조도센서의 저항 값과 전압 값을 다시 측정해 보기로 한다.

WeMos LOLIN 보드에서 변동하는 빛의 밝기 하에서 조도센서의 저항 값을 알아내기 위해서는 블로그 커버의 배선도를 참조하여 배선하도록 하자.

조도센서와 1KΩ(멀티메터 실측 값 987Ω) 저항과 만나는 점에서 점퍼선을 아날로그 입력을 읽을 수 있도록 핀 번호가 36인 VP 핀에 연결한다. 전원은 3V 로 표시한 3.3V 에 연결하도록 한다. 멀티메터로 실측해 보니 3.29V 가 나와 3.3V 로 보도록 한다.

반면에 전류제한 저항 220Ω과 직렬 연결하는 청색 LED는 디지털 데이터 핀 27번에 연결해 둔다.

결과 체크는 시리얼 모니터와 시리얼 플로터에서 에서 하기로 한다.

noname03.png

조도 센서의 저항 값 6K옴을 분기점으로 하여 그 이상이면 어두워진다는 뜻이므로 청색 LED를 ON 시키고 반대로 밝아지면 LED를 끄도록 하자. 분기점 기준은 자신이 설정하면 된다.

창가의 그늘 진 곳에서 조도 센서 저항 값 변동에 따른 LED ON OFF를 동영상을 통해서 관찰해 보자. 이미 좀 어두워져 지속적으로 LED가 ON 된 상태이지만 Cds 의 저항 값은 변동하고 있다. 파형 자체가 삐죽삐죽한 것으로 보아 노이즈가 심한 듯하여 향 후 파형을 정밀하게 관찰해 보고 저주파 필터링 처리를 하도록 하겠다.

//WeMos_lolin_Cds_01
float Volt = 3.3; //아두이노 전압 실측치
float r = 987.0; //1K옴 실측치
int ledPin = 27;
void setup() {
Serial.begin(9600);
pinMode(ledPin,OUTPUT);
}

void loop() {
int analogV = analogRead(36);//0-4095
//Serial.println(analogV);
float V = Volt*analogV/(4095);//Cds 전압 환산
float R_V = Volt-V;//1K저항 전압 계산
float i = R_V/r;//1K옴 저항 전류 계산, 암페어
float cdsR = V/i;//조도센서 저항 계산
Serial.println(cdsR);//시리얼 모니터 출력

if( cdsR<6000) {// 6000옴 이하면 ON
digitalWrite(ledPin,LOW);//밝으면 끄기
}
else {
digitalWrite(ledPin,HIGH);//어두우면 켜기
}
delay(1000);
}//프로그램 끝

Sort:  

점점 디자인도 깔끔해지고 있네요. 퍼셉트론이라 잘은 모르지만 보는 재미가 있군요 ㅎㅎㅎ

urobitic 님과 제가 아는 퍼셉트론 지식 차이는 하루정도 시간차에 불과하죠. Softmax 공부하다가 어저께부터 퍼셉트론으로 넘어 왔습니다. 간단한 코드도 올릴 예정입니다.

codingart 님은 참 수준이 높으신데 항상 겸손하셔서 신기합니다. 저 같으면 조금만 알아도 자랑하기 시작할 것 같은데요. ㅎㅎㅎ 오호. 퍼셉트론 재밌을 것 같습니다. ㅎㅎㅎ 저는 softmax도 모릅니다만 글 보면서 열심히 배우겠습니다.

urobotics 님은 개발자이시고 의외로 알고계시는 폭이 굉장히 넓어 보이기때문에 약간의 시간을 투자해서 softmax에 관해서 알아만 두셔도 큰 시너지를 얻으실 수 있을 것 같습니다.

아이고 예 고맙습니다. 쫌 잘하면 좋겠는데요. 아 softmax 도 강화학습이나 이런 쪽이군요. 아 희한하네요. 참 모르는 게 많군요. ㅎㅎㅎㅎ 예. 한 번 공부해보겠습니다. ㅎㅎ

안녕하세요. 코딩아트님 긴급 다시 들립니다.ㅎㅎㅎ 혹시 아두이노 글 쓰신 거나 IT쪽 출판해보실 생각 있으신가요? 마침 제가 IT 출판사 분을 한 분 알게 돼서요. 집필계획서 하나 써주시면 바로 컨택될 것 같거든요. 좋은 글 많이 쓰셨는데 몇 명만 보기는 아깝고 출판하면 좋을 것 같아서 말씀 드립니다.

저에겐 유로보틱스님이 항상 제일 고마운분 이신것 같아요. 별도로 출판 계획이란 건 없지만 예를 들마면 스팀잇에서 얼마전까지 게재한 아두이노 코딩 104번까지 전체 PDF 파일을 교보 POD(개인출판코너) 에 줘서 이미 "아두이노 Processing" 이란 타이틀로 출판이 되어 누구든지 복사판을 교보에서 사보실 수 있습니다. 그 이전의 많은" 아두이노 와파이 코딩" 이나 "라즈베리 와이파이 코딩" 및 "아두이노 앱인벤터 코딩" 모두 교보 POD 에 기 출판이 되어 있습니다. 책장사 목적은 아니고 석사논문 쓰면 복사점에 맞겨 찾아다 나눠줘서 공유하듯이 그런 방식입니다. 지금 올리는 머신 러닝분야도 곧 양이 다 찰듯하니 그런 방식으로 처리 할 계획입니다. 저두 물론 종이책이 필요해서 POD 출판 한권씩 구매 합니다.
지금가지 4권을 출판했는데 필요하시다면 네이버나에서 위 제목으로 검색해서 확인해 보시기 바랍니다. 원래 교재 출판이나 팔기 위한 책 출판은 전문 작가들에게도 힘든 작업이라 교보의 개인출판코너를 이용하게 되었지요. 참고하시기 바라며 더운 여름 건강하게 지내십시오.

개인출판 멋지네요. ㅎㅎ 찾아보고 가능한 방법으로 구매하겠습니다. 좋은 책 내주셔서 감사합니다. 많은 사람들이 읽었으면 합니다. 책장사가 어때서요. 좋은 걸로 돈 버는 건 좋은 일입니다. ㅎㅎㅎ 나중에 강의 하는데 컨택되면 한 번 연락 드리겠습니다.

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.082
BTC 60783.65
ETH 1557.84
USDT 1.00
SBD 0.47