주변 밝기에 따라 자동으로 불이 켜지고 꺼지는 LED 만들기(천재교육 정보교과서): 두 판 사이의 차이

아두위키 : Arduwiki
(새 문서: {{#seo:|title=아두위키 : 아두이노 조도 센서(CDS)(씨마스 정보교과서) 가이드|title_mode=append|keywords=아두이노, 정보과학, 메이커학습, 수행평가, 조도 센서, 아두이노 작품, 아두이노 예제코드, 엔트리 아두이노, 파이썬 아두이노|description=씨마스 고교 정보교과서 내용에 따라 아두이노로 조도 센서를 사용하는 방법(기본정보, 회로, 예제 코드)을 소개합니다. 정보과학과...)
 
잔글편집 요약 없음
 
(같은 사용자의 중간 판 8개는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{#seo:|title=아두위키 : 아두이노 조도 센서(CDS)(씨마스 정보교과서) 가이드|title_mode=append|keywords=아두이노, 정보과학, 메이커학습, 수행평가, 조도 센서, 아두이노 작품, 아두이노 예제코드, 엔트리 아두이노, 파이썬 아두이노|description=씨마스 고교 정보교과서 내용에 따라 아두이노로 조도 센서를 사용하는 방법(기본정보, 회로, 예제 코드)을 소개합니다. 정보과학과 메이커수업에 활용가능합니다.}}본 위키는 씨마스 고교 정보교과서 내 조도 센서(CDS)에 해당하는 내용을 서술합니다.
{{#seo:|title=아두위키 : 아두이노 주변 밝기에 따라 자동으로 불이 켜지고 꺼지는 LED 만들기(천재교육 정보교과서) 가이드|title_mode=append|keywords=아두이노, 정보과학, 메이커학습, 수행평가, 조도 센서, 아두이노 작품, 아두이노 예제코드, 엔트리 아두이노, 파이썬 아두이노|description=천재교육 고교 정보교과서 내용에 따라 아두이노로 주변 밝기에 따라 자동으로 불이 켜지고 꺼지는 LED 만드는 방법(기본정보, 회로, 예제 코드)을 소개합니다. 정보과학과 메이커수업에 활용가능합니다.}}본 위키는 천재교육 고교 정보교과서 P. 215 ~ 218 주변 밝기에 따라 자동으로 불이 켜지고 꺼지는 LED 만들기에 대한 내용을 서술합니다.


[[조도 센서(CDS)|'''조도 센서(CDS)''']] 문서에서 모듈에 대한 기본 정보를 참고해주세요.
[[조도 센서(CDS)|'''조도 센서(CDS)''']] 문서에서 이번 예제에 사용되는 조도 센서(교과서에서는 빛 센서로 명칭)에 대한 기본 정보를 참고해주세요.


※ 교과서 내용에 따라 엔트리파이선을 사용합니다.
※ 교과서 내용에 따라 엔트리를 함께 사용합니다.


[[아두이노 사용 방법|'''아두이노 사용 방법''']] 문서에서 엔트리파이선 활용 방법을 참고하세요.
[[아두이노 사용 방법|'''아두이노 사용 방법''']] 문서에서 엔트리에 하드웨어(아두이노)를 연결하여 사용하는 방법을 참고해주세요.


== '''P. 211 스스로 해결하기① (조도 센서, LED)''' ==
조도 센서 값이 기준값 아래이면 LED가 켜지는 프로그램


=== 연결 ===
== '''P. 215 ~ 216 피지컬 컴퓨팅 시스템의 구현, 자동으로 불이 켜지는 LED 만들기''' ==
[[파일:P211 스스로 해결하기 회로.jpg|가운데|class=coders100]]
조도 센서는 주변 밝기를 0 ~ 1023 아날로그 값으로 출력하는 모듈입니다.


=== 예제 코드 ===
주변 밝기 값이 기준값(임의 설정)보다 낮으면('''어두운 경우''') LED가 켜지고, 높으면('''밝은 경우''') LED가 꺼지는 예제입니다.
조도 센서 값에 따라 켜지는 LED 개수가 달라집니다.
 
 
=== 회로 구성 ===
교과서 217페이지에 표시된 회로와 동일합니다.
 
* '''LED'''에 연결된 저항 : '''220 ~ 1kΩ'''을 주로 사용하며, 저항이 클수록 LED 밝기가 줄어듭니다.
* '''조도 센서'''에 연결된 저항 : '''10kΩ'''을 주로 사용하며 저항 값이 낮아질수록 감도가 낮아집니다.
 
[[파일:천재교육고교정보교과서예제1회로.jpg|가운데|class=coders100]]
 
=== 엔트리 ===
엔트리 사용 관련 내용은 [[아두이노 사용 방법|'''아두이노 사용 방법''']] 문서의 내용과 동일합니다.
 
 
==== 엔트리 설치 ====
1. [https://playentry.org/ 엔트리 홈페이지] 접속
 
2. 다운로드 탭 클릭
[[파일:엔트리_다운로드1.png|가운데|클래스=coders100]]
3. 운영체제에 맞는 버전을 다운로드하신 후 및 실행하여 설치해주세요.
 
 
==== 하드웨어 연결 ====
1. 설치된 엔트리 오프라인 프로그램를 실행합니다.
 
2. 컴퓨터(혹은 노트북)에 아두이노 보드를 연결합니다.
 
3. 하드웨어 - 연결 프로그램 열기 버튼을 누릅니다.
[[파일:엔트리_하드웨어1.png|가운데|클래스=coders70]]
 
 
 
4. 해당하는 하드웨어를 선택해주세요. 본문에서는 아두이노 Uno 확장모드를 사용합니다.
 
<nowiki>*</nowiki> [[아두이노 사용 방법|포트 번호 확인 방법]]은 링크 문서로 이동해 초반부의 장치 관리자 관련 내용을 참고해주세요.
[[파일:엔트리_하드웨어_선택.png|가운데|클래스=coders70]]
 
5. 최초 실행 시 드라이버와 펌웨어를 설치를 눌러줍니다.
[[파일:엔트리_펌웨어_설치.png|가운데|클래스=coders100]]
 
6. 하드웨어가 정상적으로 연결이 완료되었다면 다음과 같이 새로운 블록이 생성됩니다.
[[파일:엔트리_하드웨어_연결완료.png|가운데|클래스=coders70]]
 
 
==== 엔트리봇 코딩 ====
시작하기 버튼을 누르면 엔트리봇이 아날로그 A0 센서(조도 센서) 값을 계속 말하도록 코딩해주세요.
 
[[파일:천재교육고교정보교과서예제1엔트리봇코딩.jpg|가운데|class=coders100]]
 
 
==== 배경 코딩 ====
1. 오브젝트 추가하기 버튼을 클릭합니다.
 
[[파일:천재교육고교정보교과서예제1배경추가1.jpg|class=coders50]]
 
2. 배경을 선택하여 추가합니다.
 
[[파일:천재교육고교정보교과서예제1배경추가2.jpg|가운데|class=coders100]]
 
 
 
3. 다음과 같이 배경 오브젝트에 코딩해주세요.
 
※ 교과서에 표기된 코드를 조금 수정했습니다. 조도 센서는 주변이 어두울수록 값이 낮아집니다. 주변이 어두워지면 LED를 켤 것이기 때문에 센서 값이 기준값보다 낮을 때 LED가 켜지고, 배경은 밤이 되도록 코드가 수정되었습니다.
 
[[파일:천재교육고교정보교과서예제1배경코딩.jpg|가운데|class=coders100]]


사용 환경에 따라 var 값의 기준을 변경해주세요.
'''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")
간단한 반복문을 추가한 코드입니다. 동작은 위 코드와 동일합니다.
'''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


=== 실행결과 ===
=== 실행결과 ===
[[파일:P211 스스로 해결하기 실행결과.jpg|가운데|class=coders100]]
 
==== 1. 좌측 ====
핸드폰 후레쉬를 비추어 밝은 환경으로 만들어준 상태입니다.
 
엔트리 배경은 낮이 된 모습이고, 0 ~ 1023 중 비교적 높은 값을 말하고 있습니다.
 
아두이노에 연결된 LED는 꺼져있는 모습니다.
 
==== 2. 우측 ====
어두운 환경으로 만들어준 상태입니다.
 
엔트리 배경은 밤이 된 모습이고, 0 ~ 1023 중 비교적 낮은 값을 말하고 있습니다.
 
아두이노에 연결된 LED가 켜진 모습입니다.
 
[[파일:천재교육고교정보교과서예제1실행결과.jpg|가운데|class=coders100]]
 
 
== '''P. 217 ~ 218 아두이노를 이용하여 자동으로 불이 켜지는 LED 만들기''' ==
위와 거의 동일한 예제이지만, 엔트리 대신 아두이노를 사용합니다.
 
아두이노를 처음 사용하신다면 [[아두이노 사용 방법|'''아두이노 사용 방법''']] 문서에서 아두이노 IDE 사용법을 먼저 참고해주세요.
 
 
=== 회로 구성 ===
이전 회로와 동일합니다.
 
[[파일:천재교육고교정보교과서예제1회로.jpg|가운데|class=coders100]]
 
 
=== 아두이노 코드 ===
조도 센서 값을 기준으로 LED를 켜거나 끄는 코드입니다.<syntaxhighlight lang="c++" line="1">
int sensor = 0; // 조도 센서 값을 저장할 변수입니다. 0으로 초기화합니다.
 
void setup() {
  pinMode(7, OUTPUT); // 7번(LED) 핀을 출력으로 설정합니다.
}
 
void loop() {
  sensor = analogRead(A0); // A0 핀에 연결된 조도 센서 값을 읽어와 sensor 변수에 저장합니다.
  if (sensor > 500)        // 조도 센서 값(0 ~ 1023)이 500보다 크다면 * 주위가 밝다면
    digitalWrite(7, LOW);  // 7번 핀(LED)에 LOW 신호를 보내 LED를 끕니다.
  else                    // 그렇지 않다면(조도 센서 값이 500 이하라면) * 주위가 어둡다면
    digitalWrite(7, HIGH); // 7번 핀(LED)에 HIGH 신호를 보내 LED를 켭니다.
}
</syntaxhighlight>
 
 
=== 실행 결과 ===
P. 215 ~ 216 예제와 동일하게 LED가 작동합니다.
 
* '''좌측''' : 휴대폰 후레쉬를 비춰 주변이 밝은 상태이기 때문에 LED가 꺼진 모습입니다.
* '''우측''' : 주변이 어두운 상태이기 때문에 LED가 켜진 모습입니다.
 
[[파일:천재교육고교정보교과서예제2실행결과.jpg|가운데|class=coders100]]

2024년 8월 14일 (수) 17:12 기준 최신판

본 위키는 천재교육 고교 정보교과서 P. 215 ~ 218 주변 밝기에 따라 자동으로 불이 켜지고 꺼지는 LED 만들기에 대한 내용을 서술합니다.

조도 센서(CDS) 문서에서 이번 예제에 사용되는 조도 센서(교과서에서는 빛 센서로 명칭)에 대한 기본 정보를 참고해주세요.

※ 교과서 내용에 따라 엔트리를 함께 사용합니다.

아두이노 사용 방법 문서에서 엔트리에 하드웨어(아두이노)를 연결하여 사용하는 방법을 참고해주세요.


P. 215 ~ 216 피지컬 컴퓨팅 시스템의 구현, 자동으로 불이 켜지는 LED 만들기

조도 센서는 주변 밝기를 0 ~ 1023 아날로그 값으로 출력하는 모듈입니다.

주변 밝기 값이 기준값(임의 설정)보다 낮으면(어두운 경우) LED가 켜지고, 높으면(밝은 경우) LED가 꺼지는 예제입니다.


회로 구성

교과서 217페이지에 표시된 회로와 동일합니다.

  • LED에 연결된 저항 : 220 ~ 1kΩ을 주로 사용하며, 저항이 클수록 LED 밝기가 줄어듭니다.
  • 조도 센서에 연결된 저항 : 10kΩ을 주로 사용하며 저항 값이 낮아질수록 감도가 낮아집니다.

엔트리

엔트리 사용 관련 내용은 아두이노 사용 방법 문서의 내용과 동일합니다.


엔트리 설치

1. 엔트리 홈페이지 접속

2. 다운로드 탭 클릭

3. 운영체제에 맞는 버전을 다운로드하신 후 및 실행하여 설치해주세요.


하드웨어 연결

1. 설치된 엔트리 오프라인 프로그램를 실행합니다.

2. 컴퓨터(혹은 노트북)에 아두이노 보드를 연결합니다.

3. 하드웨어 - 연결 프로그램 열기 버튼을 누릅니다.


4. 해당하는 하드웨어를 선택해주세요. 본문에서는 아두이노 Uno 확장모드를 사용합니다.

* 포트 번호 확인 방법은 링크 문서로 이동해 초반부의 장치 관리자 관련 내용을 참고해주세요.

5. 최초 실행 시 드라이버와 펌웨어를 설치를 눌러줍니다.

6. 하드웨어가 정상적으로 연결이 완료되었다면 다음과 같이 새로운 블록이 생성됩니다.


엔트리봇 코딩

시작하기 버튼을 누르면 엔트리봇이 아날로그 A0 센서(조도 센서) 값을 계속 말하도록 코딩해주세요.


배경 코딩

1. 오브젝트 추가하기 버튼을 클릭합니다.

2. 배경을 선택하여 추가합니다.


3. 다음과 같이 배경 오브젝트에 코딩해주세요.

※ 교과서에 표기된 코드를 조금 수정했습니다. 조도 센서는 주변이 어두울수록 값이 낮아집니다. 주변이 어두워지면 LED를 켤 것이기 때문에 센서 값이 기준값보다 낮을 때 LED가 켜지고, 배경은 밤이 되도록 코드가 수정되었습니다.


실행결과

1. 좌측

핸드폰 후레쉬를 비추어 밝은 환경으로 만들어준 상태입니다.

엔트리 배경은 낮이 된 모습이고, 0 ~ 1023 중 비교적 높은 값을 말하고 있습니다.

아두이노에 연결된 LED는 꺼져있는 모습니다.

2. 우측

어두운 환경으로 만들어준 상태입니다.

엔트리 배경은 밤이 된 모습이고, 0 ~ 1023 중 비교적 낮은 값을 말하고 있습니다.

아두이노에 연결된 LED가 켜진 모습입니다.


P. 217 ~ 218 아두이노를 이용하여 자동으로 불이 켜지는 LED 만들기

위와 거의 동일한 예제이지만, 엔트리 대신 아두이노를 사용합니다.

아두이노를 처음 사용하신다면 아두이노 사용 방법 문서에서 아두이노 IDE 사용법을 먼저 참고해주세요.


회로 구성

이전 회로와 동일합니다.


아두이노 코드

조도 센서 값을 기준으로 LED를 켜거나 끄는 코드입니다.

int sensor = 0; // 조도 센서 값을 저장할 변수입니다. 0으로 초기화합니다.

void setup() {
  pinMode(7, OUTPUT); // 7번(LED) 핀을 출력으로 설정합니다.
}

void loop() {
  sensor = analogRead(A0); // A0 핀에 연결된 조도 센서 값을 읽어와 sensor 변수에 저장합니다.
  if (sensor > 500)        // 조도 센서 값(0 ~ 1023)이 500보다 크다면 * 주위가 밝다면
    digitalWrite(7, LOW);  // 7번 핀(LED)에 LOW 신호를 보내 LED를 끕니다.
  else                     // 그렇지 않다면(조도 센서 값이 500 이하라면) * 주위가 어둡다면
    digitalWrite(7, HIGH); // 7번 핀(LED)에 HIGH 신호를 보내 LED를 켭니다.
}


실행 결과

P. 215 ~ 216 예제와 동일하게 LED가 작동합니다.

  • 좌측 : 휴대폰 후레쉬를 비춰 주변이 밝은 상태이기 때문에 LED가 꺼진 모습입니다.
  • 우측 : 주변이 어두운 상태이기 때문에 LED가 켜진 모습입니다.