본문 바로가기

아두이노 IDE/핵심프로그래밍 언어

7. 기본 데이터형 변수

핵심 아두이노 프로그래밍 언어 7. 기본 데이터형 변수


1. 변수란
2. 변수 사용 범위
3. 기본 유형 살펴보기
    int
    unsigned int
    long
    unsigned long
    float
    boolean
    byte
    char




1. 변수란


변수는 프로그래밍의 편의를 위해 숫자 값을 저장하고 이름을 붙이기 위해 만들어졌습니다.

쉽게 이해가 되도록 예제부터 먼저 보겠습니다.



int LED = 9;    //  LED라는 단어에 9라는 숫자를 저장합니다.

void setup() {
    pinMode(LED, OUTPUT);   // LED(9번핀)을 출력으로 설정합니다.
}

void loop() {
    digitalWrite(LED, HIGH);    //  LED(9번핀)에 5V의 전기를 출력합니다.
    delay(1000);                       //  1초 동안 기다립니다.
    digitalWrite(LED, LOW);    //  LED(9번핀)을 0V로 만듭니다.
    delay(1000);                      //  1초 동안 기다립니다.
}



int는 아두이노에서 가장 많이 쓰이는 변수 설정 명령어입니다.

위의 스케치는 int를 사용해서 LED라는 단어에 숫자 9를 저장한 후에, 숫자 9 대신 LED라는 단어로 프로그래밍을 한 것입니다.

물론 변수를 LED로 지정하지 않고, LED가 있는 곳에 모두 숫자 9를 넣어도 똑같은 결과를 얻을 수 있습니다.

하지만 이 스케치의 경우, LED를 변수로 지정함으로써 2가지의 편의를 얻을 수 있습니다.

첫째는 사용하려는 핀 번호가 변경될 경우 코드 수정이 훨씬 쉬워집니다.

예를 들어 LED를 9번 핀이 아닌 11번 핀으로 바꿀 때, 변수를 지정하지 않으면 일일이 9를 11로 수정해야하지만, 변수를 지정하면 지정된 값만 11로 변경하면 됩니다.

쉽게 말해 int LED = 9; 라고 돼 있는 것을 int LED = 11; 이라고만 바꾸면 된다는 말입니다.

이것은 프로그래밍 작업이 복잡해질수록 더욱 진가를 발휘하게 되겠지요.

둘째는 지정된 변수의 이름으로 개발자의 프로그래밍 의도를 좀 더 명확하고 쉽게 알 수 있게 된다는 것입니다.

예를 들어 LED를 연결하고자하는 핀 번호는 LED로, 버튼으로 사용하고자하는 핀 번호는 Button으로 변수 선언을 하면, 어떤 핀을 무엇으로 사용할지 분명하게 파악할 수 있게 됩니다.



2. 변수 사용 범위


변수를 어디에 지정하는지에 따라 변수의 사용 범위는 달라집니다.

변수 사용 범위는
크게 세 가지로 나눌 수 있습니다.

첫째, 스케치의 가장 앞부분, 즉 void setup() 앞에 변수를 선언하면 해당 변수는 프로그래밍 전체에서 사용할 수 있습니다.

둘째, void loop()와 같은 함수 안에서 변수를 선언하면 해당 변수는 함수 안에서만 사용할 수 있습니다.  

셋째, for 반복문 안에서 변수를 선언하면 해당 변수는 for 반복문 안에서만 사용할 수 있습니다.

예를 보겠습니다.


int a = 0;     //  a로 지정된 변수는 프로그램 전체에서 사용가능합니다.

void setup(){
}

void loop(){
    int b = 0;    //  b로 지정된 변수는 void loop() 안에서만 사용가능합니다.
    for (int i = 0; i < 100; i++){   // i로 지정된 변수는 for 반복문 안에서만 사용가능합니다.
    }
    a = 1;    //  a로 선언된 변수의 값을 0에서 1로 바꿉니다.
}


지정한 변수는 사용 가능한 범위 안에서 변수에 저장된 숫자 값을 변경할 수 있습니다.

변수명은 아두이노에서 이미 정해놓은 명령어나 상수(예를 들면 HIGH, INPUT 등)를 사용해서는 안 됩니다.




3. 변수 유형


int

아두이노에서 가장 많이 사용하는 데이터형 변수로 정수를 저장합니다.

int는 16비트(2바이트)의 값을 저장할 수 있습니다.

저장 가능한 숫자의 범위는 –32,768 ~ 32,767 입니다.

아두이노 MKR1000, Zero와 같은 아두이노 Due와 SAME 기반 보드에서는 32비트(4바이트)값을 저장할 수 있습니다.

저장 범위는 –2,147,483,648 ~ 214748647입니다.

사용 방법은 아래와 같습니다.

int 변수명 = 값;
예) int LED = 13;

변수명에는 사용하고 싶은 변수 이름을 넣습니다.

값은 int 저장 가능 숫자 가운데 하나를 넣습니다.


unsigned int

int와 같이 2바이트 숫자를 저장합니다.

다른 점은 양수만 가능하다는 것입니다.

저장 가능한 숫자의 범위는 0 ~ 65,535 입니다.

아두이노 MKR1000, Zero와 같은 아두이노 Due와 SAME 기반 보드에서는 32비트(4바이트)값을 저장할 수 있습니다.

저장 범위는 0 ~ 4,294,967,295입니다.

사용 방법은 아래와 같습니다.

unsigned int 변수명 = 값;
예) unsigned int LED = 13;

변수명에는 사용하고 싶은 변수 이름을 넣습니다.

값은 unsigned int 저장 가능 숫자 가운데 하나를 넣습니다.




long

long는 32비트(4바이트)의 값을 저장할 수 있습니다.

저장 가능한 숫자의 범위는 –2,147,483,658 ~ 2,147,483,647 입니다.

사용 방법은 아래와 같습니다.

long 변수명 = 값;
예) long LED = 13;

변수명에는 사용하고 싶은 변수 이름을 넣습니다.

값은 long 저장 가능 숫자 가운데 하나를 넣습니다.



unsigned long

long과 같이 4바이트 숫자를 저장합니다.

다른 점은 양수만 가능하다는 것입니다.

저장 가능한 숫자의 범위는 0 ~ 4,294,967,295 입니다.

사용 방법은 아래와 같습니다.

unsigned long 변수명 = 값;
예) unsigned long LED = 13;

변수명에는 사용하고 싶은 변수 이름을 넣습니다.

값은 unsigned long 저장 가능 숫자 가운데 하나를 넣습니다.



float

float는 부동소수점을 저장할 때 사용하는 변수입니다.

부동소수점이라는 개념은 2진법을 사용하는 컴퓨터 프로그래밍을 위해 필요한 것인데, 여기서 설명하기에 약간 복잡할 수 있으니 일단 넘어가겠습니다.

float은 32비트(4바이트)를 저장할 수 있습니다.

저장 가능한 숫자의 범위는 –3.402823SE+38 ~ 3.4028235E+38입니다.

float은 폭넓은 수를 표현할 수 있지만, 저장되는 값이 근사값이기 때문에 계산된 값과 정확하게 일치하지 않습니다.

사용 방법은 아래와 같습니다.

float 변수명 = 값;
예) float a = 1.117;

변수명에는 사용하고 싶은 변수 이름을 넣습니다.

값은 float 저장 가능 숫자 가운데 하나를 넣습니다.



boolean

참(true) 또는 거짓(false)만 나타내는 변수입니다.

1바이트의 메모리만 사용하기 때문에 참과 거짓의 변수만 필요할 경우 boolean를 사용하는 것이 메모리 절약 측면에서 유리합니다.

사용 방법은 다음과 같습니다.

boolean 변수명 = 값;
예) boolean a = false;

변수명에는 사용하고 싶은 변수 이름을 넣습니다.

값에는 true 또는 false 가운데 하나를 넣습니다.



byte

8비트(1바이트)의 값을 저장할 수 있습니다.

저장 가능한 숫자의 범위는 0 ~ 255 입니다.

byte 변수명 = 값;
예) byte LED = 13;

변수명에는 사용하고 싶은 변수 이름을 넣습니다.

값은 byte 저장 가능 숫자 가운데 하나를 넣습니다.



char

1바이트의 문자 하나만를 저장할 수 있습니다.

char 저장되는 문자는 ASCII 표에 따라 숫자로 저장됩니다.

예를 들면 A는 65와 같은 의미입니다.

사용방법은 다음과 같습니다.

char 변수명 = 값
예) char a = ‘A’;   
     char a = 65;
 
변수명에는 사용하고 싶은 변수 이름을 넣습니다.

값에는 ‘ ’ 사이에 문자를 넣거나, ASCII 표에 따라 문자에 상응하는 숫자를 넣으면 됩니다.

따라서 위의 예시에 사용된 a의 값은 같습니다.


'아두이노 IDE > 핵심프로그래밍 언어' 카테고리의 다른 글

9. 비교 연산 기호  (0) 2017.02.23
8. 계산 연산 기호  (0) 2017.02.22
6. 상수-2  (0) 2017.02.22
5. 상수 - 1  (0) 2017.02.22
4. 아날로그핀 입출력  (1) 2017.02.22