6. 불끄기가 귀찮다면 마이크로비트로 전등 만들기

【활동 하기】


1. 조도센서 사용하기

2. 자동 전등 만들기

3. 다음 문제 해결하기

자동차를 타고 가다 보면 터널을 지날 때가 있다. 터널 안은 어둡기 때문에 자동차의 전조등을 켜야한다. 최근의 자동차들은 거의 대부분 오토라이트 기능이 있어 어두운 곳에 들어가면 자동으로 전조등이 켜진다. 집에서도 저녁이 되면 자동으로 불이 켜지는 전등이 있다면 어떨까? 마이크로비트의 빛 센서를 통해 자동 전등을 만들어 보자.

1 조도센서 사용하기

마이크로비트에는 활용할 수 있는 다양한 센서들이 존재한다. 1단원에서 소개했던 센서들 중 조도센서를 활용해서 지금 현재 위치의 빛의 세기가 어느 정도인지 확인해 본다.


1
이미지. 메이크코드 마이크로비트 블록코딩의 스크린샷. A버튼 누르면 실행 블록

마이크로비트에서는 센서에서 받아들이는 값을 LED 스크린에 표기 할 수 있다.

[무한반복 실행] 블록이나 [시작하면 실행] 블록을 사용하면 정확한 센서 값을 알 수 없기 때문에 A 버튼이나 B 버튼을 이용하여 값을 확인한다.

2
이미지. 메이크코드 마이크로비트 블록코딩의 스크린샷. A버튼 누르면 실행 블록 안에 수 출력 블럭이 들어가 있다.

빛 센서에서 읽은 빛의 세기 값을 LED에 표현하기 위해서는 LED에 숫자를 출력할 수 있도록 [A버튼 누르면 실행] 블록 안에 [수 출력] 블록을 넣어 준다.

3
이미지. 메이크코드 마이크로비트 블록코딩의 스크린샷. A버튼 누르면 실행 블록 안에 빛 센서 값 수 출력 버튼이 들어가 있다."

만약(if) 참(True) 이면(Then) 실행 블록에 비교 블록에 기준 값에 빛 센서 값 블록을 넣는다.

4
이미지. 메이크코드 마이크로비트 블록코딩의 스크린샷. 마이크로 비트의 LED에 빛 센서 값이 표시된 스크린샷.
A 버튼을 눌러 현재 빛의 세기 값을 확인해 보자.


2 자동 전등만들기

앞서 조도센서를 활용해서 빛의 값을 읽는 방법을 학습하였다. 그렇다면 우리가 만들고 싶은 자동 전등은 어떻게 만들 수 있을까? 조건 블록을 사용하여 조도센서의 값이 기준으로 정한 수 이하가 되면 마이크로비트의 LED가 켜지도록 코드를 구성해보자.


1
이미지. 메이크코드 마이크로비트 블록코딩의 스크린샷. 무한반복 실행 블록

주변의 밝기가 원하는 값보다 어두워졌을 때 불이 켜지게 하려면 빛 센서가 끊임없이 주변의 빛의 세기를 측정해야 한다. 그럼 어떤 블록을 사용해야 할까? 끊임없이 반복해서 측정해야 하기 때문에 [무한반복 실행] 블록을 사용한다.

2
이미지. 메이크코드 마이크로비트 블록코딩의 스크린샷. 무한반복 실행 안에 만약 0 이상 50미만이면 실행 아니면 실행 블록이 들어가 있다.

만약 방에서 불이 켜져야 할 정도로 어둡다고 느끼는 빛의 세기의 크기가 50이라고 정하자. 빛의 세기가 50보다 작을 때라는 조건에서 실행하기 위해서는 [만약(if) 참(True) 이면(Then) 아니면(else) 실행] 블록을 사용하여 조건을 입력한다.

3
이미지. 메이크코드 마이크로비트 블록코딩의 스크린샷. 무한반복 실행 안에 만약 빛 센서 값이 이상 50미만이면 실행 아니면 실행 블록이 들어가 있다.

[만약(if) 참(True) 이면(Then) 실행] 블록에 비교 블록에 기준 값에 빛 센서 값 블록을 넣는다.

4
이미지. 메이크코드 마이크로비트 블록코딩의 스크린샷. 무한반복 실행 안에 만약 빛 센서 값이 이상 50미만이면 LED 전부 켜는 출력 블록이 들어있고, 아니면 LED를 전부 끄는 출력 블록이있다.

조건에 맞는다면 마이크로비트의 LED를 모두 켜고 아니면 LED를 모두 꺼지도록 [LED 출력] 블록을 넣는다.

마이크로비트의 조도센서는 LED와 같은 위치에 있다. 빛의 세기 값을 줄이려면 LED에 그림자가 생기도록 가려보자. 불이 켜질까?


이미지. 조도센서에 그림자를 생기게 하여 LED가 켜지는 모습의 동영상

3 다음의 문제 해결하기

1. 밝을 때는 밝게 어두울 때는 어둡게 만들려면 어떻게 해야 할까?
2. 빛의 세기에 따라 LED의 밝기가 점점 밝아 지거나 점점 어두워지게 할 수 없을까?