<4D F736F F F696E74202D E6F312D BCB3C4A12C20C4DAB5F920B1E2C3CA2C20BDC3B8AEBEF3C5EBBDC5>

Similar documents
< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Motor

Microsoft PowerPoint - es-arduino-lecture-03

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

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

OCW_C언어 기초

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


슬라이드 1

PowerPoint 프레젠테이션

Microsoft PowerPoint - [2009] 02.pptx

슬라이드 1

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

PowerPoint 프레젠테이션

슬라이드 1

PowerPoint 프레젠테이션

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

K&R2 Reference Manual 번역본

untitled

Microsoft PowerPoint - chap-03.pptx

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

Microsoft PowerPoint - ch07 - 포인터 pm0415

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - Lesson2.pptx

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 02. 표준 입출력

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

슬라이드 1

Microsoft PowerPoint - additional01.ppt [호환 모드]


PowerPoint Presentation

Microsoft Word - PEB08_USER_GUIDE.doc

C# Programming Guide - Types

마이크로프로세서 개요

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

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

C프로-3장c03逞풚

Microsoft PowerPoint - Chapter_04.pptx

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

T100MD+

API 매뉴얼

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

PowerPoint 프레젠테이션

hd1300_k_v1r2_Final_.PDF

금오공대 컴퓨터공학전공 강의자료

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - chap01-C언어개요.pptx

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

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

쉽게

Microsoft PowerPoint - chap05-제어문.pptx

Java ...

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

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

lecture4(6.범용IO).hwp

PowerPoint 프레젠테이션

ISP and CodeVisionAVR C Compiler.hwp

02 C h a p t e r Java

Microsoft PowerPoint - C++ 5 .pptx

BMP 파일 처리

DE1-SoC Board

슬라이드 1

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

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

중간고사

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

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

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

untitled

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

Microsoft PowerPoint - chap06-2pointer.ppt

기술문서 기초부터프로젝트완성까지, 아두이노 첫걸음 을위한 Arduino Bluetooth Car Control Project 작성자 : 인천대학교 OneScore 임승한

Microsoft Word doc

OCW_C언어 기초

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

Microsoft PowerPoint - chap12-고급기능.pptx

Microsoft PowerPoint - chap-02.pptx

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

강의10

Microsoft PowerPoint - Chapter_02.pptx

(SW3704) Gingerbread Source Build & Working Guide

PowerPoint 프레젠테이션

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

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Microsoft PowerPoint - Java7.pptx

03_원격제어반_IDAC-2W

PowerPoint 프레젠테이션

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

Lab 3. 실습문제 (Single linked list)_해답.hwp

Microsoft Word - FS_ZigBee_Manual_V1.3.docx

Transcription:

Arduino 1 ( 소개, IDE 설치, 기초코딩 ) 컴퓨터 2

컴퓨터 컴퓨터 자동적으로계산이나작업을수행하는기계 컴퓨터기능 연산 : 데이터에대한산술연산 ( 덧셈, 뺄셈, 곱셈, 나눗셈 ), 논리연산 (AND, OR 등 ) 등을하는기능. 중앙처리장치 (CPU; central processing unit) 에서수행. 제어 : 명령을순차적으로읽고해석하여처리하는기능으로모든장치의동작을지시하고감독통제하여자동적인처리가가능함. CPU 에서담당. 기억 : 데이터를저장하는기능으로주기억장치 (RAM, ROM) 와보조기억장치 ( 하드디스크 ) 에서담당. 입력 : 데이터를컴퓨터로읽어들이는기능. 키보드, 마우스, 터치패드 / 스크린, 스캐너, 마이크등. 출력 : 데이터를출력하는기능. 모니터, 프린터, 스피커등. 3 마이크로컨트롤러 마이크로프로세서 (MPU; Microprocessor Unit) 단일칩 CPU 마이크로컨트롤러 (MCU; Microcontroller Unit) MPU + Memory (ROM, RAM)+I/O 버스및모듈이하나의칩으로만들어진소형컴퓨터 4

아두이노소개 2005년이탈리아에서개발된마이크로컨트롤러보드와소프트웨어개발환경 오픈소스하드웨어 / 소프트웨어 저렴한가격 간단한프로그래밍 아두이노보드 Arduino UNO Arduino MEGA Arduino DUE Arduino NANO 5 Arduino Boards 6

Arduino MEGA 2560 ATmega2560 마이크로컨트롤러 (8-bit) 범용디지털입출력핀 USB 연결단자 USB- 시리얼컨버터 7-12V DC Power jack 전원및보조핀 아날로그입력핀 DC power supply: USB (5V. <500mA) or power jack (7-12V) or Vin (7-12V) 5V, 3.3V: These pins provide the regulated DC voltages. IOREF: provides voltage reference with which the MCU operates. 7 Technical Specification Arduino MEGA 2560 Microcontroller ATmega2560 Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limit) 6-20V Digital I/O Pins 54 (of which 15 provide PWM output) Analog Input Pins 16 (10 bits) DC Current per I/O Pin 20 ma DC Current for 3.3V Pin 50 ma Flash Memory 256 KB of which 8 KB used by bootloader SRAM 8 KB EEPROM 4 KB Clock Speed 16 MHz LED_BUILTIN 13 Length 101.52 mm Width 53.3 mm Digital I/O Operates at 5V can receive or provide 20 ma Limit < 40 ma PWM: 2-13, 44-46: 8-bit PWM output LED: 13 Analog input 0-5V 10-bit ADC AREF: reference voltage for the analog inputs. Used with AnalogReference(). 8

Arduino Uno 9 아두이노개발환경 PC: 아두이노통합개발환경 (IDE) 프로그램코딩, 컴파일, 업로딩 10

아두이노통합개발환경 (IDE) 1) www.arduino.cc 에접속하여 download 클릭 2) 자신의 OS 에맞는다운로드버튼을누른다. (Windows 사용자는 Windows installer 클릭 ) 11 아두이노통합개발환경 (IDE) 3) JUST DOWNLOAD 클릭 4) 설치후 IDE 실행 12

아두이노 USB 드라이버 다운로드링크 : http://www.wch.cn/download/ch341ser_zip.html 13 아두이노 -PC 연결 USB 드라이버설치 1. 제어판 장치관리자에서기타장치 > USB2.0-Serial > 드라이버소프트웨어업데이트 USB 케이블을이용하여아두이노와 PC 를연결 2. 컴퓨터에서드라이버소프트웨어찾아보기 3. 압축을해제한드라이버폴더 (CH341SER) 를지정 4. 아두이노 (USB-SERIAL CH340) 가연결된포트를확인 14

아두이노 -PC 연결 IDE 프로그램의 [ 툴 ] 메뉴에서 [ 보드 ] - Arduino / Genuino Mega or Mega 2560 [ 프로세서 ] - ATMEGA2560(Mega 2560) [ 포트 ] - 장치관리자에서확인한포트설정 15 아두이노코드 스케치 (sketch) : 아두이노를실행시키기위해작성된프로그램이나코드 #include < > int variables void setup() { void loop() { 라이브러리변수선언 한번만실행되는함수 ex) 보드의설정작업 무한반복되는함수 16

예제 : Blink 1. 파일 (File) > 예제 (Examples) > 0.1 Basics > Blink 2. 컴파일 : 아이콘 3. 업로드 : 아이콘 주석 (comment) /* */ // 전역변수 (global variable) void setup() { 초기설정함수 한번만실행 void loop() { 반복함수 무한반복실행 17 예제 : Blink 내장함수 pinmode(led, OUTPUT); led 핀을디지털출력으로지정한다. digitalwrite(led, HIGH); led 핀에 HIGH ( 높은전압, 5V) 을출력한다 LED on digitalwrite(led, LOW); led 핀에 LOW ( 낮은전압, 0V) 을출력한다 LED off delay(1000); 1초 (1000ms) 간기다린다 18

예제 : Blink pinmode(pin, mode) 매개변수 pin : 설정할핀번호 mode : 출력일때 OUTPUT, 입력일때 INPUT, INPUT_PULLUP 반환값 : 없음 digitalwrite(pin, value) 매개변수 pin : 설정할핀번호 value : HIGH(=1, 5V 의미, ON 상태 ) 또는 LOW(=0, 0V 의미, OFF 상태 ) 반환값 : 없음 delay(ms) 매개변수 ms : 밀리초단위의지연시간 반환값 : 없음 19 LED 를 2 초주기로깜빡이도록하기 Blink 예제 : 실습 LED 가켜져있는시간 ( 또는꺼져있는시간 ) 을전역변수로지정 2 초동안 LED ON 후에꺼지게하기 Setup 함수 : 한번실행 20

데이터 : 상수, 변수 데이터 숫자 (number): 십진수, 이진수 문자 (character): 문자한개, 작은따옴표로표기, c 문자열 (string): 문자여러개, 큰따옴표안에표기, string 상수 (constant): 프로그램수행중값이변하지않는데이터 변수 (variable): 프로그램수행중값이변하는데이터 변수는사용하기전에반드시선언이되어있어야함 변수의데이터형이지정되어있어야함 변수선언 int a; byte b; char c; boolean yes_no; 값저장 a = 2; b = 2; c = 'A'; yes_no = true; 21 Data type in Arduino 데이터형 (Data Type) 용량 (Size in Bytes) 내용 비교 boolean 1 참, 거짓 ( 불타입 ) true (1) 또는 false (0) char 1 문자 ( 아스키코드 ) -128 ~ +127 byte 1 바이트 0 ~ 255 int 2 정수 (short와같음 ) -32,768 ~ +32,767 unsigned int 2 부호가없는양의정수 0 ~ 65,535 Long 4 long 정수 -2,147,483,648 ~ +2,147,483,647 unsigned long 4 부호가없는 long 정수 0 ~ 4,294,967,295 float 4 실수 (double과같음 ) -3.4028235E+38 ~ +3.4028235E+38 1 byte = 8 bit: 256(0-255) 22

시리얼통신 (Serial Communications) USB 케이블 : 시리얼통신 컴퓨터와아두이노간의통신을통하여아두이노에서의결과를컴퓨터모니터에출력하거나, 컴퓨터에서의입력을아두이노로전송할수있음. 23 시리얼통신 (Serial Communications) int intval = 6; char charval = 65; void setup() { Serial.begin(9600); Serial.print("Strings"); Serial.println("100"); Serial.println(200); Serial.println(intVal); void loop() { Serial.print("intVal: "); Serial.print(intVal); Serial.print(" binary representation:"); Serial.println(intVal, BIN); Serial.begin(baud rate) Starts serial comm between computer and Arduino Baud rate: number of bits transmitted per second 9600 ~ 1,000 characters per second 컴퓨터와아두이노가동일한 baud rate 로설정이되어있어야함 ( 컴퓨터쪽은시리얼모니터창에서속도선택 ) Serial.print( xxx ) Display xxx on serial monitor Serial.print(data, format) Serial.println( xxx ): a next print statement starts on a new line Serial.write( Text \n ) sizeof(x): size (number of bytes) of a variable Serial.print("charVal: "); Serial.println(charVal); Serial.println(charVal, DEC); Serial.println('A', DEC); Serial.println(sizeof(intVal)); 24

데이터형 (Data Type) 실습 다음코드를실행하면어떠한결과가나올지생각해보시오. 자신의예상이맞는지확인해보시오. int a = 10; int b = 20; void setup() { Serial.begin(9600); Serial.print("a="); Serial.print(a); Serial.print(", b="); Serial.println(b); Serial.print("a+b="); Serial.println(a+b); Serial.print("a/b="); Serial.println(a/b); Serial.print("10.0/20 = "); Serial.println(10.0/20); float x = 10; float y=20; Serial.print("x/y="); Serial.println(x/y); void loop() { 25 Arduino Operator (1) 분류연산자의미예제예제결과 산술연산 ( 예 : int x = 6, y = 5) + 더하기 z = x + 1; z = 7 - 빼기 z = x 2; z = 4 * 곱하기 z = x * 2; z = 12 / 나누기 z = x / 2; z = 3 % 나머지구하기 z = x % 4; z = 2 ++ +1 z = y++; ( 또는 ++y) z = 6 -- -1 z = y--; ( 또는 --y) z = 4 관계연산 ( 예 : int i = 5, j = 3, k = 3) == 양쪽이서로같다 j == k; true!= 양쪽이서로같지않다 j!= k; false > 왼쪽이크다 i > j; true < 왼쪽이작다 i < j; false >= 왼쪽이크거나같다 i >= j; true <= 왼쪽이작거나같다 i <= j; false 26

Arduino Operator (2) 분류연산자의미예제예제결과 논리연산 ( 예 : x = 0000 0101 (4), y = 0000 0001 (1)) 논리합 (AND) x y 1 && 논리곱 (OR) x && y 1! 부정 (NOT)!x 0 대입연산 ( 예 : int x = 5) += 더한후대입 x += 3; x = 8; -= 뺀후대입 x -= 3; x = 2; *= 곱한후대입 x *= 2; x = 10; /= 나눈후대입 x /= 2; x = 2; %= 나눈후나머지대입 x %= 2; x = 1; 27 Arduino Operator (3) 분류연산자의미계산식예제결과 비트연산 ( 예 : x = 1111 1001, y = 0000 0001) ( 예 : x = 1001 0110) & bitwise AND x & y 0000 0001 bitwise OR x y 1111 1001 ^ bitwise Exclusive OR x ^ y 1111 1000 ~ 1의보수 (bitwise negation) y = ~x; y = 0110 1001 >> 오른쪽시프트 y = x >> 3; y = 0001 0010 << 왼쪽시프트 y = x << 2; y = 0101 1000 조건연산? : if-else 대체구문 조건? 처리 1 : 처리 2; If ( 조건 ) { 처리 1; else { 처리 2; void setup() { Serial.begin(9600); int x =2; int y=6; Serial.println(x,BIN); Serial.println(y,BIN); Serial.println(x&&y, BIN); Serial.println(x&y, BIN); void loop() { // put your main code here, to run repeatedly: 10 110 1 10 28

실습 : Arduino Operator 29 소스코드및컴파일 (IDE) 소스코드 ( 스케치 : C 언어 ) 실행파일 컴파일 ( 문법과의존성확인 ) ( 오류발생시디버깅 ) 아두이노보드에업로드 전처리기 (preprocess): 주석제거, define 치환등 컴파일러 (compiler): 소스코드를 assembly file 로변환어셈블러 (Linker): assembly file 을 object file 로변환 링커 (Linker): object file ( 참조하는함수, 라이브러리포함 ) 을연결하여실행파일 (exe) 파일생성 30

아두이노구성및동작 CPU 입력장치 ( 센서 ) ALU Control unit 출력장치 (LED/LCD/ 스피커 / 모터등 ) Register bus Memory Main memory Bootloader Bootloader: 컴파일된코드를읽어들이는펌웨어 Main memory: 컴파일된코드및데이터저장 Bus: CPU 와메모리간의데이터가전송되는통로 CPU(central processing unit) Register: 명령어, 데이터저장을위한임시의작은메모리 Control unit: 명령어를읽고해석 (Decode) ALU(arithmetic logic unit): 산술 / 논리연산수행 (execution) 31 if else ( 조건문 ) Blink 예제 : 깜빡이는시간을 50 us 씩줄여나가다가 0 us 이하가되면다시처음으로반복 if ( 조건 ) { 참일때수행할동작 ; else { 거짓일때수행할동작 ; 비교연산자 연산자 의미 a == b a와 b는같다. a < b a는 b보다작다. a > b a는 b보다크다. a <= b a 는 b 와같거나작다. a >= b a 는 b 와같거나크다. a!= b a 와 b 는다르다. 32

switch ( 조건문 ) 다음코드를실행하면어떠한결과가나올지생각해보시오. 자신의예상이맞는지확인해보시오. void setup() { Serial.begin(9600); void loop() { char ch = Serial.read(); switch (ch) { case 'a': Serial.print('A'); break; case 'b': Serial.print('B'); break; switch ( 조건 ) { case 값 1: 동작 1. break; case 값 2: 동작 2. Break;.. default: default 동작 break; Serial.read(): 시리얼모니터에서데이터읽기 ( 문자 ) 33 for 문 다음코드를실행하면어떠한결과가나올지생각해보시오. 자신의예상이맞는지확인해보시오. void setup() { Serial.begin(9600); for(int i=1;i<5;i++){ Serial.println(i); delay(500); for(initialization; conditional test; iteration) { 조건을만족하는동안동일한 task 를반복함 void loop() { 34

for 문 : 실습 Blink 예제 : 1 초 ON, 1 초 OFF 를 10 번하고종료 Setup 함수 : 한번실행 35 실습 : for 문 1 부터 10 까지의합을시리얼모니터에출력 int sum = 0; void setup() { Serial.begin(9600); for(int i=1;i<=10;i++){ sum +=i; Serial.print("1+2+...+10="); Serial.print(sum); void loop() { 36

함수 1 예제 : 화씨를섭씨로바꾸어시리얼모니터에표시 (0 도에서 100 도까지 10 도간격으로 ) c= 5/9*(f-32) void setup() { Serial.begin(9600); int f; float c; for(f=0;f<=100;f+=10){ c= 5.0/9.0*(f-32.0); Serial.print(f); Serial.print(" F = "); Serial.print(c); Serial.println(" C"); void loop() { 37 함수 2 함수 : 특정한기능을하는코드를따로빼내어묶어놓은것 라이브러리함수다른프로그래머에의해구현된함수 사용자함수사용자가새로정의해서사용하는함수 함수선언 데이터형함수명 ( 매개변수 ) { 처리부분 int ex4(int a){ return 2+a; 함수사용 int a; a = ex4(3); //a=5 38

함수 3 회색부분안에들어갈함수를코딩해보시오. void setup() { Serial.begin(9600); int f; float c; for(f=0;f<=100;f+=10){ c= f_to_c(f); Serial.print(f); Serial.print(" F = "); Serial.print(c); Serial.println(" C"); void loop() { float f_to_c(int temp_f){ float temp_c = 5.0/9.0*(temp_F-32.0); return temp_c; 함수 : 반복적으로사용되는처리문을함수로정의하여사용 내장함수 ( 시스템함수 ) 외부함수 ( 헤더파일에서불러옴 ) 사용자정의함수 ( 사용자가정의하여사용 ) 데이터타입함수명 ( 매개변수 ) { 처리 매개변수 : 함수로전달되는값 ( 입력 ) 반환값 : 입력값을이용하여계산된출력값 반환값이없는경우데이터타입은 void가됨 ( 절차함수 ) 39 실습 (blinkrate) Blink rate (1 에서 9 사이의숫자 ) 를시리얼모니터에서입력받아서 LED blinking. (7 을입력하면 blink rate = 700 msec) const int LED = 13; int blinkrate = 0; void setup() { Serial.begin(9600); pinmode(led, OUTPUT); Serial.println("Enter the blink rate in x100 ms"); void blink() { digitalwrite(led, HIGH); delay(blinkrate); digitalwrite(led, LOW); delay(blinkrate); Serial.available(): 시리얼모니터에서입력문자가있는지확인 If(Serial.available()) { 문자입력이있으면숫자로변경 char ch = Serial.read(); blinkrate = (ch - '0'); blinkrate *= 100; void loop() { if(serial.available()){ // check to see if at least one character is available char ch = Serial.read(); if(isdigit(ch)) // is this an ascii digit between 0 and 9? { blinkrate = (ch - '0'); //ASCII value converted to numeric value blinkrate *= 100;// 100 msec times recieved digit Serial.print("Blink Rate = "); Serial.print(blinkRate); Serial.println(" msec"); else Serial.println("Enter the number between 0 and 9 only."); blink(); 40

아두이노사용부품 : 입출력소자 입력소자 조도센서온도센서초음파센서 출력소자 스위치 4 4 키패드 RFID DC 모터 LED 피에조부저 LCD 서보모터 7 세그먼트 8 8 도트매트릭스 41 아두이노사용부품 : Breadboard 납땜없이소자들을연결할수있도록하는도구 1 2 부품연결 그라운드 (0V) 전원 (ex:vdd) 선으로표시된구멍들은내부적으로연결되어있음 1 과 2 는연결되어있지않음 42

아두이노사용부품 : 저항 전류의흐름을방해하여전류와전압을조절하는소자 저항읽는법 5밴드예시 521Ω 저항은 5 ( 초록색 ), 2 ( 빨간색 ), 1 ( 갈색 ) 에검정색인승수 0을곱해서계산오차 ±1%( 갈색 ) 4밴드예시 82kΩ 저항은 8 ( 회색 ), 2 ( 빨간색 ) 에주황색인승수 3을곱해서계산오차 ±5%( 금색 ) 43