아두이노 프로그램에서 변수는 자주 사용하게 되는데 Blink 예제를 이용해서 변수를 알아보자.
변수
변수는 어떤 값을 기억하는 것이라고 생각하면 되는데 데이터형에 따라서 기억할 수 있는 내용이 다르다.
아두이노 데이터형
형 | 용량 | 내용 | 값 |
boolean | 1바이트 | 참,거짓 | true(=1) 또는 false(=0) |
char | 1바이트 | 문자(아스키코드) | -128 ~ 128 |
byte | 1바이트 | 바이트 | 0 ~255 |
int | 2바이트 | 정수 | -32,768 ~ 32,767 |
unsigned int | 2바이트 | 부호가 없는 정수 | 0 ~ 65,536 |
long | 4바이트 | long 정수 | -2,147,483,648 ~ 2,147,483,647 |
unsigned long | 4바이트 | 부호가 없는 long 정수 | 0 ~ 4,294,967,295 |
float | 4바이트 | 실수 | -3.4028235E+38 ~ 3.4028235E+38 |
double | 4바이트 | 실수(float와 같음) |
여기서 하나를 더 추가하자면 문자열인데, 문자열은 문자 여러 개를 의미하고 큰따옴표("")로 표시한다. 1바이트 문자와는 다르게 구별해서 사용하며 문자는 작은따옴표('')로 표시한다.
문자 : 'x' , 'y'
문자열 : "string" , "val"
스케치를 보다보면 아래와 같이 다르게 표시할 때도 있다.
unit8_t <= byte
unit16_t <= unsigned int
unit32_t <= unsigned long
Blink 예제에서 변수 추가하기
원래 Blink 예제에서 주석 들을 지우고 남긴 코드이다.
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
여기에서 LED 핀을 기억하는 변수 하나와 대기함수(delay) 시간을 기억하는 M 변수를 하나를 만들어보자.
둘 다 숫자형이므로 int 를 앞에 쓰고 그 뒤에는 변수 이름을 쓴다. 그리고 변수에 저장할 값을 = 뒤에 입력한다.
변수 선언(만들기)
데이터형 변수이름 = 초기값(처음 값);
ex) int name = 0;
그리고 LED 변수에는 13을, M 변수에는 1000을 저장하고 각각 맞는 위치에 변수 값을 넣으면 아래와 같다.
int LED = 13;
int m =1000;
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, HIGH);
delay(m);
digitalWrite(LED, LOW);
delay(m);
}
맨 위에서 변수를 선언하면 그 아래에서 변수 이름을 쓰면 변수에 저장된 값이 대입된다고 보면 된다.
즉, pinMode(LED, OUTPUT) 는 pinMode(13, OUTPUT) 와 같은 의미이다.
전처리기로 변수 선언하기
아두이노에서는 #define을 사용하면 변수를 선언할 수 있다. 여기서 전처리기란 소스 코드를 컴파일하기 전에 먼저 수행되는 걸 의미하는데 헤더 파일 추가나 문자열을 치환할 계산식 등을 현재 열려 있는 소스코드에 삽입하는 역할을 한다.
전처리기 명령 중 자주 사용하는 것은 다음과 같다.
#include <헤더파일명>
#define 문자열 계산식, 숫자, 문자열
#import
# 조건부 컴파일
#define을 사용해서 변수를 선언해서 코드를 수정하면 아래와 같다. 여기서 연산자(=)와 세미콜론(;)은 사용하지 않는다. 전처리기를 사용해서 변수를 선언할 때는 보통 대문자로 쓴다.
#define LED 13
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1000);
}
'아두이노' 카테고리의 다른 글
아두이노 입력 이해하기 (0) | 2020.06.09 |
---|---|
아두이노 키워드와 연산자 (0) | 2020.06.05 |
Blink 예제로 배우는 아두이노 기본 코드 (0) | 2020.05.31 |
아두이노를 시작할 때 알아두면 좋은 점 (0) | 2020.05.27 |
아두이노 기본 준비하기 (0) | 2020.05.24 |