SlideShare a Scribd company logo
1 of 14
ARDUINO 
기초프로그래밍
contents 
1. 아두이노 (ARDUINO) 
2. 전자회로 
3. 아두이노 ARDUINO 
함수 
4. 스위치로 DC 모터 제어
1. 아두이노(ARDUINO) 
 Arduino( 아두이노 ) 는 오픈소스 기반의 피지컬 
컴퓨터 플래폼 
하드웨어 소프트웨어 
Arduino Uno 
+ 
Arduino IDE
1. 아두이노(ARDUINO) - 하드웨어 
 Arduino 
Uno 
마이크로 컨트롤러 ATmega328 
사용 전압 5V 
입력 전원 7 ~ 20V 
디지털 입력 / 출력 14 개 
아날로그 입력 6 개 
입력 / 출력 전류 40mA 
3.3V 출력 전류 50mA 
SRAM 2KB 
EEPROM 1KB 
클럭 속도 16MHz
1. 아두이노(ARDUINO) - 하드웨어 
 Arduino 
Uno 
디지털 입/출력 핀 
아날로그 입력 핀 
USB 포트 
전원 핀 
아날로그 출력 핀 ~표시
1. 아두이노(ARDUINO) - 소프트웨어 
 Arduino IDE – 다운로드 
http://arduino.cc/en/Main/Software 
컴파일 업로드 
전역번수 
최초 한번 실행 
무한 반복 
업로드 setup() loop()
2. 전자회로 – 브레드 보드 & LED 
+, 5V 
-, GND 
+ - 
브레드 보드 
LED
3. Arduino 함수 
Arduino 
입력 
출력 
디지털 입력 
아날로그 입력 
디지털 출력 
아날로그 출력 
시리얼통신
3. Arduino 함수 
• pinMode(pin, mode) – 핀 사용 전 핀 모드 설정 
pin : 핀 번호 
mode : INPUT, OUTPUT, INPUT_PULLUP 
• delay(ms) – 지정된 시간동안 마이크로프로세서 동작 
멈춤ms : 밀리세컨드 
디지털 출력 
• digitalWrite(pin, value) – 설정된 핀에 디지털 값 출력 
pin : 핀 번호 
value : HIGH, LOW
3. Arduino 함수 
디지털 입력 
• digitalRead(pin) – 설정된 핀에 디지털 값을 읽음 
pin : 핀 번호 
아날로그 입력 
• analogRead(pin) – 설정된 핀에 0 ~ 1023 값을 읽음 
pin : 핀 번호 
아날로그 출력 
• analogWrite(pin, val) – 출력핀에 값을 출력 
pin : 핀 번호 
val : 출력값 0 ~ 255
3. Arduino 함수 
시리얼통신 
• Serial.begin(speed) 
speed : 시리얼 통신속도 설정 
• Serial.available() – 시리얼 통신 수신버퍼에서 
읽을 수 있는 바이트 수 
• Serial.read() – 수신버퍼의 데이터를 읽어 옴 
• Serial.print(val) – 데이터를 문자열로 전송
3. Arduino 함수 
기타함수 
• Millis() 함수 – 프로그램이 시작된 시간부터 밀리 
단위로 카운터 된 값을 반환 
• MsTimer2::set(unsigned long ms, void(*f)()) – 
인터럽트 설정 
ms : 인터럽트 시간 , 밀리 초 
void(*f)() : 인터럽트 분기 함수명 
• MsTimer2::start() – 인터럽트 시작 
• MsTimer2::stop() – 인터럽트 정지 
※ MsTimer2 는 외부라이브러리 – 
http://arduino.cc/en/Reference/Libraries 다운로드 후 
C:Program FilesArduinoarduino-1.0.5-r2libraries 에 폴더 복사
4. 스위치로 DC 모터 제어하기 - 회로
4. 스위치로 DC 모터 제어하기 - 소스 
#define CW HIGH 
#define CCW LOW 
#define SPEED 100 // 0 ~ 255사이의 값 
int swBuf; 
void setup(){ pinMode(9, OUTPUT); 
pinMode(8, OUTPUT); 
pinMode(7, OUTPUT); 
pinMode(2, INPUT_PULLUP); 
} 
void loop(){ 
setMotor(SPEED, CW); 
} 
void setMotor(int motorSpeed, boolean motorDir){ 
if(digitalRead(2) == LOW && swBuf == 0){ 
swBuf = 1; 
}else if(digitalRead(2) == HIGH && swBuf == 1){ 
swBuf = 0; 
analogWrite(9, motorSpeed); 
digitalWrite(8, motorDir); 
digitalWrite(7, !motorDir); 
} 
}

More Related Content

What's hot

[2] 아두이노 활용 실습
[2] 아두이노 활용 실습[2] 아두이노 활용 실습
[2] 아두이노 활용 실습Chiwon Song
 
창조경제 IoT 해커톤 교육 4일차
창조경제 IoT 해커톤 교육 4일차창조경제 IoT 해커톤 교육 4일차
창조경제 IoT 해커톤 교육 4일차유명환 FunFun Yoo
 
#아두이노 초급연수
#아두이노 초급연수#아두이노 초급연수
#아두이노 초급연수gongdigi24
 
창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료유명환 FunFun Yoo
 
코딩클럽 왕초보 아두이노따라잡기 1탄
코딩클럽 왕초보 아두이노따라잡기 1탄코딩클럽 왕초보 아두이노따라잡기 1탄
코딩클럽 왕초보 아두이노따라잡기 1탄Eunhee Ha
 
TestBCD2016-2(Answer)
TestBCD2016-2(Answer)TestBCD2016-2(Answer)
TestBCD2016-2(Answer)Yong Heui Cho
 
[실습편] 하드웨어에 생명을 주는 아두이노
[실습편] 하드웨어에 생명을 주는 아두이노[실습편] 하드웨어에 생명을 주는 아두이노
[실습편] 하드웨어에 생명을 주는 아두이노Chiwon Song
 
Aperture : 8. 스위치를 이용한 led 제어하기
Aperture : 8. 스위치를 이용한 led 제어하기Aperture : 8. 스위치를 이용한 led 제어하기
Aperture : 8. 스위치를 이용한 led 제어하기Hyemin Song
 
02. led switch
02. led switch02. led switch
02. led switch성호 정
 
3D 프린터 동작원리와 조립
3D 프린터 동작원리와 조립3D 프린터 동작원리와 조립
3D 프린터 동작원리와 조립Chiwon Song
 
광운대[바람] 1.vhdl intro
광운대[바람] 1.vhdl intro광운대[바람] 1.vhdl intro
광운대[바람] 1.vhdl introNAVER D2
 
메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)JongyoonWon1
 
DIY의 끝판왕 3D 프린터
DIY의 끝판왕 3D 프린터DIY의 끝판왕 3D 프린터
DIY의 끝판왕 3D 프린터Chiwon Song
 
Arduino 특강 강태욱
Arduino 특강   강태욱Arduino 특강   강태욱
Arduino 특강 강태욱Tae wook kang
 

What's hot (20)

[2] 아두이노 활용 실습
[2] 아두이노 활용 실습[2] 아두이노 활용 실습
[2] 아두이노 활용 실습
 
창조경제 IoT 해커톤 교육 4일차
창조경제 IoT 해커톤 교육 4일차창조경제 IoT 해커톤 교육 4일차
창조경제 IoT 해커톤 교육 4일차
 
#아두이노 초급연수
#아두이노 초급연수#아두이노 초급연수
#아두이노 초급연수
 
창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료창조경제 IoT 해커톤 교육 2일차 교육 자료
창조경제 IoT 해커톤 교육 2일차 교육 자료
 
코딩클럽 왕초보 아두이노따라잡기 1탄
코딩클럽 왕초보 아두이노따라잡기 1탄코딩클럽 왕초보 아두이노따라잡기 1탄
코딩클럽 왕초보 아두이노따라잡기 1탄
 
IoT 해커톤 교육 3일차
IoT 해커톤 교육 3일차IoT 해커톤 교육 3일차
IoT 해커톤 교육 3일차
 
TestBCD2016-2(Answer)
TestBCD2016-2(Answer)TestBCD2016-2(Answer)
TestBCD2016-2(Answer)
 
[실습편] 하드웨어에 생명을 주는 아두이노
[실습편] 하드웨어에 생명을 주는 아두이노[실습편] 하드웨어에 생명을 주는 아두이노
[실습편] 하드웨어에 생명을 주는 아두이노
 
Aperture : 8. 스위치를 이용한 led 제어하기
Aperture : 8. 스위치를 이용한 led 제어하기Aperture : 8. 스위치를 이용한 led 제어하기
Aperture : 8. 스위치를 이용한 led 제어하기
 
02. led switch
02. led switch02. led switch
02. led switch
 
3D 프린터 동작원리와 조립
3D 프린터 동작원리와 조립3D 프린터 동작원리와 조립
3D 프린터 동작원리와 조립
 
광운대[바람] 1.vhdl intro
광운대[바람] 1.vhdl intro광운대[바람] 1.vhdl intro
광운대[바람] 1.vhdl intro
 
메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)메이커 페어 서울 2018 - 측우자격루(개발자용)
메이커 페어 서울 2018 - 측우자격루(개발자용)
 
Avr lecture5
Avr lecture5Avr lecture5
Avr lecture5
 
Avr lecture2
Avr lecture2Avr lecture2
Avr lecture2
 
Avr lecture3
Avr lecture3Avr lecture3
Avr lecture3
 
DIY의 끝판왕 3D 프린터
DIY의 끝판왕 3D 프린터DIY의 끝판왕 3D 프린터
DIY의 끝판왕 3D 프린터
 
Arduino 특강 강태욱
Arduino 특강   강태욱Arduino 특강   강태욱
Arduino 특강 강태욱
 
Avr lecture1
Avr lecture1Avr lecture1
Avr lecture1
 
Make: 센서
Make: 센서Make: 센서
Make: 센서
 

Viewers also liked

아두이노 배워보기 - 1강
아두이노 배워보기 - 1강아두이노 배워보기 - 1강
아두이노 배워보기 - 1강Junseong Kim
 
Arduino by Todd Holoubeck
Arduino by Todd HoloubeckArduino by Todd Holoubeck
Arduino by Todd Holoubecksookmyungvisual
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to ArduinoSeokjun Kim
 
모바일 스마트 홈 구축
모바일 스마트 홈 구축모바일 스마트 홈 구축
모바일 스마트 홈 구축Devgear
 
Arduino UNO로 키보드 만들기
Arduino UNO로 키보드 만들기Arduino UNO로 키보드 만들기
Arduino UNO로 키보드 만들기Chae Yeon Cho
 
Arduino project by Skyler&Rachael
Arduino project by Skyler&RachaelArduino project by Skyler&Rachael
Arduino project by Skyler&RachaelSkyler Shin
 
소프트웨어 교육 실습
소프트웨어 교육 실습소프트웨어 교육 실습
소프트웨어 교육 실습Jaehwi Alice Kim
 
Introducing hikebike.
Introducing hikebike.Introducing hikebike.
Introducing hikebike.Seokjun Kim
 
Evaluating the Arc-Flash Protection Benefits of IEC 61850 Communication
Evaluating the Arc-Flash Protection Benefits of IEC 61850 CommunicationEvaluating the Arc-Flash Protection Benefits of IEC 61850 Communication
Evaluating the Arc-Flash Protection Benefits of IEC 61850 CommunicationSchneider Electric
 
홍익경영혁신2015 B331038 과제제출
홍익경영혁신2015 B331038 과제제출홍익경영혁신2015 B331038 과제제출
홍익경영혁신2015 B331038 과제제출mina0000
 
Playing with arduino open source h/w for mobile-centric services
Playing with arduino open source h/w for mobile-centric servicesPlaying with arduino open source h/w for mobile-centric services
Playing with arduino open source h/w for mobile-centric servicesJunhyuk Lee
 
Arduino+Matlab Project - Talking Window Blind
Arduino+Matlab Project - Talking Window BlindArduino+Matlab Project - Talking Window Blind
Arduino+Matlab Project - Talking Window BlindByoungjo Choi
 
[3] 프로세싱과 아두이노
[3] 프로세싱과 아두이노[3] 프로세싱과 아두이노
[3] 프로세싱과 아두이노Chiwon Song
 
아두이노 5강 maker_school
아두이노 5강 maker_school아두이노 5강 maker_school
아두이노 5강 maker_schoolJosh Park
 
아두이노 4강 maker_school
아두이노 4강 maker_school아두이노 4강 maker_school
아두이노 4강 maker_schoolJosh Park
 
신간안내 말하고 듣고 대화하는 Physical computing 아두이노
신간안내 말하고 듣고 대화하는 Physical computing 아두이노신간안내 말하고 듣고 대화하는 Physical computing 아두이노
신간안내 말하고 듣고 대화하는 Physical computing 아두이노sookmyungvisual
 
Arduino+Matlab Project - Automatic Rotating Door
Arduino+Matlab Project - Automatic Rotating DoorArduino+Matlab Project - Automatic Rotating Door
Arduino+Matlab Project - Automatic Rotating DoorByoungjo Choi
 
아두이노 1강 maker_school
아두이노 1강 maker_school아두이노 1강 maker_school
아두이노 1강 maker_schoolJosh Park
 
초중고 교사들을 위한 학교 메이커교육 세미나 - 학교에서의 메이커 운동 (과천국립과학관 조춘익 연구사)
초중고 교사들을 위한 학교 메이커교육 세미나 - 학교에서의 메이커 운동 (과천국립과학관 조춘익 연구사)초중고 교사들을 위한 학교 메이커교육 세미나 - 학교에서의 메이커 운동 (과천국립과학관 조춘익 연구사)
초중고 교사들을 위한 학교 메이커교육 세미나 - 학교에서의 메이커 운동 (과천국립과학관 조춘익 연구사)brainerymakers
 

Viewers also liked (20)

아두이노 배워보기 - 1강
아두이노 배워보기 - 1강아두이노 배워보기 - 1강
아두이노 배워보기 - 1강
 
Arduino by Todd Holoubeck
Arduino by Todd HoloubeckArduino by Todd Holoubeck
Arduino by Todd Holoubeck
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
모바일 스마트 홈 구축
모바일 스마트 홈 구축모바일 스마트 홈 구축
모바일 스마트 홈 구축
 
Arduino UNO로 키보드 만들기
Arduino UNO로 키보드 만들기Arduino UNO로 키보드 만들기
Arduino UNO로 키보드 만들기
 
Arduino project by Skyler&Rachael
Arduino project by Skyler&RachaelArduino project by Skyler&Rachael
Arduino project by Skyler&Rachael
 
소프트웨어 교육 실습
소프트웨어 교육 실습소프트웨어 교육 실습
소프트웨어 교육 실습
 
Introducing hikebike.
Introducing hikebike.Introducing hikebike.
Introducing hikebike.
 
Evaluating the Arc-Flash Protection Benefits of IEC 61850 Communication
Evaluating the Arc-Flash Protection Benefits of IEC 61850 CommunicationEvaluating the Arc-Flash Protection Benefits of IEC 61850 Communication
Evaluating the Arc-Flash Protection Benefits of IEC 61850 Communication
 
홍익경영혁신2015 B331038 과제제출
홍익경영혁신2015 B331038 과제제출홍익경영혁신2015 B331038 과제제출
홍익경영혁신2015 B331038 과제제출
 
BNB-GUIDE-
BNB-GUIDE-BNB-GUIDE-
BNB-GUIDE-
 
Playing with arduino open source h/w for mobile-centric services
Playing with arduino open source h/w for mobile-centric servicesPlaying with arduino open source h/w for mobile-centric services
Playing with arduino open source h/w for mobile-centric services
 
Arduino+Matlab Project - Talking Window Blind
Arduino+Matlab Project - Talking Window BlindArduino+Matlab Project - Talking Window Blind
Arduino+Matlab Project - Talking Window Blind
 
[3] 프로세싱과 아두이노
[3] 프로세싱과 아두이노[3] 프로세싱과 아두이노
[3] 프로세싱과 아두이노
 
아두이노 5강 maker_school
아두이노 5강 maker_school아두이노 5강 maker_school
아두이노 5강 maker_school
 
아두이노 4강 maker_school
아두이노 4강 maker_school아두이노 4강 maker_school
아두이노 4강 maker_school
 
신간안내 말하고 듣고 대화하는 Physical computing 아두이노
신간안내 말하고 듣고 대화하는 Physical computing 아두이노신간안내 말하고 듣고 대화하는 Physical computing 아두이노
신간안내 말하고 듣고 대화하는 Physical computing 아두이노
 
Arduino+Matlab Project - Automatic Rotating Door
Arduino+Matlab Project - Automatic Rotating DoorArduino+Matlab Project - Automatic Rotating Door
Arduino+Matlab Project - Automatic Rotating Door
 
아두이노 1강 maker_school
아두이노 1강 maker_school아두이노 1강 maker_school
아두이노 1강 maker_school
 
초중고 교사들을 위한 학교 메이커교육 세미나 - 학교에서의 메이커 운동 (과천국립과학관 조춘익 연구사)
초중고 교사들을 위한 학교 메이커교육 세미나 - 학교에서의 메이커 운동 (과천국립과학관 조춘익 연구사)초중고 교사들을 위한 학교 메이커교육 세미나 - 학교에서의 메이커 운동 (과천국립과학관 조춘익 연구사)
초중고 교사들을 위한 학교 메이커교육 세미나 - 학교에서의 메이커 운동 (과천국립과학관 조춘익 연구사)
 

Similar to Arduino Basic Programming

학교장리더십(피지컬컴퓨팅)
학교장리더십(피지컬컴퓨팅)학교장리더십(피지컬컴퓨팅)
학교장리더십(피지컬컴퓨팅)gongdigi24
 
[엄마정치 메이커팀] 두번째 모임_2018_01_27
[엄마정치 메이커팀] 두번째 모임_2018_01_27[엄마정치 메이커팀] 두번째 모임_2018_01_27
[엄마정치 메이커팀] 두번째 모임_2018_01_27yuna cho
 
NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기TaeYoung Kim
 
Test-SDIC2018-2(answer)
Test-SDIC2018-2(answer)Test-SDIC2018-2(answer)
Test-SDIC2018-2(answer)Yong Heui Cho
 
TestSDIC2015-1(Answer)
TestSDIC2015-1(Answer)TestSDIC2015-1(Answer)
TestSDIC2015-1(Answer)Yong Heui Cho
 
61262128 when-arduino-met-node-js
61262128 when-arduino-met-node-js61262128 when-arduino-met-node-js
61262128 when-arduino-met-node-jsfrendskr
 
NodeMcu로 시작하는 사물인터넷 DIY
NodeMcu로 시작하는 사물인터넷 DIYNodeMcu로 시작하는 사물인터넷 DIY
NodeMcu로 시작하는 사물인터넷 DIYHakyong Kim
 
소음 정도에 따른 이어폰 자동 음량 조절
소음 정도에 따른 이어폰 자동 음량 조절소음 정도에 따른 이어폰 자동 음량 조절
소음 정도에 따른 이어폰 자동 음량 조절Yeonhee Lee
 
라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드Circulus
 
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptxRinandarMuslimin
 
아두이노로 배우는 피지컬 컴퓨팅(중급)
아두이노로 배우는 피지컬 컴퓨팅(중급)아두이노로 배우는 피지컬 컴퓨팅(중급)
아두이노로 배우는 피지컬 컴퓨팅(중급)gongdigi24
 
한글시계웍샵_ SW
한글시계웍샵_ SW한글시계웍샵_ SW
한글시계웍샵_ SW영광 송
 
Maze통신교육 sci
Maze통신교육   sciMaze통신교육   sci
Maze통신교육 scigeonhee kim
 
사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본Dong Hwa Jeong
 
Lan3 강향리 2013 겨울방학 세미나
Lan3 강향리 2013 겨울방학 세미나Lan3 강향리 2013 겨울방학 세미나
Lan3 강향리 2013 겨울방학 세미나Hyangri Kang
 

Similar to Arduino Basic Programming (18)

학교장리더십(피지컬컴퓨팅)
학교장리더십(피지컬컴퓨팅)학교장리더십(피지컬컴퓨팅)
학교장리더십(피지컬컴퓨팅)
 
[엄마정치 메이커팀] 두번째 모임_2018_01_27
[엄마정치 메이커팀] 두번째 모임_2018_01_27[엄마정치 메이커팀] 두번째 모임_2018_01_27
[엄마정치 메이커팀] 두번째 모임_2018_01_27
 
NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기NodeJs로 디바이스 통신하기
NodeJs로 디바이스 통신하기
 
Zimiidle
ZimiidleZimiidle
Zimiidle
 
Test-SDIC2018-2(answer)
Test-SDIC2018-2(answer)Test-SDIC2018-2(answer)
Test-SDIC2018-2(answer)
 
TestSDIC2015-1(Answer)
TestSDIC2015-1(Answer)TestSDIC2015-1(Answer)
TestSDIC2015-1(Answer)
 
61262128 when-arduino-met-node-js
61262128 when-arduino-met-node-js61262128 when-arduino-met-node-js
61262128 when-arduino-met-node-js
 
NodeMcu로 시작하는 사물인터넷 DIY
NodeMcu로 시작하는 사물인터넷 DIYNodeMcu로 시작하는 사물인터넷 DIY
NodeMcu로 시작하는 사물인터넷 DIY
 
소음 정도에 따른 이어폰 자동 음량 조절
소음 정도에 따른 이어폰 자동 음량 조절소음 정도에 따른 이어폰 자동 음량 조절
소음 정도에 따른 이어폰 자동 음량 조절
 
라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드
 
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
2020.07.14 PWJ SunTechI IoT 소개자료 (최종) (2).pptx
 
USB-AVRISP
USB-AVRISPUSB-AVRISP
USB-AVRISP
 
아두이노로 배우는 피지컬 컴퓨팅(중급)
아두이노로 배우는 피지컬 컴퓨팅(중급)아두이노로 배우는 피지컬 컴퓨팅(중급)
아두이노로 배우는 피지컬 컴퓨팅(중급)
 
한글시계웍샵_ SW
한글시계웍샵_ SW한글시계웍샵_ SW
한글시계웍샵_ SW
 
Maze통신교육 sci
Maze통신교육   sciMaze통신교육   sci
Maze통신교육 sci
 
사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본사물인터넷 노트4_라즈베리파이기본
사물인터넷 노트4_라즈베리파이기본
 
arduino.ppt
arduino.pptarduino.ppt
arduino.ppt
 
Lan3 강향리 2013 겨울방학 세미나
Lan3 강향리 2013 겨울방학 세미나Lan3 강향리 2013 겨울방학 세미나
Lan3 강향리 2013 겨울방학 세미나
 

Arduino Basic Programming

  • 2. contents 1. 아두이노 (ARDUINO) 2. 전자회로 3. 아두이노 ARDUINO 함수 4. 스위치로 DC 모터 제어
  • 3. 1. 아두이노(ARDUINO)  Arduino( 아두이노 ) 는 오픈소스 기반의 피지컬 컴퓨터 플래폼 하드웨어 소프트웨어 Arduino Uno + Arduino IDE
  • 4. 1. 아두이노(ARDUINO) - 하드웨어  Arduino Uno 마이크로 컨트롤러 ATmega328 사용 전압 5V 입력 전원 7 ~ 20V 디지털 입력 / 출력 14 개 아날로그 입력 6 개 입력 / 출력 전류 40mA 3.3V 출력 전류 50mA SRAM 2KB EEPROM 1KB 클럭 속도 16MHz
  • 5. 1. 아두이노(ARDUINO) - 하드웨어  Arduino Uno 디지털 입/출력 핀 아날로그 입력 핀 USB 포트 전원 핀 아날로그 출력 핀 ~표시
  • 6. 1. 아두이노(ARDUINO) - 소프트웨어  Arduino IDE – 다운로드 http://arduino.cc/en/Main/Software 컴파일 업로드 전역번수 최초 한번 실행 무한 반복 업로드 setup() loop()
  • 7. 2. 전자회로 – 브레드 보드 & LED +, 5V -, GND + - 브레드 보드 LED
  • 8. 3. Arduino 함수 Arduino 입력 출력 디지털 입력 아날로그 입력 디지털 출력 아날로그 출력 시리얼통신
  • 9. 3. Arduino 함수 • pinMode(pin, mode) – 핀 사용 전 핀 모드 설정 pin : 핀 번호 mode : INPUT, OUTPUT, INPUT_PULLUP • delay(ms) – 지정된 시간동안 마이크로프로세서 동작 멈춤ms : 밀리세컨드 디지털 출력 • digitalWrite(pin, value) – 설정된 핀에 디지털 값 출력 pin : 핀 번호 value : HIGH, LOW
  • 10. 3. Arduino 함수 디지털 입력 • digitalRead(pin) – 설정된 핀에 디지털 값을 읽음 pin : 핀 번호 아날로그 입력 • analogRead(pin) – 설정된 핀에 0 ~ 1023 값을 읽음 pin : 핀 번호 아날로그 출력 • analogWrite(pin, val) – 출력핀에 값을 출력 pin : 핀 번호 val : 출력값 0 ~ 255
  • 11. 3. Arduino 함수 시리얼통신 • Serial.begin(speed) speed : 시리얼 통신속도 설정 • Serial.available() – 시리얼 통신 수신버퍼에서 읽을 수 있는 바이트 수 • Serial.read() – 수신버퍼의 데이터를 읽어 옴 • Serial.print(val) – 데이터를 문자열로 전송
  • 12. 3. Arduino 함수 기타함수 • Millis() 함수 – 프로그램이 시작된 시간부터 밀리 단위로 카운터 된 값을 반환 • MsTimer2::set(unsigned long ms, void(*f)()) – 인터럽트 설정 ms : 인터럽트 시간 , 밀리 초 void(*f)() : 인터럽트 분기 함수명 • MsTimer2::start() – 인터럽트 시작 • MsTimer2::stop() – 인터럽트 정지 ※ MsTimer2 는 외부라이브러리 – http://arduino.cc/en/Reference/Libraries 다운로드 후 C:Program FilesArduinoarduino-1.0.5-r2libraries 에 폴더 복사
  • 13. 4. 스위치로 DC 모터 제어하기 - 회로
  • 14. 4. 스위치로 DC 모터 제어하기 - 소스 #define CW HIGH #define CCW LOW #define SPEED 100 // 0 ~ 255사이의 값 int swBuf; void setup(){ pinMode(9, OUTPUT); pinMode(8, OUTPUT); pinMode(7, OUTPUT); pinMode(2, INPUT_PULLUP); } void loop(){ setMotor(SPEED, CW); } void setMotor(int motorSpeed, boolean motorDir){ if(digitalRead(2) == LOW && swBuf == 0){ swBuf = 1; }else if(digitalRead(2) == HIGH && swBuf == 1){ swBuf = 0; analogWrite(9, motorSpeed); digitalWrite(8, motorDir); digitalWrite(7, !motorDir); } }