Physical Computing for Artists & Designers 연세대학교디지털아트학과 Earl Park

Similar documents
Microsoft PowerPoint - es-arduino-lecture-03

시프트 레지스터 Shift Resistor 자, 이제 LED MATRIX 8x8 Board를 마이크로컨트롤러에 연결된 3개의 선으 로 제어해 보자. 이는 마이크로컨트롤러의 포트를 확장함과 동시에 프로그램 으로 제어를 더 쉽게 한다는 장점이 있다. 물론 포트를 절약하게

OCW_C언어 기초

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

CAN-fly Quick Manual

슬라이드 제목 없음

Microsoft PowerPoint - chap04-연산자.pptx

슬라이드 1

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

ISP and CodeVisionAVR C Compiler.hwp

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft Word - PEB08_USER_GUIDE.doc

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft Word - EastSocket매뉴얼_ _.doc

Microsoft PowerPoint - chap05-제어문.pptx

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

BY-FDP-4-70.hwp

Microsoft Word - PLC제어응용-2차시.doc

[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr

Motor

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20325FBEC6B5CEC0CCB3EB20B1E2C3CABDC3C7E82E BC8A3C8AF20B8F0B5E55D>

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap03-변수와데이터형.pptx

PowerPoint Presentation

슬라이드 1

Microsoft PowerPoint - ch07 - 포인터 pm0415

구성품 - UMD 2808 모듈 - JTAG 커넥터 - 젂원 케이블 주요 특징 모듈의 부품화 : 고신뢰성의 DSP 모듈을 최적화된 시스템에 적용 용이 TMS320F2808 ZGMS - 100MHz 탑재 : 확장된 온도규격 (-40 도 ~ 125 도) 적용 Ultralo

API 매뉴얼

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers

PowerPoint 프레젠테이션

<4D F736F F F696E74202D E6F312D BCB3C4A12C20C4DAB5F920B1E2C3CA2C20BDC3B8AEBEF3C5EBBDC5>

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Microsoft PowerPoint - [2009] 02.pptx

PowerPoint 프레젠테이션

K&R2 Reference Manual 번역본

< 제누이노스타트키트 > 사용설명서 목차 1. Arduino IDE 설치하기 2. Genuino 연결및 Arduino IDE 셋팅하기 3. 센서설명및연결도, 예제소스 1

OCW_C언어 기초

아날로그입력 Analog Input 작품이외부세계에관한정보를아날로그형태로읽어들이는경우. 센서를이용하는여러프로젝트들이이에속한다. 이를테면작품앞에있는사람의몸무게는어느정도인지, 방안의 조명은얼마나밝은지등을알고자하는경우가이에속한다. 예 ) 다양한센서들

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft Word doc

슬라이드 1

PowerPoint Presentation

2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK 시스템구성 시스템설정 사용예 사용예 사용예

차시 AS_02 대상 교육주제아두이노 LED 및버튼제어프로젝트교육시간 120 분 1. 아두이노를이용하여 LED 를제어할수있다. 교육목표 2. 아두이노를이용하여삼색 LED 를제어할수있다. 3. 아두이노에서버튼입력을수행하여프로그램에연동할수있다. 장비류는미리배분하고, 재료는

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>


지도상 유의점 m 학생들이 어려워하는 낱말이 있으므로 자세히 설명해주도록 한다. m 버튼을 무리하게 조작하면 고장이 날 위험이 있으므로 수업 시작 부분에서 주의를 준다. m 활동지를 보고 어려워하는 학생에게는 영상자료를 접속하도록 안내한다. 평가 평가 유형 자기 평가

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

PowerPoint 프레젠테이션

T100MD+

2주차: 입출력 제어 복습

JARDUINO-UNO-BT 커넥터 / 스위치기능 종류 USB 커넥터리셋스위치 DC 전원잭업로드선택스위치 ISP 모드선택점퍼블루투스시리얼모듈전원 / 디지털포트 / 아날로그포트커넥터및 ISP 커넥터 기능 +5V 전원공급, 유선업로드기능누른상태에서전원을공급하면부트로더프로그

Microsoft Word - MAI-ISP-STK500_매뉴얼_Ver25.docx

Microsoft PowerPoint - RPino-GOGO_datasheet.pptx

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

UI TASK & KEY EVENT

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다


DVI-CL01 매뉴얼

C 프로그래밊 개요

hd1300_k_v1r2_Final_.PDF

PowerPoint 프레젠테이션

Microsoft PowerPoint - es-arduino-lecture-01

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

PowerPoint 프레젠테이션

고객 카드

Microsoft Word - AM-2560PRO_V01 메뉴얼.doc

2009년2학기 임베디드시스템 응용

Example: LED flashlight

PowerPoint 프레젠테이션

Siemens

Frama-C/JESSIS 사용법 소개

Cortex-M 아두이노 프로그래밍 Cortex-M 아두이노 프로그래밍 4/2/2016 Written by Steve AHN 1/23

ATmega128

Infinity(∞) Strategy

Windows 8에서 BioStar 1 설치하기

11장 포인터

Microsoft PowerPoint - 부호기와 복호기.PPT

Microsoft PowerPoint - e pptx

KEY 디바이스 드라이버

Arduino- 서보모터 서울과학기술대학교기계시스템디자인공학과 교수김성환

뉴티씨 (NEWTC) ATmega8 교육용모듈 (Model : AM-8PL ) 메뉴얼 ( 주 ) 뉴티씨 ( NEWTC ) 1. ATmega8 모듈 (AM-8PL) 소개 ATmega8 칩을

(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

<4D F736F F F696E74202D203131C1D6C2F7202D E6FB8A620C0CCBFEBC7D120C4B3B8AFC5CD204C43442C C1A6BEEEC7CFB1E2205

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

뉴티씨 (NEWTC) 2. FB-CY4E-DEV (FPGA 개발 키트) 구성도 Port Select SW 7 Segment Text LCD UART RS-232C JTAG PORTA (5V) Active Serial PORTB (5V) OSC. 50MHz Analog

API 매뉴얼

Motor Control Solution

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Visual Basic 반복문

C 프로그램의 기본

Transcription:

Physical Computing for Artists & Designers 연세대학교디지털아트학과 Earl Park

마이크로컨트롤러 Microcontroller LED 를단순히켜는것이아닌깜빡깜빡빛나게하고싶다면, 혹은서서히켜지게하고싶다면, 더나아가모터를원 하는각도로돌리거나, 사람의움직임을감지하고싶다면어떻게할것인가? 이번시간에는이러한모든것을제어할수있는마이크로컨트롤러에대해배워보도록하자. 그리고마이크로컨트롤러와컴퓨터 ( 혹은다른디바이스들 ) 가어떤식으로대화를주고받는지도알아보도록한다. Physical Computing 2

집적회로 IC : Integrated Circuit 외형에따른분류 집적회로 ( 集積回路 ) 는특정기능을수행하는전기회로와반도체소자를하나의칩에모아구현한것을말한다. 수백 ~ 수십만개의트랜지스터와다이오드, 저항, 커패시터등다른전자요소들을포함하는반도체회로부품이들어있으며초소형구조의전자회로구조때문에마이크로칩혹은칩이라고불린다. 작은면적에많은전자회로가서로연결되어하나의회로로서기능한다. 우리가사용하게될마이크로컨트롤러도 IC 의일종이다. 아래는우리가쓰게될 ATmega328 chip 의내부구조 (Block Diagram) 이다. DIP(Dual Inline Package) type IC 우리가가장많이사용하게될패키지로브레드보드에꽂아사용할수있다. 핀간격은 2.54mm (1/10인치) 이며 2줄로이루어져있다. 핀번호의시작점은보통왼쪽위에작은원이나반원으로표시되어있으며 1번부터반시계방향으로읽는다. SMD(Surface Mounted Device) type IC 표면실장용패키지이며기계화로 PCB 양산이가능하다. 핀간격에따라 TQFP, SOP, SSOP 등여러가지가있으며패키지가작아작은디바이스를만들때나회로를집적구성할때사용된다. 핀번호읽는법은 DIP type IC와같다. Physical Computing 3

아두이노 Arduino 아두이노 (Arduino) 는오픈소스를기반으로한피지컬컴퓨팅플랫폼으로, AVR 을기반으로한하드웨어인 Arduino board와컴퓨터에서구동하기위한소프트웨어인 Arduino IDE(Integrated Development Environment, 통합개발환경 ), 두가지주요한파트로구성되어있다. IDE를이용해 Arduino Board에업로드시킬스케치 ( 작은컴퓨터프로그램 ) 를만들수있다. 스케치는보드에게뭘해야하는지말해준다. 아두이노의가장큰장점은마이크로컨트롤러를쉽게동작시킬수있다는것이다. 일반적으로 AVR 프로그래밍이 WinAVR로컴파일하여, ISP장치를통해업로드를해야하는등번거로운과정을거쳐야하는데비해, 아두이노는 USB를통해컴파일및업로드 를쉽게할수있다. 또한아두이노는다른모듈에비해비교적저렴하고, Windows를비롯해 Mac OS X, 리눅스와같은여러 OS를모두지원한다. 아두이노보드의회로도가 CCL에따라공개되어있으므로, 누구나직접보드를직접만들고수정할수있다. 아두이노사이트를둘러보자. http://arduino.cc/ 아두이노프로그램다운받기 http://arduino.cc/en/main/software Arduino board Arduino IDE Physical Computing 4

아두이노프로그래밍 Arduino Programming 변수 Variables { } ( 중괄호 ) : 함수정의부분에함수의시작및끝을나타내는데, 배열선언부에초기화값들을지정할때, 여러명령을하나의블록으로묶을때사용한다. ; ( 세미콜론 ) : 라인의끝에붙어문장의종료를나타내준다. 안써줄경우컴파일에러가나며프로그래밍을하는데가장흔한실수이기도하다. 변수는말그대로변하는수로메모리공간에방을만들어원하는값을집어넣을수있다. 예를들어커피잔이있다고하자. 커피잔의용량을데이터형이라고한다면커피잔에붙이는레이블명을변수명이라고하자. 커피잔안에는커피잔이허용하는범위안의숫자를넣을수있다. // : 싱글라인주석 /* */ : 멀티라인주석 데이터형변수명 ; 데이터형은프로그래밍언어에서미리종류가정해져있고, 변수명은작성자가지정 해주어야한다. 변수선언과초기화의예는아래와같다. // 프로그래밍에필요한변수에대한선언 // 변수, 상수선언및초기화 // 라이브러리사용 void setup() { // 이안의내용은한번만실행된다. // 포트 ( 핀모드 ) 설정 // 시리얼통신설정 } void loop() { // 이안의내용은반복되어실행된다. // 시스템이해야할기능에대한프로그래밍 // 입력대기, 입력분석, 부가적인로직, 컴퓨터로전송 } // 사용자정의함수 예 ) int a = 15; 예 ) int a; a = 25; 다양한데이터형 ( 부호가있는데이터형앞에 unsigned 를붙이면양수로바뀐다 ) 데이터형 내용 범위값 boolean true/false 값만가진변수 0, 1 char 16비트 (2바이트) 문자데이터 -127 ~ 128 byte 8비트 (1바이트) 정수 0~255 word 16비트 (2바이트) 정수 0~65,535 int 16비트 (2바이트) 정수 -32,768 to 32,767 float* 32비트 (4바이트) 부동소수점 -3.4028235E+38 ~ 3.4028235E+38 long 32비트 (4바이트) 정수 -2,147,483,648 ~ 2,147,483,647 double* 64비트 (8바이트) 부동소수점 float보다유효자리수가더많다. * float 와 double 은유효자리수에따른정확도의차이가있다. Physical Computing 5

조건문 if, if/else 반복문 for, while, do/while if(){ } 만약 () 안의내용이맞다면 { } 안의내용을실행해라. if(){ 1 } else { 2 } 만약 () 안의내용이맞다면 { 1 } 안의내용을실행하고그렇지않다면 { 2 } 를실행해라. if(a){ 1 } else if (b) { 2 } else if (c) { 3 } else { 4 } 만약 (a) 안의내용이맞다면 { 1 } 안의내용을실행하고, 만약 (a) 가틀리다는가정하에 (b) 안의내용이맞다면 { 2 } 를실행하고, (a) 와 (b) 가틀리다는가정하에 (c) 가맞다면 { 3 } 을실행하고, 모두만족하지않는다면 { 4 } 를실행하라. () 안에들어가는비교 ( 관계 ) 연산자 기호 의미 == 같다!= 같지않다 < 작다 <= 작거나같다 > 크다 >= 크거나같다 () 안에들어가는논리연산자기호의미 && 그리고 또는! 반대 산술연산자기호의미 + 더하기 - 빼기 / 나누기 * 곱하기 % 나머지 복합연산자 기호 의미 ++ 증가 -- 감소 a=+b a=a+b a=-b a=a-b for(a ; b ; c){ } 처음 a를실행하고, b가사실이라면, { } 안의문장을실행해라. 그후 c를실행해라. b를만족하지않을때까지계속이연산을반복하라. 예 ) for(int i=0; i<20; i++){ } a부분은초기화로 1번만실행된다. 정수형변수 i를 0으로초기화한다. b부분이사실이아닐때까지반복한다. i가 20미만을만족할때 { } 를실행하고아니면종료된다. { 부분에서실행된다. 총 20번이실행된다. c부분은 b부분이참일때반복한다. b부분을만족할때 i를 1씩증가시킨다. i++ 은 i=i+1과같은뜻이다. } 부분에서실행된다. while(){ } () 가참이아닐때까지 { } 안을반복한다. do { } while (); () 가참이아닐때까지 { } 안을반복한다. 주의 : 반복문은무한루프에서빠져나올수있는명령어가꼭들어가야한다. Physical Computing 6

스케치업로드하기 Uploading the Sketch Tools > Board Tools > Processor Tools > Serial Port < 하단창에서보드, 프로세서, 포트확인 > Arduino Duemilanove or Diecimila 을선택 ATmega328 을선택 Windows : 장치관리자의포트확인후 COM# 선택 Mac : /dev/...usb... 을선택 Verify : 코드의에러를체크 Upload to I/O Board : 코드를컴파일하고마이크로컨트롤러에업로드한다. Physical Computing 7

ATmega168/328 Pin Mapping ATmega168/328 DIP type 칩을위한핀매핑이다. 검정색이 ATmega168/328의포트번호및기능이고, 빨간색이아두이노에서사용하는핀번호및기능이다. * 핀에붙은번호에는두가지가있다. 하나는칩에있는모든핀에시계반대방향으로붙인일련번호이다. 다른하나는소프트웨어가입 / 출력핀을가리키는데사용되는번호들이다. 여기서는 Arduino 소프트웨어에서지정한번호가가장중요하다. Reset : 그라운드로연결되면칩이리셋된다. VCC,GND : 칩에파워를공급하기위한핀이다. Serial (pin#0,1) : 통신핀으로 RX, TX핀을통해데이터를비동기로주고받는다. Digital I/O (pin#0~13) : 디지털인풋 / 아웃풋으로사용할수있다. (2bit, 0~1) Analog In (pin#0~5) : 아날로그인풋핀으로사용된다. (10bit, 0~1023) Analog Out (pin#3,5,6,9,10,11) : 아날로그아웃풋을위한핀으로사용된다. (8bit, 0~255) Physical Computing 8

마이크로컨트롤러유닛 Microcontroller Unit MCU는대부분의전자제품에채용돼전자제품의두뇌역할을하는핵심칩으로단순시간예약에서부터특수한기능에이르기까지제품의다양한특성을컨트롤하는역할을하는비메모리반도체 ( 시스템반도체 ) 이다. 마이크로컨트롤러유닛은단일칩내부에프로세서, 메모리, 입출력장치를갖추고있다. 에너지형태를하나에서다른것으로바꾸어주는부품을트랜스듀서 (Transducer) 라한다. 예를들어마이크는소리를전기신호로, 모터는전기신호를움직임으로, LED는전기신호를빛으로바꾸는트랜스듀서이다. 마이크로컨트롤러는입력, 출력트랜스듀서를감지하고컨트롤하는아주간단한컴퓨터역할을하게된다. 우리가사용할마이크로컨트롤러는 Atmel사에서나온 ATmega328이며프로그래밍에쉽게접근하기위하여 Arduino 부트로더로이용해 Arduino 코드프로그래밍을하게될것이다. 브레드보드에 ATmega168 chip 을꽂고 Pin Mapping 을참고하여전원과 Reset 을연결 하자. Reset 핀은 Ground 가연결되면초기화되어버리므로 10K 저항으로 +5V 로연결 함으로써 reset 핀에고정시켜놓아야한다. 마이크로컨트롤러를꽂고, +5V, Ground, Reset 배선을한다 Physical Computing 9

크리스탈 Crystal 모든마이크로컨트롤러는일정한템포에맞춰동작하기위해전압의펄스를필요로한다. 크리스탈을붙여서클락 (Clock) 으로사용할수도있고, 칩에내장되어있는저항 / 커패시터회로를사용할수도있다. 그러나내장되어있는저항 / 커패시터 (R/C) 회로는그다지정확하다고할수없어별도의크리스탈을사용하는방식을권한다. 크리스탈은전원이연결되어있을때일정한속도로펄스를내도록만들어져있다. 두개의다리를가지고있는데, 방향성같은것은없다. ATmega328의 Crystal핀에 16MHz의크리스탈을연결하고 22pF의커패시터를통해그라운드에이어주면크리스탈은고유한진동수에따라진동하면서 ATmega328에대한클럭으로작용하게된다. 여기서커패시터는발진주파수안정화에도움을준다. 칩의 9,10 번핀에크리스탈을꽂고 22pF 2 개를그라운드에연결한다 Physical Computing 10

USB to Serial 변환기 U SB to Serial Convertor 컴퓨터에서 나온 USB 직렬통신 신호를 RS-232C 직렬통신 신호로 변환해준다. 여기서는 http://www.neromart.co.kr/goods/view?no=1143의 제품을 사용했다. Convertor의 RXD(Receive Data, 수신데이터선)를 마이크로컨트롤러의 디지털핀 1번 핀 TXD에, TXD(Transmit Data, 송신데이터선)는 0번핀 RXD에 각각 연결해 준다. Convertor의 DTR은 104(100 )커패시터를 거쳐 Reset핀으로 이어준다. 이는 오토리 셋 기능으로, 리셋스위치를 누르지 않고 마이크로컨트롤러에 바로 스케치(아두이노 IDE에서 짠 프로그래밍)를 업로드할 수 있게 해 준다. USB to Serial Convertor를 위와 같이 연결한다 Physical Computing 11

시리얼통신 Serial Communication 기기 (Device) 간의통신에는여러가지가있겠지만크게시리얼 (Serial) 통신과패러랠 (Parallel) 통신으로나누어볼수있다. 시리얼통신은우리나라말로는직렬통신으로데이터를한선을통해차례차례보내는것이고, 패러랠통신은병렬통신으로여러선을통해동시에데이터를보내는것이다. 병렬통신은구현하기힘들고고가이다. 그리고, 거리또한제한이된다. 이에반해서시리얼통신은구현하기쉽고, 저가이고, 거리제한이패러렐보다덜제한을받는다. 통신이라는것은언제나미리정해진규약에따라일어나게되며이를프로토콜이라한다. Serial 통신중대표적인프 로토콜이 RS232C 이며우리는이를 USB 신호로변환하여마이크로컨트롤러와통신하게된다. Physical Computing 12

깜빡깜빡 Blink the LED int ledpin = 13; // LED connected to digital pin 13 < 프로그래밍 > 마이크로컨트롤러를이용한프로그래밍첫번째. void setup() { pinmode(ledpin, OUTPUT); } // sets the digital pin as output LED를깜빡깜빡빛나게해보자. 어떻게하면될까? LED를일정한시간켰다가, 일정한시간끄는것을반복하게하면될것같다. 프로그램업로드에성공했다면딜레이시간을바꿔서다시프로그래밍을해보자. 심장박동 (heart beats) 처럼 LED가켜지게도한번해보자. void loop() { digitalwrite(ledpin, HIGH); // sets the LED on delay(1000); // waits for a second digitalwrite(ledpin, LOW); // sets the LED off delay(1000); // waits for a second } < 회로구성 > 마이크로컨트롤러의한핀에서는최대 40mA의전류를내보낼수있다. 그리고핀이 High일때 5V, Low일때 0V가나가게된다. 그렇다면 LED가원하는전압과전류를맞춰주기위해저항을써야할것같다. 옴의법칙을아는사람은계산을해보자. Digital pin 13번에 220Ω의한쪽끝을연결, 다른쪽끝과 LED의긴핀 (+ 극 ) 을연결하고짧은핀 (-극) 을그라운드로연결한다. Physical Computing 13

시리얼통신 Serial Communication int ledpin = 13; // output pin for the LED int inpin = 2; // input pin (for a switch) < 프로그래밍 > 디지털인풋을이용한프로그래밍. 가장간단한부품인스위치를이용해 LED를제어해보자. 맨먼저스위치를눌렀을때 LED가켜지고, 누르지않으면꺼지게해보자. 아두이노시리얼화면을띄워마이크로컨트롤러에서보내오는값을받아보자. 스위치를누를때마다 1의값을확인해보자. HIGH는 1이다. 왼쪽의시리얼통신코드에서 9600은 Baud Rate로 1초에단위시간당 1bit씩 9600bit를전송한다는뜻이다. 데이터전송속도를나타내는 BPS(Bit Per Second) 는초당전송되 void setup() { pinmode(ledpin, OUTPUT); // declare LED as output pinmode(inpin, INPUT); // declare switch as input Serial.begin(9600); // sets serial to 9600bps } void loop() { Serial.println(digitalRead(inPin)); // sends digital value if (digitalread(inpin) == HIGH) // check if input is HIGH { digitalwrite(ledpin, HIGH); // turns the LED on } else { digitalwrite(ledpin, LOW); // turns the LED off } } 는비트수를나타내며, Baud Rate 는초당전송되는단위신호의수를나타낸다. 시리 얼통신에서는둘이같다고생각해도무방하다. < 회로구성 > Digital pin 2번에오른쪽과같이풀다운저항을단스위치회로를연결한다. 스위치를누르면인풋핀은 HIGH를읽고, Digital pin 13번에연결된 LED를켤것이다. 반대로스위치를누르지않으면 LOW를읽고, LED가꺼질것이다. Physical Computing 14