본문 바로가기
오픈소스하드웨어/마이크로:비트

[마이크로 비트 with 파이썬] 조도센서 사용법

by 북마크한 취미생활 2020. 5. 22.

자동차가 터널을 들어갈 때 자동차 헤드라이트가 자동으로 켜진다던가 스마트폰을 밝은 곳에서 사용하다 어두운 곳으로 이동을 했을 때 LCD 화면이 서서히 어두워지 등의 빛의 밝기를 알려주는 조도센서는 생활 곳곳에서 활용되고 있습니다.

이번 포스팅에서는 이렇게 빛의 밝기를 측정하는 센서를 마이크로 비트(micro:bit)에서 사용하는 방법에 대해 알아보도록 하겠습니다.

| 회로 구성

조도센서를 테스트하기 위해서 아래와 같이 회로를 구성해 주면 됩니다.

▲ 회고 구성

조도센서를 연결할 때 저의 경우 저항을 220옴을 사용했는데, 다른 값의 저항을 사용하셔도 무방합니다. 상기 그림의 회로 구성에서 1번 pin의 경우 꼭 1번 pin일 경우는 없고 마이크로 비트(micro:bit)의 아날로그를 사용할 수 있는 pin에 연결하시면 됩니다.

| 조도센서 값을 확인하기 위한 코드

회로 연길시 사용한 저항값과 테스트 환경에 따라 제가 측정한 조도센서 측정값과 동일하게 나오지 않습니다. 따라서 자신의 환경에 맞는 값이 얼마인지 확인이 필요합니다.

측정값을 확인하기 위해서 하기의 코드를 마이크로 비트(micro:bit)에 업로드(Flash) 한 뒤에 REPL을 통해 확인을 하시면 됩니다.

from microbit import *

while True:
    value = pin1.read_analog() 
    print(value)
    sleep(500)

해당 코드를 간단히 설명드리면 1번 pin에 연결된 조도센서의 값을 읽고 0.5초마다 read_analog( ) 함수를 통해 측정하고, 이 값을 print( ) 함수를 통해 볼 수 있도록 출력해 주는 python 코드입니다.

REPL에 진입하기 위해서 Mu 에디터에서 REPL 버튼을 눌러 모드를 전환합니다.

REPL 모드에서 CTRL+D 키를 누르면 올려진 코드의 run-time message로 볼 수 있습니다.

저의 경우 조도센서를 가리지 않은 경우 78 값을, 조도센서를 가린 경우 11 값이 측정이 되었습니다. 이 부분은 이전에 말씀드렸듯이 제가 측정한 값과 다르니 자신의 환경에서 측정값을 확인해야 합니다.

| 조도에 따라 변하는 얼굴

조도센서에서 측정한 결과를 바탕으로 조도센서를 가리지 않았을 경우에는 웃은 얼굴이, 가려졌을 경우에는 찡그린 얼굴이 마이크로 비트 내장 LED display에 표기되는 코드를 만들 것입니다.

▲ 센서값에 따라 변하는 얼굴 논리 흐름

| 조도에 따라 변하는 얼굴 파이썬 코드

from microbit import *

while True:
    value = pin1.read_analog() 
    if value > 32 :
        display.show(Image.HAPPY)
    else :
        display.show(Image.SAD)
    sleep(50)

제가 측정한 조도값이 11 ~ 75 사이에 측정됨으로 손으로 조도센서를 가린 기준을 32로 설정(if value > 32 :)을 하였습니다. 이 값을 실제 환경에서 측정한 값을 기준으로 설정하시면 됩니다.

| 실행 모습

해당 코드를 마이크로 비트(micro:bit)에 업로드하고 실행을 하면, 조도센서를 가리는 동작에 따라 아래와 같이 LED가 변하는 것을 보실 수 있습니다.

▲ 조도센서값에 따라 달라지는 LED Display

조도센서를 활용하여 마이크로 비트(micro:bit)로 재미있는 작품 만들어 보시길 바랍니다.

긴 글 읽어 주셔서 감사합니다.

반응형

댓글