본문 바로가기
C++

[C++] 아두이노로 조도센서 사용하기

by teamnova 2023. 12. 31.

안녕하세요. 이번 시간에는 아두이노로 조도센서를 사용하는 예제를 진행하겠습니다.

 

아두이노에 대해 기본적인 내용을 알고 싶다면 아래 게시글을 참고해주세요. 

https://stickode.tistory.com/1044

 

[C++] 아두이노로 서보 모터 사용하기

이번 시간에는 아두이노로 조이스틱 모듈 사용하는 예제를 진행하겠습니다. 1. 아두이노란? 아두이노(Arduino)는 사용하기 쉬운 하드웨어와 소프트웨어를 기반으로 한 오픈 소스 전자 플랫폼입니

stickode.tistory.com

 

 

1. 조도센서란?

빛의 양이 얼마인지 측정하는 센서로 빛 센서라고도 부릅니다. 

조도센서는 빛의 양에 따라 저항의 값이 변하는데,

빛의 양이 많을수록 저항이 약해져서 전류를 많이 흘려보내게 됩니다.

조도센서

 

 

2. 환경 세팅

아두이노 우노 / 저항 / 조도센서 / 브레드보드 / LED

 

그리고 브레드보드를 사용할 건데요,

브래드 보드란 전자제품 시제품을 만들때 납땜없이  회로를 시험해 볼 수 있는 도구입니다.

브레드보드 내부에 금속선이 있는데 아래 사진과 같은 구조로 배치되어 있습니다.

브래드보드 내부 금속선 구조

 

파란선과 빨간선이 지나가는 부분은 버스띠(bus strip),

초록선이 지나가는 부분은 단자 띠(terminal strip)라고 부릅니다. 

 

버스띠는 주로 전원 공급에 사용하고, 단자띠는 주로 부품들간의 연결에 사용합니다.

 

 

3. 연결

아래 사진과 같이 연결해줍니다.

조도센서에서 측정된 값을 눈으로 볼 수 있도록 LED를 추가했습니다.

빛이 밝아질수록 LED가 밝아지도록 만들어보겠습니다.

회로도

 

 

4. 소스 코드

// LED 핀을 11로 정의
#define LED 11
// 조도센서(빛 감지 센서) 핀을 A0로 정의
#define PHOTO A0

// 변수 val을 0으로 초기화
int val = 0;

// 초기 설정 함수
void setup()
{
  // 초기 설정 없음
}

// 메인 루프 함수
void loop()
{ 
  // 조도센서 값을 읽어와서 0에서 1023 사이의 값에서 0에서 255 사이의 값으로 변환
  val = map(analogRead(PHOTO), 0, 1023, 0, 255);
  
  // 변환된 값(val) 크기만큼 LED 출력
  analogWrite(LED, val);
}

 

 

 

5. 실행