조도 센서(CDS): 두 판 사이의 차이

아두위키 : Arduwiki
편집 요약 없음
편집 요약 없음
1번째 줄: 1번째 줄:
{{#seo:|title=아두위키 : 아두이노 조도 센서 가이드|title_mode=append|keywords=아두이노, 정보과학, 메이커학습, 수행평가, 조도 센서, 아두이노 작품, 캡스톤작품, 아두이노 예제코드, 엔트리 아두이노, 파이썬 아두이노|description=아두이노로 조도 센서를 사용하는 방법(기본정보, 회로, 예제 코드)를 소개합니다. 정보과학과 메이커수업에 활용가능합니다.}}[[파일:조도센서대표이미지.jpg|가운데|class=coders100]]빛이 밝을수록 저항값이 작아지는 센서입니다.
{{#seo:|title=아두위키 : 아두이노 조도 센서 가이드|title_mode=append|keywords=아두이노, 정보과학, 메이커학습, 수행평가, 조도 센서, 아두이노 작품, 캡스톤작품, 아두이노 예제코드, 엔트리 아두이노, 파이썬 아두이노|description=아두이노로 조도 센서를 사용하는 방법(기본정보, 회로, 예제 코드)를 소개합니다. 정보과학과 메이커수업에 활용가능합니다.}}[[파일:조도센서대표이미지.jpg|가운데|class=coders100]]빛이 밝을수록 저항값이 작아지는 센서입니다.


== '''필요 하드웨어''' ==
== '''필요 하드웨어''' ==


*CDS(조도센서)
*조도 센서(CDS)
*[[아두이노(Arduino)|아두이노 보드]]
*[[아두이노(Arduino)|아두이노 보드]]
*[https://gongzipsa.com/shop/1699939292 10K'''Ω''' 저항]
*[https://gongzipsa.com/shop/1699939292 10K'''Ω''' 저항]
*[https://gongzipsa.com/shop/1699939289 점퍼케이블]
*[https://gongzipsa.com/shop/1699939289 점퍼케이블]
*[[LED(5mm)|LED]](예제 사용)
*[[LED(5mm)|LED]] (예제 사용)
 


== '''연결''' ==
== '''연결''' ==
13번째 줄: 15번째 줄:
[[파일:LED 사용x 회로.png|없음|프레임|class=coders100|LED 미사용시 회로]]
[[파일:LED 사용x 회로.png|없음|프레임|class=coders100|LED 미사용시 회로]]
[[파일:LED 사용시 회로 .png|없음|프레임|class=coders100|LED 사용시 회로]]
[[파일:LED 사용시 회로 .png|없음|프레임|class=coders100|LED 사용시 회로]]


== '''예제 코드''' ==
== '''예제 코드''' ==
39번째 줄: 42번째 줄:




== '''고등학교 정보교과서(씨마스) 예제''' ==
== '''구매 링크''' ==


=== P. 211 스스로 해결하기① (조도 센서, LED) ===
* [https://gongzipsa.com/shop/1699939276 공집사몰]
본 예제는 교과서 내용에 따라 엔트리파이선을 사용합니다.
* [https://smartstore.naver.com/gongzipsa/products/7401195059 공집사 스마트스토어]
 
[[아두이노 사용 방법]] 문서에서 엔트리파이선을 활용 방법을 참고하세요.
 
 
[[파일:씨마스 예제 P.211.png|가운데|class=coders100]]
 
==== 연결 ====
[[파일:P211 스스로 해결하기 회로.jpg|가운데|class=coders100]]
 
==== 예제 코드 ====
조도 센서 값에 따라 켜지는 LED 개수가 달라집니다.
 
사용 환경에 따라 var 값의 기준을 변경해주세요.<syntaxhighlight lang="python3" line="1">
import Entry
import Arduino
 
def when_start():
    while True:
        var = Arduino.analogRead("A0")
        if var > 0:
            Arduino.digitalWrite(8,"HIGH")
else:
Arduino.digitalWrite(8,"LOW")
        if var > 30:
            Arduino.digitalWrite(9,"HIGH")
else:
Arduino.digitalWrite(9,"LOW")
        if var > 60:
            Arduino.digitalWrite(10,"HIGH")
else:
Arduino.digitalWrite(10,"LOW")
        if var > 90:
            Arduino.digitalWrite(11,"HIGH")
else:
Arduino.digitalWrite(11,"LOW")
        if var > 120:
            Arduino.digitalWrite(12,"HIGH")
else:
Arduino.digitalWrite(12,"LOW")
</syntaxhighlight>
 
 
 
간단한 반복문을 추가한 코드입니다. 동작은 위 코드와 동일합니다.<syntaxhighlight lang="python3" line="1">
import Entry
import Arduino
 
def when_start():
    while True:
ledpin = 8
k = 0
var = Arduino.analogRead("A0")
for i in range(5):
if var > k:
Arduino.digitalWrite(ledpin,"HIGH")
else:
Arduino.digitalWrite(ledpin,"LOW")
ledpin += 1
k += 30
</syntaxhighlight>
 
=== 실행결과 ===
[[파일:P211 스스로 해결하기 실행결과.jpg|가운데|class=coders100]]
 
== '''구매 링크''' ==
[https://gongzipsa.com/shop/1699939276 공집사몰]

2023년 12월 14일 (목) 16:35 판

빛이 밝을수록 저항값이 작아지는 센서입니다.


필요 하드웨어


연결

LED를 사용하지 않더라도, 조도 센서 측정 값을 시리얼 모니터로 확인하실 수 있습니다.

LED 미사용시 회로
LED 사용시 회로


예제 코드

조도 센서 값을 시리얼 모니터로 출력하고, 센서 값에 따라 LED의 밝기가 변하는 예제입니다.

#define A_cds A0

void setup()
{
  //시리얼 통신 보드레이트 설정
  Serial.begin(9600);
}

void loop()
{
  //analogRead로 들어오는 전압값을 읽습니다.
  //analogRead는 0~5V의 전압을 0~1024의 정수값으로 대응시킵니다.
  double value = analogRead(A_cds);
  Serial.print("value : ");
  Serial.println(value);
  delay(1000);
}

실행결과

조도 센서를 가리지 않았을 때(좌) 조도 센서를 가렸을 때(우) LED 밝기 비교
조도 센서를 가리지 않았을 때(좌) 조도 센서를 가렸을 때(우) LED 밝기 비교


구매 링크