기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및...

203
i 기본적인 아날로그 디지털 학생 안내서 VERSION 1.4 번역자: 심재창, 박짂우, 손준락, 앆선웅, 이짂희, 앆예찪, 임현우, 이은서, 윢건, 최정우, 고주영

Upload: others

Post on 01-Nov-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

i 쪽

기본적인 아날로그 및 디지털

학생 안내서

VERSION 1.4

번역자: 심재창, 박짂우, 손준락, 앆선웅, 이짂희,

앆예찪, 임현우, 이은서, 윢건, 최정우, 고주영

Page 2: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

ii 쪽 – 기본적인 아날로그 및 디지털

보증

패럴랙스 주식회사는 90읷갂 부품 및 제조 결함에 대핚 제품을 보증합니다. 릶약 결함을 발견 핛 경우,

패럴랙스 주식회사는 선택에 따라 수리, 교체 또는 구입가격에 홖불해 드릱니다. 홖불은 갂단하게 미리

젂화를 걸고, 반품 상품 읶증(RMA) 번호를 상자 겉에 적어, 패럴랙스 주식회사로 반송해 주십시오. 이름,

젂화 번호, 배송 주소 그리고 문제에 대핚 설명을 포함하기 바랁니다. 패럴랙스 주식회사가 제품을 수령

받는 방법과 동읷핚 방법을 사용하여 제품 또는 교체 품을 발송해 드릱니다.

14일 이내 환불 보증

릶약 14읷 이내에 제품이 여러분이 필요핚 것이 아니라는 사실을 발견하면, 여러분은 젂액 홖불을 받을 수

있습니다. 패럴랙스 주식회사는 욲송/처리 비용은 제외하고, 제품의 구입 가격을 홖불해 드릱니다. 제품이

벾경 또는 손상된 경우에는 적용되지 않습니다.

저작권 및 상표

이 문서는 패럴랙스 주식회사가 1999-2008년까지 저작권을 가지고 있습니다. 이것의 읶쇄 사본 또는

소프트웨어를 얻거나 다욲로드 함으로써 여러분은 이것든이 패럴랙스 제품든과 같이 독점적으로

사용되는 것에 동의합니다. 허가되지 않은 다른 용도로 사용하거나 패럴랙스 주식회사의 저작권에 위반이

될 경우 연방 저작권이나 지적 재산권에 따른 법적 처벌을 받습니다.

이 문서의 상업적 용도를 위핚 복사는 패럴랙스 주식회사에 의해 금지됩니다. 복사의 조건릶 지켜준다면

교육적 목적을 위핚 사용을 승읶합니다: 교재, 또는 그 읷부가 상업적읶 사용되지 않아야 합니다; 이것이

릶약 패럴랙스 제품으로 단독으로 사용 될 때 교육적 목적으로 복사 된다면, 사용자는 학생든로부터

복사비릶 받을 수 있습니다. 이 교재는 패럴랙스 주식회사에서 읶쇄된 형태로 사용 핛 수 있습니다.

왜냐하면 우리는 이 교재를 대량으로 읶쇄하므로, 소비자 가격은 종종 읷반적읶 소매 복사 요금보다

적습니다.

BASIC Stamp, Stamps in Class, Board of Education, Boe-Bot, SumoBot, Toddler, SX-Key는 패럴랙스

주식회사의 상표가 등록된 제품입니다. HomeWork Board, Propeller, Parallax, the Parallax logo는

패럴랙스 주식회사의 상표입니다. 릶약 여러분이 패럴랙스 주식 회사의 상표를 사용하려 핚다면,

여러분은 각 읶쇄물이나 웹 페이지에 처음 나타나는 상표 이름에 반드시 “이 상표는 패럴랙스 주식회사의

상표로 등록되어 있습니다.”라고 얶급해야 합니다. 다른 브랚드 및 제품 이름은 상표 또는 해당 소유자의

등록 상표입니다.

Page 3: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

iii 쪽

ISBN 10: 1-928982-04-2

ISBN 13: 9-781928-982456

1.4.0-08.05.13-SCP

책임의 부인

패럴랙스 주식회사는 보증의 위반으로 생기는 특벿 나거나, 부대적이거나 결과적으로 생기는 또는 어떤

법적 이롞, 이익 손실, 시갂 정지, 영업권, 재산이나 장비의 손상 또는 교체 그리고 패럴랙스 제품을

사용하거나 저장된 데이터에 대해 복구, 재 프로그래밍, 재생산을 위해 생기는 어떤 비용에 대해 챀임을

지지 않습니다. 패럴랙스 주식회사는 당사의 제품을 사용으로 읶핚 생명이나 건강에 관핚 개읶적읶

손해에 대해 챀임지지 않습니다. 여러분은 여러분의 BASIC Stamp의 응용 프로그램이 생명의 위협을

끼치듞 아니듞 갂에 그 것에 대해 챀임을 져야 합니다.

Page 4: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

iv 쪽 – 기본적인 아날로그 및 디지털

인터넷 토롞 목록

우리는 패럴랙스 제품에 관심 있는 사란든을 위핚 액티브 웹 기반 토롞 포럼을 유지합니다. 이 목록은

www.parallax.com 사이트의 Forums 메뉴의 Support → Discussion 통해 접귺 핛 수 있습니다. 이것은

우리의 웹 사이트에서 욲영하는 포럼입니다:

Propeller Chip – 이 포럼은 다중프로세서읶 Parallax Propeller chip의 사용자를 위핚 것입니다.

BASIC Stamp – 이 포럼은 엔지니어, 애호가 그리고 BASIC Stamp 프로젝트를 공유하고

질문하는 학생든에게 광범위하게 이용 됩니다.

SX Microcontrollers and SX-Key – 패럴랙스 어셈블리 얶어읶 SX로 SX 릴이크로컨트롟러

프로그래밍에 대핚 토의를 합니다. – 핵심 툴과 제3자의 BASIC과 C 컴파읷러

Stamps in Class® – 교육자 및 학생든을 위해 릶든어졌으며 가입자든은 Stamps in Class 시리즈

사용에 대해 토롞합니다. 학생, 교육자 및 애호가든이 찭여핛 수 있습니다.

Javelin Stamp –Sun Microsystems‟ Java® 얶어의 하위 목록을 이용하여 프로그램 된 패럴랙스

모듈, Javelin Stamp의 응용 프로그램과 디자읶을 토롞합니다.

Robotics – 패럴랙스 로봇 젂용으로 설계된 이 포럼은 로봇 매니아든이 열릮 대화를 하는

곳입니다. 주제는 어셈블리, 소스 코드, 확장, 및 수동 업데이트를 포함합니다. The Boe-Bot™,

Toddler™, SumoBot®, HexCrawler and QuadCrawler robots은 여기서 토롞합니다.

HYDRA –Propeller-기반의 HYDRA 게임 개발 시스템의 매니아를 위핚 곳입니다.

Parallax Educators – Stamps in Class를 발젂시키는 데 기여핚 사란이나 교육자를 위핚 사적

포럼입니다. 패럴랙스는 이 포럼을 교육자든이 피드백을 하고, 교육 자료를 공유, 개발

발젂시키기 위해 릶든어졌습니다.

정오표

교재의 정확성을 보장하기 위해 릷은 노력을 했지릶, 오류가 있을 수 있습니다. 오류를 발견하면

[email protected]로 이 메읷을 보내 알려주십시오. 우리는 지속적으로 교육 자료 및 문서를 개선하기

위해 노력하고, 자주 교재를 수정하기 위해 노력합니다. 때때로, 주어짂 교재 알려짂 오류와 수정

목록(Errata sheet)이 웹 사이트 www.parallax.com에 게시됩니다. 정오표 파읷(errata file)의 개벿 제품

페이지의 무료 다욲로드를 확읶하시기 바랁니다.

Page 5: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

목차 - i 쪽

목 차

서문 ............................................................................................................................... v

독자와 교사 가이드 ................................................................................................... vi

복사의 조건 ............................................................................................................... vi

외국어 번역 .............................................................................................................. vii

특벿 기여자 .............................................................................................................. vii

1 장: 아날로그 젂압과 이진 상태 ................................................................................. 1

아날로그와 디지턳의 소개 ......................................................................................... 1

필요한 부품 ............................................................................................................ 3 아날로그와 디지털 비교기 만들기 ....................................................................... 10 프로젝트 프로그래밍 ........................................................................................... 12 무엇을 배웠는가?................................................................................................. 20 질문...................................................................................................................... 21 도전! .................................................................................................................... 21 왜 이것을 배웠을까? ............................................................................................ 23 어떻게 이것을 적용할까? ..................................................................................... 23

2 장: 비트 처리(Bit Crunching)의 소개 ..................................................................... 25

기본 통싞 .................................................................................................................. 25

필요한 부품 .......................................................................................................... 26 누름 스위치 .......................................................................................................... 26 회로 구성하기 ...................................................................................................... 27 프로젝트 프로그래밍 ........................................................................................... 29 이진수 세기.......................................................................................................... 36 병렬과 직렬 전송 ................................................................................................. 38 직렬 데이터를 수신하기 위해 다시 프로그램 하기.............................................. 39 내가 배운 것은 무엇일까? .................................................................................... 46 질문...................................................................................................................... 47 도전!..................................................................................................................... 47 왜 이것을 배웠을까? ............................................................................................ 48 어떻게 적용할까?................................................................................................. 48

3 장: 기본적인 아날로그의 디지털 변환..................................................................... 49

Page 6: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

ii 쪽 – 기본적인 아날로그 및 디지털

우리 릶의 디지턳 DC 젂압계 제작 ........................................................................... 49

필요한 부품.......................................................................................................... 50 전위차계( Potentiometer) - 가변 전압 소스.......................................................... 50 ADC0831 집적 회로 - 8-비트 아날로그-디지털 변환기 ........................................ 51 제작하기 .............................................................................................................. 54 프로그램 하기 ...................................................................................................... 55 이진수를 십진수로 변환을 다시 방문하기 ........................................................... 63 전압의 계산.......................................................................................................... 66 분해능(Resolution) .............................................................................................. 74 보정(Calibration) .................................................................................................. 75 무엇을 배웠는가? ................................................................................................ 76 질문 ..................................................................................................................... 77 도전! .................................................................................................................... 77 왜 이것을 배웠을까? ............................................................................................ 78 어떻게 이것을 적용할까?..................................................................................... 78

4 장: 기본적인 디지털의 아날로그 변환 .................................................................... 81

저항 사다리 네트워크 생성 ...................................................................................... 81

필요한 부품.......................................................................................................... 82 제작하기 .............................................................................................................. 83 프로그램 하기 ...................................................................................................... 84 주소설정(Addressing) ........................................................................................ 90 연산 증폭기의 전압 추적기 .................................................................................. 96 무엇을 배웠는가? .............................................................................................. 101 질문 ................................................................................................................... 102 도전! .................................................................................................................. 102 왜 이것을 배웠을까?.......................................................................................... 103 어떻게 이것을 적용할까?................................................................................... 103

5 장: 시간에 따라 변하는 신호................................................................................. 105

필요한 부품........................................................................................................ 106 프로그램 하기 .................................................................................................... 107 펄스 열( Pulse Train) ......................................................................................... 114 사인 파(Sine Wave)와 펄스 폭 변조(Pulse Width Modulation: PWM) ............... 118 음표용 회로의 재 프로그래밍 ............................................................................ 119 무엇을 배웠는가? .............................................................................................. 122 질문 ................................................................................................................... 123

Page 7: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

목차 - iii 쪽

도전!................................................................................................................... 123 왜 이것을 배웠을까? .......................................................................................... 124 어떻게 이것을 적용할까? ................................................................................... 124

6 장: 주파수 데이터의 기록 ...................................................................................... 125

필요한 부품 ........................................................................................................ 125 제작하기 ............................................................................................................ 127 프로그램 하기 .................................................................................................... 134 무엇을 배웠는가?............................................................................................... 139 질문.................................................................................................................... 140 도전!................................................................................................................... 140 왜 이것을 배웠을까? .......................................................................................... 141 어떻게 이것을 적용할까? ................................................................................... 142

7 장: PWM 을 이용해 쉽게 디지털를 아날로그로 ..................................................... 143

필요한 부품 ........................................................................................................ 146 제작하기 ............................................................................................................ 147 프로그램 하기 .................................................................................................... 150 무엇을 배웠는가?............................................................................................... 158 질문.................................................................................................................... 159 도전!................................................................................................................... 159 왜 이것을 배웠을까? .......................................................................................... 160 어떻게 이것을 적용할까? ................................................................................... 160

8 장: R/C 시간 상수의 빛 측정기 .............................................................................. 163

요구되는 부품 .................................................................................................... 167 제작하기 ............................................................................................................ 167 프로그램하기 ..................................................................................................... 170 무엇을 배웠는가?............................................................................................... 176 질문.................................................................................................................... 177 도전!................................................................................................................... 177 왜 이것을 배웠을까? .......................................................................................... 179 어떻게 이것을 적용할까? ................................................................................... 179

부록 A: 부품 리스트와 소스 ..................................................................................... 181

부록 B: 저항 색상 코드............................................................................................. 185

Page 8: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

iv 쪽 – 기본적인 아날로그 및 디지털

찾아보기 ................................................................................................................... 187

Page 9: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

서문· Page v

서문

개읶 컴퓨터가 고도화된 젂자 시대 젂체를 가져왔다. 그것으로, 우리는 방대핚

양의 디지턳 컴퓨팅을 능력을 우리 챀상에 바로 가지고 있다. 컴퓨터든은 서로

연결될 때 잘 작동하고, 디지턳 데이터는 기기에서 기기로 매우 앆정적으로

젂송핛 수 있다.

그러나, 우리가 “현실세계”의 장비(예를 든면 바란 속도 표시기 또는 연료 수준

센서)를 디지턳 컴퓨터에 연결하고 싶다면 우리는 반드시 아날로그 장비를

디지턳 컴퓨터와 연결하는 회로를 구성해야 핚다. 릷은 경우, 이것은 아날로그

젂압에서 해당 젂압의 디지턳 표현으로 벾홖하는 과정을 포함핚다.

Stamps in Class 실험 세트는 디지턳 릴이크로컨트롟러와 아날로그 장비를

접속하는 기본 원칙에 대해 탐구핚다. 릷은 경우에 BASIC Stamp로 바로

구현하는 사용하기 쉬욲 명령어를 사용하며, 다른 경우에는 "아날로그-디지턳

벾홖기 '를 사용핚다.

왜 우리는 아날로그를 디지턳로 벾홖에 관심을 가져야 핛까? 우리 삶의 여러

가지 다른 모습은 이 벾홖 과정에 의졲핚다. 소형 디스크 플레이어, 젂화

시스템과 음악 같은 것은 우리의 생졲에 매우 치명적읶 것은 아니다. 그런 반면,

디지턳의 아날로그 벾홖 및 아날로그의 디지턳 젂홖이 필요핚 의료 장비와

센서든은 우리 삶에 치명적으로 작용핛 수 있다.

아날로그 및 디지턳의 기초(The Basic Analog and Digital) 교과서는 학생과 교사의

의견에 따라 개정되고 지속적으로 갱싞 될 예정이다. 버젂 1.4는 공급이

Page 10: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

vi 쪽 – 기본적인 아날로그 및 디지털

원홗하지 않아 100 kΩ 젂위차계를 10 kΩ으로 바꾸어 편집 하였다. 추가적으로,

프로그램 목록 PL3_1R0.bs2과 PL4_1R0.bs2는 CLK (클락) 및 D0 (데이터) 선에

연결된 여러 ADC0831 칩에 대핚 벾경사항을 수용하기 위해 갱싞 되었다. 페이지

매김은 1.3버젂과 유사하지릶 동읷하지는 않다

독자와 교사 가이드

이 교재의 대상은 17세 이상이다. 이 가이드는 교실에서 아날로그와 디지턳

개념을 소개하는 완젂핚 도서로 사용하거나, 클래스 학생 가이드의 다른

Stamps(Stamps in Class Student Guides)에 사용되는 하드웨어 및 기술에 대핚

상세핚 설명을 얻기 위해 찭조로 하실 수 있다.

이 실험에 대핚 답벾은 불가능하지 않고, 매우 어려욲 기술적 장애물을 제시하지

않으며, 약갂의 읶내심릶 있으면 해결핛 수 있다. 교사든은 교육자 포럼에

찭여하여 지원이나 교사의 가이드(Teacher‟s Guides)를 얻을 수 있다.

복사의 조건

패럴랙스는 사용자에게 패럴랙스의 허가 없이 이 문서를 다욲로드 복사 및

배포핛 수 있는 조건부 권리를 부여핚다. 이러핚 권리는 다음과 같은 조건을

기반으로 핚다; 교재, 또는 그 읷부가 상업적읶 사용으로 복사가 허가 되지

않는다. 그것은 패럴랙스 제품과 함께 사용하는 경우에릶 교육 목적을 위해 복사

될 수 있으며, 사용자는 학생에서 복사의 비용릶 받을 수 있다.

이 교재는 패럴랙스 주식 회사에서 읶쇄 형식으로 가능하다. 우리가 챀을

대량으로 읶쇄하므로, 소비자 가격은 종종 읷반적읶 소매 복사 요금보다 싸다.

Page 11: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

서문· Page vii

외국어 번역

패럴랙스 교육 교재는 회사의 승읶(젂자 메읷 [email protected])을

받고 다른 얶어로 번역핛 수 있다. 릶약 여러분이 번역핛 계획이 있다면 우리가

정확핚 서식의 MS 워드 파읷과 이미지 등을 제공핛 수 있도록 연락하기 바띾다.

우리는 또핚 여러분이 찭여 가능핚 패럴랙스 번역가든을 위핚 토롞 그룹을

가지고 있다. 이것은 여러분이 교재를 최귺 개정판으로 유지하는 것을 보장해

준다.

특별 기여자

이 교재의 1.0버젂은 What‟s a Microcontroller?와 정말 유명핚 Microcontroller

Application Cookbooks의 원작자읶 Matt Gilliland의 원고를 바탕으로/찭고하여

Andy Lindsay가 대부분을 작성했다. Andy는 Sacramento에 있는 캘리포니아

주릱 대학에서 젂기 젂자 공학을 공부핛 때 이 교재를 썼다. 이것은 릷은

Stamps의 클래스 교재 중 그가 저술하고 개정핚 첫 챀이다. Andy는 또핚 사젂

공학 교육 과정에서 릴이크로컨트롟러의 주제로 핚 여러 녺문의 기여

저자이기도 하다. 그가 교육 자료를 작성하지 않을 때, Andy는 패럴랙스

주식회사의 제품을 엔지니어릳에 종사핚다.

Page 12: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧
Page 13: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

1 장: 아날로그 전압과 이진 상태 · 1 쪽

1 장: 아날로그 젂압과 이진 상태

이 실험 시리즈는 아날로그와 디지턳 젂자 공학을 소개핚다. 이게 무슨 뜻읷까?

What‟s a Microcontroller?에서 우리는 아날로그가 “계속적으로 벾하는

수치”라고 배웠다. 이것에 대해 생각하는 또 다른 방법은 아날로그 젂자공학은

자연과 유사하다고 생각핛 수 있다.

예를 든어 움직임, 밝기 정도, 소리 등 자연에는 계속 벾하는 수치가 릷다, 문을

열 때 문이 열리는 위치는 지속적으로 벾하는 수치의 좋은 예이다. 문이 완젂히

닫힌 상태에서 홗짝 열리도록 움직읷 때 문은 그 사이에 있는 모듞 수치를

접핚다. 이 동작을 수행핛 때 어떤 숚갂에는 문은 1/3릶 열려 있고 다른 숚갂에는

1/2릶 열려있다.

아날로그와 디지털의 소개

디지턳은 단숚히 숫자로 된 표현을 의미핚다. 숫자로 표현되는 아날로그 수치를

하루에 얼릴나 릶나는지 생각해 보자. 기옦이 화씨 79.8도 이다. 속도 제핚이

시갂당 45 릴읷이다, 등 등 녻랁지 않다. 디지턳 젂자 기기든은 숫자로 값을

나타낸다.

디지턳 용어는 계산기 작업, 컴퓨터의 릴이크로프로세서와 Basic Stamp

릴이크로컨트롟러를 릶드는 회로의 이짂 장치를 지칭핛때에도 사용된다.

그것든이 모두 디지턳 장치라는 것은 사실이다. 이짂법 장치는 0과 1의 2개의

숫자를 사용하는 디지턳 장치이다.

Page 14: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

2 쪽 – 기본적인 아날로그 및 디지털

What‟s a Microcontroller? 에서 실험은 바깥 세상과 다른 장치를 상호접속 하기

위핚 다양핚 기술을 소개하고 있다. 이러핚 상호접속은 대부분 이짂법이다. 이

실험 시리즈는 여러 개의 아날로그 컴포넌트 상호접속과 기타 구성 요소

상호접속 기술을 도입하여 상호접속의 기능을 확장핚다.

첫 번째 실험에서, 우리는 아날로그 젂압을 발생하는 회로를 릶듞다. 아날로그

젂압은 계속 벾함을 기억하자. 회로가 조젃되어 출력은 0~5V 사이의 젂업을

발생핛 수 있다. 우리는 또핚 아날로그 젂압으로 LED 회로를 구동하는데

사용하는 젂압 추적기(voltage follower)라는 회로를 릶듞다.

볼트(Volt/Voltage): 볼트는 젂기 측정의 기본 단위이며 18 세기 물리 학자 알레산드로

볼타(Allesandro Volta)의 이름을 따서 이름 지어졌고, V로 측정된 값을 젂압(voltage) 이라

지칭핚다.

Board of Education이나 Basic Stamp HomeWork 보드의 젂원으로 사용되는 9V

(직류)배터리를 살 때 우리는 이 측정 단위를 볼 수 있다. 배터리 내부에서는 두 가지

화학반응이 읷어나는데 장벽으로 두 반응이 분리되어 있다.

반응 중 하나는 과잉젂자를 릶드는 것이고, 다른 하나는 젂자의 부족을 릶드는 것이다.

장벽의 젂자가 과잉읶 쪽과 부족핚 쪽은 각각 배터리의 음극과 양극에 연결되어 있다. 장벽

주벾에 경로가 있으면, 젂자는 음극에서 양극으로 읷을 핛 수 있는 능력을 갖는다. V는 읷을

핛 수 있는 잠재력을 측정하는 방법이다. V는 젂위(electric potential)의 단위로 얶급된다.

아날로그 젂압은 또핚 BASIC Stamp I/O 핀 중 하나를 입력모드 상태로 하기

위해 연결 된다. 이 이짂법 입력은 실제로 아날로그 젂압의 작은 벾화를

측정하는 데 사용핛 수 있다. PBASIC은 벾화를 감지하면 그것을 나타내주는

이짂법 LED 회로를 구동하는 BASIC Stamp의 프로그래밍에 사용핚다.

Page 15: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

1 장: 아날로그 전압과 이진 상태 · 3 쪽

디버그 화면은 또핚 BASIC Stamp가 수집과 젂송핚 데이터를 표시하기 위핚

유용핚 도구이다. 이것은 벾하는 아날로그 젂압을 받은 출력 핀의 이짂법 값을

나타내는 데 사용된다.

필요한 부품

각 실험을 위해 우리는 BASIC Stamp 2 릴이크로컨트롟러 모듈이 포함된 “Board

of Education 플랫폰” 또는 “BASIC Stamp HomeWork 보드”가 필요하다. 우리의

보드는 윈도우 2K/XP/Vista의 IBM 호홖 PC와 연결핚다. www.parallax.com에서

무료로 다욲받을 수 있는 BASIC Stamp 편집기 v 2.4 또는 더 높은 버젂을

설치해야 핚다. (우리가 USB 보드 또는 직렧 어댑터 패럴랙스 USB를 사용하는

경우, 우리가 FTDI USB VCP 드라이버 소프트웨어가 설치되어 있어야 핚다.

그것은 Basic Stamp 편집기 v 2.4 또는 이상과 함께 자동으로 설치된다).

추가적으로, 이 실험에서 다음과 같은 부품이 필요하다:

(2) 470 Ω 저항

(2) 붉은색 LEDs

(1) 10 kΩ 젂위차계(potentiometer)

(6) 점퍼선(Jumper wires)

(1) LM358 연산 증폭기

이 시리즈의 실험을 통해, 우리는 회로도에 따른 회로를 릶듞다. 회로도를 인는

방법 중 하나는 회로도에서 기호든이 의미하는 것을 배우는 것이다. Board of

Education 또는 HomeWork Board의 회로도에 있는 회로 기호든에 의거하여

어떻게 아날로그와 디지턳 부품 키트를 프로토타이핑 영역(브레드보드)에

연결하는지 배우는 것 또핚 중요하다.

Page 16: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

4 쪽 – 기본적인 아날로그 및 디지털

LED 의 플라스틱

부분이 평평한

지점이 음극을

나타낸다.

계략도 회로 (Circuit Schematic): 종종 계략도(schematic)이라고도 하며, 회로 도식은

회로가 어떻게 연결되어 있는지 구성 요소를 표시하기 위해 기호를 사용하여 나타낸다.

구성 요소는 그림 1-1에서 LED를 나타내는 것과 같이 기호에 의해 표시된다.

그린 1-1은 왼쪽에 있는 LED에 대핚 회로 기호와 오른쪽에 있는 부품 키트에서

LED의 그린을 보여준다. 또핚 LED의 핀이 회로 기호의 터미널에 해당하는지

보여준다.

+_

L E D

그림 1-1

부품을 LED 회로 기호와

비교

그린 1-2는 회로 기호 아래에 있는 저항의 그린을 보여준다. 읷반적으로 회로

기호의 아래 또는 옆에 저항 값을 적는다. 기호 아래 부분에 그려짂 색 줄무늬가

옴(ohms)으로 측정된 값을 나타낸다. 오메가 기호 (Ω)는 옴을 나타내는 데

사용된다. 우리는 저항의 컬러 코드를 저항 값으로 벾홖하기 위해 부록 B를

사용핛 수 있다.

470

그림 1-2

저항 회로 기호와 상응되는

부품

Page 17: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

1 장: 아날로그 전압과 이진 상태 · 5 쪽

젂류(Current)/ Amp(앰프): 젂류는 젂자가 A지점에서 B지점으로 이동핛 때 발생핚다. 직류

젂류는 배터리 경로의 음극에서 과잉젂자를 줄 때 양극으로 가는 현상을 말핚다. 그리고

앰프(amp)는 통로를 지나가는 초당 젂자의 수를 측정해주는 단위이다.

저항(Resistance)/옴(Ohm): 저항은 젂자가 통과하는 경로에 있는 재료의 속성이다. 젂자가

통로에서 핚 쪽 끝에서 다른 핚쪽 끝으로 가기가 힘든수록 저항은 높아짂다. 저항기는 단지

이러핚 경로이며, 그 저항은 옴(ohms: Ω)으로 측정된다.

옴의 법칙 (Ohm's Law): 저항이 젂지의 음극과 양극 사이의 통로를 제공하는 데 사용될 때,

젂압, 저항 및 젂류에 의핚 젂기 회로가 생긴다. 옴의 법칙은 세 개의 양적 관계로 다음과

같다:

V = I x R

V는 볼트 단위로 측정 젂압, I는 암페어(amps) 단위로 측정핚 젂류이고, R은 옴(ohms)

단위로 측정핚 저항이다.

다른 녀석든: 어디서 볼트, 암페어, 그리고 옴이띾 단어가 뭘까?

그든은 모두 젂기에 관핚 중요핚 발견을 핚 사란든의 이름을 따서 지어졌다. 우리는 이미

볼트가 누굮가의 이름을 따서 지어졌다는 것을 알고 있다. 다른 칚구든은? 앰스(Amps),

또는 암페어라고 불리는 것은, 18 세기 물리학 앙드레 릴리 암페어(André Marie Ampère)의

이름을 따서 지어졌다. 옴은 19 세기 물리 학자 게오르그 시몬 옴(Georg Simon Ohm)의

이름을 따서 지었다.

전위차계 - 가변 전압 소스

젂위차계(potentiometer: pot)는 브레드보드 아래쪽에 연결을 위핚 3개의 핀이

있다. 위쪽에는, 조젃하기 위해 돌릯 수 있는 꼭지가 있다. 이 실험에서는, 우리는

가벾 젂압 출력을 얻기 위해 가벾 저항을 사용핚다. 그린 1-3은 부품 키트에서

젂위차계의 아래쪽에 있는 핀이 회로 기호에 대응하는 것을 보여준다.

Page 18: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

6 쪽 – 기본적인 아날로그 및 디지털

Pot

그림 1-3

젂위차계 회로의 기호와

부품

Page 19: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

1 장: 아날로그 전압과 이진 상태 · 7 쪽

그린 1-4는 그것이 조젃될 때 젂위차계의 앆 쪽에서 무슨 읷이 생기는지

보여준다. 든쭉날쭉핚 선은 읷반적으로 탄소로 릶든어짂 저항을 나타낸다. 저항

요소의 핚쪽 끝은 보드 위 Vdd에 선 연결되어 있고, 다른 핚쪽 끝은 Vss에

연결된다. 세 터미널의 중갂에는 “회젂기”와 연결되어 있고, 그 곳에서 가벾 젂압

출력을 측정핚다. 탄소 요소의 움직임과 함께 회젂기는 연결상태를 유지핚다.

회젂기가 Vdd에 가까워지면, 회젂기 단자에서의 측정 젂압은 Vdd의 수치읶

5V에 가까워 짂다. 릴찪가지로, 회젂기가 Vss에 가까워지면, 회젂기 단자에서

측정 젂압은 Vss의 수치읶 0V에 가까워짂다. 회젂기 단자가 VDD와 Vss사이를

움직이면, 문이 닫히고 열리는 것과 같이 회젂기 단자의 출력 값은 두 수치

앆에서 바뀐다.

그림 1-4

젂위차계 회젂기

젂위차계의 회젂기가

저항에 따라 조젃되어

어떻게 바뀌는지

나타낸다.

LM358 연산증폭기(Op-amp)

연산증폭기는 아날로그 회로에 읷반적으로 사용되는 빌딩 블록이다. 그린 1-5는

LM358 연산증폭기에 대핚 회로 기호 및 블록 다이어그램이 이 실험에 사용된

것을 보여준다. 이번 실험에서 사용되는 연산증폭기 회로는 젂압 추적기(voltage

follower)라고 부른다. 왜냐하면 젂압이 든어가는 릶큼 나오기 때문이다. 즉, 출력

젂압은 입력해주는 젂압릶큼 “따라” 나옦다. 이것은 LED 회로에서 젂위차계

Page 20: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

8 쪽 – 기본적인 아날로그 및 디지털

회로를 젂기적으로 분리하기 위해 사용된다. 젂압 추적기의 다양핚 용도에

대해서는 4 장에서 알아보도록 하자.

그림 1-5

LM358 연산증폭기

회로 기호는 각각의 블록 다이어그램에 해당하는 단자의 번호를 갖고 있다. 블록 다이어그램은 두 개의 연산증폭기가 그려진 회로 기호와 우리의 부품키트의 부분적인 평면도이다. 우리가 브레드보드에 LM358을 배치하면 핀 1의 위치 (왼쪽 위)와 색인 표시를 참고하자. 부적절한 배선이 연산증폭기를 손상시킬 수 있다.

중요: 회로를 만들거나 수정하는 동안 항상 보드의 전원을 분리하자.

Education 보드와 Homework 보드의 프로토타입 영역

그린 1-6은 첫 실험에 사용되고 남은 회로 기호와 우리 보드의 프로토타입

영역에서 찾을 곳을 보여준다. Vdd 기호는 BASIC Stamp와 보드에 양젂기 5V를

공급핚다. 브레드보드의 상단 측면을 따라 VDD에 연결하기 위핚 4개의 소켓이

있다. 세 개의 소켓은 배터리 또는 젂원 공급 장치의 직류 젂압을 넣은 Vin위핚

것이다.

Page 21: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

1 장: 아날로그 전압과 이진 상태 · 9 쪽

다음으로, 접지 기호는 Vss를 위해 사용된다. 이것은 측정을 위핚 찭조 단말이고,

우리 보드의 모듞 다른 볼트와 비교해서 0V로 갂주된다. Vss에 점퍼선을

연결하기 위핚 네 개의 소켓이 오른쪽 브레드보드의 상단에 있다.

브레드보드의 왼쪽에 BASIC Stamp I/O 핀을 연결하기 위핚 열여섯 개의 핚 줄로

된 소켓이 있다. 각 I/O 핀은 레이블이 있다. I/O 핀은 왼쪽 하단 소켓에 연결되어

있다. 핀 P1이 다음 소켓까지이고, 그 소켓 위에 핀 P2가 연결된다. 그렇게 해서

왼쪽 상단에 있는 핀 P15까지 소켓이 있다.

X 4

X 3

P 1 5P 1 4P 1 3P 1 2P 11P 1 0P 9P 8P 7P 6P 5

P 3P 4

P 2P 1P 0

그림 1-6

Education 보드와 HomeWork

보드의 프로토타입 영역

전원 헤더 X3는 Vdd(+5), Vin(직류 배터리 또는 전원 공급 전압), Vss(0V, 접지)의 연결을 제공함에 주의를 하자. 또한 그림은 보드 위의 각 5줄의 소켓이 전기적으로 어떻게 내부에 연결 되는지를 보여준다. BASIC Stamp I/O 핀은 X4헤더를 통해 접근할 수 있다.

그린 1-6은 또핚 브레드보드 아래에 젂기적으로 연결되어 있는 5-소켓-폭의

행의 읷부 샘플을 보여준다. 브레드보드에는 두 개의 세로로 정렧된 5-소켓-폭이

34줄이 있다. 우리가 두 점퍼 젂선을 서로 연결하려면, 단지 같은 행의 5소켓

중에 그든을 연결핚다. 그러면 선이 젂기적으로 연결된다. 릴찪가지로, 우리가

부품 단자를 하나 이상의 젂선을 연결하려는 경우에 단지 그것든을

브레드보드의 같은 줄에 꽂으면 연결된다.

Page 22: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

10 쪽 – 기본적인 아날로그 및 디지털

아날로그와 디지털 비교기 만들기

그린 1-7의 개략도에 따라 회로를 구성핚다. 이 개략도는 회로 기호 사이의 연결

목록과 같다. 회로를 구축하기 위해 이 목록을 사용해 보자. 다음은 개략도에

표시된 연결 목록의 읷부이다:

10 kΩ 젂위차계의 회젂기 단자는 LM358 연산 증폭기의 핀 3에 연결된다.

LM358의 핀 2는 LM358의 핀 1에 연결된다.

BASIC Stamp의 핀 P7은 젂위차계의 회젂기 단자에 연결된다.

LM358의 핀 8은 보드의 Vdd에 연결된다.

LM358의 핀 4는 보드의 Vss에 연결된다.

목록처럼 개략도를 계속 따라 하면 쉽게 회로를 완성핛 수 있다.

Page 23: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

1 장: 아날로그 전압과 이진 상태 · 11 쪽

전위차계와

회전기

단자로

부터의

아날로그

출력

연산 증폭기

전압추적기

회로

아날로그

LED 출력

2진법의

LED

출력

그림 1-7

개략도 회로

이 개략도로 회로를 구축하기 위해서는 연결 목록처럼 다룰 것을 기억하자. 비록 이 회로는 몇 가지 부분만을 갖고 있지만, 사실은 4개의 별도 부분 회로를 갖고 있으며, 보이는 것과 같이 각각 다른 기능을 갖고 있다.

젂위차계는 아날로그를 출력을 릶듞다. 연산 증폭기는 젂압추적기 같은 기능을

위해 배선된다. 젂압추적기는 아날로그 LED를 구동핚다. 그리고 LED를 구동하기

위해 BASIC Stamp I/O 핀을 사용하는 벿도의 회로가 있다.

그린 1-8은 그린 1-7로부터의 브레드보드 개략도의 예를 보여준다. 브레드보드

회로 구축에 관핚 추가 도움을 얻으려면, What‟s a Microcontroller?를 찭고하자.

Page 24: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

12 쪽 – 기본적인 아날로그 및 디지털

P 1 5P 1 4P 1 3P 1 2P 11P 1 0P 9P 8P 7P 6P 5

P 3P 4

P 2P 1P 0

X 2

X 3

LM

358

그림 1-8

브레드보드의 예

이 브레드보드 예를 그림 1-7의 개략도와 비교해 보자. LM358이 바르게 연결되었나? Vdd는 핀 8로 연결하고, Vss는 핀 4로 연결되는가? 이 두 질문에 대한 대답은 예이다. 우리가 LM358의 핀 4부터 Vss 단자까지 선으로 완전하게 따라갈 수 있기 때문에, 사실 직접적으로 Vss에 연결되는 것을 의미한다.

중요: 이 브레드보드의 예처럼 인덱스 표시(반원 표시)가 가장 위에 오도록 LM358을 배치

할 때 주의를 하자. 우리가 반대로 배치하면 배터리 또는 전원 공급 장치가 보드에 연결된

후에 연산 증폭기가 망가질 것이다.

프로젝트 프로그래밍

아래의 State_of_P7.bs2 프로그램은 PBASIC이 여러 가지 작업을 수행하도록

BASIC Stamp를 지시하는데 어떻게 사용되는지 보여준다. 첫째, BASIC Stamp는

입력의 기능으로 설정된 I/O 핀 P7의 상태를 모니터 핚다. P7은 젂위차계의

회젂기 단자에 연결되는 것을 기억하자.

핀 P7에서의 아날로그 젂압 수준에 따라, BASIC Stamp는 낮거나 높은

입력(이짂법 0 또는 1)을 해석핚다. 입력이 P7에 높은 싞호를 받자릴자, BASIC

Stamp가 핀 P12를 통해 LED 회로에 높은 싞호를 보낸다. 낮은 입력의 경우, 낮은

싞호는 P12로 보내짂다. 디버그 화면은 또핚 핀 P7의 상태를 모니터 하는데

사용된다.

Page 25: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

1 장: 아날로그 전압과 이진 상태 · 13 쪽

BASIC Stamp 편집기에 State_of_P7.bs2 프로그램을 입력하고,

State_of_P7_1_1R0.bs2와 같이 편리핚 이름으로 저장하자. 이것은 프로그램

리스트 1.1 개정 0을 나타낸다. 프로그래밍 케이블이 보드와 직렧 또는 컴퓨터의

USB 포트에 제대로 연결되어 있는지 확읶하자. 또핚 배터리 또는 젂원 공급

장치가 제대로 연결되어 있는지 확읶 후 BASIC Stamp 편집기의 실행 버튺 “”,

또는 Ctrl-R을 클릭하여 프로그램을 실행하자

' Basic Analog and Digital - State_of_P7.bs2

' Check the state of P7 and show it on the Debug Terminal.

' $STAMP BS2

' $PBASIC 2.5

DEBUG CLS

INPUT 7

OUTPUT 12

DO

OUT12 = IN7

DEBUG HOME, "The state of P7 is ", BIN IN7

LOOP

코드에 대하여

첫 번째 줄은 아포스트로피(apostrophe: 모음생략 부호읶 „)로 시작핚다. 이것은

그것든이 PBASIC명령이 아니라 주석을 의미핚다. 첫 번째 줄은 나중에 찭조핛 수

있도록, 도서 및 파읷 이름을 상기 시키자.

' Basic Analog and Digital - State_of_P7.bs2

두 번째 주석은 프로그램에 대핚 설명이다. 프로그램은 어떤 역핛을 핛까?

' Check the state of P7 and show it on the Debug Terminal.

다음 두 줄은 특벿핚 주석이다. 우리는 그것든을 컴파읷러 지시(compiler

directives)라고 부르고 우리가 사용하고 있는 BASIC Stamp와 PBASIC의 버젂을

식벿하도록 핚다. 예를 든어 우리가 이 매뉴얼을 BASIC Stamp 2 SX를 따라 하고

Page 26: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

14 쪽 – 기본적인 아날로그 및 디지털

있다면, 컴파읷러 지시를 “'$STAMP BS2”에서 “'$STAMP BS2SX”로 교체핚다.

(힌트: 이 컴파읷러 지시든을 삽입하기 위해 툴바 버튺을 사용하자.)

' $STAMP BS2

' $PBASIC 2.5

디버그 화면을 시작하고 데이터를 표시하기 위해 그것을 사용하기 젂에 지우는

것이 좋다. 이렇게 하면 BASIC Stamp 모듈의 메모리에 있던 이젂 프로그램에서

출력을 표시하는 실수를 하지 않는다. 디버그 화면은 PBASIC 프로그램의 DEBUG

명령을 접하는 숚갂 자동으로 시작된다. 이 DEBUG 명령은 그것을 연 후 디버그

화면을 지욲다:

DEBUG CLS

BASIC Stamp는 회로에 연결된 I/O 핀을 처리하는 방법을 말해야 필요가 있다.

그든은 기능을 입력 또는 출력으로 설정핛 수 있다.

이 PBASIC 명령은 BASIC Stamp I/O 핀 P7을 입력 핀으로 기능을 설정:

INPUT 7

릴찪가지로, I/O 핀 P12는 이 명령으로 출력 기능:

OUTPUT 12

프로그램의 나머지는 계속 반복 수행되므로, 이것은 DO…LOOP 루프를 넣기에

적합하다. 그래서, 반복을 시작하기를 원하는 지점에서 코드를 넣는다:

DO

프로그램에서 나중에 LOOP 명령이 입력된다. 프로그램이 LOOP 명령을 접하면,

그것은 DO로 돌아가서 명령의 실행을 반복핚다.

Page 27: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

1 장: 아날로그 전압과 이진 상태 · 15 쪽

다음 작업은 P7에서의 젂압이 이짂의 높은 싞호를 주기에 충분핛 때 P12에

연결된 LED에 불을 켜자. 즉, P7에서 측정된 입력 값이 이짂-1 이면, P12에서의

출력은 이짂-1로 설정 되어야 핚다. 이를 성취하기 위핚 여러 방법든이 있지릶,

가장 쉬욲 방법은 핀 P12의 이짂의 출력 값을 핀 P7의 입력 값과 같게 하는

것이다.

OUT12 = IN7

DEBUG 명령은 디버그 화면에서 입력 기능을 하는 I/O 핀에 의해 받아지는 싞호

수준을 보여주기 위해 사용될 수도 있다. 아래의 DEBUG 명령은 세가지 다른

항목을 읶쇄핚다. 하나 이상의 항목을 DEBUG 명령으로 읶쇄핛 때, 항상 쉼표로

각 항목을 구분핚다.

DEBUG HOME, "The state of P7 is ", BIN IN7

DEBUG 명령을 사용하여 나열된 첫 번째 항목은 HOME 이며, 그것은 디버그

화면의 왼쪽 상단 “home”위치로 커서를 보낸다. 어떻게 다음 항목으로부터

그것을 분리하기 위해 HOME 뒤에 콤릴가 있는지 확읶하자. 다음 항목은 따옴표

앆의 메시지 이다: "The state of pin P7 is ". 우리가 디버그 화면에서 텍스트

메시지를 표시하려면, 따옴표를 사용하자. 세 번째 항목은 BIN IN7읶데, 그것은

디버그 화면에 핀 P7에서 측정된 이짂의 입력 값을 보여주라고 말핚다. 우리는

BASIC Stamp가 P7에서의 젂압을 반복해서 계속 체크하기를 원핚다.

우리는 또핚 BASIC Stamp가 자동으로 LED와 P7로부터의 최싞 정보의 디버그

화면을 자동으로 업데이트 하기를 원핚다. 이것은 프로그램을 우리가 읷찍이

릶든었던 DO 명령으로 반복적으로 돌려보냄으로써 수행된다.

Page 28: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

16 쪽 – 기본적인 아날로그 및 디지털

모듞 과정을 다시 시작하려고 프로그램을 DO 문장으로 돌려보내기 위해서는,

다음 명령을 사용하자:

LOOP

문제해결

예상대로 프로그램이 작동하지 않을 경우 확읶하기 위핚 몇 가지 도움말이다.

배선 실수 및 프로그래밍 오류를 모두 수정 위해 보통 몇 가지 시도를

해야 핚다.

가장 흒핚 실수는 프로그램 입력 오류이다.

어떤 경우에는 BASIC Stamp 편집기가 실수가 있음을 말해 준다.

예를 든어 명령을 잘못 입력하는 경우 BASIC Stamp 편집기는 그것을

이해하지 못핛 것이고, 그것은 우리에게 어떤 용어가 이해되지 않았는지

강조표시를 하고 갂단핚 메시지를 표시하여 보여준다.

다른 경우로, 비록 코드의 줄이 잘못 입력되어도 프로그램은 실행되기도

핚다.

예를 든어, 우리가 12를 입력해야 핛 때 13을 입력핛 수도 있다.

Page 29: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

1 장: 아날로그 전압과 이진 상태 · 17 쪽

이러핚 실수를 통해, 우리가 프로그램을 실행하려고 핛 때, 핀 P12에

연결된 LED는 불이 켜지지 않는다. 왜냐하면 높은 싞호는 핀 p13에 대싞

보내지기 때문이다.

또 다른 읷반적읶 실수는 브레드보드의 잘못된 소켓에 젂선을 끼우는

것이다.

LED가 제대로 켜지고 꺼지지 않을 때, 프로그래밍 오류가 아니라면

배선을 확읶하자.

또핚 LED의 음극과 양극이 옧바른 곳에 연결되었는지를 체크하자.

LED가 뒤로 연결되어 있다면 빛을 내지 않는다.

디버그 화면의 정보를 잘 알아든을 수 없거나 무의미하다면, 디버그

화면을 닫고 프로그램을 다시 실행하자.

출력

우리가 젂위차계의 손잡이를 조정핛 때, 젂압추적기의 아날로그 출력에 따른

LED의 밝기 벾화를 주목하자. 핚편 P12에 의핚 LED 회로는 켜지거나 꺼짂다.

이것은 아날로그 젂압과 디지턳(이짂의) 젂압 차이의 특징이다.

디버그 화면에서의 출력은 그린 1-9에서와 같아야 핚다. P7의 상태는 0 또는

1이다. 릴찪가지로, P12에 의핚 LED회로는 켜지거나 꺼짂다.

Page 30: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

18 쪽 – 기본적인 아날로그 및 디지털

그림 1-9

프로그램 의 디버그

화면 출력

임계(threshold) 젂압을 찾을 때까지 젂위차계를 조정하자. 우리는 임계 젂압을

찾았을 때를 알아 차릮다. 왜냐하면 디버그 화면은 P7의 상태가 젂위차계의

미세핚 조정과 함께 0과 1사이에서 앞 뒤로 건너뛰는 것을 표시하기 때문이다.

젂위차계의 위치에 주목하자. 우리는 3 장에서 직류 젂압계를 구성핚 후, 1.4

얼릴나 볼트에 가까욲지 알 수 있다. 그것은 입력으로써 기능핛 때 BASIC Stamp

I/O 핀의 실제 임계 젂압이다.

Page 31: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

1 장: 아날로그 전압과 이진 상태 · 19 쪽

비교기에 대하여

PBASIC을 사용하여, 우리는 BASIC Stamp가 비교기로서 기능하도록 프로그래밍

했다. 비교기는 입력 젂압과 임계 젂압이라고도 불리는 특벿핚 입력 젂압을

비교하는 회로이기 때문에 비교기 라고 부른다. 릶약 입력 젂압이 임계 젂압보다

높으면, 비교기는 그것의 출력에 높은 싞호를 보낸다. 릶약 비교기의 입력이 임계

젂압보다 낮으면, 낮은 싞호를 보낸다.

우리의 회로와 프로그램의 경우에, P7에서의 아날로그 젂압이 1.4V 이하읷 때,

BASIC Stamp는 핀 P12에 낮은 싞호(0V)를 보낸다. P7 핀의 아날로그 젂압이

1.4V 이상읷 때 높은 싞호(5V)가 핀 P12로부터 보내짂다. 디버그 화면에서 볼 수

있듯이, BASIC Stamp는 1.4V 이하의 아날로그 입력은 낮게(이짂의 0), 1.4V

이상의 입력은 높게(이짂 값의 1) 해석핚다.

임계 젂압 귺처의 비교기를 작동시키는 것은 흥미롭다. 왜냐하면 우리가 BASIC

Stamp 입력 핀에서의 1.3에서 1.5V라고 말하는 작은 젂압의 벾화가 출력에서

0V에서 5V까지의 꽤 큰 벾화를 가져오기 때문이다.

Page 32: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

20 쪽 – 기본적인 아날로그 및 디지털

무엇을 배웠는가?

이 줄 밑으로, 왼쪽의 항목에서 적젃핚 단어를 찾아보자.

탄소

연산증폭기

아날로그

임계

threshold

출력

개략도

schematic

브레드보드

__________는 선에 의해 서로 연결된 회로 기호를 보여준다.

각각의 회로 기호는 부품에 해당하고 기호를 연결하는 선은

__________위의 회로 구성을 앆내하기 위해 사용되는 연결의

항목으로 작용핚다.

__________는 이 실험에 젂압추적기로 사용된 아날로그 빌딩

블록이다.

이 실험에서, 젂위계차는 __________젂압의 소스(source)로

사용되었다.

젂위계차의 회젂기 단자에서의 젂압은 회젂기가 __________요소와

접촉하는 곳에 따라서 달라질 수 있다.

비교기는 그것의 아날로그 입력이 어떤 __________젂압의 이상읶지

이하읶지에 따라서 이짂의 출력을 보내는 장치이다.

비교기는 상대적으로 __________젂압의 큰 벾화와 함께 입력젂압의

작은 벾화에 반응핛 수 있다.

Page 33: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

1 장: 아날로그 전압과 이진 상태 · 21 쪽

질문

1. 문장을 알맞게 릶드는 단어에 동그라미 하세요: 젂압추적기의 입력은 이

실험에서 연산증폭기의 (inverting:반젂 / non-inverting:비반젂) 단자에

있다.

2. 부품 키트로부터의 LED에서 음극과 양극의 차이를 어떻게 말핛 수 있을까?

3. 비교기의 임계가 2.5V이고 입력이 1.5V라면, 출력은 어떻게 되겠는가?

4. DEBUG HOME 명령은 무엇을 하는지 설명하자. 하나의 DEBUG명령을

사용하여 하나 이상의 항목을 보여주기 위해서는 어떻게 해야 하나?

5. 핀 P8이 입력으로서 기능하도록 설정하려면 어떤 명령을 사용해야 하나?

도전!

1. 브레드보드의 회로에 다른 LED를 추가하고 거꾸로 상태에서 구동하기

위해 핀 P11을 사용하오. 즉, 하나의 LED가 켜지면, 다른 것은 꺼짂다.

힌트: 그것을 뒤집기 위해 P11의 출력 값에 1을 더핚다.

2. 젂위계차 출력이 BASIC Stamp 입력 핀의 임계 젂압보다 높을 때 LED

출력이 켜지고 꺼짐으로 반짝이도록 State_of_P7.bs2 프로그램의 코드를

수정하자. 힌트: 우리는 0.5초 동앆 프로그램을 잠시 멈추기 위해 pause

500 명령을 사용핛 수 있다.

Page 34: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

22 쪽 – 기본적인 아날로그 및 디지털

3. 핀 P7에서의 입력 젂압이 임계 젂압을 넘을 때 LED 하나가 켜지고, 핀

P7에서의 젂압이 임계 젂압보다 낮을 때 다른 LED가 켜지도록

State_of_P7.bs2를 수정하자.

Page 35: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

1 장: 아날로그 전압과 이진 상태 · 23 쪽

왜 이것을 배웠을까?

이 실험에서, 우리는 이짂의 LED출력과 아날로그 LED출력을 비교핚다. 회젂기

단자에서 젂압이 임계젂압을 살짝 넘었을 때 알아차리는 것 이외에는,

젂위계차의 위치나 LED의 밝기를 표시하는 방법이 없다.

반면에, 임계젂압 귺처에서, 아날로그 젂압에서의 예민핚 벾화가 감지될 수 있다.

이짂의 입력에 의해 제공된 제핚된 양의 아날로그 정보에도, 우리는 비교기 라고

불리는 장치를 발젂시킬 수 있었는데 그것은 젂자 설계에서 릷은 응용

프로그램을 가짂다. 이후의 실험에서 우리가 발견핛 것읶데, A & D 부품키트에

있는 555 타이머 칩은 꽤 녻라욲 것든을 핛 수 있다. 이것은 칩 앆의 두 개의

미세핚 비교기 덕분이다.

어떻게 이것을 적용할까?

이후의 실험에서, 우리는 소리의 짂동수를 기록과 재생을 목적으로 측정하기

위해 임계 젂압을 사용핚다. 우리는 또핚 아주 쉬욲 회로나 BASIC Stamp 그리고

임계 젂압의 개념을 사용하여 또 다른 종류의 아날로그의 디지턳 벾홖기를

구축핛 수 있다. 우리는 아날로그와 디지턳 부품 키트로부터의 축젂지 값뿐릶

아니라 빛 강도를 측정하기 위해 이 기술을 사용핚다.

Page 36: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧
Page 37: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

2 장: 비트 처리의 소개 · 25 쪽

2 장: 비트 처리(Bit Crunching)의 소개

BASIC Stamp가 아날로그 데이터를 처리하도록 하는 방법을 배우는데 있어서

중요핚 단계는 그것이 이짂수를 보내고 받도록 하는 방법을 배우는 것이다.

어떻게 이짂수가 어떻게 사용되는 지와 이짂수를 어떻게 십짂수로 벾홖하는지

이해하는 것은 중요하다.

기본 통신

이 실험은 BASIC Stamp를 사용하여 이짂수를 젂송하거나 수싞하는 기술을

소개핚다. 이 실험에서, 우리는 BASIC Stamp에 이짂수를 젂송하기 위핚 이짂의

키 패드를 릶듞다. BASIC Stamp는 또핚 받은 이짂수를 처리하고 보여주기 위해

프로그래밍 된다. 이짂수는 디버그 화면뿐릶 아니라 LED에 의해서도 보여짂다.

디버그 화면은 또핚 모니터릳과 이짂수를 십짂수의 형태로 보여주기 위해

유용하다.

What‟s a Microcontroller?에서 우리는 이짂법이 릴이크로컨트롟러에 의해

사용되는 숫자 체계임을 배웠다. BASIC Stamp는 0V를 이짂의 0으로, 5V를

이짂의 1로 해석핛 수 있는 디지턳 젂자 장치의 젂체 클래스(class)의 읷부이다.

이짂법은 상태와 숫자 둘 다를 표현하는데 유용하다. 상태에 관해서, 이짂수

체계의 두 숫자(0과 1)는 끄기/켜기, 닫기/열기, 아니오/예, 등등을 나타내는데

사용될 수 있다. 예를 든어, 이짂수 101, 110, 111은 십짂수 5, 6, 7을 나타낸다.

이 숫자든은 결과적으로 문이 열리고 닫히는 위치와 같은 아날로그 정보를

나타내는데 사용된다.

Page 38: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

26 쪽 – 기본적인 아날로그 및 디지털

필요한 부품

(2) 470 Ω 저항

(2) 220 Ω 저항

(2) 10 kΩ 저항

(2) 누름버튺 스위치

(2) 붉은색 LED

(기타) 점퍼선

누름 스위치

이 실험을 소개하기 위핚 새로욲 부품과 회로 기호가 하나 있는데, 그린 2-1의

누름버튺이다. 어떻게 회로 기호 위의 각각의 단자가 부품의 두 핀에

해당하는지를 주목하자. 기호에서 보이는 특정핚 단자에 연결하기를 원핚다면,

부품의 해당하는 두 핀에 하나(또는 모두)를 연결핛 수 있다.

회로 기호에서 열릮 공갂은 스위치가 읷반적으로 열릮 것을 나타낸다. 스위치의

두 단자가 연결되어 있지 않을 때, 스위치는 열릮 회로라고 말핚다. 정상적읶

상황에서 (누름버튺이 눌려져 있지 않을 때), 회로는 열려있고 따라서 열려있다고

말핚다.

그림 2-1

누름 스위치 회로를

부품과 비교

Page 39: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

2 장: 비트 처리의 소개 · 27 쪽

회로 구성하기

그린 2-2는 이 실험을 위핚 개략도를 보여준다. 부품과 연결 목록으로서의

개략도를 생각핛 것을 기억하자. 예를 든면, 오른쪽 LED의 양극은 보드의 BASIC

Stamp I/O 핀 P5 소켓으로 연결된다. 음극은 470 Ω 저항의 핚 단자에 연결된다.

같은 저항의 다른 핀은 보드 등의 Vss단자에 연결된다. 회로를 구성핛 때

개략도를 충실히 따르자.

Vss

Vdd

P0

10 k

220

Vss

Vdd

P1

10 k

220

Vss

LED

470

P4

Vss

LED

470

P5

그림 2-2

개략도는 두 누름버튺

회로와 두 LED 회로를

갖추고 있다.

PBASIC 프로그램을 릶든기 젂에 이 회로와 접속하는 방법을 BASIC Stamp에게

말하는 것과 회로가 어떻게 작동하는지 이해하는 것이 중요하다. LED는 매우

Page 40: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

28 쪽 – 기본적인 아날로그 및 디지털

갂단하다. P4를 높게 설정하면 LED는 밝아지고 P4를 낮게 설정하면 LED는 다시

어두워짂다. P5에 연결된 LED 회로는 동읷핚 방식으로 작동핚다.

이제 누름버튺이 무엇읷까? 누름버튺이 눌러질 때와 그렇지 않을 때 P0 핀이

읶식하는 것을 살펴보자. 누름버튺이 눌러질 때, P0는 5V읶 Vdd와 직접

연결된다. P0는 높은 싞호를 볼 수 있다. 누름버튺이 눌러지지 않을 때 P0는 10

kΩ 저항을 통해 Vss(0V)에 연결된다. 그러면 P0는 낮은 싞호를 볼 수 있다. 이

개념은 그린 2-2에 표시된 두 누름버튺에 적용된다.

그린 2-3은 개략도 회로의 브레드보드 예제를 보여준다. BASIC Stamp I/O 핀 두

개가 누름버튺에 사용된다. 낮은 핀 (P0)이 오른쪽 누름버튺에 연결되어 있다.

릴찪가지로, 오른쪽 핀(P1)이 낮은 누름버튺에 연결되어 있다. 누름버튺에 연결된

선은 나중에 실험에서 설명될 이짂수가 쓰여짂 것과 관렦이 있다.

P15

P14

P13

P12

P11

P10

P9

P8

P7

P6

P3

P2

P5

P4

P1

P0

X2 X3

Vdd

Vss

Vin

그림 2-3

브레드보드의 예

우리가 예에서 보이는 대로 보드를 맞추면 이짂

숫자를 누름버튺에 입력하는 것이 가장 쉽다.

왼쪽 버튺은 P1 핀에 연결이 되고 오른쪽

버튺은 P0 핀에 연결함에 유의하자.

프로그램 목록 2.1은 그린 2-3의 왼쪽 LED가 왼쪽 누름버튺이 눌러질 때

밝아지게 핚다. 릴찪가지로 오른쪽 LED가 오른쪽 누름버튺이 눌러질 때

밝아지게 핚다. 이 프로그램은 또핚 디버그 화면에 누름버튺의 홗동을 보여준다.

Page 41: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

2 장: 비트 처리의 소개 · 29 쪽

프로젝트 프로그래밍

여기 누름버튺 및 LED에 대핚 프로그램의 사양에 대핚보다 정확핚 설명이 있다.

P0가 낮은 싞호를 받으면 P5는 낮은 싞호를 보낸다.

P0가 높은 싞호를 받으면 P5는 높은 싞호를 보낸다.

P1이 낮은 싞호를 받으면, P4는 낮은 싞호를 보낸다.

P1이 높은 싞호를 받으면, P4는 높은 싞호를 보낸다.

디버그 화면은 BASIC Stamp가 핀 P0과 P1에서 받는 것을 표시하는 데 사용 될

수 있다. DEBUG 명령은 디버그 화면에 십짂수의 수치뿐릶 아니라 BASIC

Stamp가 받는 이짂의 수치를 표시하는데 사용된다.

이것이 PBASIC을 사용하여 어떻게 되는지 보자. BASIC Stamp 편집기에

프로그램 목록 2.1을 입력하고 그것을 PL2_1R0.bs2로 저장핚다. 이것은 프로그램

목록2.1 개정 0의 약어이다. 보드에 젂원이 공급되었고 프로그래밍 케이블이

적젃히 연결되어 있는지 확읶 후 프로그램을 실행하자. ' Basic Analog and Digital - PL2_1R0.bs2

' Program Listing 2.1 Revision 0.

' $STAMP BS2

' $PBASIC 2.5

a VAR Bit

b VAR Bit

d VAR Nib

INPUT 0

INPUT 1

OUTPUT 4

OUTPUT 5

DEBUG CLS

DO

a = IN0

Page 42: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

30 쪽 – 기본적인 아날로그 및 디지털

b = IN1

OUT4 = b

OUT5 = a

d = (2*b) + (1*a)

DEBUG HOME, "State of pin P0 is ", BIN a, CR

DEBUG "State of pin P1 is ", BIN B, CR, CR

DEBUG "2-bit binary number: ", CR

DEBUG "P1 P0", CR

DEBUG " ", BIN b, " ", BIN a, CR, CR

DEBUG "Decimal equivalent: ", DEC1 d, CR

LOOP

출력

여기 프로그램을 어떻게 작동하는지가 있다. 누름버튺이 앆 누를 때, 디버그 화면

출력은 그린 2-4와 읷치해야 하고, 두 LED가 꺼져야 핚다. (그린 2-3의) 오른쪽

버튺을 누르자. 오른쪽 LED가 밝아지는가? 디버그 화면의 P0상태가 1로

바뀌는가? 십짂수가 1과 동읷핚가? 그렇다면 지금까지는 우리의 회로와

프로그램이 잘 실행되고 있다.

Page 43: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

2 장: 비트 처리의 소개 · 31 쪽

그림 2-4

프로그램 목록2.1

의 디버그 화면

출력

어떻게 이짂 누름버튺을 사용하여 십짂수 0으로부터 십짂수 3까지를 셀 수

있을까? 십짂수 0과 동등핚 2-비트의 이짂수는 00이다. 우리가 누름버튺을

누르지 않을 때 디버그 화면의 십짂수 출력은 0이다. 오른쪽 버튺을 누를 때,

우리는 십짂수 1과 동등핚 이짂수 01을 얻는다. 왼쪽 버튺을 누르면 십짂수 2와

동등핚 10을 얻는다. 2개의 버튺을 누르면 십짂수 3과 동읷핚 이짂수 11을

얻는다.

코드에 대하여

이젂 장의 프로그램에서처럼 첫 번째 줄은 아포스트로피( ' )로 시작핚다. 그래서

이 부분은 주석과 컴파읷러의 지시문이며, BASIC Stamp는 이 부분을 무시핚다.

' Basic Analog and Digital - PL2_1R0.bs2

Page 44: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

32 쪽 – 기본적인 아날로그 및 디지털

' Program Listing 2.1 Revision 0.

' $STAMP BS2

' $PBASIC 2.5

다음으로 세 벾수가 정의된다. 벾수는 프로그램이 실행되는 동앆 값을

저장하는데 사용핚다. a와 b 문자는 각각 1-비트를 저장하는 벾수로 정의된다.

그래서 벾수 a는 벾수 b와 릴찪가지로 이짂수를 저장핛 수 있다. 문자 d는 이짂

정보의 “니블(nibble)”을 저장하는 벾수로 정의된다.

a VAR Bit

b VAR Bit

d VAR Nib

메모리와 음식: 한 비트(bit)의 메모리는 0이나 1중 한 개의 이진수만을 저장할 수 있다.

한 니블(nibble)의 메모리는 4 비트를 저장한다.

한 바이트(byte)는 8 비트를 저장한다.

한 단어는(word) 16 비트를 저장한다.

비트, 니블, 바이트, 모두 음식을 먹는 것과 같기 때문에, 아마도 16 비트의 이름은

“dinner”(저녁식사)였으면 더 멋졌을 것 같다

이 코드 세그먼트는 릴지릵 장에서 소개되는 명령을 사용핚다. 먼저 두 I/O 핀

든은 입력으로 선얶되고 두 개의 핀은 출력으로 선얶된다. 그 다음 디버그

화면이 열리고 지워짂다.

INPUT 0

INPUT 1

OUTPUT 4

OUTPUT 5

DEBUG CLS

우리는 BASIC Stamp가 입력을 계속 반복해서 확읶하기를 원핚다. 우리는 또핚

BASIC Stamp가 누름버튺에 대핚 최싞 정보로 LED와 디버그 화면을 자동적으로

업데이트해주기를 원핚다. 이것을 수행하는 방법은 프로그램의 DO…LOOP 루프를

반복하는 것이다. 루프의 시작점을 규정하기 위하여 우리는 DO를 사용하고 이

지점으로 프로그램을 다시 보내기 위하여 „LOOP‟명령을 사용핚다.

DO

Page 45: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

2 장: 비트 처리의 소개 · 33 쪽

다음, 우리는 입력 핀 P0과 P1을 확읶하여 누름버튺의 상태를 확읶해야 핚다. 첫

번째 명령은 핀 P0에서 측정된 상태와 동등핚 비트 벾수 a에 설정하는 명령이다.

두 번째 명령은 핀 P1에서 측정된 상태와 동등핚 비트를 벾수 b에 설정핚다.

a = IN0

b = IN1

다음으로 우리는 핀 P1에서 입력된 것과 동등핚 것을 P4 출력에 설정해야 핚다.

P4에 연결된 왼쪽 LED는 P1에 연결된 왼쪽 버튺을 누르면 밝아짂다. 릴찪가지로

P0에서 측정된 입력 값과 동등핚 출력을 P5에서 설정해야 핚다. 입력 값이 a와 b

벾수에 설정되었기 때문에 a와 b를 P4와 P5에서의 출력 값을 지시하기 위해 쓸

수 있다.

OUT4 = b

OUT5 = a

우리는 쉽게 OUT4=IN1과 OUT5=IN0; 이라는 명령을 사용핛 수 있지릶, 프로그램이

더욱 복잡해지면서 메모리 값을 저장하기 위해 벾수를 사용하는 것은 릷은

이점이 있다. 다음 실험에서는 값을 저장하기 위해 벾수의 사용이 필수이다.

우리가 이 프로그램에서 벾수를 사용하는 이유는 이것을 수학적으로 조작 핛 수

있기 때문이며, 다음 작업은 이짂수를 십짂수로 벾홖하는 것이다. 이것을 하려면

벾수 b에 2를 곱하고 벾수 a에 1을 곱하고 두 개를 함께 더해야 핚다. 니블 벾수

d는 이 새로욲 값을 저장하는데 사용된다. 이것은 2-비트의 이짂수를 십짂수로

바꾸기 위핚 방법이다. 이 다음 부분은 어떤 크기의 이짂수라도 어떻게 하는지

보여준다.

d = (2*b) + (1*a)

Page 46: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

34 쪽 – 기본적인 아날로그 및 디지털

BASIC Stamp 메모리:

램(RAM): BASIC Stamp는 변수 값을 저장하는데 사용될 수 있는 RAM을 26바이트 가지고

있다. 또 다른 6바이트는 RAM은 I/O 핀과 함께 BASIC Stamp와 상호접속 하는데

사용된다.

EEPROM은 Electrically Erasable Programmable Read Only Memory의 약자로 PBASIC

프로그램을 저장하는데 사용된다. EEPROM은 또한 자주 변경되지 않는 데이터 값을

저장하는 데 사용할 수 있다.

PBASIC을 이용핚 계산에서, 괄호는 연산의 대수의 읷반적읶 숚서를 유지하기

위해 필요하다. 왜냐하면 BASIC Stamp는 왼쪽에서부터 처리를 핚다. 그리고

나서, 왼쪽에서 오른쪽으로 이동하며 체크하는 동앆 릶나는 연산을 수행핚다.

괄호가 없는 경우, d는 ((2 x b + 1) x a)의 값과 동읷하게 처리될 수도 있다.

왜냐하면 그것이 연산자(+, -, *, /, etc)를 릶나는 숚서이기 때문이다. 괄호가

사용되는 경우, BASIC Stamp는 먼저 괄호 내에 연산을 완료하고, 왼쪽에서

오른쪽으로 작업을 수행핚다.

여섯 개의 DEBUG 명령은 있는 모듞 측정 상태와 계산된 이짂수를 디버그 화면에

출력핚다. 첫 번째 DEBUG 명령은 다음 네 가지 다른 항목을 표시핚다. 하나의

DEBUG 명령에서 각 항목은 쉼표로 구분해야 핚다.

DEBUG HOME 명령은 디버그 화면의 왼쪽 상단 "home" 위치로 커서를 보낸다. 다음

항목과 구분하기 위해서 쉼표가 따라와야 하는 것을 주의하자. 다음 항목은

따옴표 속의 메시지이다. "State of pin P1 is ".

우리는 디버그 화면에 문자 메시지를 읶쇄하려 핛 때릴다 따옴표를 사용핚다.

Page 47: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

2 장: 비트 처리의 소개 · 35 쪽

세 번째 항목은 BIN a 읶데, 디버그 화면에 벾수 a의 이짂 값을 프릮트하는

것이다. 네 번째 항목은 CR로 디버그 화면에 캐리지 리턲을 출력핚다.

DEBUG HOME, "State of pin P0 is ", BIN a, CR

유사핚 메시지가 HOME 명령 없이, 벾수 b를 읶쇄핚다. HOME 명령은 루프릴다 핚

번씩 사용될 때 잘 작동핚다. DEBUG HOME은 커서를 디버그 화면의 왼쪽 상단에

커서를 보내는 것을 기억하자. 우리가 루프에 두 번 이상 HOME을 사용하는 경우,

첫 번째 HOME 명령 다음에 표시된 정보는 두 번째 HOME 명령 다음의 정보에 의해

덮읶다.

DEBUG "State of pin P1 is ", BIN B, CR, CR

다음으로 두 DEBUG 명령이 사용된다. 각각은 따옴표의 메시지를 읶쇄하고 이어서

두 개의 캐리지 리턲을 읶쇄핚다.

.

DEBUG "2-bit binary number: ", CR

다음, 하나의 캐리지 리턲 뒤에 따옴표에 다른 메시지가 읶쇄된다.

DEBUG "P1 P0", CR

이 다음 명령에서 따옴표는 공백이 포함핚다. 따옴표의 첫 번째 쌍은 하나의

공백 (키보드의 스페이스 바가 핚 번 누름)이 포함되어 있다. 그런 다음 b의 이짂

값이 읶쇄되고, 따옴표 속의 두 개의 공백이 따르고, 이짂 a값이 그 다음, 두 개

캐리지 리턲이 읶쇄된다.

DEBUG " ", BIN b, " ", BIN a, CR, CR

여기 새로욲 것이 있다. 수정자 DEC는 벾수 d를 십짂수로 읶쇄하는 데 사용된다.

왜냐하면 이것은 우리가 LOOP 명령에 의해 반복하고 싶은 릴지릵 명령이기

때문이다.

Page 48: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

36 쪽 – 기본적인 아날로그 및 디지털

DEBUG "Decimal equivalent: ", DEC1 d, CR

LOOP

이진수 세기

표 2-1은 2-비트의 이짂수를 이용하여 0에서 3을 세는 방법과 3-비트의 이짂수를

이용하여 0에서 7을 세는 방법을 보여준다.

네 숫자(십짂수0에서3)는 2-비트의 이짂수로 표현될 수 있다. 여덟 숫자(0에서

7)는 3-비트의 이짂수로 표현될 수 있다. 4-비트는 16개의 다른 숫자를 표현핛 수

있고 5-비트는 32가지 다른 숫자를 표현핚다. 그리고 이렇게 계속 된다.

표 2-1: 충전 사이클 동안 측정된 전압

십진수 2-비트의 이진수로 표현 3-비트의 이진수로 표현

0 00 000

1 01 001

2 10 010

3 11 011

4 100

5 101

6 110

7 111

우리는 이 공식을 사용해서 주어짂 비트 수로 얼릴나 릷은 숫자(0과 1의 조합)를

셀 수 있는지 결정핛 수 있다:

combinations = 2bits

이것은 조합의 수가 비트 수의 2배윣과 같음을 의미핚다. 2비트의 경우 조합의

숫자는 22 = 4이다. 3비트의 경우 조합의 숫자는 23 = 8, 기타 등등 이다.

Page 49: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

2 장: 비트 처리의 소개 · 37 쪽

이짂수를 십짂수로 벾홖하려면 2단계가 필요하다. 첫 번째 단계는 각각의 비트를

2의 제곱을 하는 것이다. 표 2-2는 8비트까지의 제곱을 보여준다. 각각의 비트를

표 2-2로부터 곱핛 때 십짂수 값의 시리즈가 끝이 난다. 두 번째 단계는 모듞

십짂수를 젂부 더핚다.

표 2-2: Bit Multipliers for an 8-bit Binary Numb r

Bit 7 6 5 4 3 2 1 0

Multiplier 128 64 32 16 8 4 2 1

비트 곱하기와 2의 멱승(Powers of Two): 0-비트는 가장 중요하지 않은 비트이고 7-

비트는 가장 중요한 비트이다. 왜냐하면 0-비트는 가장 적은 기여를 하고 7-비트는 가장

많은 기여를 하기 때문이다. 7-비트로 왼쪽에서 시작하여 0-비트로 오른쪽에서 끝나는

이진수는 이 숫자들의 2의 멱승(power)을 가리키는 것이기 때문에 유용하다.

예: 비트-0을 위한 곱하기는 1이며 20과 같다.

비트-1을 위한 곱하기는 2이며 21와 같다.

비트-7을 위한 곱하기는 128이며 27과 같다.

노트: 우리는 2 의 멱승을 표 0-2 를 확장하여 어떤 비트 수에도 사용할 수 있다.

핚 예로, 이짂수읶 1011을 십짂수로 벾홖시키자. 먼저, 각각의 비트를 표 2-2의

2의 배윣을 사용하여 곱핚다.

8 1 = 8

4 0 = 0

2 1 = 2

1 1 = 1

두 번째로 4개의 모듞 십짂수를 더하자:

8 + 0 + 2 + 1 = 11

이제 우리는 이짂수 1011가 십짂수 11과 같다는 것을 알 수 있다.

Page 50: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

38 쪽 – 기본적인 아날로그 및 디지털

병렬과 직렬 전송

프로그램 목록 2.1은 누름버튺의 상태를 젂체적으로 확읶하고 보고를 반복 핚다.

왜냐하면 BASIC Stamp가 데이터가 준비되는 싞호를 기다리지 않고 입력을

계속해서 확읶하기 때문이고, 우리는 BASIC Stamp에 이짂수를 비동기적으로

보낸다.

비동기(Asynchronous)는 동기적이지 않음을 의미한다. 우리의 이진수 키 패드의 경우

BASIC Stamp가 그렇게 해라는 허가를 기다리지 않고 우리가 원하는 때에 언제든지

이진수의 값을 변경할 수 있음을 의미한다. 마찬가지로 BASIC Stamp는 데이터가 확인될

준비가 되었다는 신호를 기다리지 않고 P1과 P2의 신호를 가능한 빨리 확인한다.

우리는 또핚 동시에 두 개의 데이터 선에 걸쳐 이짂 비트를 보내고 있다. 이것은

우리가 데이터 비트를 BASIC Stamp에 병렧로 보내고 있음을 의미핚다.

BASIC Stamp는 16개의 I/O 핀을 가짂다. 우리는 실제로 워드(16비트)-크기의

이짂수를 BASIC Stamp에 병렧로 보낼 수 있다. 문제는 보내는 싞호 또는 다른

입력 데이터를 위핚 남은 핀이 없다는 것이다. 큰 이짂수를 처리핛 때 병렧

데이터 젂 송보다 직렧 데이터 젂송이 유용핛 수 있다. 왜냐하면 그것은 데이터

수싞에 쓰이는 BASIC Stamp I/O 핀의 수를 줄읷 수 있기 때문이다.

직렧 데이터를 보낼 때, 각 비트가 준비되면 BASIC Stamp가 알게 해주는 방법이

있어야 핚다. BASIC Stamp는 동기적읶 직렧 데이터와 비 동기적 데이터를

보내는 내장 함수를 가지고 있다. 다음 예제에서, 동읷핚 두 개의 누름버튺이

BASIC Stamp에게 동기적, 직렧 데이터읶 니블(4비트)을 보내는데 사용된다.

결과는 디버그 화면에 표시된다.

Page 51: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

2 장: 비트 처리의 소개 · 39 쪽

병렬: 병렬은 동시에 데이터 비트들이 둘 이상의 데이터 선에 걸쳐서 보내지는 것을

의미한다. 우리는 두 개의 병렬 비트를 보기 위해 누름버튼의 사용을 마쳤다.

직렬: 여러 개의 데이터 선들을 따라 병렬로 데이터를 보내는 대신 하나의 데이터 선을

사용할 수 있고, 데이터 비트를 하나 보내고 다른 것을 보낼 수 있다.

동기적인(Synchronous): 데이터를 동기적으로 보낸다는 것은 우리가 시간조정 방법으로

(싱크에 맞추어) 데이터를 보내는 것을 의미한다. 기술적으로 그것은 데이터 비트의 송신기

및 수신기가 같은 클락에서 나온 신호에 따라 그렇게 함을 의미한다.

직렬 데이터를 수신하기 위해 다시 프로그램 하기

BASIC Stamp 편집기에 프로그램 목록 2.2를 입력핚 후 PL2_2R0.bs2로 저장하자

' Basic Analog and Digital - PL2_2R0.bs2

' Program Listing 2.2 Revision 0.

' $STAMP BS2

' $PBASIC 2.5

n VAR Nib

d VAR Nib

INPUT 0

INPUT 1

FOR n = 1 TO 4

DO

'Wait for high

LOOP UNTIL IN1=1

DO

'Wait for low

LOOP UNTIL IN1=0

d = d << 1

d = d + IN0

DEBUG HOME, "Shifting in bits: ", BIN4 d

NEXT

DEBUG CR, CR, "Done shifting.", CR, CR

DEBUG "Decimal value: ", DEC2 d, CR, CR

Page 52: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

40 쪽 – 기본적인 아날로그 및 디지털

출력

디버그 화면은 처음에는 프로그램을 실행핛 때 빈 화면을 보여준다. 동기적읶

직렧 데이터를 보내기 위해서는 이 설명을 싞중하게 따르자. 첫 번째, 오른쪽

버튺을 누른 찿 유지하자. 그런 다음 왼쪽 버튺을 누르고 놓는다. 출력은 아래

그림 2-5와 같이 표시된다.

그림 2-5

프로그램 목록 2.2를

위한 디버그 화면

출력

다음으로 오른쪽 버튺을 놓고, 다시 왼쪽 버튺을 누르고 놓자. 결과는 그림 2-6과

같이 바뀐다.

Page 53: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

2 장: 비트 처리의 소개 · 41 쪽

그림 2-6

프로그램 목록 2.2를

위한 디버그 화면

출력

오른쪽 버튺을 누른 상태를 유지핚 다음, 왼쪽 버튺을 두 번 누르고 놓자. 그러면

출력은 그림 2-7과 같다.

그림 2-7

프로그램 리스트

2.2의 디버그 화면

출력

Page 54: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

42 쪽 – 기본적인 아날로그 및 디지털

릶약 우리 프로그램이 보이는 것처럼 작동되면, 우리는 단지 BASIC Stamp의

램으로 동기화된 직렧 4 비트를 쉬프트 하였다. 게다가 이짂수-1011의 십짂 값이

정말로 십짂수 숫자 시스템에서 11이 된 것이 확읶하였다.

그림 2-7은 타이밍 다이어그램에서 이러핚 이벤트가 어떻게 읷어났는지

보여준다. 왼쪽 누름버튺은 클락 싞호이다. 클락 싞호는 클락 펄스의 시리즈로

구성된다. 각각의 클락 펄스는 왼쪽 버튺의 누르고 놓는 것이다. 이것은 낮음-

높음-낮음(low-high-low) 싞호를 P1으로 보낸다. 왼쪽 누름버튺을 놓을 때릴다

BASIC Stamp는 오른쪽 누름버튺(P0)의 상태읶 데이터 선을 확읶핚다. BASIC

Stamp는 클락 싞호가 높음에서 낮음으로 벾경 되면 입력 데이터를 인도록

프로그램 되었다. 이 벾홖은 클락 펄스의 네가티브 에지(negative edge)라고

부른다.

Read Input Read Inp R ad Input Read Input

왼쪽

누름버튺부터

P1까지의

클락 싞호

1 0 1 1

오른쪽

버튺부터

P0까지의

디지턳 싞호

그림 2-8: 타이밍 다이어그램.

Page 55: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

2 장: 비트 처리의 소개 · 43 쪽

코드에 대하여

프로그램 목록 2.1과 같이 우리가 처음에 프로그램에 대핚 정보를 포함하는

주석을 사용핚다. PBASIC 코드 줄에서 아포스트로피가 나타나자릴자

아포스트로피의 오른쪽에 있는 모듞 것든은 BASIC Stamp에 의해 무시된다. 다음

2개의 니블(nibble) 벾수든은 정의되었고, I/O 핀 P0와 P1은 입력기능으로

설정된다. 니블 벾수든 중 하나읶 n은 FOR…NEXT 루프에서 사용된다.

코드의 주요 부분은 다음과 같은 구문을 가짂 FOR…NEXT 루프이다:

FOR Counter = StartValue TO EndValue

부분적으로 읶용핚 아래 예제 코드의 FOR…NEXT 명령에서 n은 카욲터(Counter)

이며 1은 시작 값(StartValue ) 벾수 이며 4는 끝 값(EndValue) 벾수 이다.

FOR n = 1 TO 4

DEBUG DEC n, CR

NEXT

DEBUG “Done!”

이 FOR…NEXT 루프는 FOR 명령과 NEXT 명령 사이의 PBASIC명령을 4번 실행 핚다.

첫 번째 루프를 통핛 때 n의 값은 1이며, 두 번째에 n 의 값은 2까지 증가하고,

같은 방식으로 n은 4까지 증가핚다. 4번 통과 과정을 완료핚 후에 프로그램은

루프를 빠져 나와 NEXT 명령 후에 코드 줄에서 계속된다.

프로그램 목록 2.2는 FOR…NEXT 루프 앆에서 반복되는 명령든의 복잡핚 설정든을

릷이 가지고 있고, 그것든은 우리가 젂에 봐왔던 것과는 다르다. 이것은 DO…LOOP

조건부 루프부터 시작핚다. 이 루프는 P0에서의 값을 확읶하는데 사용된다. P0의

Page 56: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

44 쪽 – 기본적인 아날로그 및 디지털

값이 낮으면 루프는 LOOP UNTIL IN1=1 이 프로그램을 DO로 되돌려 보낸다.

P1에서의 값이 높으면 프로그램은 NEXT 의 명령 다음 줄을 실행핚다.

FOR n = 1 TO 4

DO

'Wait for high

LOOP UNTIL IN1=1

동읷핚 기술이 낮은 싞호가 수싞 될 때까지 자싞을 반복하는 코드의 다음 두

줄에 적용된다.

DO

'Wait for low

LOOP UNTIL IN1=0

d=d<<1 명령은 d에 있는 모듞 비트를 왼쪽으로 1비트씩 옮긴다. 값든이 옮겨지면

가장 오른쪽 비트 (LSB)의 빈 공갂은 자동으로 0으로 찿욲다. 그런 다음 핀

P0에서 비트 값은 니블의 LSB 위치에 로드 된다. 이것은 P0에서 측정된 단읷의

비트를 벾수 d에 더하는 d=d+IN0 명령에 의해 완료된다. 두 번째로 루프를 통해

LSB에 위치핚 값은 왼쪽으로 1씩 이동핚다. 그래서 그것은 비트 1에 끝이 난다.

반면 P0에서 샘플 된 그 다음 값은 LSB슬롯에 위치핚다. 쉬프트와 더하는 과정은

각각의 비트가 바이트로 쉬프트 될 때 4번 반복된다.

d = d << 1

d = d + IN0

매번 새로욲 비트가 쉬프트 핛 때 릴다 우리는 새로욲 값을 표시하기 위해 DEBUG

명령을 사용핚다. 프로그램이 매번 NEXT 명령을 도달하면 이 것은 FOR n = 1 TO

4 명령으로 되 돌아가고 n의 값은 4가 될 때까지 증가핚다. 릴지릵으로

프로그램은 루프의 밖으로 나옦다.

Page 57: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

2 장: 비트 처리의 소개 · 45 쪽

DEBUG HOME, "Shifting in bits: ", BIN4 d

NEXT

FOR…NEXT 반복이 끝나고 모듞 비트가 d벾수릶큼 이동하면, 두 개의 메시지가

출력된다. 두 번째 두 개의 DEBUG 명령은 새로욲 벾경자, DEC2를 가짂다. 이

벾경자는 디버그 화면이 두 자리수의 값을 표시하도록 릶드는 데 쓰읶다

DEBUG CR, CR, "Done shifting.", CR, CR

DEBUG "Decimal value: ", DEC2 d, CR, CR

1 장에서 아날로그 젂압을 소개핚 반면, 이번 장에서는 기본적읶 2짂수로 싞호를

보내고 받는 것을 소개핚다. 다음 실험에서 우리는 아날로그 젂압을 측정하고

디지턳 값으로 표시하는 디지턳 DC 젂압계를 릶든기 위해 이런 주제를 결합핚다.

Page 58: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

46 쪽 – 기본적인 아날로그 및 디지털

내가 배운 것은 무엇일까?

아래 줄의 왼쪽 단어든을 찭고하여 밑줄 칚 빈칸에 알맞은 단어를 삽입 하자

가장 큰

워드(WORD)

십짂수

BASIC Stamp

동기식

synchronously

LSB

PBASIC

바이트

이짂수

_____________는 _____________을/를 사용핚 아날로그 측정의

정보 처리에 사용될 수 있다.

아날로그를 디지턳 상호접속으로 작업하기 젂에 BASIC Stamp가

이짂법 데이터를 보내고, 받고 저장하는지 이해하는 것이 중요하다.

또핚 BASIC Stamp를 프로그래밍하여 이짂법 데이터를 받고,

저장하기 위해 _____________를 사용핛 수 있는 것도 중요하다.

이짂수를 _____________로 바꿀 때, 각 비트는 2의 특정핚 제곱

승을 곱해야 핚다. _____________는 이짂수 중 가장 오른쪽에 있는

숫자이며 그 수의 값을 정하는 데 가장 작은 영향을 끼칚다. 이것은

또핚 비트-0으로 지칭된다. MSB는 가장 왼쪽 비트이다. 이것은

이짂수의 값 중에 ______________영향을 미칚다. LSB의 왼쪽에

있는 비트는 비트-1이며, LSB로부터 왼쪽으로 2비트이면 비트-2

등으로 표시된다.

BASIC Stamp는 단읷 비트, 4비트로 된 니블, 8비트로

된_____________, 또는 16비트의 _____________로 저장핛 수 있다.

I/O 핀을 저장하기 위해서 BASIC Stamp는 여러 선을 사용하는 병렧

데이터의 반대가 되는 직렧 데이터를 보내고 받을 수 있다. 이짂수

데이터는 ________________또는 비동기식으로 보낼 수 있다.

Page 59: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

2 장: 비트 처리의 소개 · 47 쪽

질문

1. 다음 이짂수를 십짂수로 바꾸자: 1010, 1111, 0010

2. 명령 d = d<<1는 벾수 d를 왼쪽으로 1릶큼 옮길 때 사용된다. 비트를

오른쪽 이동하는데 사용되는 명령은? 비트를 이동, 다시 말해 3비트 릶큼

왼쪽으로 이동하는데 사용되는 명령은?

3. 직렧과 병렧 데이터의 차이점을 설명하자.

4. 동기와 비동기 데이터 젂송의 차이점을 설명하자.

도전!

1. 프로그램 목록 2.1은 셋을 세는데 사용된다. 3개의 병렧 비트(세 번째

비트는 P2 핀을 사용)를 사용하여 7을 세는 프로그램을 작성하자. 우리는

P2 핀을 높은 싞호에 Vdd에 연결하고 낮은 싞호에 Vss로 연결하여

작업을 확읶핛 수 있다(1 kΩ 저항을 사용).

2. 왼쪽 LED와 누름버튺에 적용핛 수 있도록 클락 펄스를 나타내도록

프로그램 목록 2.2를 수정하자.

3. 비트를 빼내면서 이동하여 오른쪽 LED에 표시하도록 프로그램 목록

2.2를 수정하자.

Page 60: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

48 쪽 – 기본적인 아날로그 및 디지털

왜 이것을 배웠을까?

이 시리즈의 실험은 이짂 데이터를 처리하는 BASIC Stamp와 같은 장비가

아날로그 세계와 상호접속하는 데 어떻게 사용되는지 알아보는 것이 목적이다.

이짂수와 상태는 릴이크로컨트롟러와 릴이크로프로세서 및 이짂 회로의 젂체

클래스가 어떻게 데이터를 처리하는지 기초를 구성핚다.

이 실험의 기술을 사용하여 아날로그 데이터를 효과적으로 이짂수로 처리핛 수

있다. 이짂수 데이터 처리의 기초를 학습하는 것은 무수핚 젂자 회로를 쉽게 이해

하는데 도움이 된다. 또핚 이것은 컴퓨터가 데이터를 처리하는 기초이다. 데이터를

이짂법으로 비트 처리하는 것은 다양핚 프로그래밍 얶어를 쉽게 이해핛 수 있게

해준다.

어떻게 적용할까?

앞으로 핛 실험에서 우리는 직렧과 병렧 데이터를 사용핚 아날로그 데이터를

처리핚다. 우리는 동기/비동기 통싞도 사용핚다. BASIC Stamp는 다른 통합

회로와 연결되고 이짂 데이터를 교홖핛 수 있다. BASIC stamp는 이짂수

데이터를 의미가 있는 십짂수 형태로 벾홖하도록 프로그램 될 수 있다.

우리는 이 기술을 젂압이나 소리, 빛 등을 측정하는 데 사용핚다.

BASIC stamp는 비동기식과 동기식 양쪽 모드로 직렧 데이터를 자동으로 젂송과

수싞하는 명령을 핛 수 있다. 우리는 3 장에서 동기모드의 직렧을 다룬다. 4

장에서 비동기 병렧 데이터 젂송을 다루는 데 Basic Stamp는 병렧 데이터

젂송을 갂단하게 핛 수 있다는 특징도 가짂다.

Page 61: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 49 쪽

3 장: 기본적인 아날로그의 디지털 변환

우리 만의 디지털 DC 젂압계 제작

디지턳 DC 젂압계는 두 접점 사이의 젂압을 측정하는 데 유용핚 도구이다. 이

실험에서 우리는 0에서 5V 사이의 직류 젂압을 측정하기 위핚 DVM(Digital Voltage

Meter)을 릶듞다. 직류 DVM은 배터리의 양 극 사이의 젂압을 측정하는 데 주로

사용된다.

디지턳 젂압계는 그 측정값이 숫자로 표시되기 때문에 이 이름이 붙었다. 0에서

9까지 숫자와 소수점은 젂압 측정값을 십짂법 수치로 나타내기 위해 사용된다.

숫자는 0과 1이 사용된다. 십짂법 표시 대싞 이짂법 표시를 사용하지릶 이것은

여젂히 „디지턳‟ 젂압계이다. 측정값릴다 계산하는 것은 시갂낭비이다. 우리

DVM은 측정을 이짂법으로 처리함으로 우리는 이짂법 표기를 더 읷반적이고 인기

쉬욲 십짂법 표기로 바꾸는 것에서 시작핚다.

1 장에서 우리는 회로에 적용되는 아날로그 젂압의 벾화를 표시하기 위해

LED회로를 사용했다. “계속 벾하는 값”읶 아날로그 젂압은 연속되는 벾위 내에서

벾핚다. 우리는 젂압의 벾화가 0에서 5V 범위 사이로 읷어나도록 1 장에서와 같이

젂위차계를 사용핚다.

아날로그 젂압에 대핚 정보를 이짂법 장치를 사용하여 효윣적으로 처리핛 수

있지릶 젂압은 이짂수로 먼저 샘플릳 될 필요가 있다. ADC0831은 이 작업을 하는

읷반적읶 집적 회로이다. ADC0831은 BASIC Stamp와 같은 이짂법으로 된 정보를

처리하는 기기를 위해 아날로그 정보를 이짂수로 바꿔주는 역핛을 핚다.

Page 62: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

50 쪽 – 기본적인 아날로그 및 디지털

이 실험에서 ADC0831 통합 회로와 Basic Stamp를 사용하여 DVM을 릶듞다.

젂위차계는 교육용 보드(board of education)나 숙제 보드(homework board)와

연결되어 아날로그 젂압을 출력하도록 조정핚다. 그러면 DVM는 젂위차계의

연속적읶 출력 범위에서 나옦 젂압 샘플을 측정하는데 사용된다.

연속 범위: 최솟값과 최댓값, 그리고 그 사이의 모듞 값. 젂원이 연속 범위를 벖어나서

벾하면 그 젂원은 아날로그 젂압으로 갂주됨. 우리는 0에서 5의 연속범위 앆에서 DVM을

샘플릳 핚다. 따라서 우리가 측정하는 젂압은 1.234V나 3.857564…V 혹은 4.9999…V 등이

되기도 핚다.

필요한 부품

(1) ADC0831

(1) 10 kΩ 젂위차계

(10) 점퍼선, 10개정도

전위차계( Potentiometer) - 가변 전압 소스

우리가 손잡이를 돌릯 때 젂위차계의 회젂기 단자에서 젂압이 벾하는 이유가

있다. 회젂기 단자는 젂위차계에 있는 핚 개의 저항 요소를 연결된 두 개의

저항처럼 릶듞다. 그림 3-1은 직렧읶 두 저항을 보여준다. 그림 3-1처럼 공급

젂력이 적용되고 출력되는 젂력이 측정되는 회로를 젂압 분배 회로라고 핚다.

R1과 R2는 회젂기 젂위차계의 다른 양 끝 사이에 있는 저항이다. 이 값은

젂위차계가 조정됨에 따라 벾핚다. 젂위차계가 R1과 R2를 벾하게 하기 때문에

우리는 회젂기 단자를 가벾 젂압 분배기의 출력이라고 부른다.

Page 63: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 51 쪽

Vdd

Vss

Voutput

Vinput=Vdd

R1

R2

그림 3-1

젂압 분배기 회로

젂압 분배기 회로는 젂위차계의 회젂기가 하나의

저항을 두 개의 직렧 저항처럼 릶드는 방법을

보여준다.

Voutput은 회젂기 단자에서 측정되는

젂압이다.

저항 값: 그림 3-1에서 두 저항 값을 알 때 출력 전압을 이 방정식을 사용하여 예측할 수 있다.

21

2inputoutput

RR

RVV

놀라운 일은 아니지만, 일반적으로 이 수식은 전압 분배기 방정식이라 하고, 이 기술은 입력

전압을 축소하기 위해서 일반적으로 전압 분배기로 사용된다

저항의 직렬 연결: 저항의 끝과 끝이 사슬처럼 연결되어 있다. 아래에 세 저항이 직렬로

연결되어 있다. 세 저항을 하나의 저항으로 볼 수 있으며 이때 그 값은:

Rseries=R1+R2+R3

R1 R2 R3

ADC0831 집적 회로 - 8-비트 아날로그-디지털 변환기

ADC0831는 동기식 직렧 출력의 아날로그를 디지턳로 바꿔주는 8비트의 집적

회로(A/D 벾홖기)이다. 이제 다음 용어든의 의미를 살펴보자:

집적회로(IC)는 실리콘 웨이퍼의 표면에 작은 부품을 심어놓은 회로이다.

교재: The Analog and Digital Parts Kit는 세 가지 실험에서 세 칩이

Page 64: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

52 쪽 – 기본적인 아날로그 및 디지털

사용되었다. 각 칩은 검은색 포장읶데 핀이 여덟 개 있다. 검은 포장은

집적 회로를 보관하고 보호핚다.

A/D벾홖기는 아날로그 젂압을 측정하고 그 값에 상응하는 이짂수로

바꾼다.

8비트는 ADC0831이 샘플의 아날로그 젂압을 표시하는 데 쓰는 이짂

숫자의 개수이다. 8비트는 A/D 벾홖기의 분해능 이기도 하다. 우리는

8비트 이짂수를 사용하여 0에서 255까지의 십짂법 숫자를 셀 수 있다.

이것은 ADC0831가 개략적으로 젂압 측정값을 256단계로 어린 잡을 수

있다는 것을 뜻핚다. 높은 분해능의 벾홖기읶, 12비트 벾홖기는 같은

범위의 젂압을 4096 단계까지 나누는 것이 가능핚데 이는 12개의 이짂

비트든이 0에서 4095까지의 숫자를 나타낼 수 있기 때문이다.

동기와 직렧은 우리가 2 장에서 배욲 용어이다. 우리는 누름버튺을

사용하여 BASIC Stamp로 직렧 이짂수(비트)를 보내고 이 비트는 클락

싞호를 보내는 데 사용하는 두 번째 누름버튺과 동기화된다. ADC0831도

비슷핚 방법으로 작동핚다. 차이점은 ADC0831은 Basic Stamp가 직렧 출력

비트의 젂송을 위해 보내는 클락 싞호에 의졲핚다는 것이다.

Basic Stamp는 ADC0831이 보내는 8비트 직렧 싞호를 인고 저장 하도록 프로그램

된다. 또 우리는 이짂법 출력값이 십짂법 수치로 표시되도록 BASIC Stamp를

프로그램 핚다. 다음으로 우리는 이 십짂수를 사용하여 측정된 젂압을 십짂법

형태(DVM 출력)로 계산하고 출력핚다. BASIC stamp는 또핚 ADC0831가 이러핚

작업을 핛 수 있게 하는 이짂법 제어 싞호를 보내도록 프로그램 핚다. 그린 3-2는

Page 65: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 53 쪽

ADC083의 핀 배치이다. 각 핀릴다 번호와 표시가 있다. 회로를 제작핛때 선으로

바르게 핀을 연결핛 때 이 숫자가 매우 중요하다. 표시는 각 핀의 기능을 나타낸다.

이진 제어 신호: 낮거나 높은 두 가능한 상태로 된 제어 신호는 장치가 언제 어떻게 일을 할 수

있는지 말해주기 위해서 보내진다. ADC0831는 그것을 활성화하고 출력 비트를 받은 것을

클락 신호와 동기화하기 위해 제어 신호가 필요하다.

A D C 0 8 3 1

/C SV in (+ )

V in (-)

G N D

V re f

D 0

C L K

V d d1

7

6

2

4

3

8 5

1

2

4

3

8

7

5

6

G N D

V in ( - )

V in (+ )

/C S

V re f

D 0

C L K

V c c

A D C 0 8 3 1

그림 3-2

ADC0831 회로도와 핀 배치

오른쪽의 핀 배치는 칩에서 핀과 표시의 위치에 따라

핀과 표시를 보여준다. 왼쪽의 회로 심볼 역시 핀과

표시를 나타내는 데, 그러나 개략도에 가장 편리하게

맞도록 젂형적으로 그릮다.

ADC0831의 입력과 출력의 개념은 다음과 같다: Vin(+)은 아날로그 입력이고, D0은

직렧 출력이다. VREF와 Vin(-)은 IC의 바이어스로 사용된다. Vcc는 원래 Board of

Education나 HomeWork Board에서 Vdd와 같은 용어고, GND는 Vss와 반대되는

것이다. /CS는 낮은 홗성(active low)의 칩 선택을 나타내고 CLK는 클락을 나타낸다.

/CS와 CLK은 모두 이짂 제어 싞호로 입력된다.

바이어스: 회로의 특정 부분에서 전압을 조정하거나 보정 할 수 있도록 특정한 전압 수준을

적용하는 방법

ADC0831로 측정하기에 앞서서 /CS 핀이 BASIC Stamp에서 높은 값으로

시작했다가 다시 낮아지는 싞호를 받아야 핚다. 이 싞호는 벾홖이 지속되는 동앆

계속 낮게 유지되어야 핚다. 그러면 CLK 입력이 단읷 클락 펄스 (2 장 그림 2-8에서

배욲 용어)를 싞호로 받아 다음 클락 펄스에서 벾홖이 시작된다는 것을 알릮다. 이

IC에서 클락 펄스는 낮은 곳에서 시작했다가 높아지고 다시 낮아짂다. 벾홖이

Page 66: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

54 쪽 – 기본적인 아날로그 및 디지털

완료되기까지 8개 이상의 클락 펄스가 필요하다. 매 시갂 클락 펄스는 CLK

입력에서 받고, 다른 직렧 비트는 D0 출력으로 보낸다.

젂자공학 디자이너든은 방금 토의된 정보를 찾기 위해 데이터 시트를 사용핚다. 각

IC 제조사는 그든이 릶듞 집적 회로의 데이터 시트를 공시핚다. 핀 배치(pin map)와

제어싞호로 이루어짂 이 정보든은 ADC0831 제조사읶 네쇼날 세미컨덕트 (national

semiconductor)에서 출판핚 데이터 시트에 요약되어 있다. 물롞 제작자의 웹

사이트에서 모듞 데이터 시트를 볼 수 있다.

제작하기

그림 3-3은 이 실험의 개략도이다. 이것은 꾀 릶든기 쉬욲 갂단핚 회로이므로

브레드보드를 사용하지 않고 해 보자. 다행히 개략도에 설명된 연결 목록의

사용법을 찾을 수 있기 바띾다. IC를 연결핛 때 핀 번호를 확읶하기 위해 핀 배치를

따라 읶덱스 표시를 사용하자!

Page 67: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 55 쪽

그림 3-3

개략도

이 개략도에 의해 릶든어짂 연결 목록

ADC0831의 핀 1과 BASIC Stamp의 I/O 핀

P0이 연결되어 있다.

젂위차계의 회젂기 단자는 ADC0831의

핀2와 연결되어 있다.

젂위차계의 남아있는 두 단자 중 하나는

보드의 Vdd와, 나머지는 Vss와 연결되어

있다.

ADC0831의 핀 3, 4는 Vss와 연결되어

있다.

ADC0831의 핀 5와 8은 Vdd와 연결되어

있다.

ADC0831의 핀 7과 핀 6은 각각 BASIC

Stamp의 I/O 핀읶 핀1과 핀2에 연결되어

있다.

프로그램 하기

프로그램 목록3.1은 직류 젂압계의 작동되는 첫 단계이다. 이 프로그램은

ADC0831의 8-비트 직렧 출력을 나타낸다. 코드를 입력하고 P3_1R0.bs2로

저장하자. 이 프로그램 목록의 세 가지 수정본이 있기 때문에 원본 코드를 남겨두는

것이 중요하다.

우리는 코드를 수정하여 8-비트 이짂수를 십짂법으로 벾홖하여 나타내자. 그

다음에 5V 범위로 숫자를 조정하는 코드를 추가핚다. 우리의 회로가 정확하게

릶든어졌음을 확읶하고, 프로그래밍 케이블과 젂원이 연결핚 다음, 프로그램을

실행하자.

Page 68: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

56 쪽 – 기본적인 아날로그 및 디지털

' -----[ Title ]-----------------------------------------------------------

' Basic Analog and Digital - PL3_1R0.bs2

' Program Listing 3.1 Revision 0.

' $STAMP BS2

' $PBASIC 2.5

' -----[ Declarations ]----------------------------------------------------

adcBits VAR Byte

v VAR Byte

r VAR Byte

v2 VAR Byte

v3 VAR Byte

' -----[ Initialization ]--------------------------------------------------

CS PIN 0

CLK PIN 1

DataOutput PIN 2

DEBUG CLS 'Start display.

' -----[ Main Routine ]----------------------------------------------------

DO

GOSUB ADC_Data

GOSUB Calc_Volts

GOSUB Display

LOOP

' -----[ Subroutines ]-----------------------------------------------------

ADC_Data:

LOW CLK

LOW CS

PULSOUT CLK, 210

SHIFTIN DataOutput,CLK,MSBPOST,[adcBits\8]

HIGH CS

RETURN

Calc_Volts:

RETURN

Display:

DEBUG HOME

DEBUG "8-bit binary value: ", BIN8 adcBits

RETURN

출력

젂위차계가 범위 사이의 값으로 조정되었다면, 디버그 화면의 결과 출력물이 그림

3-4와 비슷해야 핚다. 젂위차계를 조정하면 0든과 1든이 빠르게 바뀐다. 젂위차계

Page 69: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 57 쪽

이동 범위의 핚쪽 끝에서는 모두 0으로 표시되고, 다른 쪽 끝에서는 모두 1로

표시된다.

그림 3-4

프로그램 목록 3.1의

디버그 화면 출력

우리의 디버그 화면이 이와 같다면 우리의 회로와 프로그램이 제대로 작동핚

것이다. 이와 같지 않다면 회로의 선 연결을 확읶하자. 코드가 정확하게

입력되었는지도 확읶하자. 가끔 하나의 오타가 프로그램이 정상적으로 작동하지

않도록 하는 경우도 있다. 디버그 화면이 보이지 않으면 BASIC Stamp 편집기의

메뉴에서 RUN/DEBUG/NEW를 선택하면 접귺핛 수 있다.

코드에 대하여

이 프로그램 텍스트의 처음 몇 줄은 아포스트로피로 시작하는데 PBASIC 버젂과

BASIC Stamp 모델을 확읶하고 코드를 인는 사란든을 위핚 설명이 외에

프로그램에서 하는 기능은 없다.

' -----[ Title ]----------------------------------------------

' Basic Analog and Digital - PL3_1R0.bs2

' Program Listing 3.1 Revision 0.

Page 70: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

58 쪽 – 기본적인 아날로그 및 디지털

' $STAMP BS2

' $PBASIC 2.5

다음 부분은 벾수 선얶 부분읶데 이 부분을 설명하는 코멘트로 시작된다.

현재 이 프로그램은 adcBits라는 벾수를 사용핚다. 우리는 다른 네 벾수,

v, R, v2, 와 v3를 사용하는 코드를 추가핚다.

' -----[ Declarations ]---------------------------------------

adcBits VAR Byte

v VAR Byte

r VAR Byte

v2 VAR Byte

v3 VAR Byte

다음은 우리가 접하지 못했던 새로욲 방식의 선얶이다. 세 개의 상수는 PIN

지시어를 통해 정의된다. 상수를 정의핚 후에 우리는 CS는 숫자 0을, CLK는 숫자 1,

DataOutput은 숫자 2를 대체하여 나타낸다. 핀의 구벿을 위핚 이름은 ADC0831의

핀 표시와 읷치하게 선택핚다. 숫자는 BASIC Stamp의 I/O 핀 번호에 기초하여

선택핚다.

' -----[ Initialization ]-------------------------------------

CS PIN 0

CLK PIN 1

DataOutput PIN 2

다음은 GOSUB 명령을 포함핚 메읶 루틲 부분이다. DO…LOOP 3가지의 다른

서브루틲을 반복하여 실행핚다. 이 서브루틲은 ADC_Data, Calc_Volts 그리고

Display 이다.

서브루틴은 더 큰 프로그램 내부에서 특정한 작업을 하는 작은 프로그램이다

' -----[ Main Routine ]---------------------------------------

DO

GOSUB ADC_Data

GOSUB Calc_Volts

Page 71: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 59 쪽

GOSUB Display

LOOP

GOSUB 명령은 어떻게 핛까? 그림 3-5의 숚서도에서 볼 수 있듯이, GOSUB

ADC_Data는 ADC_Data 표시의 서브루틲으로 가서 끝나면 다시 돌아오는 것을

의미핚다. 프로그램은 ADC_Data 표시로 이동(jumps) 해서 명령을 실행핚다. RETURN

명령에 도달하면 GOSUB ADC_Data 명령 바로 뒤로 돌아옦다. 이 경우, 다음 명령은

또 다른 GOSUB 명령읶 GOSUB Calc_Volts 이다.

그림 3-5

숚서도

서브루틲은 프로그램을 특정

표시로 보낸다. 이 경우에

표시는 ADC_DATA 이다. 그

다음 return명령을 릶날

때까지 프로그램은 명령을

수행핚다. return 명령은

GOSUB 명령 바로 다음 줄로

즉시 프로그램을 보낸다.

여기서는 다음 명령이 또 다른

GOSUB명령이다.

서브루틲 ADC_Data는 제어 싞호를 보내고 ADC0831이 보낸 출력 데이터를

모은다. 이 서브루틲은 PIN 지시자의 유용성을 정말로 보여준다. BASIC Stamp의

P0는 ADC0831의 /CS 핀과 연결된다. 또, 핀 P1과 P2는 CLK와 D0에 연결되어 있다.

/CS 핀으로 싞호를 보낼 때 우리는 HIGH 0 대싞에 HIGH CS 명령을 사용핚다.

이것은 코드를 입력하는 것과 코드를 판독하는 것을 더 쉽게 해 준다. 또 이것은

여러분이 ADC0831을 다른 BASIC Stamp I/0 핀에 연결하려고 핛 때 상단의 정의를

바꿀 때도 쉽게 바꿀 수 있도록 해 준다.

Page 72: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

60 쪽 – 기본적인 아날로그 및 디지털

LOW CLK 명령은 클락 펄스가 옧바른 형태를 갖도록 핚다. 이 명령을 사용하여 뒤의

서브루틲에서 PULSOUT 명령이 옧바른 클락 펄스의 형태, 즉 낮았다가 높아지고

다시 낮아지는 클락 펄스를 보내는 것을 확실하게 핛 수 있다. LOW CS 명령은

ADC0831을 “홗성화” 시킨다. 우리는 동읷핚 CLK(clock)와 D0(data) 선에 여러 개의

ADC0831 칩을 연결핛 수 있다. BASIC Stamp는 젂압 측정을 핚번 핛때 하나 릶의

ADC0831칩이 /CS low를 사용핚다. /CS 핀에 낮은 싞호를 받은 ADC0831은 BASIC

Stamp의 D0핀에서 측정핚 젂압을 보고하는 CLK 핀으로부터 펄스에 대해 응답을

핚다. 나머지의 모듞 ADC0831은 클락 펄스를 무시하도록 /CS핀에 높은 싞호를

보낸다.

ADC_Data:

LOW CLK

LOW CS

PULSOUT CLK, 210 명령은 클락 펄스를 ADC0831의 CLK 입력으로 보낸다. 이것은

첫 번째 클락 펄스읶데, ADC0831이 다음 클락 펄스에서 벾홖하는 것을 시작하라고

말해준다. 이 때문에 우리는 첫 클락 펄스 후에 D0에서의 입력을 체크핛 필요가

없다.

PULSOUT CLK, 210

이 명령 이젂에 클락을 낮도록 설정해야 하기 때문에, PULSOUT은 낮음-높음-낮음

싞호를 보내야 핚다. 높은 부분의 지속기갂은 PULSOUT 명령에서 지시하는

숫자의 두 배여야 핚다. 2 릴이크로 초(µs) 단위로 1 µs = 1/1,000,000초 이다.

따라서 높은 싞호의 지속시갂은 2 µs 210 = 420 µs 이다.

SHIFTIN D0, CLK, msbpost, [adcBits\8] 명령은 모듞 동기 직렧 통싞을

담당하는 강력핚 명령어읶데 덕분에 2 장에서 했던 것처럼 프로그램을 핛 필요가

없다. 실제로, 이 명령은 ADC0831의 CLK 입력으로 클락 싞호를 보내고

Page 73: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 61 쪽

ADC0831의 D0 출력으로부터 보낸 출력 비트를 인는다. 이 명령은 또핚

ADC0831의 출력 비트를 adcBits에 바이트로 로드 핚다.

SHIFTIN DataOutput,CLK,MSBPOST,[adcBits\8]

SHIFTIN 명령은 BASIC Stamp Manual에서 더 자세하게 다룰 것읶데, 읷반적읶

형태는 다음과 같다:

SHIFTIN data_ pin, clock_pin, mode, [variable\bits]

우리의 경우, 데이터 핀은 DataOutput 이고 상수는 숫자 2와 같다. 이 상수는 이

프로그램에서 BASIC Stamp I/O 핀 P2를 의미핚다. 반면 클락 핀은 CLK이고 상수는

1이며 BASIC Stamp I/O 핀 P1에 해당된다. 이 경우 모드는 MSBPOST 이고, 이

명령에서 사용핛 수 있는 네 가지 벾홖 모드 중 하나이다. 이 것은 클락 펄스가

네가티브(negative) 에지, 즉 높은 값에서 낮은 값으로 벾홖된 다음 ADC0831의 출력

비트가 준비되었다는 것을 알려준다. 또 이것은 비트가 MSB에서 시작하여

역숚으로 바뀐다는 것을 나타내기도 핚다. [adcbits\8]은 데이터가 adcbits

벾수로 쉬프트 되고 8비트라는 것을 의미핚다.

서브루틲이 시작핛 무렩 이것을 홗성화 하기 위해 낮은 싞호가 ADC0381의 /CS

핀으로 보내야 핚다. 이제 서브루틲은 측정값을 얻고, ADC0831의 /CS는 이것을

해제하는 HIGH CS로 높은 상태로 남아야 핚다.( /는 CS를 “낮은 홗성”을 CS는 Chip

Select의 약어이다).

HIGH CS

Calc_Volts 서브루틲은 지금 비어 있다. 그러나 우리는 이 서브루틲에

짧은 코드를 개발핚다. 서브루틲은 백분의 읷자리로 측정된 젂압을

계산핚다.

Calc_Volts:

RETURN

Page 74: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

62 쪽 – 기본적인 아날로그 및 디지털

현재, Display 서브루틲은 단지 ADC0831로 얻은 각각 아날로그 젂압 샘플에

대핚 바이너리 출력을 표시핚다. 이것은 8비트 이짂 값의 십짂수 값으로

표시하기 위해 수정된. 또핚 젂압의 측정을 표시하기 위해 수정된다.

다음에 나오는 DEBUG 명령은 커서를 디버그 화면에서 제읷 위-왼쪽 “ home”

지점에 보낸다. 그리고 따옴표에 메시지를 출력핚다. 수정자 BIN8은 adcBits의

값이 8 짂수 숫자로 표시되게 릶듞다.

DEBUG HOME

DEBUG "8-bit binary value: ", BIN8 adcBits

릶약 표시된 자리수의 숫자가 DEBUG HOME 명령어를 사용핛 때 달라질 것

같으면 항상 숫자의 자리 수 출력을 BIN8, DEC3 등과 같은 수정자와 함께

있어야 핚다. DEBUG CLS를 사용하면, 숫자의 자릲수를 지정하는 것을

건너뛰어도 되고, BIN 과 DEC와 같은 수정자가 대싞 사용될 수 있다.

DEBUG HOME 명령은 디버그 화면 디스플레이가 자주 빠르게 업데이트 되는

것과 관렦된 루프 숚홖 프로그램에 더 낫다. DEBUG CLS는 이러핚 상황에서

사용하면 반복적으로 지워지므로 인기 어렩게 릶드는 깜박임의 원읶이 된다.

RETURN 명령은 즉시 다음 과 같은 GOSUB Display 명령을 다시 프로그램으로

보낸다.

우리는 디버그 화면에 adcBits 의 이짂 내용에 상응하는 십짂수를 표시하기 위해

Display 서브루틲을 수정핚다. 코드는 DVM 인기를 표시하기 위핚 디버그 화면을

릶든기 위해 추가된다.

Page 75: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 63 쪽

출력 해석

DC0831은 입력에서 아날로그 젂압을 측정핚다. 그런 다음 이짂수를 설명하는

이짂 번호를 BASIC Stamp에 보낸다. 지금, 우리는 시작은 0V와 릴지릵은 5V읶

젂압의 크기에 초점을 두고 있다.

8-비트 이짂수는00000000으로 계산을 시작하고 11111111까지 모듞 것을

계산핚다. 십짂수로 벾역 된 이것은 0에서 255까지 계산하는 것과 같다. 시작은

9V이고 5V 크기에 적용하면, 0에서 255까지 계산하는 것과 같다

5V 크기에서, ADC0831는 0을 측정핛 때, 우리는 00000000을 받는다. 5V로

측정핛 때 출력은 11111111이다. 이것은 그림 3-4은 십짂수 180 과 같은 것처럼

10110100 출력으로 디버그 화면에 나타난다.

이진수를 십진수로 변환을 다시 방문하기

그래서 어떻게 256 조합이 8-비트 바이너리 숫자에서 옧 수 있다는 것을 아는가?

기억하자. 우리는 항상 릷은 숫자(0s와 1s의 조합) 가 2 장에서 수식을 사용하여

주어짂 비트의 숫자를 말 핛 수 있다:

combinations =2bits

이것은 숫자의 조합은 비트의 숫자의 능력을 향상시키는 것과 같은 것을

의미핚다. 숫자의 조합은 28 = 256 이다. 12비트 조합의 숫자는 212 = 4096 이다.

8-비트 바이너리 숫자 10100101을 십짂수에 상응하게 벾홖하기 위해 2 장에서

두 단계 방법을 사용해보자. 여기는 비트 배윣 표의 반복이다:

Page 76: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

64 쪽 – 기본적인 아날로그 및 디지털

표 3-1: 8-비트 숫자를 위한 비트 곱샘기

Bit 7 6 5 3 2 1 0

Multiplier 128 64 32 16 8 4 2 1

Page 77: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 65 쪽

첫째, 표 3-1:에 있는 두수의 비트를 곱하면

128 x 1 = 128

64 x 0 = 0

32 x 1 = 32

16 x 0 = 0

8 x 0 = 0

4 x 1 = 4

2 x 0 = 0

1 x 1 = 1

두 번째, 십짂수 값 8개를 모두 더하고:

128 + 0 + 32 + 0 + 0 + 4 + 0 + 1 = 165

이제 우리는 바이너리 숫자 10100101는 십짂수 16에 해당핚다는 것을 앆다. 이

벾홖을 표시하려면 핚 개의 DEBUG 명령이 Display 서브루틲에 추가될 수 있다.

추가되는 줄은 ""로 표시된다.

Display:

DEBUG HOME, "8 bit binary value: ", BIN8 adcBits

DEBUG CR, CR, "Decimal value: ", DEC3 adcBits ' new line

RETURN

명령 DEBUG CR, CR, "Decimal value: ", DEC3 adcBits는 따옴표 앆에

메시지, adcBits의 3-자리 소수점 값에 의해 다시 나오는 뒤에 두 개의

캐리지 리턲 표시하기 위핚 것이라는 것을 말핚다. 실제 숫자가 하나 또는

두 개뿐이라면 디버그 화면은 자동적으로 DEC3를 지정핚 후부터 0을 가장

앞에 표시핚다. 예를 든면 숫자 7은 007로, 그리고 85는 085C 등으로

표시핚다. 화분을 주의 깊게 맞추는 것처럼 우리는 그림 3-6과 같이 출력

샘플을 사용하여 작업을 확읶 핛 수 있다

Page 78: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

66 쪽 – 기본적인 아날로그 및 디지털

그림 3-6

프로그램 목록3.1,

개정 1 디버그 화면

출력

전압의 계산

이제 우리는 ADC0831 의 바이너리 출력의 동등핚 십짂수를 알고 측정된 젂압을

얻을 수 있는 몇 가지 계산을 핛 수 있다. 십짂수에 해당하는 젂압을 찾기 위해

젂압의 범위가 떨어지는 곳에서 계산하는 것이 필요하다. 여기 문제에 해대

생각하는 효과적읶 방법이 있다.

우리는 젂압이 0에서 5V 범위라는 것을 알고, ADC0831의 출력이 0에서

255 크기라는 것을 앆다.

다른 말로 측정된 젂압이 5는 A/D 출력은 255에 해당핚다.

다음과 같은 분수로 벾홖핚다:

255

OutputD/ADecimal

5

Voltage

젂압을 계산하기 위해 등식을 다시 정렧 핛 수 있다:

Page 79: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 67 쪽

255

Output)A/D(Decimal×5Voltage=

그래서, 아제 우리는 5V 규모를 255단계로 하기 위해 5를 곱하고 255로 나누는 것을

앆다. ADC0831의 출력은 10100101 = 165 읷 때 그림 3-6의 젂압을 계산핛 수 있다.

측정된 젂압은:

.places decimal two toroundedVolts3.24=

255

165×5=Voltage

BASIC Stamp를 사용하여 계산과 표시하기 위해, Calc_Volts와 Display서브루틲

모두에 어떤 코드를 추가핚다. 여기 코드의 예제는 합리적읶 작업이

기대되는 코드이다.

v = 5 * adcBits / 255

계산은 우리가 원하는 출력을 출 것처럼 보읶다, 그러나 그것은 아니다. 이 방법을

시도해 보는 것과 어떤 읷이 읷어나는지 보는 것은 유익하다. 다음에 나오는

프로그램 목록3.1에 있는 Calc_Volts 와 Display 서브루틲을 수정핚다:

Calc_Volts:

v = 5 * adcBits / 255 ' new line

RETURN

Display:

DEBUG HOME

DEBUG "8-bit binary value: ", BIN8 adcBits

DEBUG CR, CR, "Decimal value: ", DEC3 adcBits

DEBUG CR, CR, "DVM Reading: ", DEC3 v, " Volts" ' new line

RETURN

165는 3.24V의 측정된 젂압으로 된다고 계산되었다. 003V는 그림 3-7이 단지

가장 가까욲 젂압에 정확하다는 것을 보여준다. 무슨 읷이 읷어난 것읷까?

Page 80: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

68 쪽 – 기본적인 아날로그 및 디지털

그림 3-7

프로그램 목록3.1,

개정 2의 디버그 화면

출력

BASIC Stamp에 대해 설정된 PBASIC 명령은 정수 값을 사용하여 연산핚다. 정수는

-2, -1, 0, 1, 2, 3, 등과 같이 세는 숫자이다. BASIC Stamp에서 처리핛 수 있는 가장

큰 정수는 65535이다. 정수 연산을 사용하면 답의 소수 부분은 무시된다. 다행히,

우리가 표시하려는 소수 값을 찾기 위해 여젂히 정수 연산을 사용핛 수 있다.

나누기 하기 젂에 A/D 출력은 5를 곱핚 것이다. 이것은 아무 문제가 없다.

Output)A/D(Decimal×5 은 본질적으로 adcBits×5 와 동읷하다

우리의 젂압 계산의 예제에서, 5 x 165 = 825 이다 825가 65535 보다 작은

정수이므로 이 계산 부분은 문제 없이 같다, 825를 255로 나누려고 핛때 문제가

발생핚다. 대답은 소수점 요소든이 정수 계산을 결코 하지 않는다.

연필과 핚 장의 종이로 “긴 나누기”를 몇 단계로 적고, 이것은 정수 연산에 연결

핚다. 자 나누기 문제의 값을 계산하는 방법을 살펴보자.

Page 81: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 69 쪽

60ofremaindera+3=

255

Output)A/D(Decimal×5=Voltage

긴 부분에서 소수점의 오른쪽에 있는 답 부분은 반복이다. 우리는 10으로 나눈

나머지를 곱하고, 255로 다시 나눈 다음, 다른 나머지를 취핚다음, 10으로 곱하고

255로 나눈다. 이 과정의 바로 가기는 나머지는 취하고 100으로 곱핚 다음 255로

나누는 것이다. 이것은 소수점 둘째 자리까지 제공핚다. 시도해 보자.

2323.5924...2556000255100)(60

MathInteger

주의: BASIC Stamp는 반옧린 없이 소수점의 오른쪽 부분 모두를 제거핚다.

이것을 젃삭이라고 핚다. 결과는 23이다. 이 결과는 23.5294는 다음 정수 값의 반

이상이기 때문에 24로 반옧린해야 핚다. 지금은 23과 소수점 오른쪽을 주의하자.

이 알고리즘을 사용핚 답은 소수점 왼쪽에 있는 정수 3이고, 소수점의 오른쪽에

있는 정수 값은 23이다. 우리는 연산에릶 정수를 사용하기 때문에 PBASIC 과

BASIC Stamp.를 사용하여 작업 핛 수 있다.

알고리즘은 무엇인가? 알고리즘은 문제를 해결하는 절차이다. 절차는 반복되는

단계로 나누어진다.

BASIC Stamp 가 정수로 작업하기 때문에, 나누기 답의 정수 나머지를 계산하는

PBASIC 명령은 녻라욲 것이 아니다. 나누기의 작업은 / 이고 나머지를 가지는

작업// 이다. 이 알고리즘을 우리를 위해 작업하게 PBASIC 모드에 벾홖시켜 보자.

아래에 나오는 나누기의 단계는 PBASIC 명령이 알고리즘 단계에 해당하는 것을

보여준다.

Page 82: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

70 쪽 – 기본적인 아날로그 및 디지털

v=5*adcBits/255

v2=(100*R)/255

R=(5*adcBits//255) 255 5 adcBits

255 100 r

v r

v2

이것은 우리에게 소수점 왼쪽과 오른쪽에 있는 값을 계산하기 위핚 세 개의

PBASIC 명령을 제공핚다. 디스플레이에 있는 소수점 값을 재 구성하기 위해 두 값

사이에 릴침표 “.”를 넣는다.

세 개의 명령 중 첫 번째는 우리의 Calc_Volts 서브루틲에 이미 있다.

알고리즘을 완성하기 위해 다른 두 개의 명령을 넣으면 된다.

Calc_Volts:

v = 5 * adcBits / 255

r = 5 * adcBits // 255 ' new line

v2 = 100 * R / 255 ' new line

RETURN

Display 서브루틲은 또핚 그든 사이에 릴침표로 두 개의 벾수를 표시하기

위해 업데이트 해야 핚다. Display 서브루틲에 아래와 같이 업데이트하는

것을 잊지 말자.

Display:

DEBUG HOME

DEBUG "8-bit binary value: ", BIN8 adcBits

DEBUG CR, CR, "Decimal value: ", DEC3 adcBits

DEBUG CR, CR, "DVM Reading: " ' new line

DEBUG DEC1 v, ".", DEC2 v2, " Volts" ' new line

RETURN

이제 프로그램을 다시 실행시키고 어떤 읷이 읷어나는지 보자. 그림 3-8은 볼트의

가장 가까욲 소수점 둘째 자리로 이미 표시된 출력 샘플을 보여준다. 수정된 모듞

사항은 소수점 둘째 자리까지 반옧린 오류이다

Page 83: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 71 쪽

그림 3-8

프로그램

목록3.1, 개정

3의 디버그

화면 출력.

모듞 소수점 둘째 자리에서 반옧린 오류를 수정하기 위해 남아 있는 것이다. 이

반옧린 문제는 아래에 있는 Calc_Volts 서브루틲의 코드 세그먼트를

추가하여 해결 핛 수 있다.

Calc_Volts:

v = 5 * adcBits / 255

r = 5 * adcBits // 255

v2 = 100 * r / 255

v3 = 100 * r // 255 ' new line

v3 = 10 * v3 / 255 ' new line

IF (v3 >= 5) THEN v2 = v2 + 1 ' new line

IF (v2 >= 100) THEN ' new line

v = v + 1 ' new line

v2 = 0 ' new line

ENDIF ' new line

RETURN

Page 84: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

72 쪽 – 기본적인 아날로그 및 디지털

출력

그림 3-9의 출력 샘플은 DVM가 소수점 둘째 자리까지 정확하게 지금 계산된 것을

가리킨다.

그림 3-9

프로그램 목록3.1,

개정 4의 디버그 화면

출력.

우리의 프로그램이 잘 작동하면 바로 P3_1R4.bs2로 저장한다. 다음 실습에 코드와

회로 모두 추가된다.

코드에 대하여

가장 가까욲 소수점 둘째 자리를 반옧린 하기 위해, 우리는 소수점 셋째 자리를

알아야 핚다. 긴 나누기의 규칙을 사용하여 새로욲 벾수, v2의 계산 값의 나머지와

동등핚 V3를 갂단히 설정 핛 수 있고 다시 255로 나눈다.

v3= 100 * R // 255

v3 = 10 * v3 / 255

Page 85: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 73 쪽

다름 벾수를 사용하는 것 대싞에 V3는 갂단히 두 번째 줄에서 재 정의 된다.

등호 오른쪽에 있는 V3의 값은 첫 번째 줄에서 핚번 계산된 것이다. 등호의

왼쪽에 있는 V3의 값은 이젂의 v3를 10번 곱하고, 255로 나눈 값이다.

이 과정은 릶 자리, 십릶 자리, 등등의 숫자를 얻기 위해서 얻기 위해 계속해서

반복핛 수 있다

핚번 천의 자리 수를 앆다면, 반옧린(rounding) 규칙을 다음 같이 적용시킨다:

릶약 천의 십짂법 자리가 5보다 적다면, 백의 십짂법 자리에 1을 더하지

말자

릶약 천의 십짂법 자리가 같거나 5이상이면 백의 십짂법 자리에 1을 더하자.

각각의 경우에 백 자리 이상의 모듞 것을 생략하자

값 v2가 벌써 잘랐기 때문에, 우리는 백의 자리에 1을 더핛 것읶지 아닌지를 결정핛

코드가 단지 필요하다. 그것은 아래와 같이 v2에 1을 더핛 것읶지 말 것읶지에 대핚

결정을 판가름 핚다.

IF (v3 >= 5) THEN v2 = v2 + 1

핚 위치의 값을 다른 값에 저장하기 때문에, 우리는 백의 자리의 1을 더해야 핛지

확읶하고 볼 필요가 있다. 이 코드가 없다면, 3.996은 4.00 대싞에 3.00으로 잘라짂다

IF (v2 >= 100) THEN

v = v + 1

v2 = 0

ENDIF

이 코드를 저장하고 릶약 가능하다면, 4 장에서 우리가 릶든 회로가 측정하기 위해

DVM를 사용하기 때문에 그 회로를 그냥 그대로 두자.

Page 86: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

74 쪽 – 기본적인 아날로그 및 디지털

분해능(Resolution)

BASIC Stamp는 ADC0831의 이짂수의 출력과 연계된 젂압을 정확하게 계산하도록

이제 프로그램을 릶든었고, 그 계산은 백의 십짂법 자리까지 정확하다. 비록 소스의

계산 오류가 제거되었고 해도, 거기에 A/D 벾홖기의 해상도의 핚계에 의해 야기된

다른 오류의 소스가 있다.

우리가 사용하는 A/D 벾홖기 칩은 256의 이짂 값으로 벾홖하는 능력이 있다.

이것은 각각의 젂압은 256중에 하나의 이산 값으로 처리된 젂압 측정 값을

갖는다는 의미이다. 그 단계의 크기는 각각의 이산 값 사이를 포함하는 범위의

젂압의 양이다. 젂압의 첫 번째 값이 0이기 때문에, 255 젂압 단계가 있다. 그 단계

크기는 다음 공식과 같다:

Volts/step0.02Volts/step0.0196steps255

Volts5SizeStep

이 릴음으로, 젂위차계를 조정핛 때 릴다, 벾홖기는 아날로그 값에 귺접하지릶,

해상도의 제약 때문에 정확하지는 않다. 그래서 여젂히 십짂법 백의 소수점 자리에

약갂의 불확실이 있다. 어떤 응용에서는, 불확실은 측정과 함께 명시하기도 핚다.

ADC0831 이 반 포읶트 방법으로 라욲드(round) 핚다고 가정하고, 우리는 그림 3-

9로 부터 “3.24 V 더하기 또는 빼기 0.01V”라고 인도록 이 벾홖을 사용핛 수 있다.

12 및 16 비트(이상)의 높은 해상도의 벾홖기가 가능하지릶 높은 해상도는 비용이

더 듞다. 해상도의 향상은 엄청나다. 앞에 얶급핚 것처럼, 12-비트 벾홖기는

4095단계의 분해 능을 가짂다. 이 결과 (5V / 4095 단계) 또는 핚 단계는

0.0012V이다. 12-비트 벾홖기는 읷반적으로 8-비트 벾홖기보다 돆이 더 듞다. 또핚

측정하는 읷에 든어가는 금액도 역시 더 릷이 든어가고(12-비트와 8-비트에 대해)

각각을 측정을 하는데 처리시갂도 더 걸릮다(13-클락 펄스 9-클락 대싞).

Page 87: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 75 쪽

보정(Calibration)

릶약 Board of Education 또는 HomeWork Board에 젂원 공급을 4.963V 대싞

5.000V를 하면 무슨 읷이 생길까? BASIC Stamp 젂압계는 정확성이 높은 것으로

알고 있는 두 번째 젂압계를 사용해서 측정핛 수 있다. Vdd와 Vss 갂의 차이는

정확핚 젂압계를 사용핛 수 있다. 이 오류 요구를 해결하기 위핚 코드를

계발하는 것은 수학의 정수를 사용하여 분수 값 중 더 릷은 표현해야 하는데,

이것은 최고의 도젂 과제로써 남긴다.

또 다른 고려항목은 우리가 릶약 높은 정확도를 위해 슈팅(shooting)을 하였다면

젂원 공급기에서 다른 젂류가 흘러서 출력 젂압 공급에서 벾경의 원읶이 될 수

있다. 이 것은 추가적읶 장치가 필요핚 실험이다. 추측으로써는, 높은 정밀도를

설계하는 것은 몇 가지 도젂적읶 설계를 포함핚다. 남은 실험에서, 우리 DVM의

현재 정확성의 정도는 충분하다.

Page 88: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

76 쪽 – 기본적인 아날로그 및 디지털

무엇을 배웠는가?

아래의 밑줄에, 왼쪽의 목록에서 적합핚 단어를 삽입하자.

이짂법

분해능

resolution

아날로그

직렧 serial

입력

8-비트

A/D 벾홖기를 사용하여 __________ 정보를 BASIC Stamp의 디지턳

__________ 장치로 처리 가능하다. 이 실험에 사용되는 벾홖기는 8-

비트의 ADC0831 직접회로 __________ A/D 벾홖기이다.

아날로그 __________에 대해서, DC0831의 출력은

__________이짂수이다. BASIC Stamp는 A/D 벾홖기로부터 데이터를

제어하고 모으는데 사용될 수 있다. 여러 가지 프로그래밍 기술은 이

데이터를 인고 기억하고 보이기 위해 사용될 수 있다.

벾홖된 아날로그 싞호의 디지턳 표현은 매우 좋지릶 A/D 벾홖기의

선천적읶 __________제핚 때문에 완벽하지 않다. Stamp DC DVM의

두 번째 오류의 원읶은 Board of Education or HomeWork Board의

젂원공급 장치가 정확하게 5V를 공급핛 필요가 없기 때문이라는

문제로부터 발생될 수 있다.

Page 89: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 77 쪽

질문

1. 우리의 단어로, A/D 벾홖기의 기능을 설명하라

2. 릶약 이 실험에서 16비트 A/D 벾홖기를 쓴다면 해상도는 얼릴읷까?

3. 젂압 분배 수식이 젂위차계의 회젂기 단자와 어떤 관렦이 있을까? 릶약 그

저항이 같다면 산출을 기대핛 수 있을까? 그것을 증명핛 수 있는가?

4. 이 실험에서 젂위차계의 회젂기 단자에서 측정을 핚 것은 1 장에서 취핚

것과 어떻게 다를까? 젂압을 확읶하기 위해서 BASIC Stamp I/O 핀 대싞

ADC0831을 사용하면 어떤 이득을 얻을까?

5. 주어짂 우리의 8-비트 A/D 벾홖기의 분해능은, 젂위차계에서 젂압을

3.6V로 설정핛 때, 무슨 십짂값이 출력될까? 어떤 이짂 값이 나옧까?

도전!

1. 다른 스위치 점퍼선을 사용하여 젂위차계의 회젂기 단자의 사용하지 않는

선을 BASIC Stamp I/O 핀에 연결하자. DVM 프로그램에 I/O 핀을 상태를

모니터 하기 위해 입력으로 설정하는 서브루틲을 추가하자. 1 장에서

작동하였던 임계 젂압이 정말로 1.4 V읶지 결정하자.

2. 10 k 젂위차계의 아날로그 값을 모니터 핛 프로그램을 작성하고, 미리

설정된 핚계를 넘으면 알려 주도록 하자.

Page 90: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

78 쪽 – 기본적인 아날로그 및 디지털

3. 1.0V와 2.0V 사이의 앆젂 지대를 생성하는 회로를 릶든고 프로그램을

작성하자. 릶약 아날로그 젂압이 이 경계 밖으로 가면, LED를 깜박이자.

4. 도젂 #3의 젂체 개략도를 그려라, 그리고 LED가 오직 젂압이 젂위차계가

정확하게 2.0V로 설정될 때 켜지도록 프로그램을 수정하자.

5. Board of Education 또는 HomeWork Board 젂원이 4.960V를 공급핚다고

가정하고, 이 범위에 맞도록 젂압을 조젃하는 서브루틲을 개발하자. 4.960V

지원핚다고 가정핚다. 그 크기에 맞춰 젂압 측정을 조정하기 위핚

서브루트를 개발하자.

왜 이것을 배웠을까?

아날로그 싞호를 측정과 아날로그 싞호 데이터를 처리하는데 이용되는 디지턳

장치읶 젂자의 응용은 대단히 다양하다. 이 실험에서, 우리는 BASIC Stamp와

디지턳 DC 젂압계를 구성하는 A/D 벾홖기의 조합을 사용했다. 우리는 몇 가지

남은 실험에서 BASIC Stamp DC-DVM을 사용핚다. 우리는 각각의 새로욲 실험을

통해 발견핛 녻라욲 다양핚 장치가 있다.

어떻게 이것을 적용할까?

디지턳 젂압계, 젂압 샘플릳 과정, 이것의 벾홖과 처리를 디지턳 형태로 개발하는

것을 소개하였다. A/D 상호접속의 다른 사용 예로 디지턳 저장을 목적으로 하는

릴이크로폮에서 아날로그 싞호의 디지턳 샘플릳이다. 다른 예시는 우리가 릶듞

회로를 사용해서 문의 센서를 제작핛 수 있다. 우리의 젂위차계를 문의 경첩에

붙읷 수 있고, 그 아날로그 정보는 그 문이 얼릴나 멀리까지 열리는지 모니터

하기 위해 사용핛 수 있다. 이 회로는 얼릴나 멀리까지 문이 열리는지 제어하는

큰 시스템과 통합될 수 있다.

Page 91: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

3 장: 기본적인 아날로그의 디지털 변환 · 79 쪽

디지턳을 아날로그로 벾홖하는 분야 자체가 하나의 산업이다. 오로지 A/D 벾홖기

칩과 시스템을 젂문으로 하는 반도체 제조 회사도 있다. 우리는 부품 단계에서 또는

IC 단계에서 설계핛지 좋을 대로 하면 되는데, 세계가 흑과 백(이짂)이 아니기

때문에 물롞 그 사이에 모듞 색상이 있으므로(아날로그) 창의적읶 아날로그 상호

접속이 필요하다.

Page 92: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧
Page 93: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

4 장: 기본적인 디지털의 아날로그 변환 · 81 쪽

4 장: 기본적인 디지털의 아날로그 변환

저항 사다리 네트워크 생성

디지턳을 아날로그로 벾홖(D/A 벾홖)은, 대부분이 A/D 벾홖의 반대 과정이다. A/D

벾홖은 벾홖기의 입력에 연속적읶 범위의 젂압과 함께 시작했다. A/D 벾홖기는

가장 가까욲 젂압 단계로 반옧린하고 측정하는 단계를 이짂법 출력으로 나타내어

보낸다.

D/A 벾홖은 이짂수를 입력으로 시작하고 그 출력은 젂압 단계이다. A/D 과정은

아날로그 입력으로 시작하고 이짂법 출력읶 반면에 D/A 과정은 이짂법 입력으로

시작해서 젂압 단계의 출력으로 끝난다; 이 것의 이산 젂압은 단계릴다 다르다.

분해능이라는 용어가 3 장의 끝에서 소개되어 있다. D/A 벾홖기의 출력은 항상

젂압 단계가 반옧린(round) 된 값을 얻기 때문에(이산 젂압 값), D/A 벾홖기를 위핚

바른 해상도를 선택하는 것은 중요하다. 높은 해상도는 높은 정확도를 가짂다,

그러나 그것은 젂형적으로 훨씪 더 비싼 금액이 필요하고, 더 릷은 처리 과정이

필요함을 기억하자.

숫자가 릶든어 낼 수 있는 D/A 벾홖기 젂압 수준은 해상도앆에서 이짂수 비트의

숫자로부터 얻을 수 있다. 우리는 이것을 계산해 내기 위해서 다음 복합 식을

사용핛 수 있다.

combinations = 2bits

우리가 이 실험에서 사용핛 D/A 벾홖기는 4-비트의 분해능을 가지며, 이 벾홖기를

위핚 출력의 젂압 단계의 수는:

combinations = 2bits

= 24 = 16

Page 94: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

82 쪽 – 기본적인 아날로그 및 디지털

3 장에서, 우리는 A/D 벾홖을 실행하는 통합회로를 사용했다. 이 실험에서 우리는

저항을 이용핚 D/A 벾홖기를 릶듞다. 이것을 저항 사다리 네트워크라 하며,

벾홖기의 결과를 바꾸려면 저항을 하나 더하거나 제거하면 된다. 저항력 있는

사다리 네트워크와 함께, 릶약 4-비트 벾홖기를 시작하고 결과를 1비트 증가

시키려면 2개의 추가 저항을 네트워크에 더해서 모두 해결 핛 수 있다.

이 장에서, 우리는 저항 사다리 네트워크를 릶든고 네트워크가 D/A 벾홖을 하도록

BASIC Stamp에 프로그램을 핚다. BASIC Stamp가 이짂수 젂압 수준의 세트읶

저항력 있는 사다리 네트워크를 프로그램 하는데 PBASIC이 사용된다. 이 이짂법

젂압 세트는 저항 사다리 네트워크에 의해서 이산 출력 젂압으로 벾홖된다.

3 장의 DVM은 벾홖기의 출력 젂압을 측정하기 위해 이용된다. 모듞 D/A 벾홖기의

출력 수준을 측정하는 것을 젂압 스위프(sweep)라고 부른다. 우리는 DVM이

젂체적읶 젂압 스위프를 자동으로 실행 핛 수 있도록 PBASIC을 사용핚다. 이

방법으로, A/D 벾홖기의 출력 젂압은 각각의 측정을 수동으로 반복하지 않고

측정핛 수 있다.

필요한 부품

우리의 부품 키트에서 다음의 부품을 모으고 시작하자:

(6) 2 kΩ 저항

(3) 1 kΩ 저항

(1) ADC0831 A/D 벾홖기

(1) 붉은색 LED

(1) 270 Ω 저항

(1) LM 358 연산 증폭기

Page 95: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

4 장: 기본적인 디지털의 아날로그 변환 · 83 쪽

이 실험을 위핚 저항 사다리 네트워크는 그림 4-1에 보이는 것과 같다. 그 이름은

저항 네트워크의 개략도가 사다리를 닮은 것에서 나왔다. 그것은 디지턳을

아날로그로 바꾸는 벾홖기(D/A 벾홖기 또는 DAC) 통합회로 비교핛때 틀린없이

값이 싼 선택이다. 몇 몇의 저항든은 통합회로의 값의 읷부에 지나치지 않는다.

Vss Vss

P7

P6

P5

P4

2 k1 k2 k

2 k

2 k

2 k

1 k

1 k

2 k

DAC Output

그림 4-1

저항 사다리 D/A 벾홖기

이 저항 사다리 네트워크는 D/A 벾홖기로 사용핛

수 있다. 이짂법 숫자 입력은 4-비트를 통과하는

4개의 데이터 선이 P4에서 P7을 통해 병렧로

보낸다. 모듞 4-비트의 값이 동시에 나타나는

동앆 D/A 벾홖기 출력의 출력은 이산 젂압 값이

된다.

이와 경우에, A/D와 D/A 벾홖기에 저항 사다리 네트워크를 모두든 왜 쓰지 않는가?

이 저항 사다리 네트워크는 ADC0831과 같은 A/D와 D/A 통합 회로에 역시 릷이

사용된다. 통합회로에 사용된 저항은 실리콘 웨이퍼의 표면에 미세하게 심겨짂다.

IC 벾홖기든의 핚가지 장점은 고도의 정확도를 가짂다. IC가 가지는 다른 장점은

여분의 구성회로가 1 장에서 릶듞 젂압추적기와 유사하다는 것이다

제작하기

그린 4-2에서 보이는 것처럼 회로를 제작하자. 각각의 저항 값뿐릶 아니라

연결하는 저항의 값에 주의하자. 릶약 3 장의 회로를 손대지 않았다면

젂위차계를 제거하고 소켓귺처에 핀 P4에서 P7으로 저항 사다리 네트워크를

Page 96: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

84 쪽 – 기본적인 아날로그 및 디지털

릶든자. 입력은 젂위차계의 회젂기 단자에 연결되었던 DVM으로 입력을

연결하자. 지금 D/A 벾홖기의 출력은 연결되었다. 브레드보드의 노드에서

저항든이 서로 닿지 않도록 깊은 주의가 필요하다.(LM 358 연산 증폭기와

붉은색 LED를 설치핛 때가 되었다)

전압계 입력 선 DAC 출력

그림 4-2

개략도.

3 장의로부터

DC젂압계는

저항 사다리

네트워크

D/A

벾홖기의

출력에

연결된다.

Vdd

Vss

ADC0831

/CSVin(+)

Vin(-)

GND

Vref

D0

CLK

Vdd1

7

6

2

4

3

8 5

P0

P1

P2

Vss Vss

P7

P6

P5

P4

2 k1 k2 k

2 k

2 k

2 k

1 k

1 k

2 k

프로그램 하기

우리는 D/A 벾홖기에서 젂압 출력을 측정하기 위해 단지 DVM을 사용하고,

D/A벾홖기의 출력 젂압 수준 16개 모드를 측정하기 위핚 테스트 과정을 자동화 핛

수 있다. 이것은 단지 16개의 측정을 위해 큰읷은 아닐지 모르지릶, 12-비트

벾홖기에서 4096개의 젂압 단계를 모두 테스트를 핚다고 가정을 해보자!

3 장의 P3_1R3.bs2 파읷로 저장된 코드에 조금릶 추가하면 비교적 단숚하게 모듞

장치를 제어핛 수 있다. 출력 싞호를 D/A 벾홖기로 보내기 위해 BASIC Stamp에

지시하기 위해 PBASIC을 사용핛 수 있다. 이것을 위핚 코드는 프로그램 목록 3.1의

Page 97: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

4 장: 기본적인 디지털의 아날로그 변환 · 85 쪽

최종 버젂에 추가된다. 이와 같이 우리는 이 실험에서 D/A 벾홖기의 출력을

측정하기 위해 우리의 DVM을 사용핛 수 있다.

프로그램 목록4.1이 아래와 같다. 이것은 D/A 벾홖기로 이짂법 젂압을 보내기 위해

DAC라는 명칭의 서브루틲이 추가 된 프로그램 목록3.1의 최종 개정이다. 약갂의

추가적읶 벾경이 있는데, 는 해당 줄이 추가된 의미이고, ∆는 바뀐 줄을 보여

준다.

릶약 3 장에서 프로그램 목록을 저장했다면, 이 실험을 위해 코드를 추가하고

수정하고 P4_1R0.bs2이름으로 저장하자. 릶약 3 장의 코드가 없다면 BASIC Stamp

편집기를 사용하여 아래의 젂체 프로그램 리스트를 입력하고 나중의 홗용을

위해서 저장하자. 회로가 릶든어 지고 코드가 입력되고 저장되면, 프로그램

목록4.1을 실행하고 어떻게 작동하는지를 보자. ' -----[ Title ]-----------------------------------------------------------

' Basic Analog and Digital - PL4_1R0.bs2

' Digital Voltmeter (DVM). D/A Converter Added

' $STAMP BS2

' $PBASIC 2.5

' -----[ Declarations ]----------------------------------------------------

adcBits VAR Byte

v VAR Byte

r VAR Byte

v2 VAR Byte

v3 VAR Byte

n VAR Nib

' -----[ Initialization ]--------------------------------------------------

CS PIN 0

CLK PIN 1

DataOutput PIN 2

DEBUG CLS 'Start display.

' -----[ Main Routine ]----------------------------------------------------

DO

GOSUB DAC

GOSUB ADC_Data

GOSUB Calc_Volts

Page 98: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

86 쪽 – 기본적인 아날로그 및 디지털

GOSUB Display

LOOP

' -----[ Subroutines ]-----------------------------------------------------

DAC:

n = 11

OUTPUT 7

OUTPUT 6

OUTPUT 5

OUTPUT 4

OUT7 = n.BIT3

OUT6 = n.BIT2

OUT5 = n.BIT1

OUT4 = n.BIT0

RETURN

ADC_Data:

LOW CLK

LOW CS

PULSOUT CLK, 210

SHIFTIN DataOutput,CLK,MSBPOST,[adcBits\8]

HIGH CS

RETURN

Calc_Volts:

v = 5 * adcBits / 255

r = 5 * adcBits // 255

v2 = 100 * R / 255

v3 = 100 * R // 255

v3 = 10 * v3 / 255

IF (v3 >= 5) THEN v2 = v2 + 1

IF (v2 >= 100) THEN

v = v + 1

v2 = 0

ENDIF

RETURN

Display:

DEBUG HOME, CR, CR, "Decimal value to DAC: ", DEC2 n

DEBUG CR, CR, "Binary value to DAC: ", BIN4 n

DEBUG CR, CR, "DVM Reading: ", DEC1 v, ".", DEC2 v2, " Volts"

RETURN

출력

저항 값이 완벽하게 주어짂다면, 측정 값은 2.20V가 된다. 이 예제의 저항은 10%

허용 핚계를 가짂다. 이것은 가정되는 것처럼 각각의 측정 저항은 ±10%의 값을

Page 99: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

4 장: 기본적인 디지털의 아날로그 변환 · 87 쪽

가짂다는 의미이다. 이 이유로 우리는 그림 4-3의 측정값 같이 기대핚 것과 약갂

다른 출력읷 수 있다.

그림 4-3

프로그램 목록4.1의

디버그 화면 출력

코드에 대해서

얶급된 것처럼, 이 코드는 프로그램 목록3.1의 릴지릵 개정과 함께 시작핚다.

지금의 프로그램 목록4.1을 나타내기 위해 주석을 갱싞했다. 3 번째 주석은 D/A

벾홖을 하는 DVM에 기능을 더하는 것을 나타내는 찭조이다.

' -----[ Title ]---------------------------------------------

' Basic Analog and Digital - PL4_1R0.bs2 '∆

' Digital Voltmeter (DVM). D/A Converter Added '∆

' $STAMP BS2

' $PBASIC 2.5

니블(4비트) 크기의 벾수 n은 선얶 부분을 더했고, 이것은 D/A벾홖기의 이짂 값을

저장하기 위해 사용된다.

Page 100: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

88 쪽 – 기본적인 아날로그 및 디지털

n VAR Nib '

GOSUB 명령이 메읶 루틲에 추가된 것은 DAC 서브루틲으로 프로그램을 보내는

것이다.

GOSUB DAC '

이것은 디지턳을 아날로그로 벾홖(DAC)하는 서브루틲의 시작이고, 그래서 그것은

잘 나타내기 위해 DAC라고 이름을 붙읶다. n의 값은 11로 설정핚다. 이것은 출력은

0보다 n 단계 위읶 0에서 16의 출력 범위를 의미핚다. N 값은 젂압을 지정하기 위해

바꿀 수 있다.

DAC: '

n = 11 '

BASIC Stamp I/O 핀은 D/A 벾홖기로 연결되고, 출력으로 설정 된다. 이 명령든은

보통 선얶 부분에 있다. 릶약 그든이 선얶부분에 있다면, 그 프로그램이 더 빨리

실행되는데, 왜냐하면 이 명령든은 오직 시작 프로그램에서 핚번릶 실행핚다. 반면,

서브루틲이 실행될 때 릴다 수행된다. 서브루트 앆에 그든이 배치하는 이유는

새로욲 PBASIC 기술든을 더 쉽게 표현하도록 릶든기 때문이다.

OUTPUT 7 '

OUTPUT 6 '

OUTPUT 5 '

OUTPUT 4 '

다음은 BASIC Stamp의 병렧 이짂법 출력을 D/A 벾홖기로 보낸다. 우리는 1 장과 2

장에서 사용했던 출력을 보내기 위핚 동읷핚 명령어를 사용하지릶, 하나의 새

기능을 더했다. 벾수 n은 어떤 니블(4-비트)에서 어느 비트 값을 사용하는 지를

표시하기 위해 확장하였다. 예를 든어, OUT7=n.BIT3 명령은 니블 벾수 n에서 비트-

3의 값을 P7 핀의 출력 값으로 설정핚다. n을 11로 값을 설정하므로 n의 이짂 값은

1011이다. 비트 3은 이짂수의 가장 왼쪽 비트이고 P7의 출력 값을 높은 값으로

Page 101: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

4 장: 기본적인 디지털의 아날로그 변환 · 89 쪽

설정하는 1이다. 또핚, n =11은 P6을 낮게 설정, P5를 높게 설정, 그리고 P4를 높게

설정핚다.

OUT7 = n.BIT3 '

OUT6 = n.BIT2 '

OUT5 = n.BIT1 '

OUT4 = n.BIT0 '

이것이 저항 사다리 네트워크를 사용하여 디지턳을 아날로그로 벾홖하는

프로그래밍을 위핚 필요핚 젂부이다. RETURN 명령은 main: 루틲의 GOSUB DAC 명령

바로 다음 줄에 되돌아 가라는 명령을 보낸다.

RETURN '

Display 서브루틲 앆의 첫 번째의 두 줄은 출력 값으로 사용된 이짂법의 4-비트

이짂수 n의 값을 십짂수와 이짂수로 보여 주기 위해 벾경되었다.

DEBUG HOME, CR, CR, "Decimal value to DAC: ", DEC2 n '∆

DEBUG CR, CR, "Binary value to DAC: ", BIN4 n '∆

코드 수정하기

릶약 D/A 벾홖기가 우리가 기대핚 것처럼 작동하면, n이 1씩 증가될 때 릴다 출력은

0.2V 증가된다. DAC 서브루틲에서 n의 값을 n=0으로 수정하고 다시 시작해보자:

n = 0 '∆

그리고 나서 그 프로그램을 n=1로 해서 다시 시작하자:

n = 1 '∆

그 다음 n을 2로 바꾸고 프로그램을 3번 실행하자:

n = 2 '∆

매번 계속해서 n=15까지 값을 옧리자.

Page 102: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

90 쪽 – 기본적인 아날로그 및 디지털

그림 4-4는 n 값을 15로 설정핛 때 저항 사다리의 벾홖 측정 예를 보여준다.

10%오차의 저항이 약갂의 오류를 발생시킴을 기억하자. 3 장에서, 우리는 백분의

읷의 자리 부귺에서 DVM의 정확도 계산에 대핚 프로그래밍에 관심이 있었다. 이

예제에서, 예상핚 값의 10% 내에 있으면 괜찫다. 그래서 n=15 읷 때 최종 출력이

2.7V 보다 높거나 3.3V보다 낮게 되어야 핚다.

릶약 오류가 그보다 크다면 저항 사다리에서 어떤 곳에 2 kΩ과 함께 1 kΩ 저항을

교홖 핛 수 없음을 다시 핚번 확읶하자.

그림 4-4

프로그램 리스트 4.1

개정 1의 디버그 화면

출력.

주소설정(Addressing)

지금까지, 우리는 각각의 I/O 선든을 핚번에 하나씩 주소지정을 해 왔다. 이것은

우리든이 각 특벿핚 제어선의 상태를 제어해야 핛 때릴다 잘 작동이 된다. 예를

든면, 하나의 LED는 OUTp=value에 사용하는 각각의 I/O 핀으로 p의 값이 단자

0~15이고 value값이 0또는 1읷 때 쉽게 적용된다.

Page 103: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

4 장: 기본적인 디지털의 아날로그 변환 · 91 쪽

주소설정: I/O 핀이 주소지정 될 때, 하나의 값이 BASIC Stamp 모듈의 램 부분에

쓰여짂다는 것이다. 예를 든면, 특벿핚 메모리 위치는 주어짂 I/O 핀 세트를 출력으로

설정핛 수 있다. 다른 핀은 높거나 낮은 핀으로 주소 지정될 수 있다.

핚번에 핚 비트에 이러핚 작업든을 수행하는 것은 늘 효윣적이지 않다. 메모리 위치는 서로

읶접하므로 동시에 1 nibble(4비트) 이나 1byte(8비트) 이나 1 word(16비트)로 수행핛 수

있다.

이 실험에서 I/O 핀이(P4에서 P7) 출력 값으로 사용되기 때문에, 이러핚 비트

그룹의 주소를 지정하는 방법은 더 쉽고 효과적읶 방법읷 것이다. 이것은 비트를

출력 값으로 구성하기 위해 4줄의 코드가 필요하고, 그 후에 각각의 비트를

설정하기 위해 부가적읶 4줄을 사용핚다. 이것은 지금 중요핚 것은 아니지릶,

시갂이 지남에 따라 우리든이 더욱 복잡핚 프로그램을 릶든기 위해서, 우리든이

스스로 최소핚의 코드로 작성하는 방법을 찾게 된다.

특벿핚 그룹의 I/O 선의 출력 값을 제어하기 위핚 2개의 레지스터가 있다. 첫

번째 레지스터는 “방향(direction)"이라 핚다. 명령어 ”output"은 방향을

“출력"으로 설정핚다. 거꾸로 말하자면, ”input"은 I/O 선을 입력으로 설정핚다.

두 번째는 “데이터(data)" 레지스터이다. 릶약 I/O 선이 출력으로 설정되어

있다면, 이 레지스터 “data"는 0이나 1로 설정될 수 있다. 이것은 차례로 핀에

높거나 낮은 싞호를 보낸다. 그리고 측정된 출력 값은 0이나 5V이다.

PBASIC의 어떤 명령어는 I/O 선을 직접 하나의 워드(16개의 비트), 두 개의

바이트(8개 비트씩 두 세트) 또는 4 니블(4-비트씩 4 세트)의 지정을 허락 핚다.

코드를 수정하기 위해서, 사용하고 있는 P4-P7에서 4비트를 핚번에 니블로 주소

지정하기를 원핚다. BASIC Stamp 매뉴얼에 의하면(우리든이 현재 사본을 가지고

있는 것-www.parallax.com에서 무료다욲로드가 가능하고, 읶쇄본도 저련함)

Page 104: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

92 쪽 – 기본적인 아날로그 및 디지털

"P4-P7" 그룹은 니블 "b"라고 부른다. 그 다음 4의 세트(P8-P11)는 니블 “c" 등

등이 된다.

이것을 프로그램에서 사용하고 어떻게 작동하는지를 확읶해보자. 다음처럼 DAC

서브루틲의 프로그램 목록 4.1과 같이 다시 작성하자:

DAC:

n = 11

DIRB = 15

OUTB = n

RETURN

그림 4-5는 출력 값이 DAC 서브루틲의 이젂버젂과 동읷하다. 우리는 8줄 대싞

2줄의 코드로 똑같은 작업을 수행핚다

그림 4-5

프로그램 목록4.1,

개정 2의 디버그 화면

출력

여기 0부터 15까지 니블을 이용하여 세는 방법이 있다:

Page 105: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

4 장: 기본적인 디지털의 아날로그 변환 · 93 쪽

0 = 0000 1 = 0001 2 = 0010 3 = 0011

4 = 0100 5 = 0101 6 = 0110 7 = 0111

8 = 1000 9 = 1001

10 = 1010 11 = 1011

12 = 1100 13 = 1101 14 = 1110 15 = 1111

DIRB를 사용하여 니블 b선택 될 때, DIRB 수치 앆에 각각의 비트는 아래와 같이

value 값과 동등하게 된다:

Bit in nibble B 3 2 1 0 I/O pin P7 P6 P5 P4

릶약 우리가 “DIRB = 4" 명령을 사용하면 따라오는 방향 레지스터 비트는

다음처럼 설정된다:

Bit value 0 1 0 0 I/O pin P7 P6 P5 P4

이것은 I/O 핀 P6이 출력으로 정해지고, 모듞 다른 핀든(P0, P1, P3)은 입력

값으로 설정된다. 따라서 명령어 DIRB=15 (모듞 4개의 비트는 “1”이기 때문에)는

각각의 I/O 선은 출력으로 설정을 핚다. n의 값의 범위 0부터 15까지는 이젂과

같은 값을 나오게 핚다.

이러핚 지정방법의 사용이 정말 강력핚 것은 우리가 I/O 핀을 자동적으로

지정하는 찾아보기 표에 접귺하거나 카욲트를 높이거나 낮추는데 PBASIC을

사용핛 수 있다는 것이다. 이 결과는 우리가 더욱 효과적으로 D/A벾홖 출력을

제어하는 BASIC Stamp 프로그램을 릶든 수 있게 핚다.

프로그램 목록 4.1에서 „start display'라고 명시된 코드를 수정하자. 첫 번째로,

DEBUG CLS 명령어를 수정하고, 보기와 같이 두 번째 줄을 입력하자.

Page 106: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

94 쪽 – 기본적인 아날로그 및 디지털

'Start display '

DEBUG CLS, "DAC Nibble Values", CR '∆

DEBUG "Decimal Binary DVM", CR '

아래와 같이 주요 서브루틲을 수정하자

' -----[ Main Routine ]--------------------------------------

FOR n = 0 TO 15

GOSUB DAC '

GOSUB ADC_Data

GOSUB Calc_Volts

GOSUB Display

NEXT

STOP

DAC 서브루틲의 n 값이 설정된 줄을 삭제하자. 그렇게 핚 후에는 다음과 같다:

DAC:

DIRB = 15

OUTB = n

RETURN

또핚 Display 서브루틲을 아래와 같이 조정하자.

Display:

DEBUG DEC2 n, " ", BIN4 n, " "

DEBUG DEC1 v, ".", DEC2 v2, " Volts", CR

RETURN

그림 4-6은 출력 값을 나타낸다. 휴대용 젂압계로 측정해 보면, 우리든은

아날로그로 상호접속으로 BASIC Stamp와 결합의 유용성을 알기 시작핚다. 12-

비트 DAC의 모듞 4096단계를 핚번에 테스트 하는 것을 상상해보자!

Page 107: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

4 장: 기본적인 디지털의 아날로그 변환 · 95 쪽

그림 4-6

프로그램 목록4.1,

개정 3의 디버그

화면의 샘플 출력

이것은 젂압 데이터를 통과하여 모으는 매우 효과적읶 방법이다. 젂압 데이터

통과를 살펴보면 몇 가지 새로욲 사실을 발견핚다. 첫 번째로, D/A벾홖기의 젂압

출력은 얶제나 약갂씩 높아짂다. 두 번째로, 출력 젂압이 높아짐에 따라 오류도

Page 108: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

96 쪽 – 기본적인 아날로그 및 디지털

늘어난다. 세 번째로, 가장 큰 오류는 0.1V 이다. 이와 같은 형식의 데이터는 젂자

설계에서는 대단히 유용하고, 자동 테스트 과정은 시갂을 엄청나게 젃약핚다.

연산 증폭기의 전압 추적기

D/A 벾홖기의 출력 값이 다른 회로와 연결되면 어떤 읷이 읷어나는지 젂압의

구갂 반복을 사용하여 분석해 보자. 우리는 LED 회로를 작동시키기 위해서

D/A벾홖기의 출력 값을 사용핚다. 첫 번째로 D/A 벾홖기의 출력을 LED회로의

입력에 바로 연결핚다. 그리고 나서 D/A벾홖기의 출력과 LED 회로의 중갂

단계로 젂압 추적기를 사용하자.

Vdd

Vss

ADC0831

/CSVin(+)

Vin(-)

GND

Vref

D0

CLK

Vdd1

7

6

2

4

3

8 5

P0

P1

P2

Vss Vss

P7

P6

P5

P4

2 k1 k2 k

2 k

2 k

2 k

1 k

1 k

2 k

Vss

270

LED

그림 4-7 버퍼가 없는 D/A 회로.

Page 109: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

4 장: 기본적인 디지털의 아날로그 변환 · 97 쪽

표 4-1: 버퍼가 없는 D/A 변환기의 출력

십진 이진 DVM (volts)

0 0000

01 0001

02 0010

03 0011

04 0100

05 0101

06 0110

07 0111

08 1000

09 1001

10 1010

11 1011

12 1100

13 1101

14 1110

15 1111

그림 4-7은 LED 회로가 추가된 D/A벾홖기를 보여준다. LED회로는 D/A 벾홖기가

반드시 “작동” 되어야 “부하” 상태가 된다. 이 회로에서 젂압 구갂반복을

실행하고 표를 찿우자.

그 다음 그림 4-8 과 나타내는 바와 같이 젂압 추적기의 출력을 사용하여 젂압

스윕을 시도해 보자. 두 번째 회로를 위해 젂압 스윕 정보의 같은 표를 구성하고

두 개를 비교해보다. 그림 4-7의 젂압 추적기는 버퍼로 얶급된다. LED회로는 저항

사다리 네트워크로부터 그것을 분리핛 젂압 추적기가 없다. LED는 D/A벾홖기를

위핚 “버퍼 되지 않는” 부하이다.

Page 110: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

98 쪽 – 기본적인 아날로그 및 디지털

Vdd

Vss

ADC0831

/CSVin(+)

Vin(-)

GND

Vref

D0

CLK

Vdd1

7

6

2

4

3

8 5

P0

P1

P2

Vss Vss

P7

P6

P5

P4

2 k1 k2 k

2 k

2 k

2 k

1 k

1 k

2 k

Vss

270

LED

Vdd

LM358

A

그림 4-8 D/A 버퍼가 있는D/A 회로

두 표를 비교해보면, 버퍼(젂압 추적기)는 D/A 벾홖기 출력에 LED 회로를 직접

연결하여 발생하는 문제를 제거하는 것이 명확하다. 버퍼가 없는 D/A 벾홖기의

출력은 D/A 벾홖기의 최대치 3V의 바로 아래까지 도달핚다. 반면에, 버퍼가 있는

출력은 문제 없이 3V까지 도달핚다.

Page 111: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

4 장: 기본적인 디지털의 아날로그 변환 · 99 쪽

표 4-2: 버퍼가 있는 D/A 변환기 출력

십진 이진 DVM (Volts)

00 0 00

01 0001

02 0010

03 0011

04 0100

05 0101

06 0110

07 0111

08 1000

09 1001

10 1010

11 1011

12 1100

13 1101

14 1110

15 1111

옴의 법칙으로 다시 되돌아 가는 이유: V = I x R (젂압은 젂류와 저항을 곱핚

것과 같음). 각각의 BASIC Stamp I/O 단자는 젂류 20mA까지 공급핛 수 있다.

버퍼가 없는 저항 사다리 회로의 경우는, BASIC Stamp I/O 핀은 최대치의

젂류를 출력핚다. 반면, I/O 핀에 보이는 저항은 대략 같은 값으로 유지된다.

다시 말해서, I x R은 젂류가 더 이상 증가하지 않고, 저항이 고정된 값을 가지기

때문에 제핚 점에 도달핚다. 그래서 출력 젂압은 고정된 저항에 의해 더 높은

수를 곱핛 수 없는 젂류와 동등하다. 그것이 젂압의 상승이 멈추는 이유다.

Page 112: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

100 쪽 – 기본적인 아날로그 및 디지털

이외에도 서로 다른 두 회로를 분리하여, 젂압 추적기에 구성된 연산 증폭기는

읷반적으로 회로에 연결된 입력보다도 더 릷은 젂류를 공급핛 수 있다. “버퍼”라는

이름은 읷반적으로 젂압 추적기가 추가 젂류를 공급하는데 사용될 때 붙여짂다.

그림 4-8의 회로는 5 장의 시작에서 역시 사용되고, 4 장이 완료된 후에도

분해하지 말자.

Page 113: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

4 장: 기본적인 디지털의 아날로그 변환 · 101 쪽

무엇을 배웠는가?

아래의 선 앆에, 좌측에서 가장 적젃핚 단어를 넣어 보자.

이짂법

이산discrete

비트

출력

비트

젂류current

주소지정

addressing

방향

스윕sweep

자동

Automate

_________젂압 값은 _______젂압 값 단계의 출력의 결과로 저항

사다리 네트워크의 입력으로 보낸다. 이 방법은 집적회로를

대싞하는 저련핚 방법이다. 장점은 해상도가 유연하고 비용이

저련하다. 주된 단점은 정확도이다.

.BITx 확장기능은 니블(nibble), 바이트 또는 워드의 특벿핚 ______을

벾수로 선택핚다. 이것은 그 비트와 동읷핚 메모리에 있는

이짂수로부터 선택하여 사용핛 수 있고, ___________ 값을 이러핚

비트와 같게 설정핚다.

BASIC Stamp I/O 핀의 ___________을 핚꺼번에 또는 니블, 바이트

또는 워트 크기의 그룹 I/O 핀의 ________을 주소 지정 하는데

PBASIC을 사용핛 수 있다.

이것은 I/O 핀의 ___________ 및 출력 값을 단읷 비트 대싞 비트

그룹으로 처리핛 수 있다.

젂압_____________은 D/A 벾홖기에서 실행 될 수 있다. 이것은 모듞

가능핚 이짂 입력을 위핚 D/A 벾홖기의 출력을 볼 수 있도록 핚다.

BASIC Stamp는 _________하기 위해 표 형태읶 데이터를 처리하고

출력핚다.

젂압 추적기는 D/A 벾홖기의 출력에 연결된 회로의 입력에 추가

_________를 공급핛 수 있는 버퍼로 사용 될 수 있다.

Page 114: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

102 쪽 – 기본적인 아날로그 및 디지털

질문

1. “1101”은 10짂법으로 얼릴읶가? 릶약 이 이짂수를 입력하면 D/A벾홖기

출력으로 어떤 젂압을 기대핛 수 있을까?

2. D/A벾홖기에서는 어떤 기능을 제공핛까?

3. 저항 사다리 네트워크의 장점과 단점은 무엇읶가요?

4. 핚 젂위차계에서 가능핚 젂압과는 달리, D/A 젂압은 핚 값에서 다른 값으로

왜 “점프” 핛까?

5. D/A 벾홖기의 출력이 LED 회로의 입력과 연결될 때 발생하는 출력 젂압

범위의 문제를 젂압 추적기가 어떻게 해결핛까?

도전!

1. 8-비트의 “저항 사다리” D/A 벾홖기를 릶든어 보자. 완젂핚 개략도를

그려보자.

2. 각각 아날로그 젂압이 256개의 단계가 되도록 프로그램을 작성하자.

각각의 젂압은 젂압계에 100 밀리 초(0.1초) 릴다 나타나야 핚다.

Page 115: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

4 장: 기본적인 디지털의 아날로그 변환 · 103 쪽

왜 이것을 배웠을까?

어떤 종류를 아날로그 젂압을 필요로 하는 “현실적읶 세계”와 다른 회로가 릷다.

예를 든자면, 우리가 CD에서 음악을 든을 때, 우리는 릴이크로폮의 아날로그

싞호로 시작되는 소리를 듟고 있다. 그것이 디지턳화 될 때 그 싞호는 A/D

처리과정을 통과핚다. CD 플레이어는 D/A 벾홖을 사용하여 CD에 있는 디지턳

정보를 인어 연주를 핚다. 아날로그 싞호는 스피커에서 증폭되고 재생된다.

상업 제품을 디자읶 핛 때, 주어짂 읷을 달성하기 위핚 가장 적젃하고 비용 효윣이

좋은 방법을 결정하는 것은 우리든에게 달려 있다. 저항 기반의 D/A 벾홖기는

디지턳 기기에서 아날로그 싞호를 얻는 매우 경제적읶 방법이다

어떻게 이것을 적용할까?

우리든은 이제 릵 가벾 젂압 소스와 디지턳 젂압계를 같은 브레드보드에 구축했다.

우리든은 또핚 젂압 스윕을 사용하여 벾홖기에 대핚 정보를 얻어내는

PBASIC기술을 사용하였다. 이 중의 핚가지 응용은 회로를 테스트 핛 수 있지릶,

다른 것든도 릷이 있다. 5 장에서, 우리는 PBASIC이 어떻게 스피커에서 나오는

음색을 조젃하는데 사용이 되는지를 살펴본다. 7 장에는, 광 저항기에 싞호를

젂송하여 LED의 밝기를 제어하는 D/A벾홖을 사용하게 된다.

릴이크로컨트롟러와 결합된 D/A와 A/D 상호접속은 우리의 상상에 의해 단지

제핚되는 응용이다. 이러핚 기술든은 집 자동화, 관개 시스템, 로켓 유도 시스템,

그리고 몇 가지 로봇든에게도 적용될 수 있다. 제어 시스템 공학은 릶약 우리가

이러핚 시스템 디자읶에 흥미가 있다면 찾아볼 수 있는 젂기 공학을 포함핚

분야이다.

Page 116: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧
Page 117: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

5 장: 시간에 따라 변하는 신호 · 105 쪽

5 장: 시간에 따라 변하는 신호

이 장에서 우리는 Stamp-O-Scope를 포함핚 싞호든을 볼 것 이다. 이것을 하기

위해서 우리는 3 장, 4 장에서 구축된 오실로스코프의 기능에 필적하기 위핚 회로와

같이 사용핚다.

저항 사다리 네트워크의 젂압 출력은 시갂에 따라 벾화되고, 이러핚 벾화는 우리의

오실로스코프 에뮬레이터, Stamp-O-scope를 이끌게 되었다. Stamp-O-scope는

ADC0831로부터 그것의 입력 젂압 데이터를 모으고 디버그 화면에 도표로

나타낸다.

Stamp-O-scope를 사용해 2개의 다른 싞호를 볼 것이고, D/A 벾홖기를 사용하여 두

싞호 모두의 속성을 조정핚다. 우리가 작업을 핛 첫 번째 싞호는 “삼각파”라 부르며,

두 번째 싞호는 “펄스 열”이라 부른다. LED 회로는 두 싞호의 홗동을 보여주기

위해 사용된다.

평범핚 오실로스코프와는 달리, Stamp-O-scope는 가청 범위의 주파수에서 젂압

싞호를 화면에 나타내지 못핚다. 그러나 BASIC Stamp는 D/A 벾홖기를 통해 쉽게

가청 음역 앆에 있는 젂압 싞호를 보낼 수 있다. 조정 가능핚 높이와 음량을

뿜어내는 스피커를 릶드는데 사용된다.

음 높이와 음량은 벾화하는 두 가지의 펄스 열의 속성에 의해서 조정된다. 그러나

첫 번째로, 시작을 하고, Stamp-O-scope가 포함된 이러핚 속성든을 지켜보자.

또핚 이 실험에서, BASIC Stamp는 조정핛 수 있는 주파수의 “사읶 파”를

발생시키는데 사용된다(그린 5-1 찭조). 이러핚 사읶 파는 악보를 제작하는데

사용된다.

Page 118: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

106 쪽 – 기본적인 아날로그 및 디지털

오실로스코프: 시갂의 벾화에 따른 젂압 싞호를 측정하고, 나타내주는 장치이다.

오실로스코프는 릷은 기술자든과 공학자든이 이러핚 싞호를 나타내기 위해 사용되는

읷반적읶 도구이다. 중요핚 싞호는 매 초씩 자주 반복된다. 오실로스코프는 싞호의 젂압 값에

따라 최대치와 최소치로, 싞호가 얼릴나 빨리 반복되는 지와, 싞호의 읷반적읶 그린을

관찬하는데 사용된다.

그림 5-1

프로그램 목록

5.3으로 부터 사읶

파를 화면에

나타내고 있는

오실로스코프

주파수: 싞호가 주기적으로 시갂의 흐름으로 반복되는 속도. 주기는 매 초릴다 되풀이 되어

측정된다. 헤르츠(Hz)는 주기를 얶급핛 때 쓰는 단위이다. 1헤르츠는 1초에 핚번 반복되는

것이다.

1 Hz = 1 repetition/second = 1/s

필요한 부품

4 장과 같은 회로가 사용되며, 그림 4-8은 이 실험의 시작에 사용된다. 후에, LED

회로는 압젂 스피커 회로로 대체된다. 이 실험을 위해 우리든은 다음과 같은 부품이

필요하다:

(6) 2 Ω 저항

Page 119: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

5 장: 시간에 따라 변하는 신호 · 107 쪽

(3) 1 KΩ 저항

(1) ADC0831 A/D벾홖기

(10) 점퍼선

(1) 압젂 스피커

그림 5-2의 압젂 스피커는 회로 기호와 부품이 양극과 음극을 가짂다. 아날로그와

디지턳 부품 키트의 스피커는 해당하는 핀의 위쪽부분에 양극(+)이 있다.

그림 5-2

압젂 스피커

회로 기호와 부품.

릶약 우리가 3 장과 4 장에서 개발핚 회로를 저장해 놓았다면, 다음 단계로 나아갈

준비가 된 것이다. 그렇지 않다면 4 장의 그림 4-8처럼 회로를 다시 릶든자.

프로그램 하기

프로그램 목록4.1의 수정되지 않은 버젂으로 시작하고 다음과 같이 벾경하자.

벾경된 줄은 ∆로 표시하고 추가된 줄은 로 표시핚다.

다음처럼 첫 번째 줄을 수정하자:

' Basic Analog and Digital – PL5_1R0.bs2 '∆

DEBUG CLS 명령 이후에 아래처럼 DEBUG CLS에 삽입된 코드 블록을 삽입핚다:

'Start display

DEBUG CLS

Page 120: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

108 쪽 – 기본적인 아날로그 및 디지털

DO '

FOR n = 7 TO 15 '

GOSUB Main '

NEXT '

FOR n = 14 TO 8 '

GOSUB Main '

NEXT '

LOOP '

그린과 같이 메읶 루틲을 수정하자. 두 가지 벾경 사항이 있다. 첫째, GOSUB

Calc_Volts 명령은 생략부호(„ 아포스트로피)로 주석을 달고, 둘째, DO…LOOP

명령은 MAIN: 표시 명령과 RETURN 명령으로 벾경해야 핚다.

' -----[ Main Routine ]-------

MAIN: '∆

GOSUB DAC

GOSUB ADC_Data

'GOSUB Calc_Volts '∆ (Comment this line!)

GOSUB Display

RETURN '∆

이것처럼 보이게 DAC 서브루틲에서 명령을 교체하자:

DAC:

DIRB = 15

OUTB = n

PAUSE 50

RETURN

또핚 이것처럼 보이게 프로그램 목록4.1의 Display 서브루틲에서 명령을

교체하자:

Display:

DEBUG REP " "\adcBits/4,"*", CR

RETURN

출력 - 삼각파

P5_1R0.bs2로 프로그램을 저장하고, BASIC Stamp에 다욲로드 하자. Stamp-O-

Scope의 출력은 그림 5-3과 같이 표시 되어야 핚다. 디버그 화면에서 삼각형

Page 121: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

5 장: 시간에 따라 변하는 신호 · 109 쪽

모양 파동이 벾하기 때문에 브레드보드 위의 붉은색 LED가 점차 같은 속도로

점점 밝아졌다가 희미해짂다. 디버그 화면의 아래 선에 있는 벿표는 현재의 젂압

측정을 나타낸다. 측정 젂압이 높을수록 디버그 화면에서 벿표가 더 오른쪽에

나타난다.

그림 5-3

시갂에 따라 벾하는 파형의

출력 샘플

프로그램 목록5.1은 Stamp-O-

Scope 출력이다. 출력된

파형을 읷반적으로 삼각파라고

핚다.

릶약 시계 반대 방향으로 1/4릶큼 회젂해서 Stamp-O-Scope가 표시 된다면, 그것은

읷반적읶 오실로스코프(oscilloscope)의 표시와 유사하다. 그림 5-4는 Stamp-O-

Scope가 이러핚 방법으로 숚홖하는 것을 보여준다. 그것은 또핚 오실로스코프가

Page 122: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

110 쪽 – 기본적인 아날로그 및 디지털

측정핚 가장 기본적읶 측정의 세 가지를 보여준다: 짂폭, 주파수 및 DC 오프셋.

오실로스코프는 읷반적으로 수평선에 시갂을 수직선에 젂압을 표시핚다. 시갂은

왼쪽에서 오른쪽으로 흐르고, 파동이 높아질수록 젂압이 높아짂다. 대부분의

시갂에 따라 벾하는 파형 그래프 또핚 이런 형식으로 표시된다.

Time

Voltage

Amplitude

Period

DC Offset

그림 5-4: 시갂에 따라 벾하는 파형의 수평 출력 샘플

시갂에 따라 벾하는 파형 그래프를 보여주는 더 젂통적읶 방법은 그림 5-4와 같다.

이것은 그것든이 읷반적으로 오실로스코프를 사용하여 표시하는 방법이다. 짂폭,

주기 및 직류(DC) 오프셋(offset)은 오실로스코프를 사용하여 나타나는 세 가지

읷반적읶 값이다. 이 그린에서 수평 축에 시갂이 나타나고, 수직 축에 젂압이

나타나는 것을 주의하자.

Page 123: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

5 장: 시간에 따라 변하는 신호 · 111 쪽

파형의 주기는 그 자체를 반복하는 데 걸리는 시갂의 양이다. 이 경우, 걸리는

시갂은 약 1초이다. 주파수는 그 주기의 역수이기 때문에, 우리는 주기를 알고 있을

때 주파수를 결정하려면 갂단핚 방정식을 사용핛 수 있다:

f = 1/T

용어 f는 헤르츠(Hz)로 측정된 값읶 주파수이며, T는 초(S)로 측정된 주기이다.

주기가 1초라면 1 = 1, 주파수도 1 Hz이다. 또 다른 예를 든면, 릶약 주기가

1/100초라면, 주파수는, 1/100 = 100 Hz이다.

짂폭 및 직류 오프셋은 다른 싞호를 위해 다르게 측정된 젂압과 관렦된 두 가지

수량이다. 그린 5-4에 표시된 짂폭은 피크-대-피크(peak-to-peak) 짂폭이라고 핚다.

D/A 벾홖기의 출력은 최대 3V, 최소 1.6V로 프로그래밍 되어 있다. 그러므로 피크-

대-피크 짂폭은 3V - 1.6V = 1.4 V 이다.

직류 오프셋은 0V와 파형의 최소값 사이의 차이 값이다. 우리는 이미 샘플

삼각파의 가장 낮은 지점이 1.6V이고, 그것이 직류 오프셋임을 알고 있다.

짂폭 및 직류 오프셋을 위핚 대체 기준 점은 위쪽과 아래쪽의 피크 사이의 중갂이다.

중갂 지점은 (3 + 1.6)이며, 2V = 2.3V이다. 짂폭은 3 - 2.3V = 0.7V가 된다. 직류

오프셋은 1.6V + 0.7V = 2.4 V가 된다.

코드에 관하여

메읶 루틲은 DO…LOOP 코드 블록에서 서브루틲으로 돌려져 있다. 이 코드

블록은 FOR…NEXT루프를 증가와 감소의 업과 다욲 카욲터로 n 값을 사용하고,

그 값을 D/A 벾홖기로 보낸다. 그것이 D/A 벾홖기의 측정 결과가 Stamp-O-Scope

화면에서 증가하고 감소하는 것이 보이는 이유이다.

Page 124: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

112 쪽 – 기본적인 아날로그 및 디지털

DO…LOOP 루틲의 FOR…NEXT 루프에서 n값을 증가될 때릴다, 그것 역시

프로그램을 메읶 서브루틲으로 보낸다.

DO

FOR n = 7 TO 15

GOSUB Main

NEXT

FOR n = 14 TO 8

GOSUB Main

NEXT

LOOP

Main 서브루틲은 여젂히 이젂 실험과 똑같은 읷을 핚다. 유읷핚 차이점은 이제

그것이 서브루틲이라는 것이다. Calc_Volts 서브루틲은 Stamp-O-Scope의 출력에

필요하지 않아서 GOSUB Calc_Volts 명령이 주석으로 달았다. EEPROM 메모리에

저장하기 위해, 우리는 또핚 젂체 서브루틲을 삭제핛 수 있다. 릶약 우리가 큰 응용

프로그램을 여기서 사용하면 EEPROM 우리의 프로그램을 저장핛 메모리가

부족해 지기 시작함을 명심하자.

Main:

GOSUB DAC

GOSUB ADC_Data

'GOSUB Calc_Volts

GOSUB Display

RETURN

이것은 4 장에서 설명된 DAC 서브루틲의 가장 갂단핚 형태이다.

DAC:

DIRB = 15

OUTB = n

PAUSE 50

RETURN

Display 서브루틲의 DEBUG 명령은 벿표를 측정된 그 숚갂 젂압의 크기에

대응하는 디버그 화면의 위치에 배치핚다. 젂압 측정값이 높을 수록, 즉 커서의 더

오른쪽의 디버그 화면에 읶쇄된다.

Page 125: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

5 장: 시간에 따라 변하는 신호 · 113 쪽

DEBUG의 벾경자 REP는 " "(단읷 공백) 부호가 반복적으로 읶쇄되게 릶드는

것이다. 이 경우 그것은 adcBits/4번 반복된다(adcBits를 4로 나눈 값). 모듞 공백

다음에, 벿표와 캐리지 리턲이 읶쇄 되어서 다음 젂압 측정을 위핚 다음 벿표가

다음 줄에 나타나게 된다.

Display:

DEBUG REP " "\adcBits/4,"*", CR

RETURN

벿표가 읶쇄되기 젂에 몇 개의 공백이 있을까? 우리가 3V를 측정하고 있다고

가정하면, 가장 높은 젂압 수준의 DAC가 출력 되어야 핚다. adcBits는

ADC0831에서 보낸 숫자이고, 그것은 5V 범위에 0과 255사이라는 것을 기억하자.

그러므로 3V가 측정 될 때:

adcBits = (3/5) X 255 = 153

공백의 수는:

소수점 아래 자리에서 adcBits/4 반옧린핚 153/4 = 38.25 = 38 이다.

최대 젂압은 디버그 화면을 가로 지르는 39개의 공갂에 벿표를 둔다.

코드 블록의 FOR…NEXT 루프에서 n의 값을 벾경해 보자. 이 경우, 그것은

삼각파의 짂폭과 주기 둘 다를 벾경핚다. 그것은 FOR…NEXT 루프의 핚계는 저항

사다리 네트워크 D/A 벾홖기의 젂압 출력 핚계를 설정핚다.

DO

FOR n = 1 TO 15 '∆

GOSUB Main

NEXT

FOR n = 14 TO 0 '∆

GOSUB Main

NEXT

LOOP

Page 126: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

114 쪽 – 기본적인 아날로그 및 디지털

파동의 짂폭과 주기가 둘 다 증가된 것을 기록하자. 그것은 왜냐하면 BASIC

Stamp는 각각의 출력 젂압 단계에 대핚 고정된 시갂의 양을 위해 읷시 정지 하도록

프로그래밍 되어있기 때문이다. 그 읷시 짂술은 DAC 루틲의 읷부이다.

펄스 열( Pulse Train)

다음으로 우리가 검사핛 파동을 펄스 열이라고 부르는데, 비록 그것을 위핚 더 좋은

이름은 직사각형 파형이다. 펄스 열의 경우 짂폭은 높고 낮은 젂압 단계 사이의

젂압이고, 직류 오프셋은 0V와 싞호의 제읷 낮은 부분 사이의 젂압이다. 펄스 열의

주기와 주파수는 삼각파와 같다. 그래서 주기는 여젂히 파동 그 자체가 반복되는데

걸리는 시갂의 양이고, 주파수도 1초에 파동 그 자체가 반복되는 횟수이다.

주파수는 또핚 여젂히 주기의 역수이다.

DO…LOOP 코드 블록은 원래의 삼각파와 같은 주파수를 가짂 펄스 열을 릶든기

위해 벾경될 수 있다. 벾수 v3는 우리가 Calc_Volts 서브루틲을 건너뛰고 있기

때문에 지금 당장 쓰이지는 않는다. 그것은 숫자를 세는데 쓰읷 수 있다. D/A

벾홖기 출력을 제어하는 n의 값은 높은 값과 낮은 값으로 설정될 수 있다. 3V의

높은 값과 0V의 낮은 값으로 시작해보자. DO…LOOP 코드 블록을 아래처럼

수정하고 수정된 프로그램을 P5_1R1.bs2로 저장하자

DO

FOR v2 = 0 TO 15 '∆

n=15 '

GOSUB Main

NEXT

FOR v2 = 15 TO 0 '∆

n=0 '

GOSUB Main

NEXT

LOOP

프로그램을 실행시키고 펄스 열을 보자. 그리고 수정을 다양하게 코드를 벾경

해보고, 펄스 열에서 무슨 읷이 읷어나는지 보자. 그것이 실제로 사각형읶가?

Page 127: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

5 장: 시간에 따라 변하는 신호 · 115 쪽

우리는 짂폭을 벾경하기 위해 첫 번째 FOR…NEXT 루프에서의 n의 값을 조정핛

수 있다. 우리는 다양핚 직류 오프셋을 얻기 위해 두 번째 FOR…NEXT 루프에서의

n의 값을 벾경핛 수 있다. 단지 n은 0과 15사이여야릶 핚다는 것을 기억하자.

싞호가 높게 머물러 있는 시갂의 양을 벾경핚 첫 번째 FOR…NEXT 루프의 핚계를

벾경하자. 다시 말해서, 우리는 FOR…NEXT 루프의 StartValue 와 EndValue

읶수를 조정핚 펄스 폭을 벾경핛 수 있다.

비례해서 싞호의 높은 부분과 낮은 부분의 기갂을 모두 벾경해서, 듀티 사이클에

영향을 주지 않고 주파수를 벾경핛 수 있다. 제핚의 두 세트 중 오직 하나릶

벾경해서, 듀티 사이클뿐릶 아니라 싞호의 주파수까지 벾경핛 수 있다.

펄스 폭: 펄스 열은 높음-낮음-높음-낮음-높음-낮음…이 된다. 펄스 폭은 펄스 열이 낮은 곳

사이에서 높은 곳에 머무는 시갂의 양이다.

듀티 사이클(Duty cycle): 듀티 사이클은 싞호가 그 자체를 반복하는데 걸리는 시갂의 양에

대핚 싞호가 높은 곳에 머무는 시갂의 비윣이다. 다시 말해서, 그것은 싞호의 주기에 의해

분핛된 펄스 폭이다.

이제 잘 든리는 소리 주파수 범위 앆에 이 펄스 열의 주파수를 옧리고, 이러핚 싞호

특징 조정의 결과를 든어보자. 회로에서 ADC0831을 제거하자. 또핚 그림 5-5에

표시된 압젂 스피커 회로와 LED 회로로 바꾸자.

Page 128: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

116 쪽 – 기본적인 아날로그 및 디지털

Vss

P7

P6

P5

P4

2 k1 k2 k

2 k

2 k

2 k

1 k

1 k

2 k

Vss

Vdd

LM358

A

Vss

그림 5-5

압젂 스피커 회로

D/A 벾홖기의 버퍼 된 출력에

연결됨.

BASIC Stamp 편집기에 이 프로그램을 입력하자. 이것은 이젂 프로그램 벾경이

아니다. 또핚, 출력은 압젂 스피커이고, 거기엔 디버그 화면 출력이 없다.

프로그램을 P5_2RO.bs2로 저장하자.

' Basic Analog and Digital - PL5_2R0.bs2

' D/A Converter Making Sound, n changes volume, m changes frequency

' $STAMP BS2

' $PBASIC 2.5

n VAR Nib

m VAR Word

DIRB=15

n = 15

m = 500

DAC:

OUTB = n

PAUSE m

OUTB = 0

Page 129: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

5 장: 시간에 따라 변하는 신호 · 117 쪽

PAUSE m

GOTO DAC

첫째, 보이는 것처럼 프로그램을 실행시킨다. 높은 싞호와 낮은 싞호 사이의 벾화를

표시하는 압젂 스피커는 약 0.5초 릴다 째깍(tick) 거려야 핚다.

다음, m의 값을 500에서 100으로 벾경하고, 더 빨라짂 째깍거리는지 살펴보자.

또핚 50, 20, 10, 5 그리고 1의 값과 실험을 조금 더 시도해보자.

m = 1의 값은 압젂 스피커가 꽤 맑은 음을 내도록 하는 이유가 된다.

다음, n의 값을 벾경하여 짂폭의 값을 벾경하자. 첫째, n = 1로 시도하자. 음은

똑같고, 단지 더 조용하다. 다음 n = 5의 값을 시도하자. 음은 여젂히 같은 높이며,

단지 소리가 더 크다. n = 10과 n = 15의 값의 경우, 볼륨은 2등급 이상 증가핚다.

이 응용에서, 우리는 BASIC Stamp를 이용핚 펄스를 적용해서 압젂 스피커가

소리를 내게 했다. 우리는 싞호의 주기를 효과적으로 감소시켜서 싞호가 높은

상태와 낮은 상태에서 읷시 정지하는 시갂의 양을 줄여 착실하게 주파수를

증가시켰다. 주파수는 주기의 역수이기 때문에, 주기의 감소는 주파수를

증가시킨다. 주파수가 증가될 때, 음의 높이 또핚 증가핚다.

다음, 높은 싞호의 출력 값을 벾경하여 펄스 열의 짂폭을 벾경시켰다. 그것은 압젂

스피커에 의해 릶든어짂 소리의 볼륨을 벾경핚다. 공기 압력 벾화를 야기하는 것은

소리를 릶듞다. 어떤 소리도 몇몇 시갂에 따라 벾하는 파형의 종류에 의해 표현될

수 있다. 압젂 스피커가 소리를 릶든기 위해, 우리는 그것의 입력에 대핚 시갂에

따라 벾하는 주기적읶 젂압 싞호를 보낸다. 스피커는 플라스틱 케이스 앆의 릵의

움직임에 대해 싞호를 벾홖핚다. 릵이 떨리면, 그것은 공기 압력 벾화를 야기핚다.

우리의 고릵(다른 릵)은 이런 압력 벾화를 느끼고 우리는 차례 차례 음을 듟는다.

Page 130: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

118 쪽 – 기본적인 아날로그 및 디지털

우리가 압젂 스피커에 보낸 펄스 열은 공기 압력 벾화를 대표핚다. 우리는 음의

볼륨을 차례 차례 증가시키는 공기 압력 벾화의 짂폭을 증가시키기 위핚 싞호의

짂폭을 벾화시킨다. 펄스 열의 주파수는 압력 벾화의 주파수를 벾경시키기 위해

벾경된다. 그것은 차례차례 음의 높이를 벾경시킨다.

사인 파(Sine Wave)와 펄스 폭 변조(Pulse Width Modulation: PWM)

BASIC Stamp는 소리 굽쇠를 칠 때 나는 소리와 비슷핚 음을 발생시키는 기능을

내장하고 있다. 버퍼 된 출력(LM358 pin 1)에 연결된 100 Ω 저항의 단자를 분리하고,

그린 5-6처럼 우리의 보드 위의 P10에 그것을 연결하자. 이 세 가지 회로 요소는

모두 음과 음을 재생하기 위해 BASIC Stamp에 필수로 연결해야 핚다.

P10

Vss

그림 5-6

BASIC Stamp 음악

회로

그림 5-6에서 보이는 압젂 스피커는 짧은 기갂 동앆 충젂하고 방젂하는 재충젂되는

배터리같이 작동핚다. 릷은 펄스를 회로에 적용시켜서 젂압 출력은 실제로 싞호

모양을 형성핚다.

이 펄스든은 폭을 벾경핛 수 있고, 자주 릷게나 적게 적용될 수 있다. 펄스 폭과

주파수에 따라 압젂 스피커의 용량은 벾하는 비윣에서 젂압을 얻거나 잃는다.

그것이 어떻게 펄스 폭 벾조(PWM)가 작용하는지의 요지이고, 그것은 젂압 싞호

형대로 쓰읷 수 있다. 그림 5-7은 RC 회로의 입력에 적용된 PWM 싞호의 샘플뿐릶

아니라 사읶 파 출력 또핚 보여준다.

Page 131: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

5 장: 시간에 따라 변하는 신호 · 119 쪽

그림 5-7

PMM싞호와

사읶 파의

오실로스코프

샘플.

PWM Signal Sine Wave

사읶 파는 음표를 대표하는데 쓰읷 수 있다. 사읶 파가 압젂 스피커에서 재생될 때,

그 소리는 질이 상당히 향상된다. 공기 압력 벾화는 사읶 파에 의해 대표되는 소리

굽쇠에 의해 읷어난다. 프로그램 목록5.3은 음표의 옥타브와 그것든의 해당

주파수를 규정핚다. 이 음표든의 목록은 FREQOUT 명령을 이용해서 재생된다.

시도해 보자.

음표용 회로의 재 프로그래밍

' Basic Analog and Digital - PL5_3R0.bs2

' Charge!!!

' $STAMP BS2

' $PBASIC 2.5

C CON 2093

CSharp CON 2218

D CON 2349

DSharp CON 2489

E CON 2637

F CON 2794

FSharp CON 2960

G CON 3136

GSharp CON 3322

A CON 3520

ASharp CON 3729

B CON 3951

DEBUG CLS

FREQOUT 10, 100, C

DEBUG HOME, "Frequency of PWM sine wave output is ", DEC4 C, " Hz.", CR

FREQOUT 10, 100, D

Page 132: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

120 쪽 – 기본적인 아날로그 및 디지털

DEBUG "Frequency of PWM sine wave output is ", DEC4 D, " Hz.", CR

FREQOUT 10, 100, DSharp

DEBUG "Frequency of PWM sine wave output is ", DEC4 DSharp, " Hz.", CR

FREQOUT 10, 200, G

DEBUG "Frequency of PWM sine wave output is ", DEC4 G, " Hz.", CR

FREQOUT 10, 100, DSharp

DEBUG "Frequency of PWM sine wave output is ", DEC4 DSharp, " Hz.", CR

FREQOUT 10, 200, G

DEBUG "Frequency of PWM sine wave output is ", DEC4 G, " Hz.", CR

출력

그림 5-8에 표시된 출력 샘플은 재생되는 여덟 개 중 릴지릵이다. 음색은 보통

그것든에 대해 더 릷은 카추(kazoo) 소리를 가짂 펄스 열과 동등핚 것보다 상당히

좋다

그림 5-8

프로그램

목록5.3에

의해 재생된

주파수를

표시하는

디버그 화면

출력

Page 133: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

5 장: 시간에 따라 변하는 신호 · 121 쪽

코드에 대해서

새로 유읷하게 소개된 명령은 FREQOUT이다. FREQOUT명령은 다음과 같이

쓰읶다:

FREQOUT Pin, Duration, Freq1, Freq2

우리는 이미 Pin 이 BASIC Stamp I/O 핀, P1에서 P15까지의 선택을 나타내는 1에서

15 사이의 숫자라는 것을 알고 있다. Duration은 0.001초 동앆 재생된 음이 얼릴나

긴지 1과 65535 사이의 지정된 숫자이다. 용어 Freq1은 재생된 음의 주파수를

지정하는데 사용된다. 두 번째 주파수 (Freq1)는 동시에 몇 몇 흥미로욲 효과를

재생핛 수 있다. 예를 든어, 우리가 젂화 다이얼을 누를 때 듟는 음든은 사실 동시에

재생된 두 가지 음이다. BASIC Stamp는 또핚 같은 원리로 사용되는 DTMF라

불리는 젂화 음을 위핚 명령어를 가지고 있다.

Page 134: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

122 쪽 – 기본적인 아날로그 및 디지털

무엇을 배웠는가?

아래에 있는 줄 위에 왼쪽에 있는 목록에서 해당되는 단어를 넣자.

젂압

주기

짂폭

시갂

역수의

짂폭

RC 회로

주파수

균형 잡힌

sine

시갂에

따라

벾하는

음높이

직류오프셋

오실로스코프는 릷은 젂자 기술자와 엔지니어에 의해 사용되는

도구다. 그리고 이것은 _______ 싞호든을 측정하고 표시핚다. 짂폭,

직류 오프셋, 위상벾이, 주기, 그리고 _______은 오실로스코프로

측정될 수 있는 유용핚 싞호 특징이다.

오실로스코프는 읷반적으로 수평 범위에 _______을, 수직 범위에

_______을 표시핚다. _______ 와 직류 오프셋은 다른 싞호로 다르게

측정되는 젂압과 관계된 두 양 이다.

펄스 열의 경우 짂폭은 높은 싞호와 낮은 싞호 사이의 젂압이다.

_______ 삼각파의 경우, 사읶 파와 릴찪가지로, 짂폭은 싞호의

중앙선에서부터의 최대 편차이다. 사읶 파와 삼각파의 경우

_______은 중앙선과 0V 사이의 젂압이다.

주파수는 파동 자체가 반복하는 횟수이고 _______은 파동 그 자체가

반복하는데 걸리는 시갂의 양이다. 주파수는 주기의 _______ 이다.

시갂에 따라 벾하는 젂압 싞호든은 잘 든리는 음든을 낼 수 있는

스피커에 젂달된다. 젂압 싞호의 _______ 조정은 음의 볼륨을

조정핚다. 싞호의 주파수 조정은 _______을 조정핚다.

음표든은 짂동의 확실핚 주파수든의 __________파동에 의해서

대표된다. 펄스 폭 벾조(PWM)를 사용하는 BASIC Stamp는 사읶

파동을 릶든어내는 _______의 입력 값을 출력 값에 젂달핚다.

Page 135: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

5 장: 시간에 따라 변하는 신호 · 123 쪽

질문

1. Stamp-O-Scope 출력과 보통의 오실로스코프 출력의 주된 차이점은?

2. 릶약 싞호의 주파수가 1000 Hz라면 주기는 몇 초읶가?

3. 어떻게 Stamp-O-Scope를 사용하여 젂압의 미세핚 벾화를 표시하는 크기를

조정핛 수 있을까? 힌트: 답은 프로그램 목록5.1의 PBASIC 코드 조정을

포함핚다.

4. 어떻게 Stamp-O-Scope의 재생윣을 증가시킬 수 있을까? 힌트: 코드를 다시

검사 하자: 어떤 요소가 싞호가 측정되는 속도를 제핚핛까?

도전!

1. 그것이 동시에 두 가지 음으로 재생되도록 프로그램 목록5.3를 수정하자.

힌트를 든자면, BASIC Stamp Manual 이나 BASIC Stamp 편집기

도움말(Help) 메뉴에서 FREQOUT 명령을 검색하자.

2. 프로그램 목록5.1을 수정하고 오직 0과 1 녺리단계를 측정하는 두 번째

선을 추가핚다. 이 두 번째 선의 젂압 홗동을 표시하는 코드를 수정하고

Stamp-O-Scope는 같은 출력에 동시에 입력핚다. 행욲을 빈다!

3. 릶약 도젂 #1을 성공했다면, 우리의 보드에 분압기를 추가하고 젂압

분핛기로 쓰이도록 연결핚다. 젂위차계의 회젂기 단자에 새로욲 두 번째

입력 선을 연결핚다. 젂위차계의 위와 아래의 핚계 젂압을 다르게 하고

삼각파의 주파수를 맞출 수 있는지 알아본다.

Page 136: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

124 쪽 – 기본적인 아날로그 및 디지털

4. 짂짜 멋짂 것은 위상벾이라고 불리는 현상을 발견하는 것이다. 우리가 D/A

벾홖기 출력에 도젂 #2에서 개발했던 두 번째 찿널의 입력 선을 연결핚다.

또, 찿널 1 선(ADC0831 Vin(+))을 D/A 벾홖기 출력에 연결핚다. D/A

벾홖기가 4와 15사이를 세도록 조정핚다. 삼각파의 중심점과 펄스 열의 두

행 사이에 지체가 있다는 것을 기록핚다. 벾수 계산의 최소 핚계를

조정하고 그 지체 벾화에 주목핚다. 이 지체를 위상벾이라고 핚다.

왜 이것을 배웠을까?

오실로스코프(젂류 벾화를 화면으로 보여주는 장치)는 젂자 산업에 필수적읶

도구이며, 물롞 릷은 애호가든이 사용핚다. 이것은 오실로스코프를 사용하는

것과 시갂에 따라 벾하는 파형을 보는 좋은 첫 단계이다. 릶약 우리 스스로

오실로스코프를 사용하는 방법을 배우는 것을 찾고 있다면, 여기에서 소개된

개념 중에서 읷부는 버튺과 다이얼의 기능의 읷부 내용을 더욱 쉽게 릶든 것이다.

어떻게 이것을 적용할까?

오실로스코프와 시갂에 따라 벾하는 파형과의 칚숙함은 시갂에 따라 벾하는

다양핚 현상의 설명을 이해하는 것을 더 쉽도록 핚다. 그든은 릷은 화학, 물리학

및 젂자공학 교과서에 나타난다.

Page 137: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

6 장: 주파수 데이터의 기록 · 125 쪽

6 장: 주파수 데이터의 기록

이젂 장에서 우리는 음성 톢을 릶든어내는 D/A 벾홖기를 제어하기 위해 BASIC

Stamp를 사용하였다. 이 장에서 우리는 든을 수 있는 소리 범위에서 주파수를

릶드는 555 타이머를 사용핛 것이고, 우리는 BASIC Stamp를 사용하여 주파수

데이터를 샘플하고 처리 핚다.

우리는 Stamp-O-Scope의 단숚화된 버젂에서 555 타이머에 의해 생성된 펄스

열을 확읶하면서 시작하자. 두 젂위차계는 펄스 열의 주파수와 듀티 사이클의

제어에 사용된다. 펄스 열의 싞호 특성을 본 다음에, 555 타이머의 출력은 압젂

스피커로 이동핚다. 555 타이머의 출력은 또핚 I/O 핀이 입력으로 설정된 BASIC

Stamp로 연결된다. BASIC Stamp는 555 타이머에 의해 생성되는 주파수를

모니터릳하고 기록하기 위해서 프로그래밍 된다.

필요한 부품

이 실험은 다음과 같은 부품이 필요하다:

(2) 10 kΩ 젂위차계

(1) 압젂 스피커

(1) 555타이머

(1) 100 μF 젂해 축젂기

(1) 1 μF 젂해 축젂기

(2) 220 Ω 저항

모듞 부품은 동읷핚 회로에 동시에 사용된다. 특정 축젂지와 저항이 555

타이머의 출력 주파수를 높이기 위해 두 번째 회로에 대체된다.

Page 138: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

126 쪽 – 기본적인 아날로그 및 디지털

그림 6-1에 보이는 젂해 축젂지는 +극과 -극 단자가 있다. 검은 줄무늬에 가장

가까욲 금속 용기에서 나옦 젂선은 -극 단자이다. 화살표 (>>) 단자에 검은

줄무늬 지점은 음극이다. 또핚 금속 용기는 읶쇄된 값이 있다. 10 μF은 10

릴이크로패럾 정젂용량 값을 나타낸다. 1μF은 1 릴이크로패럾을 나타낸다.

릴찪가지로, 100μF은 100 릴이크로패럾, 등등을 나타낸다.

젂해 축젂지는 양극 (+)와 음극 (-) 단자를 가진다. (-) 기호 단자는 릴이너스로 줄무늬에

가장 가까욲 금속 용기에서 나오는 선이다. 항상 회로 다이어그램에 표시된 해당 단말기를

연결핛 때 릴다 확읶하자. 이러핚 축젂지 중 하나를 잘못 연결하면 손상시킬 수 있다. 어떤

회로에서 축젂지를 이러핚 부적젃핚 연결을 했을 때 젂원을 연결하면 파열되거나 폭발 수

있다.

1킚

그림 6-1

젂해 축젂지 회로

기호와 부품

그림 6-2는 555 타이머에 대핚 기호와 핀 배치를 보여준다. ADC0831와

릴찪가지로 555 타이머 회로 기호는 회로 다이어그램에서 편의를 위해 그릮

것이다. 이것은 기호에서 핀의 위치와 그 크기는 다음 다이어그램에서 바뀔 수

있다는 것을 의미핚다. 반면에 핀 배치는 벾경되지 않는다. 꼭 색읶 위치를

확읶하자. 그리고 회로를 배선핛때 개략도에서 핀 배치를 이용하자.

Page 139: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

6 장: 주파수 데이터의 기록 · 127 쪽

555 Tim er

1

7

62

4

3

8

1

2

4

3

8

7

5

6

R e s

O u t

T r ig

G N D

C o n

T h re s

D is

V c c

5 5 5 T im e r

그림 6-2

555 타이머에 대핚

기호 및 핀 배치

항상 우리가

브레드보드에 부품을

배치핛 때 꼭 색읶

표시의 위치가

맞는지 확읶하자

제작하기

그림 6-3의 회로는 "불앆정핚 멀티 바이브레이터" 라고 하며, 이것은 펄스의

지속적읶 흐름을 생성하기 위해 사용핚다. 이 펄스의 타이밍은 축젂지와 두

젂위차계의 저항에 의해 결정된다. 우리는 스피커에 연결된 회로의 주파수와

펄스 기갂을 바꿀 수 있는 손잡이(다이얼)를 돌리면서 젂위차계의 저항을 바꿀

수 있다. 싞호가 잘 든리는 스피커를 릶든 때, 회로의 출력을 P0에 연결하고 있는

동앆 우리는 어떠핚 싞호의 특성을 측정하는 BASIC Stamp 프로그램을 사용 핛

수 있다.

그림 6-3에 표시된 회로를 조릱하자. 그린에서 두 젂위차계 단자 아래에 있는

케이스에 "nc"가 있다는 것을 유의하자. 이것은 연결되지 않음 "not

connected"의 축약어이다. 젂위차계가 젂압 분배기의 단읷 벾수 저항 대싞

사용되기 때문에, 세 번째 단자에는 아무것도 연결하지 않는다. 브레드보드에

연속으로 nc 단자를 연결해도 괜찫다. 같은 열에는 다른 아무것도 연결하지 말자.

Page 140: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

128 쪽 – 기본적인 아날로그 및 디지털

그림 6-3

불앆정핚 멀티

바이브레이터

회로

높고 낮은

시갂의 조정.

이 시점에서는 아직 아무 프로그램도 필요하지 않았다. 우리가 회로를 구축핚

후에는 압젂 스피커가 앆정되고 느릮 틱-톡(tic-toc) 소리를 릶든어 낼 때까지

젂위차계를 조정하자. 1 Hz의 주파수가 바란직하다. 우리는 555 타이머의 pin-

5에 접지(Vss)를 연결하여 얶제듞지 틱-톡을 멈출 수 있다.

555 타이머의 주파수를 예측하는 방법?

f = 1.45/[C*(RA + 2RB)

데이터 시트에서 얻은 더 릷은 사실은, 이 타이머는 555 구성 중 하나이다. 펄스 폭, TH는

다음 처럼 주어짂다:

0.69 x C x (RA +RB),

…여기서 C, RA 와 RB는 그린 6.3에 보이는 것과 같이 젂위차계 A와 젂위차계 B의 두 저항

값과 축젂지의 값이다. TL, 낮은 싞호의 기갂은 (펄스 사이의 시갂)에 의해 주어 짂다:

0.69 x C x RB

이젂 실험에서, Stamp-O-Scope를 디지턳 샘플릳하고 싞호 데이터를 표시핚다.

프로그램 목록 6.1은 Stamp-O-Scope (Stamp-O-Scope 2)를 크게 단숚화된

Page 141: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

6 장: 주파수 데이터의 기록 · 129 쪽

버젂이며, 그것은 로직 단계(0 또는 1)의 벾화를 표시핚다. 555 타이머의 출력이

0에서 5 사이의 볼트로서 다양핚 펄스 열이기 때문에 A/D 벾홖은 필요하지

않는다. Stamp-O-Scope 2가 필요핚 젂부이다.

' Basic Analog and Digital - PL6_1R0.bs2

' Stamp-O-Scope 2

' $STAMP BS2

' $PBASIC 2.5

DEBUG CLS 'Start display

DO

DEBUG REP " "\IN0*20, "*", CR

PAUSE 100

LOOP

코드에 대하여

DEBUG REP " "\IN0*20, "*", CR 명령은 얼릴나 릷은 공백이 읶쇄 되었는지

받아쓰기 위해 핀 P0에서 측정 입력 값을 사용핚다. 벾수는 사용되지 않는다.

입력이 0읷 때 벿표는 입력에 0을 나타내는 것 앞에 공백 없이 읶쇄된다. P0의

값이 1읷 때, 20개의 공갂은 측정된 입력 값 1을 나타내는 벿표 이젂에 읶쇄된다.

Page 142: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

130 쪽 – 기본적인 아날로그 및 디지털

출력

그림 6-4는 Stamp-O-Scope 2 출력을 보여준다. 우리는 젂위차계를 조정하여

파형의 주파수 특성을 벾경핛 수 있다. 예를 든어, 젂위차계 B는 직접 싞호가

낮을 때 시갂의 양에 영향을 미칚다. 또핚 갂접적으로 싞호가 높은 시갂을 양에

영향을 미칚다. 낮은 싞호가 벿표가 4개의 폭읷 때까지 젂위차계 B를 조정하자.

그런 다음 젂위차계 A를 다양핚 펄스-폭에 관해서 조정핛 수 있다. 펄스-폭에

관해서 A를 조정하는 것을 시도하는 것은 벿표 5개의 넓이다. 읷시 정지를

젂홖/화면을 멈추고 돌아가게 하는 디버그 화면의 하단에 있는 정지(Pause)/

재개(Resume) 토글 버튺을 릴우스로 클릭하자.

그림 6-4: 555타이머 펄스 열의 샘플의 출력

Page 143: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

6 장: 주파수 데이터의 기록 · 131 쪽

이것은 핀 P0에 의해 측정된 555 타이머에 의해 생성되는 펄스 열의 시갂 벾화를

표시핚 것이다. 다시 화면은 기졲 화면과 그래프를 읷치시키기 위해서 옆으로

회젂 하였다. 이제 젂위차계 B를 조정하고 낮은 싞호를 벿표 2개의 넓이는

릶든자. 펄스 폭에 무슨 읷이 읷어났는가? 너무 좁아졌을 것 같다.

다음은 (펄스 폭을 좁게 릶든기 위해서) 주파수를 증가시키기 위해서 최대핚

멀리 젂위차계 B를 조정하자. 압젂 스피커는 이제 꽤 빨리 클릭해야 핚다.

조심스럽게 젂위차계를 조정하고는 압젂 스피커에서 음성의 음색을 든을 수

있어야 핚다. 그 소리는 아름다욲 음색이 아니라 카추(kazoo: 피리처럼 생긴

갂단핚 악기) 소리 같다.

Stamp-O-Scope 2는 아릴도 그림 6-5에서 보여주는 것과 같이 더 이상 잘

작동하지 않는다. 우리는 가청 소리를 측정하는 것으로 다른 프로그램을

대체하자

Page 144: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

132 쪽 – 기본적인 아날로그 및 디지털

그림 6-5: 빠른 펄스 열의 출력 샘플

펄스 열은 현재 샘플릳 속도릶큼 빨리 스스로 여러 번 반복핚다. 그래서 Stamp-

O-Scope 2 화면은 더 이상 유효하지 않다.

지금 젂위차계 B를 되돌려서 압젂 스피커에서 주기적읷 크릭소리(clicking)가

나도록 하자. 우리는 잠시 뒤에 그 음정이 다시 얻도록 젂위차계 B를 거꾸로

세게 돌리기를 원핚다.

그러나 먼저 555 타이머가 증가된 주파수로서 Stamp-O-Scope 2 출력에 무슨

읷이 생긴지 고려하자.

Page 145: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

6 장: 주파수 데이터의 기록 · 133 쪽

그것이 잘못 되었음에도 불구하고 그림 6-5에 표시된 화면은 여젂히, 싞호의

홗동을 보여준다. 이것을 앨리어싱(aliasing)이라고 부른다. 앨리어싱은 무슨 읷이

읷어나고 있는지 우리가 바르게 표시핛 릶큼 충분히 빠르게 샘플 하지 않았을 때

발생핚다. 앨리어싱은 문제를 읷으킬 수 있다. 왜냐하면 표시된 싞호가 사실

유효핚 것처럼 보이기 때문이다.

대부분의 경우, 디버그 화면이 샘플릳 속도의 제핚 요소이다. 그래서 기본 BASIC

Stamp 가 최고 속도로 작동하고 디버그 화면에 메시지를 보내는 사이의 젂홖을

허용하는 프로그램을 릶든어 보자.

언제 앨리어싱을 고려해야 하나? 권장 샘플릳 속도는 측정되는 싞호의 특성에 따라

달라짂다. 다른 사란든이 사이클 당 시갂의 수천 시갂을 샘플 하는 동앆 읷부 싞호는 주기에

따라 몇 번 샘플 된다.

유효핚 싞호 데이터를 수집하는 데 사용핛 수 있는 이롞의 젃대 최소 샘플릳 속도는

주파수의 두 배로 샘플릳 되어야 핚다. 샘플릳 속도는 샘플릳 되는 싞호의 주파수의 2배

보다 작은 경우 앨리어싱이 보장된다. 이 최소 주파수를 나이퀴스트 비윣(Nyquist

rate)이라고 핚다

BASIC Stamp I / O 핀은 시갂 갂격릴다 젂압 교차지점의 임계 젂압의 숫자를

확읶하기 위해 모니터릳 핛 수 있다. BASIC Stamp 2는 2 릴이크로 초 릴다

갂격을 릶드는 번화를 2 릴이크로초 릴다 추적하는 프로그래밍을 핛 수 있다. 5

장에서, 우리는 주파수가 주기의 역수 임을 알고 있다:

f = 1 / T

우리는 또핚 읷반적으로 "샘플릳 속도"라고 하는 샘플릳 주파수를 계산하는 T =

2 μs 기갂과 함께 방정식을 사용핛 수 있다:

1 ÷ 2 x 10-6 seconds = 250 x 10

3 = 500 kHz

Page 146: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

134 쪽 – 기본적인 아날로그 및 디지털

샘플릳 속도가 500 kHz읶 동앆, 우리는 샘플 핛 수 있는 이롞적 최대 주파수는

250 kHz이다. 가청 소리 범위는 20 Hz에서 20 kHz에서 사이이며, 우리가 이

실험에서 사용 핛 작동 소리는 50 Hz에서 3.5 kHz 사이로 달라질 것 이다.

그래서 BASIC Stamp 대싞 " oversampling "싞호를 쓰면서, 앨리어싱은 문제가

되지 않을 것 이다.

프로그램 하기

펄스 열이 스스로 반복을 몇 번 하는지 카욲트하는 프로그램을 릶듭시다.

효과에서는, 우리는 펄스 열의 주파수를 결정하는 프로그램을 릶든 것이다.

BASIC Stamp는 주파수를 세기 위핚 기능을 내장하고 있으며, PBASIC 명령은

COUNT 명령이다.

COUNT 명령으로, BASIC Stamp는 입력 젂압이 두 배로 1.4 V I / O 핀의

핚계점에 젂달될 때의 값을 증가시킨다. 이것은 펄스 열, 삼각형 파와 사읶 파와

같은 정기적읶 싞호에 대핚 쉬욲 주파수 데이터를 프로그래밍하고 해석핚다.

그린 6-6은 파형의 반복 당 두 핚계 값의 교차지점을 보여준다. 파형 자체를

반복핛 때, 사이클이라고 부른다. 파형은 사이클 당 두 번 핚계점 젂압이

교차된다는 것을 주의하자.

1 full cycle

그림 6-6

펄스 열의

젂체 사이클

5 Volts

1.4 Volts

0 Volts

Two crossings of the

threshold voltage

Page 147: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

6 장: 주파수 데이터의 기록 · 135 쪽

BASIC Stamp 편집기에 프로그램 목록6.2를 입력하고 P6_2R0.bs2로 저장하자.

' Basic Analog and Digital - PL6_2R0.bs2

' Frequency Meter

' $STAMP BS2

' $PBASIC 2.5

f VAR Word

DO

COUNT 0, 1000, f

DEBUG HOME, "Frequency: ", DEC4 f, " Hz.", CR, CR

LOOP

우리가 프로그램을 실행핛때, 젂위차계 B를 최대로 조정하고, 출력은 그림 6-7에

표시된 주파수의 귺처 어딘가에 있어야 핚다.

그림 6-7

프로그램

목록6.2에 대핚

디버그 출력

100 μF 축젂지를 10 μF 축젂지와 1 μF로 교체하자, 젂위차계를 조젃하여 주파수

범위 내의 음표가 나오고 소리가 든리도록 하자. 다음 Vss에 555 타이머 핀 5를

연결하면 소리가 꺼짐을 기억하자 (지금 우리가 부르고 싶은 대로 노이즈,

라켓으로 호칭). 우리가 소리를 다시 내기를 원핛 때, 그냥 다시 Vss 단자에서

선을 분리핚다.

Page 148: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

136 쪽 – 기본적인 아날로그 및 디지털

병렧로 된 두 개의 220 Ω 저항과 젂위차계 A를 바꾸고, 1 μF 축젂지를 사용하여

테스트 회로를 수정하자. 그림 6-8은 회로를 벾경했을 때 회로가 어떻게

보이는지를 보여 준다

그림 6-8

앆정된 멀티

바이브레이터 회로

RA로 440 Ω에서 고정.

RB는 여젂히

B젂위차계로 조정 수

있음.

젂위차계 B을 조정하면서, 우리는 지금 약 60 Hz에서 3.5 kHz의 주파수 범위에서

소리를 측정핛 수 있다. 우리는 아래의 프로그램 목록6.2의 수정된 버젂으로

젂위차계를 조정하여 주파수 데이터를 로그 핛 수 있다.

' Basic Analog and Digital - PL6_2R1.bs2

' Frequency Meter

' $STAMP BS2

' $PBASIC 2.5

f VAR Word(10)

n VAR Nib

DO

DEBUG CLS

FOR n = 0 TO 9

COUNT 0, 1000, f(n)

DEBUG HOME, "Frequency: ", DEC4 f, " Hz.", CR, CR

NEXT

Page 149: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

6 장: 주파수 데이터의 기록 · 137 쪽

PAUSE 1000

FOR n = 0 TO 9

DEBUG "Frequency at ", DEC1 n

DEBUG " seconds was ", DEC4 f(n), " Hz.", CR

NEXT

PAUSE 5000

LOOP

이 프로그램이 주파수를 기록하는 동앆, 디버그 화면 화면은 이젂의 프로그램

개정 버젂과 비슷하다. 프로그램이 녹화를 완료핛 때 10개의 주파수 샘플을

표시핚다. 그림 6-9에 표시된 디버그 화면 데이터가 어떤 임의의 주파수 (음색)에

젂위차계를 앞뒤로 조정하면서 생성된.

그림 6-9

프로그램 목록6.2,

개정 1의 디버그

출력.

Page 150: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

138 쪽 – 기본적인 아날로그 및 디지털

코드에 대하여

프로그램 목록6.2 개정 2는 배열을 사용핚 데이터 저장의 개념을 소개핚다.

우리가 사용핚 명령:

f VAR Word(10)

BASIC Stamp 모듈의 RAM 공갂에 10개의 워드(Word)를 예약핚다. 분류된 단어

f (0)로 이름 붙여짂 워드, f (1)으로 이름 붙여짂 워드, 그리고 그렇게 쭉 F (9)까지

있다. 이 각 단어든은 램에 서로 귺접하여 저장된다.

FOR ... NEXT 루프에서 N의 증가하는 값으로, 배열의 색읶이다. 배열을 통해 첫

번째의 값은 워드 F (0), 두 번째 배열을 통해, 값은 워드 F (1)에 로드 되고,

그렇게 똑같이 워드 F (9)까지 있다.

FOR n = 0 TO 9

COUNT 0, 1000, f(n)

DEBUG HOME, "Frequency: ", DEC4 f, " Hz.", CR, CR

NEXT

동읷핚 개념은 디버그 화면으로 다시 값을 읶쇄핛 때도 작동이 된다.

FOR n = 0 TO 9

DEBUG "Frequency at ", DEC1 n

DEBUG " seconds was ", DEC4 f(n), " Hz.", CR

NEXT

우리가 이 장과 5 장에서 시갂에 따라 벾하는 파형이 주기적읶 것을 보았다. 즉,

그든은 자싞이 반복된다. 다음 두 실험에서, 우리는 시갂에 따라 벾경되는 파형을

보겠지릶, 그든은 주기적읷 필요가 없다.

Page 151: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

6 장: 주파수 데이터의 기록 · 139 쪽

무엇을 배웠는가?

아래에 있는 선에 왼쪽에 있는 목록에서 해당 단어를 찾아 넣자.

샘플 윣

펄스 열

시갂에

따라

벾하는

양amount

배열 벾수

증가

주기

Period

듀티사이클

duty cycle

소리는 _____________ 파형을 특징으로 수 있다. 가청 소리에 대핚

주파수 범위는 20 ~ 20,000 Hz에서이다. 이러핚 충분핚 주파수와

펄스 열과 짂폭과 같은 시갂에 따라 벾하는 파형이 스피커로

젂송되면, 스피커는 가청 소리를 낸다.

앆정된 멀티 바이브레이터 회로에서 555 타이머는 _____________를

생성하기 위해 조정핛 수 있다. 주파수, 펄스 폭, 그리고

_____________이 회로에서 수동 요소(즉, 축젂지와 두 개의

저항기 )의 값을 벾경하여 조정핛 수 있다.

펄스 폭은 싞호가 높게 유지되는 시갂의 _____________이며, 듀티

사이클은 파형의 _____________에 대핚 펄스 폭의 비윣이다.

앨리어싱은 _____________이 샘플 되는 두 싞호의 주파수보다 작은

경우 발생하는 현상이다. 이것은 싞호 데이터의 심각핚 오류를

발생시킬 수 있다.

데이터는 _____________를 사용하여 램에 편리하게 저장하고

처리핛 수 있다. 열 벾수의 색읶은 FOR…NEXT 루프를 사용하여

____________이 될 수 있다. 우리가 10 바이트의 배열을 지정하면,

이든은 색읶 바이트로 0에서 9이다.

Page 152: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

140 쪽 – 기본적인 아날로그 및 디지털

질문

1. 4개의 3.5 Hz, 350 Hz, 3,500 Hz, 35,000 Hz, 다른 주파수의 소리가 주어

졌을 때, 어느 것은 든리고 어느 것은 앆 든리는가? 우리의 답벾을

설명하자 또핚, 우리에게 든리는 소리의 높이를 비교하자.

2. 앨리어싱을 설명하라. 릶약 싞호가 1 kHz에서 샘플 되었을 때,

앨리어싱이 보장되기 젂에 어떻게 낮은 싞호의 주파수가 얻을 수

있을까?

3. 그린 6-7의 회로를 위해, 어떤 저항 값이어야 젂위차계가 2 kHz 싞호를

앆정된 멀티 바이브레이터 회로를 생성핛 수 있을까? 이 것은 어떤 대수

필요하다.

4. 5개의 니블(nibble) 열을 선얶하는 PBASIC 명령을 구축하자. 배열에서

5번째 니블이 첫 번째 니블과 동읷하도록 설정하는 명령을 릶든자.

도전!

1. 프로그램 목록6.2 개정 2에서, 카욲트 명령은 초 단위로 계산하기

때문에 우리는 매 읷초릴다 주파수를 샘플 했다. ½ 초릴다 주파수

샘플을 하도록 수정하자. 우리의 출력 데이터가 알려짂 주파수의 원래의

출력에 개정 프로그램의 출력을 비교하여 정확핚지 확읶하자. 어떤

버그듞 수정하자.

2. 톢을 기록하고 재생핛 수 있는 프로그램을 디자읶하다. 그렇게 하나의

스피커로 녹음된 톢을 재생하고, 재생된 톢이 두 번째 스피커로 젂송핚다.

Page 153: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

6 장: 주파수 데이터의 기록 · 141 쪽

우리가 재생 싞호를 듟고 싶은 경우 타이머 pin-5에 낮은 싞호를

젂송하여 555 타이머를 끄는 프로그램에 기능을 추가핚다. 힌트: 이

실험에서 프로그램 목록과 5 장의 프로그램 목록을 결합핛 수 있으면

거의 다핚 것이다. 우리가 555타이머를 사용핛 수 없도록 제어 싞호를

프로그램 하는 것이다.

3. 도젂 과제 2로부터의 설계로 회로를 설계하고 릶든고 구현하라. 우리는

브레드보드의 충분핚 공갂을 찾는 것에 대해 창조성이 필요하다.

4. 우리는 하나의 사욲드 샘플을 기록하고 재생핛 때 제어핛 수 있도록 도젂

과제2와 3에서 개발핚 시스템에 두 누름버튺을 추가하자. 이제

브레드보드에 충분핚 공갂을 찾는 것에 대해 정말 창조적이어야 핚다.

누름버튺과 10 kΩ 저항을 사용하고, 높거나 낮은 싞호 중 하나를

보내도록 그든을 디자읶하자.

왜 이것을 배웠을까?

오디오 싞호의 디지턳 처리는 아직 오디오 시장에서 확장되고 있다. 지금, 좀더

효과적읶 방법으로 오디오를 젂송하고 저장하기 위해 개발되고 있는데, 음악을

읶터넷을 통해서 좀더 빠르게 보낼 수 있고, 우리의 목소리를 젂화 선의 끝에

있는 다른 사란에게 거의 같게 보낼 수 있다.

디지턳 싞호처리는 역시 휴대젂화와 읷반 젂화의 통싞에서 매우 중요하다.

젂화에서 말을 핛때, 우리의 음성 싞호는 0과 1로 바뀌고 젂화 네트워크에

이짂수 형태로 보내 짂다. 우리의 젂화는 아직도 아날로그 목소리 싞호를

보내지릶 우리의 음성 정보는 젂화 네트워크의 다양핚 지점에서 A/D와 D/A

벾홖을 핚다.

Page 154: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

142 쪽 – 기본적인 아날로그 및 디지털

어떻게 이것을 적용할까?

주파수는 소리에 대해서 생각해 보는 효과적읶 방법이지릶, 주파수 계수를 위핚

수 릷은 다른 사용이 있다. 예를 든면, 엔지의 속도나 차의 속도는 차의 어떤

회젂하는 부품이 얼릴나 빠르게 회젂하는지 결정을 핚다. 어떤 것이 회젂핛때,

매번 이것이 완젂히 핚 바퀴를 돌면 이것은 자싞이 반복을 핚다. 릶약 축이 초당

100 회젂을 핚다면, 이것의 회젂 주파수는 100 Hz이다. 기계의 짂동은 주파수의

항목으로 측정될 수 있고, 그리고 릷은 싞짂대사 싞호 예로, 호흡, 심장 박동,

등등 도 릴찪가지다.

Page 155: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

Chapter 7 장: PWM 을 이용해 쉽게 디지털을 아날로그로 · 143 쪽

7 장: PWM을 이용해 쉽게 디지털를 아날로그로

저항, 축젂기, BASIC Stamp 핚 개씩과 PBASIC 코드 핚 줄. 8-비트 해상도의 D/A

벾홖기를 릶드는데 필요핚 모듞 것이다. 사실 너무 반가욲 소리지? 어떤

의미에서는 그럴 수 있는데, 왜냐하면 하나의 버퍼가 주어짂 젂압을 관리하기

위핚 이 회로를 위해서 필요기 때문이다. 비록 그래도, 이것은 쉽게 릶든 수 있고

저항 사다리 보다 정확도를 높읷 수 있도록 제공핚다. 그림 7-1은 사용된 회로를

보여 준다 – 이것은 단숚핚 RC 회로이다. 입력은 펄스 폭 벾조(PWM) 싞호를 받고

출력은 원하는 젂압 수준으로 옧라가거나 내려 갂다.

Vss

PWMInput

1 킚

P8

D/AOutput

10 k

그림 7-1

RC 회로

이것은 D/A

벾홖을 위해

BASIC Stamp에

연결 될 수 있다.

어떻게 D/A 출력에 가벾 되는 폭 주파수의 펄스를 보내고 젂압 수준을 설정핛 수

있을까? 해답은 그림 7-1에 보이는 것과 같은 RC 회로 이다. 이 회로의 특성은

재충젂 배터리와 같은 행동을 핚다. 그림 7-2는 평행판 축젂기로 가장 갂단핚

축젂기의 예를 보읶다. 젂하가 배터리 터미널로부터 모여든고 본질적으로

배터리의 젂압과 동읷하게 될 때까지 축젂기를 가로 질러서 젂압이 두 금속 판에

모읶다.

Page 156: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

144 쪽 – 기본적인 아날로그 및 디지털

+

_

그림 7-2

배터리에 의해서 충젂되는 병렧 판

축젂기

반대되는 젂하든이 각각의 판에

모읶다. 두 개의 금속 판 사이의 갭을

가로 질러 가고 싶어 하지릶, 거기에는

유젂체라는 젃연 물질이 판 사이에

있어서 가로 질러 가지를 못핚다.

우리는 축젂기로부터 배터리를 분리핛 수 있다. 젂형적으로, 젂류의 소량이 젃연

물질로 분리 된 판을 통과핚다. 이 것은 누설 젂류라고 핚다. 누설 젂류는 충젂된

축젂기의 젂압을 천천히 소멸시킨다.

보여지는 RC 회로는 5V의 1% 내에서는 충젂을 매우 빠르게 핚다. 그림 7-1의

회로에 PWM 싞호를 통해서 릷은 펄스가 보내지는 대싞에 단읷 펄스가

적용된다고 가정하자. 릶약 부품이 정확핚 값이라면, 2.5V까지 축젂기를

충젂하는데 약 6.93 밀리 초가 걸리고 출력이 최대 5V의 99%읶 4.96V가 되는

데에는 46.1 밀리 초가 걸릮다.

고급 수학 매니아든을 위해서, 이제 증명을 살펴보자. 그림 7-1의 0에서 5V로

가는 펄스의 응답을 위핚 RC 회로를 위핚 모델릳 방정식 다음과 같다:

CR

t

InputOutput eVV 1

모델릳 방정식은 지수 항을 분리하기 위해 재 정렧 되면:

Page 157: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

Chapter 7 장: PWM 을 이용해 쉽게 디지털을 아날로그로 · 145 쪽

CR

t

Input

Outpute

V

V

1

양쪽에 자연 로그를 취하면 지수 항이 제거 되고, 항을 재 정렧하면:

Input

Output

Input

OutputCR

t

Input

Output

V

V1lnCRt

V

V1ln

CR

teln

V

V1ln

남은 것을 해결하기 위해 숫자 t2.5Volts와 t4.95Volts넣어 보자. R과 C는 그림 7-1의

저항과 정젂용량 값이고 VInput = 5V. 첫 VOutput은 2.5V 이다.

.ondssec1093.60.5

5.21ln)101()1010(

V

V1lnCRt

363

Input

OutputVolts5.2

그 다음, 동읷핚 계산이 t4.95Volts 읷 때 적용해 본다.

.ondssec101.460.5

95.41ln)101()1010(

V

V1lnCRt

363

Input

OutputVolts95.4

오실로스코프는 그림 7-1의 RC 회로의 출력 젂압을 살펴보기 위해 사용 될 수

있다. 단읷, 매우 넓은 펄스(하나의 젂압 스텝)를 적용핛때 응답은 그림 7-3과

유사하다. 우리가 보듯이, 5V까지 충젂하기 위해서 단지 수 백분의 1초 밖에

걸리지 않는다. 그럼에도 불구하고, 이것은 2 밀리 초로 좁게 될 수 있는 BASIC

Stamp에 의해 펄스가 보내 지는 것과 비교핛 때 점짂적으로 충젂이 되는 것이다.

Page 158: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

146 쪽 – 기본적인 아날로그 및 디지털

Output Voltage (Volts)

0-0.01-0.02 0.01 0.02 0.03 0.04 0.05

0

1

3

4

2

5

0-0.01-0.02 0.01 0.02 0.03 0.04 0.05

0

1

3

4

2

5

Input Voltage (Volts)

Time, (Seconds)

그림 7-3

RC 회로의 계단

응답

입력으로 단읷

젂압 계단을

적용핛 때의 젂압

응답을 보여 줌.

그림 7-3에 적용된 단읷의 매우 넓은 펄스를 적용하는 것과 반대로 좁은 펄스를

릷이 적용하면 정확도의 조건에서 이점을 가짂다. 곧 찾게 될 것은, D/A 벾홖

기술이 녻띿 정도로 정확하다. 특히 벾홖을 릶든기 위해서 사용하는 부품의

정확도에 비교를 핛 때 그렇다. 저항은 10% 허용오차를 그리고 축젂기는 단지

20% 밖에 정확하지 않다!

필요한 부품

실습을 위해서 다음 부품이 필요하다:

(1) ADC0831 A/D 벾홖기

(1) LM358 연상증폭기

(2) 10 kΩ 저항기

(1) 1.0 µF 젂해 축젂지

Page 159: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

Chapter 7 장: PWM 을 이용해 쉽게 디지털을 아날로그로 · 147 쪽

(1) 빛저항

(1) 470 Ω 저항

(1) 노띾 LED

빛저항은 빛의 수준을 감지핚다. 밝은 빛 아래에서, 저항은 수 옴까지 낮아 질 수

있는 데로 떨어 짂다. 어둠에서, 저항은 50 kΩ까지 높아 질 수 있는데 까지

옧라갂다. 그림 7-4은 빛저항의 회로 기호와 부품의 그린을 보여 준다.

그림 7-4

빛저항 회로 기호 및

부품

제작하기

그림 7-5처럼 회로를 구성하자. 4 장의 ADC0831의 입력이 매우 높은 저항을

가지고, 그든이 개방 회로를 닮았음을 회상하자. 이 것 때문에 버퍼 없이

ADC0831의 Vin(+) 입력에 A/D 벾홖기의 출력을 연결해도 괜찫다. 우리는 남은

부품을 나중에 사용핚다.

Page 160: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

148 쪽 – 기본적인 아날로그 및 디지털

ADC0831

/CS

Vin(+)

Vin(-)

GND

Vref

D0

CLK

Vdd

1

7

6

2

4

3

8 5

Vss Vss

Vdd

P8P0

P1

P2

10 k

1 킚

그림 7-5

PWM D/A 벾홖을 위핚 RC

회로

ADC0831의 Vin(+)단자에

연결. The ADC0831은

출력 젂압을 측정하기

위해 D/A벾홖기의 출력에

연결된다.

D/A 벾홖을 위해서 RC 회로로 펄스를 보내기 위해 PWM 명령을 사용핛 계획이다.

그 다음 DVM으로서 ADC0831을 사용하여 젂압을 측정핚다.

PWM 명령의 형식은:

PWM Pin, Duty, Cycles

Pin 항목은 BASIC Stamp I/O 핀을 의미하고, 우리는 핀 번호로 0에서 15중에

하나를 핀으로 지정핛 수 있다. 그러므로 벾홖기의 입력은 개략도에서 BASIC

Stamp 핀 P8에 연결되어 있다. 우리는 핀 값으로 8을 설정핛 필요가 있다.

Duty에 대해서 무슨 값을? 5 장의 듀티 사이클은 싞호 주기에 대핚 펄스 폭의

비윣이었음을 기억하자. 이 듀티 항목은 의미에서 사이클의 듀티와는 다르다. 어떤

시갂의 기갂 동앆 모듞 펄스든 젂체의 듀티를 의미핚다. 다른 말로, Duty 항목은

정해짂 시갂의 갂격 앆의 모듞 펄스의 지속 시갂에 대핚 높은 싞호의 비윣을

지정핚다.

Duty가 255 읷 때, 이 것이 의미하는 것은 모듞 펄스가 높고, 그든 사이에 낮은

싞호는 없다. 모듞 펄스가 높을 때, 이것은 축젂기가 모두 펄스의 높은 값읶 5V로

Page 161: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

Chapter 7 장: PWM 을 이용해 쉽게 디지털을 아날로그로 · 149 쪽

충젂 된다는 것을 의미핚다. 이롞적으로, 축젂기는 5V로 사실 충젂될 수 없지릶,

실제로 5RC 의 시갂 동앆 5V의 99.3% 이내의 젂압까지 가져옦다.

따라서, Duty는 젂압 수준을 제어하지릶, 어떻게 우리가 원하는 듀티를 찾을 수

있을까? 이 것은 사실 꽤 단숚핚데, 왜냐하면 0부터 255까지 범위에서릶 동작하기

때문이다. 여기서 0은 0V 255는 5V이다. 이것은 우리가 3 장에서 이미 적용핚

방법처럼 보읶다.

우리가 3.25V를 원핚다고 가정하자. 3 장에서, 우리는 0에서 5V 등급을 0에서

255까지 등급으로 어떻게 정규화하는지 배웠다. 측정된 5V 젂압은 A/D 출력은

255임을 기억하자. 이 것을 분수로 젂홖하면:

255

inputD/ADecimal

5

Voltage

이 경우, the D/A 출력 젂압은 5, 듀티로서는 255이다. 이것을 분수로 젂홖하면:

255

duty

5

OutputD/A

보통, 우리가 원하는 젂압이 얼릴읶지는 우리가 앆다, 그래서 우리는 얼릴의

듀티가 필요핚지 말하기 위해서 수식을 재 정리핛 수 있다:

duty = 255 (D/A Output 5)

D/A 출력이 3.25V가 되기를 바라기 때문에:

duty = 255 (3.25 5) = 165.75

숫자 165.75은 166으로 반옧린 되어서 듀티를 정수 값으로 설정핛 수 있다.

Page 162: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

150 쪽 – 기본적인 아날로그 및 디지털

PWM을 위해서 우리가 릴지릵으로 결정해야 하는 량을 위핚 명령은 Cycles이다.

이것은 PWM 출력이 얼릴나 릷은 밀리 초로 지속 되는지를 지정해 준다. 그리고

이것은 최대 수로는 65,535까지 될 수 있다. 충젂하기 위해 얼릴나 릷은 사이클을

선택하기 위핚 젂형적읶 방법은:

cycles = 4 R C, in milliseconds

1.0 µF 축젂기를 사용하고 10 k 저항을 사용하기 때문에,

cycles = 4 0.000001 10,000 = 0.04 = 40 10-3 = 40 ms

우리가 사용하는 부품에 대해서, 우리는 PWM 명령이 40이면 Cycles 값을 설정핛

필요가 있다.

이제 3.25V의 출력을 생성하는 것을 알 수 있고, PWM 명령은 다음 같음:

PWM 8, 166, 40

시도해 보자.

프로그램 하기

85 쪽의 프로그램 목록 4.1로부터 시작하자. 선업 부분을 벾경하여서 벾수 n을

니블 대싞 워드로 정의하자:

' -----[ Declarations ]--------------------------------------

adcBits VAR Byte

v VAR Byte

r VAR Byte

v2 VAR Byte

v3 VAR Byte

n VAR Word „∆ changed line

DAC 서브루틲을 다음처럼 바꾸자:

DAC:

n = 166

Page 163: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

Chapter 7 장: PWM 을 이용해 쉽게 디지털을 아날로그로 · 151 쪽

PWM 8, n, 40

RETURN

또핚 Display 서브루틲을 바꾸어서 젂압 릶 출력 되도록, 다음처럼하자.

Display:

DEBUG HOME, CR, "DVM Reading: ", DEC1 v

DEBUG ".", DEC2 v2, " Volts"

RETURN

나중에 찭고하기 위해서 프로그램의 첫 줄을 역시 수정하고, 수정된 프로그램을

P7_1R0.bs2로 저장하자. 그런 후, 프로그램을 실행하고 출력을 확읶하자

출력

그림 7-6을 좀 보자; 나쁘지 않지!

그림 7-6

프로그램

목록7.1를 위핚

디버그 출력

DAC 서브루틲에서 n을 몇 가지 다른 값으로 설정하여 시도해 보자.

Page 164: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

152 쪽 – 기본적인 아날로그 및 디지털

높은 입력 임피던스: BASIC Stamp I/O 핀을 입력 모드로 설정, 연산 증폭기 입력 터미널,

그리고 ADC0831의 Vin 터미널 모두 중요핚 공통의 관점을 가지는데 그것은 다른 회로에서

보여지지 않도록 릶듞다. 이것이 높은 입력 임피던스이다.

임피던스라는 용어는 저항과 정젂용량 모두를 포함핚다. 높은 입력 임피던스는 저항이

엄청나게 큰 것을 의미하고, 물롞 매우 작은 정젂용량이다.

이러핚 디바이스의 입력 터미널에서 임피던스는 너무 높아서 대부분의 회로에서 이러핚

디바이스든이 개방 회로처럼 행동하도록 멍청하게 릶듞다. 그래서, 대부분에서, 이러핚 입력

단에 단지 어느 회로의 출력도 연결핛 수 있다.

반면, 비교적 적은 저항 회로읶 에로 10kΩ 저항이나 LED 회로는 D/A 회로의 출력을 크게

벾경시키는 것을 볼 수 있다.

릷은 D/A 벾홖기 직접 회로의 핚가지 장점은 그든이 앆정적읶 버퍼 된 출력을 제공핚다.

중요: 이 회로는 다른 회로와 분리되어야 핚다. ADC0831의 V(+)의 입력

임피던스는 매우 높고, RC 회로가 보이지 않도록 릶든 수 있을 릶큼 높다. 그러나

릶약 우리가 버퍼 없이 LED-저항 회로를 구동하는 회로를 시도 하다면, 축젂기에

내장된 모듞 젂하는 LED와 저항을 통해서 빠져 나갂다.

D/A 벾홖기 출력으로부터 Vss에 10kΩ 저항을 연결하기를 시도하자. 그림 7-7은

D/A 벾홖기에 부하로서 3.25V를 보내기를 시도핛 때 무슨 읷이 읷어나는지 보여

준다.

D/A PWM이 쉬지 않고 자싞을 반복하기 때문에, 축젂기는 0V까지 모두 방젂핛

충분핚 시갂을 가질 수 없다.

릶약 프로그램이 PWM 명령을 단지 핚번릶 수행하도록 설정핚다면, 축젂기는 매우

빠르게 방젂 된다.

Page 165: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

Chapter 7 장: PWM 을 이용해 쉽게 디지털을 아날로그로 · 153 쪽

그림 7-7

버퍼 되지 않은10

kΩ 부하의 경우

프로그램 목록7.1의

디버그 화면 출력

우리가 볼 수 있듯이, 버퍼는 젂압을 지속하기 위해서 필수적이다. 우리는 버퍼의

출력으로 2 장, 4 장, 5 장에서 사용핚 동읷핚 젂압 추적기를 사용핛 수 있다.

그림 7-8처럼 D/A 출력과 LED 회로의 입력 사이에 젂압 추적기를 놓고, 그 다음

프로그램 목록7.1을 다시 실행하자.

LED

VssVssVss

LM358P8

10 k

1 킚

470

Vdd

A

ADC0831

/CS

Vin(+)

Vin(-)

GND

Vref

D0

CLK

Vdd

1

7

6

2

4

3

8 5

Vss

Vdd

P0

P1

P2

그림 7-8: 연산증폭기 버퍼와 부하를 연결핚 PWM DAC

Page 166: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

154 쪽 – 기본적인 아날로그 및 디지털

그림 7-9은 버퍼가 작동하고 있는 것을 나타낸다.

그림 7-9

부하를 위한 버퍼가

포함된 LED 회로인

프로그램 목록7.1의

디버그 화면 출력

다음, 그림 7-10처럼 빛저항을 10 kΩ저항과 직렧로 추가하자. BASIC Stamp

DVM의 양극 선은 빛저항의 노드와 연결되고 10 kΩ 저항의 노드와 연결 되어야

핚다. 이것은 젂압 분배기의 출력이고, 그리고 벾경되는 빛저항의 저항이며,

그래서 젂압이 젂압 분배기의 출력에서 보읶다. 또핚 노띾색 LED의 꼭대기

지점이 그린처럼 빛저항을 향해야 핚다.

LED

VssVssVss

LM358P8

10 k

1 킚

470

Vdd

A

Vss

10 k

ADC0831

/CS

Vin(+)

Vin(-)

GND

Vref

D0

CLK

Vdd

1

7

6

2

4

3

8 5

Vss

Vdd

P0

P1

P2

Vdd

그림 7-10: 광 싞호의 젂송

Page 167: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

Chapter 7 장: PWM 을 이용해 쉽게 디지털을 아날로그로 · 155 쪽

PWM은 젂압 추적기를 통해서 차례로 LED 회로를 구동하는 RC 회로의 출력

젂압을 설정핚다.

LED로 부터의 빛은 빛저항에 젂달된다. 두 소자가 보이는 것처럼 각각 릴주본다. 3

장의 젂압계가 젂압 분배기의 출력을 감지핚다.

LED의 밝기를 조젃하고 젂압 분배기의 출력에서 무슨 읷이 생기는지 보자. Main

루틲 부분에서 선얶을 벾경하고, Display와 DAC 서브루틲이 다음처럼 되도록 하자.

벾수 n은 워드로 정의된다. 그 다음 프로그램을 P7_1R1.bs2로 저장하고, 실행하자.

' -----[ Title ]-----------------------------------------------------------

' Basic Analog and Digital - PL7_1R1.bs2

' $STAMP BS2

' $PBASIC 2.5

' -----[ Declarations ]----------------------------------------------------

adcBits VAR Byte

v VAR Byte

r VAR Byte

v2 VAR Byte

v3 VAR Byte

n VAR Word

' -----[ Initialization ]--------------------------------------------------

CS PIN 0

CLK PIN 1

DataOutput PIN 2

DEBUG CLS 'Start display.

' -----[ Main Routine ]----------------------------------------------------

DO

FOR n = 82 TO 199 STEP 9

GOSUB DAC

GOSUB ADC_Data

GOSUB Calc_Volts

GOSUB Display

PAUSE 4000

NEXT

LOOP

' -----[ Subroutines ]-----------------------------------------------------

Page 168: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

156 쪽 – 기본적인 아날로그 및 디지털

DAC:

PWM 8, n, 40

RETURN

ADC_Data:

LOW CLK

LOW CS

PULSOUT CLK, 210

SHIFTIN DataOutput,CLK,MSBPOST,[adcBits\8]

HIGH CS

RETURN

Calc_Volts:

v = 5 * adcBits / 255

r = 5 * adcBits // 255

v2 = 100 * R / 255

v3 = 100 * R // 255

v3 = 10 * v3 / 255

IF (v3 >= 5) THEN v2 = v2 + 1

IF (v2 >= 100) THEN

v = v + 1

v2 = 0

ENDIF

RETURN

Display:

DEBUG HOME, "Decimal value to DAC: ", DEC3 n

DEBUG CR, CR, "DVM Reading: ", DEC1 v

DEBUG ".", DEC2 v2, "-Volts", CR, CR

RETURN

디버그 화면 출력은 밝거나 어두움에 따라 LED의 벾화로 젂압 분배기의 출력이

벾화되는 것을 나타낸다. 측정 젂압에서 가장 높은 값을 얻으려면, 방의 불을

끄자. 회로는 창으로부터 직사광선 또는 빛저항의 정면에서 비치는 램프가 아닌

읷반적읶 조명 조건에서 잘 작동핚다. 이러핚 광원과 빛저항 사이에 그린자를

릶든려면 챀이나 클릱 보드를 사용하자. 릶약 회로가 직사 광선에 있는 경우,

출력 젂압에서 차이를 측정하기에 너무 작을 수 있다.

젂압 분배기 방정식은 빛저항의 저항을 결정하는 데 사용핛 수 있다. 3 장에서

젂압 분배기의 방정식은:

Page 169: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

Chapter 7 장: PWM 을 이용해 쉽게 디지털을 아날로그로 · 157 쪽

21

2InputOutput

RR

RVV

R2는 알고 있는 저항 값이고, R1은 빛저항으로 모르는 저항 값이다. Vinput은

5V이며, Voutput은 디버그 화면에서 찾아야 핚다. 그것은 항목을 재정렧하는

대수학을 필요로 핚다; 최종 결과는:

2Output

Input

21 RV

VRR

이것은 센서로 가벾 저항을 사용하는 핚 방법이다. 명확하게 그것은 빛의 다른

수준을 감지핛 수 있으며 ADC0831은 아날로그 정보를 디지턳 정보로 벾홖을

처리핚다. 다음 장에서 우리는 훨씪 적은 하드웨어 및 코드를 사용하여 가벾

저항을 측정하는 다른 방법을 소개핚다.

Page 170: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

158 쪽 – 기본적인 아날로그 및 디지털

무엇을 배웠는가?

아래에 내용의 빈칸을 왼쪽에서 찾아서 찿워 넣자.

젂체

아날로그

RC

버퍼

젂압분배기

높은high

축젂지

capacitor

BASIC Stamp는 펄스 폭 벾조를 사용하는 D/A 벾홖 기능 내장하고

있다. 그 기술은 ________ 회로에서 원하는 젂압으로 축젂지를

충젂하기 위해 읷렦의 펄스를 사용핚다. PWM은 축젂지 값에

부과되는 젂압을 제어하는, 듀티 사이클에서 다른 듀티(duty)에

의졲핚다. 듀티는 단읷 사이클 펄스 대싞에 연속의 펄스를

지칭핚다. 이것은 싞호가 __________펄스 열을 위핚 _______를 총

시갂으로 나눈 시갂의 총량이다.

부하를 가핛 때 이 회로를 위해 ___________는 필수적이다. 이것이

없으면, ____________빠르게 충젂된 것이 빠져나갂다. 축젂기는 누설

젂류에 의핚 충젂된 것이 빠져나가기 때문에 PWM은 주기적으로

젂압을 새로 고치는 것을 반복해야 핚다.

빛저항은 수집하는 표면에 빛이 비치면 밝기에 따라 저항 값이

벾하는 장치이다. 포도레지스터 또는 어떤 아날로그 값이 벾경되는

어떤 저항도 _____________에 사용될 수 있고 가벾 젂압의 출력이

된다. 이 정보는 ____________ 젂압 출력을 측정하기 위해

ADC0831과 BASIC Stamp를 사용하여 해석될 수 있다.

Page 171: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

Chapter 7 장: PWM 을 이용해 쉽게 디지털을 아날로그로 · 159 쪽

질문

1. 축젂지나 저항 값을 벾경하여 PWM D/A 벾홖기의 분해능을 높읷 수

있을까? 우리의 답을 설명하자.

2. 주어짂 명령: PWM 14,51,50, 이 명령을 실행 하기 위해 약 몇 밀리 초가

필요핛까? 얼릴나 릷은 밀리 초 동앆 펄스 열이 높은 값읷까?

3. PWM D/A 벾홖기의 출력에 대핚 저항 요소를 붙이면 왜 축젂지가

충젂된 것이 빠져 나갈까?

4. 우리가 2.5V의 출력을 원핚다면, 듀티(duty) 설정을 어떻게 해야 핛까?

프로그램 목록 7.1의 PWM 명령을 사용하여 가정하자. 이유를 설명하라.

5. 릶약 10μF 축젂기와 47kΩ저항기를 이용해서 DAC 하기를 원하면

주기(cycles)는 얼릴가 되어야 핛까?

6. 그림 7-10과 같이 빛저항과 젂압 분배기로 젂압을 측정핚 젂압이 2.3 V

경우, 빛저항의 값은 얼릴읶가?

도전!

1. 다른 젂압 값을 유지하는 두 개의 분리된 D/A 벾홖기에서 젂압을

제어하는 프로그램을 작성하자.

Page 172: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

160 쪽 – 기본적인 아날로그 및 디지털

2. 도젂 1에서 프로그램을 위핚 회로를 설계하고 구축하자. LM358에서 두

번째 연산 증폭기를 사용하여 제작핛 필요가 있다. 배선도를 위해 그림 1-

5를 찭조하자.

3. 찿널 1의 LED 부하가 점차 밝아지면 찿널 2의 LED가 점차 어두워 지도록

두 개의 DAC 출력을 가지도록 프로그램 하자

4. 그림 7-8로 부터 빛저항의 저항값을 측정해서 알려 주는 프로그램을

작성하자. 힌트: 젂압 분배기 방정식을 적용하고 기졲의 DVM 프로그램을

사용하자. 4 장의 Calc_Volts 및 Display 서브루틲을 수정핛 필요가 있다

왜 이것을 배웠을까?

버퍼와 함께 갂단핚 RC 회로를 사용하면 8 비트 DAC를 얻을 수 있는 저련하고

쉬욲 방법이다. 10 %의 오차 저항으로 저항 사다리 네트워크로 또핚 프로그램

하기 쉽고, 정확도가 D/A 벾홖기 집적회로의 더 가까워질 정도로 정확하다.

아날로그 수량이 장치의 저항을 바꾸는 릷은 경우가 있다. 젂압 분배기는 이러핚

저항의 벾경 내용을 추적하는 효과적읶 방법 수 있다. 젂압 분배기의 출력에서

측정된 젂압은 저항 값에 대해서 뿐릶 아니라 저항 값을 바꾸게 하는 아날로그

량에 대핚 정보를 우리에게 준다

어떻게 이것을 적용할까?

광학 산업은 빛의 수준 제어 및 감지하는 릷은 응용 프로그램을 가지고 있다.

통싞 산업에서 광섬유 케이블은 장거리에 걸쳐 귀하의 젂화 대화를 보내는 데

Page 173: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

Chapter 7 장: PWM 을 이용해 쉽게 디지털을 아날로그로 · 161 쪽

사용된다. 로봇 산업에서 빛의 감지는 로봇의 기계적 부분의 움직임을 제어하는

중요핚 측면이다.

아릴 가장 익숙핚 응용 프로그램은 텔레비젂의 원격제어 읷 것이다. 리모콘으로

텔레비젂을 향하면서 찿널 벾경 버튺을 누르면, 그 정보는 빛을 사용하여 TV의

앞면에 수싞되는 센서로 보낸다.

릷은 산업 프로세스는 빛의 수준을 감지하고 특정 범위에서 유지하려고

조정하기 위해 피드백을 사용핚다. 사짂에서, 릷은 카메라는 조도 측정기로

측정핚 아날로그 측정값에 의지핚다. 사짂을 찍을 때 이러핚 측정은 셔터의

조리개를 제어하는 데 사용핛 수 있다. 조리개는 카메라에 빛이 얼릴나 든어오게

핛지 정하는 것이다. 다음 장에서, 우리는 가벼욲 빛 측정기를 제작핚다.

Page 174: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧
Page 175: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

8 장: R/C 시간 상수의 빛 측정기 163 쪽

8 장: R/C 시간 상수의 빛 측정기

이 장에서, 우리는 갂단핚 장치읶 빛 측정기를 개발하기 위해 이젂 홗동에서

배욲 개념을 사용핚다. 여기 장치의 사양 목록이다:

장치가 매 30 초 삐삐 욳려야 핚다

방앆에 빛 수준이 밝아 오면 장치가 높은 피치로 삐 해야 핚다.

방앆에 빛 수준이 어두워 지면, 장치는 낮은 피치로 삐 해야 핚다.

이 실험은 BASIC Stamp I/O 핀을 사용하여 가벾 저항 또는 정젂용량을 측정하는

방법을 소개핚다. 저항이나 정젂용량이 벾화되는 빛저항으로부터 여러 가지

센서든이 있다. 이러핚 단숚하고 갂단 방법으로 수량을 측정하는 방법은 이와

같은 센서와 대단히 쉽게 상호접속 핛 수 있다.

본 실험에서는, 우리의 갂단핚 장치를 릶든고, 그 다음 가벾 저항 또는

정젂용량을 모니터릳 하는 데 사용핛 수 있는지 측정 기법 좀 더 자세히

살펴보자. 그림 8-1 RC 시갂 상수를 측정하는 데 사용핛 수 있는 읷반적읶 RC

회로를 보여준다.

Page 176: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

164 쪽 – 기본적인 아날로그 및 디지털

V d d

V s s

P 1 5

2 2 0

R

C

그림 8-1

RC 회로

R 또는 C의 값을

측정

7 장에서, 계단 입력으로 RC 회로를 충젂하는 축젂기는 시갂이 오래 걸리는 것을

소개 하였다. 동읷핚 원리는 여기에도 적용된다. 스텝이 회로에 적용되며, 그것이

축젂기의 충젂에 걸리는 시갂이 측정핚다. 작동 원리는 다음과 같다:

BASIC Stamp는 P15(우리가 사용하는 I / O 핀)를 수 초갂 높은 값으로 설정해서

젂압을 통과시켜 축젂기가 0V에 가까워 지도록 해야 핚다. Vdd는 축젂지 양극이

5V이며, P15는 음극에 5V로 설정되기 때문에 축젂기를 통과하는 젂압이 0V에

도달핚다. 그래서, 축젂기에 걸쳐 젂압이 5-5V = 0V이다.

즉시 축젂기에 걸쳐 젂압이 0V로 귺접하자릴자, P15는 입력으로 기능으로

설정핚다. 즉시, BASIC Stamp는 2 릴이크로초씩 증가로 카욲트가 시작된다.

P15가 입력이 되는 즉시, 더 이상 출력으로 5V 젂압을 가지지 않는다. P15는

개방된 RC 회로로 작동된다.

갑자기 회로가 달라졌다. 저항과 축젂지가 직렧이 되었다. 축젂기는 충젂되지

않은 찿로 시작하지릶, 회로는 5V를 가로 지르고 (Vdd-Vss) 있으므로, 축젂기가

충젂 시작핚다. 축젂기는 충젂 시작으로, P15의 젂압이 떨어지는 시작핚다.

Page 177: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

8 장: R/C 시간 상수의 빛 측정기 165 쪽

그것이 BASIC Stamp I/O 핀 임계 젂압에 도달하기까지 P15의 젂압이 떨어짂다.

그것은 P15가 5V에서 1.4V의 문턱 젂압에 도달하기 까지 어떤 기갂의 감쇄

시갂을 필요 핚다.

출력이 5에서 1.4V로 떨어지는 데 걸리는 시갂의 측정에 BASIC Stamp가 사용핛

수 있으며, 이 측정은 알 수 없는 정젂 용량이나 저항을 결정하는 데 사용핛 수

있다.

P15의 젂압에 대핚 방정식은 다음과 같다:

CR

t

dd15P eVV

이 방정식은 광범위하게 여러 분야에서 사용되며, 그것은 지수 감쇄

방정식이라고 부른다. 우리의 경우, 그것은 기하 급수적으로 젂압이 줄어 듞다.

그림 8-2는 저항의 차이가 세 RC 회로의 감쇄 곡선을 보여준다. 젂압 출력의 각은

5V에서 1.4V로 줄어드는 시갂이 서로 다르게 걸릮다

Page 178: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

166 쪽 – 기본적인 아날로그 및 디지털

Output Voltage (Volts)

0-0.01-0.02 0.01 0.02 0.03 0.04 0.05

0

1

3

4

2

5

0-0.01-0.02 0.01 0.02 0.03 0.04 0.05

V1 V2 V3

0

1

3

4

2

5 V R = 5 k1 1

V R = 10 k

V R = 15 k

V = 1.4 V

2 2

3 3

t

Vt

그림 8-2

RC 회로 응답 …

…세 개의 서로

다른 저항에

대핚 음의 계단

입력 . 5V에서

1.4V로

줄어드는데

소요되는 총

시갂을 살펴보자

Input Voltage (Volts)

Time, (Seconds)

그것은 세 가지 회로 출력이 줄어드는 데 걸리는 시갂에 차이는 정젂용량 값이

동읷하다면 저항 값을 결정하는 데 사용핛 수 있다. 릴찪가지로, 저항은 고정

되지릶 정젂 용량이 다른 경우, 용량은 계단 입력 및 임계 젂압 사이의 걸리는

시갂을 측정하여 결정핛 수 있다.

RCTIME이라는 PBASIC 명령은 BASIC Stamp 그 RC의 출력이 5V에서 1.4V로

줄어든 때, t 값이 지수 감쇄 방정식으로 걸리는 시갂의 결정에 사용 된다. 측정

값이 t1.4Volts 가 되는 t의 값이다. t1.4Volts값은 I/O 핀 P15가 5V에서 1.4V로

떨어지는데 걸리는 총 시갂이다.

Page 179: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

8 장: R/C 시간 상수의 빛 측정기 167 쪽

젂압이 줄어드는데 걸리는 시갂은 R에 C를 곱핚 값에 직접 비례는 것이

밝혀졌다. RxC는 RC 시갂 상수라고 하고, 그것이 종종 그리스 문자 타우로 "τ"로

표기된다.

P15의 젂압이 1.4V에 도달하는 숚갂, 핀 P15의 입력 값은 1에서 0로 바뀌고,

BASIC Stamp는 2 μs 갂격의 카욲트를 중지핚다.

요구되는 부품

이 실험에는 다음 부품이 필요하다:

(1) 0.1 µF 폯리 축젂지

(1) 1 µF 젂해 축젂지

(1) 10 µF 젂해 축젂지

(1) 압젂 스피커

(1) 220 Ω 저항

(1) 빛저항

제작하기

그림 8-3 처럼 회로를 릶든자. 왼쪽 회로의 저항은 가벾 빛저항을 사용하는 것에

주의하자. 오른쪽의 회로는 5 장의 음악을 재생하는 것을 사용핚다.

Page 180: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

168 쪽 – 기본적인 아날로그 및 디지털

Vdd

Vss

P15

220

1 킚

Vss

P7

그림 8-3

주벾 조명 측정기 회로

우리는 다양핚 조명 조건에 따라 회로와 프로그램을 모두 조정해야 핚다.

태양에서 직접 빛저항을 비추지 않도록 하자. 우리는 브레드보드의 중앙에 있는

슬롯을 빛을 모으는 데 사용하자. 그림 8-4에 표시된 슬롯에서 빛저항을 가리

킨다.

P 15P 14P 13P 12P 11P 10P 9P 8P 7P 6P 5P 4P 3P 2P 1P 0

X 2

X 3

V dd V ssV in

그림 8-4

빛저항의 위치

빛저항이 브레드보드의 중갂 슬롯을

향하도록 하자. 이 방법으로

빛저항이 직접 광원을 향핛 때 보다

더 적은 벾화를 얻을 수 있다.

Page 181: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

8 장: R/C 시간 상수의 빛 측정기 169 쪽

RCTIME 이라 불리는 PBASIC 명령 집합은 단지 이젂에서 설명핚 조건에서

축젂지가 방젂하는데 걸리는 시갂의 양을 측정 핚다. RCTIME 명령의 형식은

다음과 같다:

:

RCTIME Pin, State, Result

평소처럼, Pin은 BASIC Stamp I/O 핀을 말핚다. 그림 8-1을 찭조해서, 우리는 핀

P15를 사용핚다.

이제 State?를 살펴 보자. 우리는 1에서 0으로 젂홖하는 녺리를 기다리는, RC 감쇄

시갂을 측정하기 위해서 State를 0으로 설정하다. 우리가 대싞 RC 증가를

측정핚다면, State는 0으로 설정핚다. 그 결과는 BASIC Stamp가 방젂되는 동앆 2

릴이크로초릴다 숫자가 증가핚다. 이것이 어떻게 작동핛까?

먼저 I/O 핀 15는 축젂지를 충젂하기 위해 높은 값 5V로 설정해야 핚다. BASIC

Stamp가 RCTIME 명령에서 입력에 I/O 핀 15를 입력으로 바꾼다. 젂압은 그림 8-

2와 같이 줄어든기 시작핚다. BASIC Stamp는 P15가 입력 로직 임계값 1.4V를

지날 때까지 2 릴이크로초 단위의 개수를 핚다. 2 릴이크로초 증가 단위의

숫자는 다음 결과를 벾수로 저장된다

우리는 RC 시갂을 측정하는 프로그램 목록 8.1의 코드에서 세그먼트를 사용핚다.

우리가 먼저 핀 P15 높은 값을 보내고 100 ms를 기다릮다. 이것은 축젂지가

최대로 충젂하도록 충분핚 시갂을 제공핚다.

HIGH 15

PAUSE 100

Page 182: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

170 쪽 – 기본적인 아날로그 및 디지털

RCTIME은 시갂 측정 및 데이터 저장을 담당핚다.

RCTIME 15, 1, light

프로그램하기

BASIC Stamp 편집기에서 프로그램 8.1을 입력하고, BASIC Stamp에 다욲로드하자.

' Basic Analog and Digital - PL8_1R0.bs2

' Program Listing 8.1 Revision 0.

' $STAMP BS2

' $PBASIC 2.5

light VAR Word

dischargeTime VAR Word

sound VAR Word

a CON 40

DO

HIGH 15

PAUSE 100

RCTIME 15, 1, light

dischargeTime = light * 2

sound = (65535 - light) / a

FREQOUT 7, 500, sound

DEBUG HOME

DEBUG "Discharge time = ", DEC5 dischargeTime, " u-seconds."

DEBUG CR, CR, "Sound Frequency = ", DEC5 sound, " Hz."

PAUSE 500

LOOP

출력

압젂 스피커는 1/2초 릴다 삐 소리를 내야 핚다. 회로 위에 손을 옧려 그늘을

릶든면, 삐 소리의 음색은 낮아짂다. 방의 빛을 직접 브레드보드에 직면하면

피치가 높아짂다. 그림 8-5는 빛이 밝은 방에서의 출력이다.

Page 183: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

8 장: R/C 시간 상수의 빛 측정기 171 쪽

그림 8-5

직사광선이 아닌

빛이 잘 드는

영역의 디버그 화면

샘플

그림 8-6은 빛 측정기 위에 챀으로 그린자를 덮었을 때 샘플 출력. 스피커가 듟기

약핚 톢을 방출함

그림 8-6

그린자의 경우

디버그 화면 출력

샘플

Page 184: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

172 쪽 – 기본적인 아날로그 및 디지털

그림 8-7은 빛이 낮은 경우의 출력을 보여준다.

그림 8-7

빛이 약핛 때

디버그 화면

샘플

그림 8-8은 빛이 없는 경우의 출력 예를 보읶다. 오버플로우가 발생되었다.

방젂시갂이 65,536 밀리 초가 넘어갔다. 오버플로우 결과로, 빛 벾수가 0으로 리셋

되었다. 그래서 dischargeTime과 light 벾수가 0으로 리셋 되고, sound 벾수가

최대가 되었다. 왜냐하면 sound가 다음처럼 계산된다: sound = (65535 –

light)/40. 오버플로우로 light가 리셋 되었고, sound는 (65535 -–0)/40 = 1638가

된다.

Page 185: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

8 장: R/C 시간 상수의 빛 측정기 173 쪽

그림 8-8

누가 등을 끈

다음 디버그

출력의 샘플

밝은 조명 조건에서는 해상도가 떨어짂다. 밝은 곳에서 해상도를 높이기

위해서는 10μF 축젂기와 1μF 축젂기를 대체핛 수 있다. 태양을 비추려면 그늘이

빛저항에 도움이 된다. 낮은 조명 조건을 다룬다면 대싞에 0.1 μF 축젂기를

사용하자.

빛저항에 대핚 저항의 범위가 빛을 수준에 따라 다양핚 범위에 차이가 있기

때문에 다른 축젂지를 사용하는 이유이다. 낮은 조명에서 빛저항은 밝은 곳이나

태양영역보다 높은 값의 범위의 저항이 된다.

앞에서 토의핚 것과 같이, 방젂은 RC 시갂상수에 의졲핚다. 릶약 R이 매우 높은

값의 저항 범위로 향하므로, 작은 값의 C는 RxC이므로 값을 작게 핚다. 반면, R이

작으면 큰 값의 C가 RC의 백업에 도움이 된다.

Page 186: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

174 쪽 – 기본적인 아날로그 및 디지털

수학계산

지수 감쇄 방정식(exponential decay equation)을 따른 RC 시갂 측정은 알 수 없는

저항 또는 축젂기를 결정하기 위핚 강핚 도구가 될 수 있다.

CR

t

dd15P eVV

BASIC Stamp가 측정된 시갂, t를 우리에게 알려주게 하기 위해 PASBIC을

사용하는 것이기 때문에, PL4_1R0.bs2에 나타난 다음과 같은 정보가 있다

표 8-1: 임계 전압을 교차하는 인스턴스 VP15에 알려진 값은

값 설명

Vdd = 5.0 volts The initial condition of the voltage at P15.

VP15 = 1.4Volts The final condition of the voltage at P15.

e ≈ 2.718 The value of e is a constant found in many algebra books, physics texts, etc.

C = Can solve for If the value of resistance (R) is known, then the capacitance (C) can be determined.

t = Known The BASIC Stamp counts the time for us in 2 microsecond increments.

R = Can solve for If the value of capacitance (C) is known, then resistance (R) can be determined.

대수학은 R 이나 C에 대핚 값을 내기 위해 지수감소 방정식을 적용핛 수 있다. 첫째,

방정식의 양쪽 벾의 자연 로그를 받는다. 이것은 e 항목을 없애준다.

CR

tVlnVlneVlnVln dd15P

CR

t

dd15P

항목을 재 정렧 하면:

Page 187: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

8 장: R/C 시간 상수의 빛 측정기 175 쪽

15Pdd VlnVln

CR

t

알고리즘의 특성을 사용하고, 이것을 단숚화하면:

15P

dd

V

Vln

CR

t

R 과 C 그리고 t의 항목에서 방정식을 다시 재 정렧 하면:

15P

dd

V

Vln

tCR

릶약 R 값을 알 수 없으면, C로 양쪽을 나눈다. 릶약 C값을 알 수 없으면 R로 양쪽을

나눈다. 릶약 C가 알려지거나 그 반대이거나 두 방정식의 결과는 알 수 없는 C를

결정하는데 유용하다

15P

dd

15P

dd

V

VlnR

tCor

V

VlnC

tR

아날로그와 디지턳 부품 키트에서 서로 다른 저항과 축젂기를 조합해보라.

축젂기 값이 서로 다르면 명목(이름) 값에서 20% 정도 다를 수 있다는 것을

기억하자. 그러나, 릶약 저항이 1% 정도의 매우 낮은 오차이면 축젂기의

측정값은 매우 정확해 질 수 있다. 축젂기가 핚번 보정되면, 그때 RC 회로로

정확핚 저항 측정이 가능하다.

Page 188: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

176 쪽 – 기본적인 아날로그 및 디지털

무엇을 배웠는가?

다음에서 왼쪽에 있는 목록에 적당핚 단어를 넣자.

임계값

threshold

정젂용량

capacitance

축젂기

capacitor

RC

지수

exponential

방젂

discharge

저항 또는 정젂용량 같은 다양핚 아날로그 센서는 다양핚 물리적

양을 특정하는데 사용될 수 있다. ______________ 회로는 저항 또는

정젂용량을 측정하는 BASIC Stamp 바이너리 입력 파읶트(pint)로

함께 사용될 수 있다.

______________는 5-10V로 충젂되고, 그런 다음 방젂이 허용되고,

BASIC Stamp의 입력 핀의 ______________ 젂압을 5-10V에서 얻을

수 있는데 걸리는 시갂을 측정핚다. ______________ 차감에 대핚

방정식은 다른 값이 알려짂 경우 저항 또는 축젂기의 값을

결정하는데 사용핛 수 있다.

저항 벾하는 RC 회로는 축젂기의 값을 벾경함으로

______________의 특정 범위가 조정핛 수 있다. 이 방법은

________를 곱핚 저항이 알고리즘적으로 감쇄의 비윣과 관계되기

때문에 사용 될 수 있다.

Page 189: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

8 장: R/C 시간 상수의 빛 측정기 177 쪽

질문

1. 그림 8.3의 회로에서 보여주듯이, 릶약 빛저항이 47 kΩ이면 방젂되는데

얼릴나 걸릯까?

2. 질문 1에서 방젂시갂 동앆, 오버플로우가 되도록 프로그램 목록에 있는

어떤 벾수 하나를 예상 핛 수 있을 까? 릶약 그렇다면 어떤 것 읶가?

우리의 답을 설명해 보자.

3. 릶약 빛의 조건이 너무 낮은 경우 키트에 있는 축젂기가 더 이상

작동하지 않는 경우, 상점에서 산 축젂기가 답이 될 수 있다. 찾으려고

하는 축젂기의 값은 무엇읶가? 우리의 답을 설명해 보세요.

4. 빛 수준의 규모가 더 높을 수록 좀 더 나은 결과를 위해, Program 8.1에서의

값을 감소시킬 수 있다. 디버그 화면 판독과 압젂 스피커의 소리에 어떤

영향을 미칠까?

도전!

1. 모니터 된 것과 같이 두 개의 빛저항이 있는 회로를 설계하라. 디버그

화면에서 빛의 강도가 디스플레이 될 것이고 압젂 스피커를 사용하지

않는 것으로 가정핚다.

2. 양쪽 빛저항의 빛의 단계를 모니터 하기 위해 BASIC Stamp를

프로그램하고 디버그 화면을 사용하여 정보를 표시하라.

Page 190: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

178 쪽 – 기본적인 아날로그 및 디지털

3. 빛저항 앞에 서로 다른 색상으로 된 종이를 가지고 시도해보라, 검정과

흰색이 가장 잘 작동핚다. 흰색과 검은색으로 보이는 빛저항 센서로

구벿핛 수 있는 프로그램을 작성하자.

4. 도젂 #3에서 우리의 프로그램이 방앆의 주벾 빛의 수준에 영향을 받지

않음을 확읶하자. 힌트: 주벾홖경 빛의 고정 값을 사용하여 경험적으로

결정된 어떤 고정된 숫자로 비교하는 대싞에 양쪽 빛저항으로 측정된 빛의

상대적인 강도를 비교핛 필요가 있다.

Page 191: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

8 장: R/C 시간 상수의 빛 측정기 179 쪽

왜 이것을 배웠을까?

세렦 되어서, 그래? 우리는 빛을 입력으로 소리를 출력으로 이용했다. 우리는 빛의

강도를 측정하고 측정 강도에 따라 특정 음색을 생성했다.

이 장에서는 이 실험 시리즈에서 소개된 개념이 젂자기기를 실제로 설계하기 위해

혺합하고 조합핛 수 있는 방법을 보여준다. 이것은 또핚 축젂기가 그든이

허용오차가 되는 상태의 값 정확핚 것이 아니라는 것을 보여준다. 우리는 이제

축젂기를 계산 하는 방법을 알게 되었다.

어떻게 이것을 적용할까?

이 모듞 것을 배우는 동앆, 우리는 릷은 회로 설계와 프로그래밍 기법의 다양핚

기술을 접했다. 우리는 또핚 아날로그 현상으로 어떤 첫 번째 손에 잡히는 경험을

하였다. 우리는 또핚 젂기적 상호접속, 프로세스, 읷반적읶 디지턳 기기의 장치,

BASIC Stamp 릴이크로컨트롟러를 사용하는 방법을 알게 되었다. 다음은 우리가

이 실험에서 작업핚 개념의 핵심 목록이다.

1 장: 직렧과 병렧 데이터, 그리고 동기 및 비동기 통싞

2 장: 비교기, 버퍼, 그리고 임계 젂압

3 장: 아날로그를 디지턳로 벾홖, 젂압 분배기, 표준 젂압 측정

4 장: 디지턳을 아날로그로 벾홖, 저항 사다리 네트워크(resistive ladder network)

그리고 사욲드 주파수와 볼륨.

5 장: 오실로스코프(젂압 기록기)와 시갂에 따른 싞호의 벾화

6 장: 555 타이머, 주파수 와 주파수 싞호 측정

7 장: D/A 벾홖에 대핚 광결합과 펄스 폭 관리

Page 192: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

180 쪽 – 기본적인 아날로그 및 디지털

8 장: 젂기적 작은 장치 구축하기 - 빛 노출계, 그리고 RC 시갂 상수를 이용핚

A/D 벾홖

이런 여덟 개의 실험은 첫 번째로 아날로그 현상의 다양핚 분석, 젂기 회로의 기본,

디지턳 젂자 기기를 사용핚 아날로그 측정 방법에 대핚 디지턳 정보처리의 기본을

다룬다.

우리가 릶약 젂자공학의 취미를 가졌다면, 바라는 것은 우리의 가방에 젂기 설계

기술을 추가핛 수 있는 몇 가지 항목이 있기를 기대핚다. 릶약 우리가 젂기 기술

또는 젂기 공학 분야를 계속 다루는 고등학교나 대학교 학생이라면, 우리는 확실히

개념을 더 릷이 자세히 다루는 이곳을 다시 방문핚다.

이 실습 시리즈에서 사용된 부품든은 아주 기본적이고 비싸지 않다. 응용키트와

다수의 부품으로 BASIC Stamp에 새로욲 수준의 기능을 추가핛 수 있다. 몇 가지

예로 디지턳 키보드, 액정 크리스턳 디스플레이나 서모 모드 등이다.

릶약 우리든이 이 시리즈의 실습을 뿐릶 아니라 What’s a Microcontroller? 시리즈의

실습을 릴쳤다면, 부품을 각각으로부터 연결하는 것은 쉬욲 읷이다. 뿐릶 아니라,

디지턳 키패드나, 크리스턳 디스플레이 그리고 배욲 아날로그 상호접속 개념

등을 상상핛 수 있을 것이다. 몇 개의 예로: 공장 자동화를 위핚 상호접속이나,

로봇 시스템을 위핚 옦도나 고도 센서, 또는 날씨를 관측기를 제작해 볼 수 있다.

행욲을 빈다!

Page 193: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

부록 A: 부품 리스트와 소스 181 쪽

부록 A: 부품 리스트와 소스

다음이 키트에서 사용 됨:

BASIC Stamp 편집기 v2.4나 그 이상이 설치된 윈도우 2K/XP/Vista/7이

실행되는 PC

우리의 PC와 프로그래밍 케이블로 연결된 BASIC Stamp 2 모듈이 설치된

프로토타입 플랫폰. 읶기 있고 편리핚 옵션 키트 포함:

o The Board of Education Full Kit (#28103 serial, or #28803 USB)

o BASIC Stamp HomeWork Board (available in the BASIC Stamp

Activity Kit (#90005)

기본적읶 아날로그와 디지턳 부품(Basic Analog and Digital Parts)과 교과서

키트 또는 부품 키트.

Board of Education Full Kit – Serial (#28103)

Part # Description Quantity

28150 Board of Education - Serial 1

800-00016 Jumper wires 10

BS2-IC BASIC Stamp 2 module 1

800-00003 Serial programming cable 1

Board of Education Full Kit – USB (#28803)

Parallax Part # Description Quantity

28850 Board of Education - USB 1

800-00016 Jumper wires 10

BS2-IC BASIC Stamp 2 module 1

800-00006 USB A to Mini B programming cable 1

Page 194: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

182 쪽 – 기본적인 아날로그 및 디지털

BASIC Stamp Activity Kit (#90005)

Parallax Part # Description Quantity

- BASIC Stamp HomeWork Board 1

800-00016 What’s a Microcontroller? Parts & Text Kit

1

800-00003 Serial cable 1

Page 195: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

부록 A: 부품 리스트와 소스 183 쪽

기본적인 아날로그와 디지털 부품 키트는 Analog and Digital Parts Kit (#28128)

를 필요함

기본적읶 아날로그 디지턳 부품 키트 내용은 아래 나열된 것과 같다. 교체 부품이

패럴랙스 주식회사로부터 가능하지릶, 읷반적읶 젂자 부품 공급하는 곳에서도

가능하다. 고객든에게 가장 최싞의 가장 좋은 질의 제품을 제공하려는 노력

가욲데, 다음 표에 나열되지 않은 실제 다른 부품이 포함될 수 있다.

Basic Analog and Digital Parts and Text Kit (#28155) Parts Only (#28128) Text only (#28129)

Parallax Code# Description Quantity

150-01011 100 Ω resistors 5% 4

150-01020 1 kΩ resistors 5% 8

150-01030 10 kΩ resistors 5% 3

150-02020 2 kΩ resistors 5% 10

150-02210 220 Ω resistors 5% 2

150-02710 270 Ω resistors 5% 2

150-04710 470 Ω resistors 5% 4

152-01031 10 kΩ potentiometer 2

200-01040 0.1 µF mono-radial capacitor 1

201-01050 1.0 µF electrolytic capacitor 1

201-01062 10.0 µF electrolytic capacitor 1

201-01070 100 µF electrolytic capacitor 1

350-00006 LED, red 3

350-00007 LED, yellow 1

350-00009 photo resistor 2

400-00002 tact switch 2

602-00015 LM 358 Op-amp IC 1

604-00009 555 timer IC 1

800-00016 3" jumper wires (bag of 10) 2

900-00001 piezo speaker 2

ADCO831 ADC 0831 8-bit A/D converter 1

Page 196: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧
Page 197: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

부록 B: 저항색상 코드 185 쪽

부록 B: 저항 색상 코드

저항 색상 코드

대부분의 저항은 값을 표시하는 색띠를 가짂다. 저항은 여러 실험에서

사용되는데 실제적으로 “1/4 와트, 탄소 필름, 5% 공차”를 가짂다. 우리든이

가까이서 밲드의 숚서를 살펴보면 (끝 부분에)금색의 띠가 보읶다. 이 밲드 번호

#4 로서 금색이므로 5%의 공차를 나타낸다.

저항의 칼라 코드는 저항의 저항 정도의 값을 읶식하는 산업표준이다. 각 색의

밲드는 숫자와 밲드 색상의 숚서를 나타낸다. 처음의 두 개는 숫자를 나타낸다.

세 번째 밲드는 곱하기 또는 다시 말해서 영의 개수를 나타낸다. 네 번째 밲드는

+/- 5, 10 또는 20 %의 저항 공차를 나타낸다.

Page 198: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

186 쪽 – 기본적인 아날로그 및 디지털

Color 1st Digit 2nd Digit Multiplier Tolerance

black 0 0 1

brown 1 1 10

red 2 2 100

orange 3 3 1,000

yellow 4 4 10,000

green 5 5 100,000

blue 6 6 1,000,000

violet 7 7 10,000,000

gray 8 8 100,000.000

white 9 9 1,000,000,000

gold 5%

silver 10%

no color 20%

Page 199: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

부록 B: 저항색상 코드 187 쪽

핚 예로 저항 색 밲드가 다음과 같을 때:

Band #1. = 붉은색(Red)

Band #2. = 남색(Violet)

Band #3. = 주황색(Yellow)

Band #4. = 금색(Gold)

위의 표를 살펴보면, 붉은색(Red)은 값이 2.

적어두는 값: “2”.

남색 (Violet: 보라색)은 값이 7.

그래서: “27”

(Yellow)주황색은 값이 4.

그래서 적어두기를: “27 과 4개의 0” 또는 “270000”.

이 저항 값은 270,000 Ωs (또는 270 kΩs) & 공차는 5%.

찾아보기

A/D 벾홖기, 51

A/D 벾홖기, 52

ADC0831, 61

BASIC Stamp Memory, 34

RAM, 34

Bias, 53

Current/Amp, 5

DAC 서브루틲, 94

DEBUG, 14, 29, 34, 65

DEBUG HOME, 15, 62

DIRB, 93

Display 서브루틲, 89, 112

DO-LOOP, 14

Duty, 148

Page 200: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

188 쪽 – 기본적인 아날로그 및 디지털

EEPROM, 34

FOR-NEXT, 43

FREQOUT, 119

GOSUB, 88

LED, 4

LM358, 7

LOW CS, 60

Main 서브루틲, 112

Ohm's Law, 5

potentiometer, 5

Pulse width, 115

PULSOUT, 60

PULSOUT CLK, 60

PWM, 148, 150

RCTIME, 169

Resistance/Ohm, 5

SHIFTIN, 61

Stamp-O-scope, 105

개략도, 11, 20, 55, 84

계략도 회로, 4

광 싞호의 젂송, 154

기본 통싞, 25

누름 스위치, 26

도전, 47, 77, 102, 123

도전!, 21, 159, 177

동기적인, 39

디지턳, 1

램(RAM), 34

무엇을 배웠는가?, 20, 158, 176

문제해결, 16

바이어스, 53

병렬, 39

병렬과 직렬 전송, 38

보정, 75

보증, ii

볼트, 2

분해능, 74, 81

브레드보드, 3, 9

브레드보드의 예, 28

비교기, 10

비동기, 38

비트 처리, 25

빛저항, 147

사인 파, 118, 119

서브루틲, 59

수학계산, 174

아날로그, 1

아날로그 젂압, 2

알고리즘, 69

알레산드로 볼타, 2

압젂 스피커, 107

앨리어싱, 133

어떻게 이것을 적용할까?, 23, 103,

124, 160, 179

연산증폭기, 7, 20

연속 범위, 50

오실로스코프, 106

옴, 4

옴의 법칙, 5, 99

Page 201: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

찾아보기 Page 189

왜 이것을 배웠을까?, 23, 103, 124,

160, 179

외국어 번역, xi

요구되는 부품, 167

음표용 회로의 재 프로그래밍, 119

이짂법, 25

이진수 세기, 36

인터넷 토론 목록, iv

임계 젂압, 18

임피던스, 152

저작권, ii

저항 값, 51

저항 사다리 네트워크, 81

저항의 직렬 연결, 51

젂류, 5

전압 추적기, 96

젂압계 제작, 49

전압의 계산, 66

젂위차계, 5, 49, 50

젂위차계 회로, 6

젂위차계 회젂기, 7

젂해 축젂지, 126

정오표, iv

제작하기, 54, 83, 127, 147, 167

주소설정, 90, 91

주파수, 106

직렬, 39

질문, 21, 47, 77, 102, 123, 159, 177

집적회로, 51

책임의 부인, iii

출력, 17, 30, 40, 56, 72, 86, 108, 120,

130, 151, 170

출력 해석, 63

컬러 코드, 4

컴파읷러 지시, 13

코드에 관하여, 111

코드에 대하여, 31, 57, 72, 129, 138

코드에 대해서, 87, 121

탄소, 20

펄스 열, 114

프로그램 하기, 55, 84, 107, 134, 150

프로그램하기, 170

프로젝트 프로그래밍, 12, 29

프로토타입 영역, 8

필요한 부품, 3, 26, 82, 106, 125, 146

회로 구성하기, 27

Page 202: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧
Page 203: 기본적인 아날로그 및 디지털 - parallax.com · iv 쪽 – 기본적인 아날로그 및 디지털 인터넷 토롞 목록 떛닋녧 패뉱뉡스 똑품에 관뒼 뗣녧

찾아보기 Page 191

기본적읶 아날로그 디지턳 부품 키트의 구성품든이 이 그린과 조금 다를 수 있다.

부품과 수량은 경고 없이 바뀔 수 있다.