코딩과 아두이노의 찰떡궁합 Ep-15

안녕하세요~^^ 에듀아이입니다^^

이번 시간에는 빛의 밝기를 측정하는 조도센서 모듈과 LED를 연결해 스마트한 가로등을 구현해보겠습니다.

조도센서로 빛의 밝기를 측정해 어두우면 LED가 켜지고, 밝아지면 LED가 꺼지도록 해보겠습니다.

우선 연결에 필요한 부품부터 알아보겠습니다~^^


아두이노 우노(Uno), 조도센서모듈, LED, 암수 케이블이 필요합니다.


위 부품을 아래와 같이 연결해주세요~

LED의 긴핀을 디지털 11번 핀에, 짧은핀은 GND에 연결합니다.

조도센서 모듈의 S핀을 아두이노 우노의 A0에, -핀을 GND에, 표기되어 있지 않은 가운데 핀을 5V에 연결합니다.

조도센서 모듈은 빛의 밝기를 측정하는 아날로그 센서입니다. 빛의 밝기를 측정해 0~1023의 값으로 표현합니다. 가장 밝은 상태의 값을 0으로, 가장 어두울때의 상태 값을 1023으로 표현해줍니다.

이번 코드는 지난번 가변저항을 이용한 LED 제어 코드와 같습니다.

코드를 자세히 살펴보겠습니다.

작성이 어려우실것 같아 아래 코드를 올려드리니 복사해서 사용하세요~^^

작성이 어려운 분들은 아래 코드를 복사해 사용하세요~ void setup() { pinMode(11, OUTPUT); // 11번(LED) 핀을 출력 모드로 설정 } void loop() { int RValue = analogRead(A0); // 아날로그 0번 핀 값을 RValue 변수에 저장 analogWrite(11, RValue/4); // 조도센서의 상태 값에 따라 11번 핀 LED 밝기 조절 delay(10); }
위 코드에 대해 설명드리겠습니다. void setup() { } 내용은 처음 한번만 실행되는 내용을 코딩하는 곳입니다. void loop() { } 내용은 반복해서 실행할 내용을 코딩하는 곳입니다.
pinMode(11, OUTPUT); 디지털 11 핀(LED가 연결된 핀)을 출력 모드로 설정하는 내용이 들어갑니다.
int RValue = analogRead(A0); int RValue 는 RValue라는 변수를 정수형(Integer)으로 선언하는(만드는) 명령입니다. =analogRead(A0);은 조도센서를 연결한 아날로그 0번핀의 값을 읽어와 RValue 변수에 넣으라는 명령입니다.
analogWrite(11, RValue/4); analogWrite()는 괄호안에 설정한 핀번호로 신호를 보내는 명령입니다. 괄호 안에는 2개의 인수가 들어가는데, 첫번째 인수는 핀번호이고, 두번째 인수는 핀의 상태값을 표기하는 것입니다. 지난 시간에 설명드린 내용과 같습니다. analogWrite()의 두번째 인수는 0~255의 값으로 LED의 밝기를 제어합니다. 0은 LED를 끈 상태이고 255는 LED가 가장 밝게 빛나는 상태를 의미합니다. 128 정도면 중간정도의 LED 밝기가 되겠죠?^^ RValue는 조도센서의 값을 읽어와 저장해놓은 변수입니다. 이 값에 나누기 4(/4)를 한 이유는 조도센서로부터 측정된 값이 0~1023까지이기 때문입니다. 아날로그 장치는 상태값이 0~1023 사이의 값을 가지며, 디지털 장치는 0~255의 값을 갖습니다. 아두이노 보드를 보면 디지털 핀번호 앞에 물결모양(~)이 표시되어 있는 번호가 있습니다. 3, 5, 6, 9, 10, 11번 핀입니다. 이 핀들을 PWM(Pulse Width Modulation) 지원 핀이라고 합니다. PWM은 디지털 값이 0, 1 사이에 254단계의 미세한 전류 변화값을 설정할 수 있다고 이해하시면 됩니다. PWM을 제어할 때는 analogWrite()를 이용합니다.
delay(10); delay는 바로 윗줄의 코드 내용을 일정한 시간동안 지속하는 명령입니다. delay(10);은 0.01초 동안 유지하라는 의미입니다. 1초나 2초로 설정하지 않는 이유는 void loop(){ } 내용은 계속 무한 반복되기 때문에 길게 설정하지 않아도 됩니다.

이제 코드를 업로드해 테스트를 해볼 시간입니다^^

동영상으로 코드 내용을 업로드한 결과를 보겠습니다.

https://www.youtube.com/watch?v=ftvZLuR8x5U

오늘 내용은 여기까지 입니다.

▶상상을 현실로 만드는 아두이노(Arduino)

■ 박경진 지음 / 에듀아이 출판

■ 알라딘, Yes24, 교보문고, 영풍문고, 반디앤루니스, 인터파크에서 구입가능합니다.

[책에서 다루는 내용]

■ 소프트웨어 코딩을 이해하고 아두이노에 업로드/테스트하는 방법

■ 서서히 색상이 그라데이션 형태로 바뀌는 LED 무드등 만들기

■ 리드 스위치 모듈로 창문이나 현관 문 열림 감지하기

■ 토양 수분 센서로 화분의 수분 상태를 측정해 물 공급시기 체크하기

■ 비접촉식 온도 센서로 비접촉 체온 측정기 만들기

■ 이 세상 하나뿐인 우리집 미세 먼지 측정기 만들기

■ 주변 밝기를 측정해 자동으로 켜지고 꺼지는 스마트 전등(가로등) 만들기

■ 거리를 측정하는 초음파 센서를 이용해 자동차 후방 감지기 만들기

■ 일정한 거리내의 사람을 인식해 자동으로 열리고 닫히는 스마트 휴지통 만들기

■ 스마트폰 블루투스로 연결해 제어하는 RC 카 만들기

■ 집밖에서 스마트폰으로 집안의 사물인터넷 기기 제어

[이 책의 대상 독자]

■ 소프트웨어 교육 의무화로 소프트웨어 코딩을 배우고 싶은 학생

■ 사물인터넷 제품을 만들어 스마트 홈을 구현하고 싶은 독자

■ 어렸을 때 생각했거나 상상했던 제품을 직접 만들어보고 싶은 독자

■ 소프트웨어와 하드웨어의 상관 관계를 이해하고 제어하고 싶은 독자

■ 로봇, 드론 등의 제품 구현을 위한 기본 지식을 습득하고자 하는 독자

끝까지 읽어주셔서 고맙습니다^^

다음 에피소드에서 또 뵙겠습니다^^

테크스타트업 ・ 테크놀로지 ・ 부모 ・ 컴퓨터공학
IT 교육전문가 코딩, 소프트웨어, 사물인터넷 정보보안, 스마트폰 영상편집 등의 강의 및 출판을 전문으로하는 1인기업입니다.
Follow
4.7 Star App Store Review!
Cpl.dev***uke
The Communities are great you rarely see anyone get in to an argument :)
king***ing
Love Love LOVE
Download

Select Collections