본문 바로가기

Contact 日本語 English

【Arduino】 아두이노 커맨드(Arduino command)

 

아두이노 커맨드(Arduino command)

 

추천글 : 【컴퓨터과학】 컴퓨터과학 목차 


 

Arduino preparing

● https://www.arduino.cc/en/Main/Software에서 본인의 pc 사양에 맞는 아두이노 IDE를 다운로드 받길 바랍니다.

 

 

Arduino representation(Model: Arduino Uno & Arduino Mega)

 

출처 : 이미지 클릭

Figure. 1. 아두이노 보드의 특징]

 

출처 : 이미지 클릭

Figure. 2. 아두이노 보드의 형태]

 

 

Arduino library(C언어와 중복되는 부분은 제외했습니다.)

 

□ Data types □

 

 const type - 값이 변하지 않는 자료형(type) 변수를 지정한다.

long - long long int와 유사, 대개 시간을 나타내는 자료형으로 사용한다.

boolean - 1 bit 변수, true or false를 저장

byte - 1 byte 변수, char와 유사

String - 문자열, 선언하거나 값을 입력 시 ··· = " · " 또는 ···String(" · ")을 이용한다. 

 

□ Basics □

 

setup() - Arduino가 시작할 때 최초로 단 한 번 작동한다.

loop() - Arduino 작동 시 계속해서 반복시킬 명령을 제시한다. SerialEvent 등 다른 함수들을 만들면 매 loop 사이에 소스 순서대로 그 함수들이 실행된다. 

delay(ms) - ms (ms) 동안 기다린다.

delayMicroseconds(μs) - μs (μs) 동안 기다린다. 

Serial - Arduino에서 Serial port가 준비가 되면 1을, 그렇지 않으면 0을 출력한다.

Serial.available() - pc에서 serial monitor(Ctrl + Shift + L)로 입력을 주면 그 순간에만 1을 출력하고, 그 외에는 0을 출력한다.

Serial.begin(bits) - pc와 arduino가 n bit만큼 통신을 하도록 초기화하는데, 보통 9600 bits로 한다. setup(){ · }에 둔다.

Serial.end() - Serial 통신을 하지 않도록 하는 함수이다. Serial 통신에 이용되는 DIGITAL 0번, 1번 pin을 일반 pin으로 사용할 수 있게 된다. 

Serial.read() - Serial port로부터 입력되는 값을 나타낸다.

 Serial.parseInt() - Serial port로부터 입력되는 long type 숫자를 나타낸다. 숫자값이 아닌 경우 0을 나타낸다.

 Serial.parseFloat() - Serial port로부터 입력되는 float type 숫자를 나타낸다. 숫자값이 아닌 경우 0을 나타낸다.

Serial.readBytes(buf, len) - Serial port로부터 입력되는, 최대 길이 len의 byte type 문자열 buf의 길이를 나타낸다.

Serial.println(sensorValue or " · ") or Serial.println(sensorValue, exp) - 정수형 혹은 실수형 변수 sensorValue or " · "를 serial monitor(Ctrl + Shift + L)을 통해서 출력한다. 또는 sensorValue를 10진수(DEC)나 16진수(HEX) 등으로 표현(exp)하여 나타낸다. C언어에서 printf처럼 디버깅에 유용하다.

 Serial.println(sensorValue or " · ") or Serial.println(sensorValue, exp) - Serial.println Serial.print와 달리 " · "을 출력한 뒤에 줄넘김 문자('\n' or '\n')를 붙여준다는 차이가 있다. 그 외에는 전부 동일하다.

Serial.write(val), Serial.write(str), or Serial.write(buf, len) - byte 형 val, string 형 str, byte 형 배열(배열의 크기: len) buf를 serial monitor에 출력한다.

pinMode(pin, mode) - DIGITAL (PWM ~) 중 하나의 pin에 대해 mode를 적용한다. mode의 종류는 INPUT, OUTPUT, INPUT_PULLUP가 있다.

 analogRead(pin) - ANALOG IN 중 하나의 pin에 꽂힌 기기의 측정값을 출력한다. Arduino Uno 등과 같이 일반적으로 아날로그 입력값의 범위는 0 V부터 5 V까지로 제한되지만 Arduino Mini와 Arduino Nano에서는 0 V부터 7 V까지이고, Arduino Mega에서는 0 V부터 15 V까지이다. 이렇게 읽은 아날로그 입력값은 아두이노에 내장된 ADC(아날로그 변환 장치, Analog-to-Digital Converter)에 의해 출력은 0에서 1023까지의 정수값으로 변환된다.

 analogReadResolution(bits) - analogRead(pin)으로부터 출력되는 값의 용량(분해능과 관련)을 결정한다. bits에 해당하는 값은 보통 10 (bits)으로 초기설정 되어 있고, 0 (bits)에서 12 (bits)까지의 값을 줄 수 있다.  loop(){ · }에 둔다.

● analogWrite(pin, value) - setup(){ · }에 pinMode(pin, OUTPUT)가 실행돼 있어야 한다. 디지털 핀들의 ON, OFF의 비율에 따라 LED 등의 소자에 평균적으로 가해진 전압을 조절하는 PWM(펄스 폭 변조, Pulse Width Modulation) 방식을 사용한다. 아두이노에서 DIGITAL (PWM ~)로 표시된 11, 10, 9, 6, 5, 3번 핀이  중 하나의 pin에 꽂힌 기기에 대해 value 값과 대응되는 전압을 부과한다. value는 0부터 255까지 가능해서 0 V부터 5 V (또는 3.3 V)까지를 255등분한다.

digitalRead(pin) - setup(){ · }에 pinMode(pin, INPUT(or INPUT_PULLUP))가 실행돼 있어야 한다. 디지털 핀 하나에 꽂힌 도선의 측정값을 나타낸다.

 digitalWrite(pin, HIGH | LOW)setup(){ · }에 pinMode(pin, OUTPUT)가 실행돼 있어야 한다. 디지털 핀 하나에 HIGH(5 V, 3.3 V 보드의 경우 3.3 V) 또는 LOW(0 V)를 부여한다.

millis() - Arduino가 프로그램을 시작한 때부터의 시간 (ms)을 출력한다. 대략 50일 뒤에 오버플로우가 일어난다고 한다.

tone(pin, frequency) or tone(pin, frequency, duration) - DIGITAL (PWN) 중 하나의 pin에 꽂힌 기기에 음이 아닌 정수 frequency의 주파수를 음이 아닌 정수 duration (ms) 동안 낸다.  

noTone(pin) - pin이 특정 주파수의 소리를 내고 있다면 이 작동을 멈춘다.

pitches.h - NOTE_A4와 같은 public int를 저장한다. 헤더이므로 setup(){ · }보다 먼저 시작한다.

map(value, fromLow, fronHigh, toLow, toHigh) - 다음을 출력한다. 섭씨 - 화씨 변환 등에 유용할 것이다. 

 

 

min(x, y) - x와 y 중 크지 않은 값을 출력한다.

max(x, y) - x와 y 중 작지 않은 값을 출력한다.

constrain(x, a, b) - 만일 x가 a보다 작으면 a, a와 b 사이이면 x, b보다 크면 b를 출력한다.

pulseIn(pin, value) or pulseIn(pin, value, timeout) - DIGITAL (PWM ~) 중 하나의 pin으로 들어오는 입력(HIGH, LOW 중 하나)을 읽는다. 만약 valueHIGH이면, pin으로 들어오는 펄스가 HIGH가 될 때까지 기다린 뒤, 펄스가 HIGH에서 LOW로 갈 때까지의 시간을 측정하여 그 값(unsigned long)을 출력한다. valueLOW이면 그 반대로 진행한다. 만약 timeout (ms) 안에 완전한 펄스(HIGH, LOW가 모두 측정되는 펄스)가 도달하지 않으면 0을 출력한다. timeout이 10 ms에서 3 min일 때 안정적으로 기능한다. 

● string.concat(value or " · ") - 문자열 string 뒤에 value 또는 " · "를 붙인다.

 

입력: 2016.03.05 22:47