KEMBAR78
Arduino Basic Programming | PPT
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); 
} 
}

Arduino Basic Programming

  • 1.
  • 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); } }