Page 224 고등학교 프로그래밍 교과서
P. 224










1 전역 변수 선언: 아날로그 포트에서 읽은 값을 저장하기 위한 변수를 선언하고
PWM 형식의 데이터를 출력하기 위한 포트 번호를 변수에 할당한다.


2 입출력 포트 설정: pinMode 함수를 사용하여 배열 변수 out[ ]에 저장한 포트
Serial.begin(9600)
를 출력(OUTPUT) 모드로 설정한다. Serial.begin(9600) 문장은 프로그램 변
시리얼 모니터를 사용할 수 있도록
통신 속도를 설정한다. 수의 값을 모니터 화면에 출력하기 위해 통신 속도를 설정한다.

3 아날로그 값 읽기: 아날로그 포트 A0에서 값을 읽어 value에 저장한다. 읽어 온

값은 0~1023 사이의 값을 가지며 이 값을 그대로 포트에 출력하면 CdS를 손
으로 가리거나 떼었을 때 모터나 LED가 순간적으로 켜지거나 꺼지는 등 세밀

한 제어가 어려우므로 적절한 값으로 변환해 주어야 한다. 여기서는 map 함
map( ) 함수
map(value, a1, a2, b1, b2) 수를 사용하여 이 값을 10~150 사이로 변환하여 모터 제어 포트에 출력하고,
a1~a2 범위의 value를 b1~b2 범
위로 변환시켜 준다. 0~10 사이의 값으로 변환하여 LED 제어 포트에 출력한다.

4 출력: 변환된 아날로그 값을 PWM 포트에 출력한다. PWM 신호의 펄스폭은
아날로그 값에 비례하므로 이 값에 비례하여 모터의 속도나 LED의 밝기가 변

한다. 모터는 6번 포트를 사용하였고 11, 10, 9번 포트에는 3개의 LED(Red,
Green, Blue)를 연결하였다.




(4) 프로그램 테스트

아두이노 보드를 컴퓨터의 USB 포트에 연결한 후 [확인] 버튼을 눌러 프로그램을
컴파일한다. 프로그램의 오류가 없으면 [업로드] 버튼을 눌러 아두이노 보드에 전송

한다. 프로그램 실행 후 CdS 센서를 검은색의 종이나 손으로 가리면 모터의 속도가
감소하고 LED의 밝기가 약해지며, 빛이 많아지면 모터의 속도가 빨라지고 LED의
밝기도 밝아진다.





















▲ CdS 센서 빛 투과 ▲ CdS 센서 빛 차단


222 Ⅲ. 프로그래밍 설계와 구현





(책)2015프로그래밍-교과서3차심의본 본문.indb 222 2017-09-05 오후 4:16:57
   219   220   221   222   223   224   225   226   227   228   229