아두이노 함수 선언 - adu-ino hamsu seon-eon

  • 언어
    • 함수
    • 변수
    • 구조
  • 라이브러리
  • IoT Cloud API
  • 용어 사전

아두이노 참조 텍스트는 크리에이티브 커먼즈 저작자 표시 - 동일 조건 3.0 라이센스.

개선할 수 있는 것을 찾았나요? 깃허브를 통해 정정과 새 문서를 제안하세요.

깃허브 사용법에 의문이 있나요? 여러분이 알고싶은 모든 것을 배우세요 투토리얼.

Last Revision: Searching...

Last Build: 2022/10/16

이 페이지 편집

Reference > Language > Variables > Data types > Void

[Data Types]

설명

void 키워드는 함수 선언에서만 쓰인다. 그것은 함수가 불릴 때 함수에서 아무 정보도 반환하지 않을 것을 기대하는 것을 가리킨다.

예제 코드

이코드는 void 사용법을 보여준다.

// 행동은 함수 "setup" 그리고 "loop" 에수 수행된다
//  그러나 더 큰 프로그램에서는 보고되는 정보가 없다

void setup() {
  // ...
}

void loop() {
  // ...
}

더보기

  • LANGUAGE Integer Constants

설명

정수는 숫자 저장을 위한 기본 자료형이다.

안드로이드 우노(그리고 다른 ATmega 기반 보드)에서 int 는 16비트(2바이트) 값을 저장한다. 이 값은 -32,768 에서 32,767 (최소값 -2^15 과 최대값 (2^15) - 1). 아두이노 두에와 SAND 기반 보드(MKR1000과 제로 같은)에서, int 는 32비트 (4바이트) 값을 저장한다. 이것은 -2,147,483,648 에서 2,147,483,647 까지(최소값 -2^31 과 최대값 (2^31) - 1).

int 의 음수는 (2’s complement math)라는 기술로 저장한다. 가장 높은 비트(때때로 "부호" 비트라고 참조됨)는 숫자를 음수라고 표시한다. 비트의 나머지는 거꾸로 되고 1이 더해진다.

아두이노는 음수를 주의깊게 다루므로, 산술연산은 예상대로 투명하게 동작한다. 그러나, 오른쪽으로 비트 옮김 연산자 (>>) 와 함께 다룰 때 예상치 못한 복잡함이 생길 수 있다.

문법

int var = val;

var - int 변수 이름
val - 그 변수에 할당한 값

예제 코드

This code creates an integer called 'countUp', which is initially set as the number 0 (zero). The variable goes up by 1 (one) each loop, being displayed on the serial monitor.

int countUp = 0;            //creates a variable integer called 'countUp'
 void setup() {
  Serial.begin(9600);       // use the serial port to print the number
}
 void loop() {
  countUp++;                //Adds 1 to the countUp int on every loop
  Serial.println(countUp);  // prints out the current state of countUp
  delay(1000);
}

주의와 경고

부호 있는 변수가 최대 또는 최소 용량을 넘어가면 오버플로우 된다. 오버플로우의 결과는 예측할 수 없으므로 피해야 한다. 오버플로우의 전형적인 증상은 그 최대용량에서 최소로 또는 반대로 변수 "rolling over" 이지만, 언제나 그런 건 아니다. 이 동작을 원하면, unsigned int 를 쓰시오.

아두이노를 위한 프로그래밍 기초

프로그램이란?

  • 어떤 일에 대한 진행 순서 또는 계획과 관련된 뜻
  • 컴퓨터는 사람이 무엇을 하라고 말하지 않으면 어떻게 움직여야 할지 모름
  • 컴퓨터 프로그램 : 컴퓨터에게 어떤 일을 어떤 순서로 하라고 알려주는 것

정보를 담는 그릇 : 변수

  • 변수 : 데이터를 담는 그릇
  • 변수 안에 미리 정해진 종류의 데이터만 넣을 수 있음
  • 변수의 종류
    • 숫자형
    • 글자형
    • 참/거짓형

  • int
    • 대표적인 숫자형 변수 종류
    • 소수점이 없는 정수를 담음
  • 변수를 선언한다 : 프로그래밍에서 변수를 준비하는 것
  • 변수 선언시 원하는 이름으로 설정할 수 있음

  • a라는 이름의 int형 변수를 선언한다는 뜻
  • 세미콜론(;) : 문장이 끝났다는 뜻
  • 컴퓨터는 문장의 시작과 끝을 모르기 때문에 마지막 부분에 세미콜론을 달아줘야함
  • 변수 이름 앞에 숫자가 먼저
    오면 안됨

int a;

  • 주석
    • 프로그래밍을 할 때 적는 메모
    • 주석은 오로지 사람에게만 보임
  • String : 문장이나 단어 데이터를 넣어 사용할 때 쓰는 변수 형태
  • char : 반각문자 하나를 넣어 사용하기 위한 변수 형태
  • boolean : 변수 안에 들어가는 값이 오로지 참 또는 거짓 2가지

// 저는 주석입니다.

/*

이 안도 주석입니다.

*/

// 글자형

Stringname;

char c;

// 참/거짓형

boolean yes_no;

  • 코드
    • 컴퓨터가 처리할 수 있는 데이터
    • 프로그램의 내용은 다른 말로 소스코드라고도 부름
  • 반각문자
    • 컴퓨터에서 최소 단위로 가장 많이 사용되는 것이 바이트(byte)
    • 반각문자란 바로 1바이트로 표현할 수 있는 문자
  • 전각문자
    • 2바이트로 표현할 수 있는 문자
    • 예 : 한글

  • 변수에 값을 넣을 때
    등호(=)를 사용
  • 프로그래밍에서 등호 1개 사용하는 것은 등호 오른쪽에 있는 것을 등호 왼쪽에
    넣겠다는 뜻
  • int형 변수 a에 2라는 값을 넣는다는 뜻

  • 다른 종류의 변수도 값을 넣을 때 등호 사용
  • 변수의 종류마다 값을 표시하는 방법 다름
  • String : 큰 따옴표(") 두 개로 값을 감싸줘야 함
  • char : 변수는 작은 따옴표(') 두 개로 값을 감싸줘야 함
  • boolean : 참일 경우 true,
    거짓일 경우 false

// String

name = "Hello!";

// char

c = 'A';

// boolean

yes_no = true;

  • 변수를 선언함과 동시에 값을 넣을 수도 있음

int a = 2;

Stringname = "Hello!";

char c = 'A';

boolean yes_no = true;

  • led라는 int형 변수를 선언
  • 이 안에 13이라는 값을 넣음
  • led가 13을 나타냄
  • 다른 값으로 바꾸고 싶다면
    led 값을 넣는 부분에
    다른 숫자로 바꾸기만 하면 됨

int led = 13;

voidsetup() {

pinMode(led, OUTPUT);

}

voidloop() {

digitalWrite(led, HIGH);

delay(1000);

digitalWrite(led, LOW);

delay(1000);

}

  • 코드 안에 13이라는 값이 3번 사용
  • 똑같은 값을 백번 또는 만번 써야 한다면?
  • 이 똑같은 값을 나중에 다른 값으로 바꿔야 한다면?

voidsetup() {

pinMode(13, OUTPUT);

}

voidloop() {

digitalWrite(13, HIGH);

delay(1000);

digitalWrite(13, LOW);

delay(1000);

}

편리하게 사용할 수 있는 도구 : 함수

  • 함수 : 프로그래밍에서 사용하는 일종의 도구
  • 일일이 필요한 코드를 작성하지 않고 도구처럼 함수 사용

  • 자주 사용될만한 코드들을 함수라는 도구로 만듬
  • 함수를 통해 원하는 코드들을 공유해 사용할 수 있음
  • 안에 코드를 일일이 알 필요 없이 사용하는 방법만 알면 됨

함수의 몸통

  • 재료를 넣는 부분
  • 결과를 반환하는 부분
  • 동작하는 부분.

  • hello라는 함수를 선언한 것
  • void : 결과를 반환하는 종류가 무엇인지 설정해 놓은 부분
  • 반환 종류가 적힌 부분 다음에 원하는 함수 이름을 적음
  • 함수 이름 바로 옆 소괄호( ( ) )가 재료를 넣는 부분
  • 중괄호( {} )로 되어있는 부분이 동작과 관련된 코드가
    들어가는 부분

  • 함수를 실행한다는 뜻
  • hello의 경우 필요한 재료가 없어 소괄호 안을 비워놓음
  • 만약 필요한 재료가 있다면 소괄호 안에 반드시 값을 넣어야함
  • 매개변수 : 재료로 사용되는 값

hello();

  • 함수를 선언하는 코드의 소괄호 안에 원하는 매개변수의 종류와 이름 입력
  • a라는 이름을 가진 int형 매개변수를 설정한 것
  • hello 함수를 돌리기 위해 int형 변수가 재료로 꼭 필요하다는 뜻

  • 소괄호 안에 값을 넣고 함수 실행
  • 다른 종류의 값을 넣으면
    에러 발생
  • 2가 hello 함수 매개변수 a 안에 들어감

hello(2);

  • 매개변수를 늘리거나 원하는 종류의 변수를 선언할 수도 있음
  • 함수를 실행할 때 매개변수의 개수와 종류에 맞게 소괄호 안에 값을 넣어줘야 함

void hello(int a, Stringname, char c, boolean yes_no){

}

  • 매개변수의 입력 순서 지켜줘야함

hello(2, "Tom", 'A', true);

  • 함수를 통해 a라는 변수에 값을 넣고 싶다면?
  • “hello()”라고 적힌 부분이 실행된 뒤 어떤 값으로 바뀌어야 함

  • int형 값을 반환한다고 선언
  • 함수가 다 실행되고 반환 값을 돌려줄 때 return 명령어 사용
  • “hello()”라고 적힌 부분이 return 다음에 적은 2로 바뀜
  • 함수를 호출한 곳으로 반환 값을 보내기 때문에 함수를 종료하는 명령어로도 쓰임

String getName() {

return "Tom";

}

char getChar() {

return 'A';

}

boolean isYes() {

return true;

}

  • 다른 종류의 반환 함수도
    사용 가능

  • 변수형과 반환 함수 종류를 맞춰 사용해야함

Stringname = getName();

char c = getChar();

boolean yes_no = isYes();

void

  • 반환 종류의 하나
  • 우리말로 텅 빈 또는 빈 공간이라는 뜻
  • 반환 값이 없다는 뜻
  • 단순히 코드만 실행하는 경우에 void형 함수를 사용

  • return 명령어를 통해 함수가 호출된 곳으로 값을 보내지 않음
  • 함수를 종료하는 명령어로 사용
  • 필요 없는 경우 return 명령어를 사용하지 않아도 됨

void hello(){

return; // 함수를 종료합니다.

}

알아서 움직이게 만들기 : 조건문

  • 컴퓨터가 스스로 상황에 맞게 움직이게 하고 싶다면?
  • 조건문을 사용해 컴퓨터가
    상황에 따라 알아서 움직이도록 할 수 있음
  • if문
    • 조건문의 한 종류
    • 특정 조건이 맞을 때 어떻게 동작하도록 하는데 쓰임

int age = 10;

if (age < 20) {

// age가 20보다 작습니다.

hello();

}

  • 소괄호 안이 조건에 해당
  • age가 20보다 작은 게 맞는지 확인한단 뜻
  • 만약 맞다면 중괄호 안
    코드가 실행

연산자

기능

의미

==

같다

a == b

a와 b는 같다.

<

작다

a < b

a는 b보다 작다.

>

크다

a > b

a는 b보다 크다.

<=

같거나 작다

a <= b

a는 b와 같거나 작다.

>=

같거나 크다

a >= b

a는 b와 같거다 크다.

!=

다르다

a != b

a와 b는 다르다.

  • if문의 조건은 참/거짓형 값으로 바뀌는 것이라 할 수 있음
  • 조건이 맞다면 true,
    틀리면 false로 바뀜

  • 조건 대신 곧바로 true 또는
    false 사용 가능
  • boolean 변수도 사용 가능

else

  • 조건이 틀릴 때 다른 동작을 하도록 할때 사용
  • 조건이 맞으면 if 밑 중괄호 안 hello 함수가 실행됨
  • 조건이 틀리면 else 밑 중괄호 안 bye 함수가 실행됨

int age = 30;

if (age < 20) {

// age가 20보다 작습니다.

hello();

} else {

// age가 20과 같거나 또는 큽니다.

bye();

}

  • 만약 20보다 작지 않은데
    다시 한 번 30보다 작은지 확인하고 싶다면?

  • 처음 if 조건이 맞지 않다면 그 다음 else if 부분 조건이
    맞는지 확인
  • 만약 여기서 맞다면 else if 밑 중괄호 안의 코드가 실행됨
  • 또 틀리다면 마지막으로 else에 있는 중괄호 안의 코드가 실행됨

int age = 25;

if (age < 20) {

// age가 20보다 작습니다.

hello();

} else if (age < 30) {

// age가 20과 같거나 또는 30보다 작습니다.

hi();

} else {

// age가 30과 같거나 또는 큽니다.

bye();

}

  • else if를 여러 개 사용할 수 있음
  • 순서대로 조건이 맞는지 확인됨

int age = 25;

if (age < 20) {

// age가 20보다 작습니다.

} else if (age < 30) {

// age가 20과 같거나 또는 30보다 작습니다.

} else if (age < 40) {

// age가 30과 같거나 또는 40보다 작습니다.

} else if (age < 50) {

// age가 40과 같거나 또는 50보다 작습니다.

} else {

// age가 50과 같거나 또는 큽니다.

}

  • if문을 이용하면 컴퓨터가
    상황에 따라 알아서 동작하도록
    만들 수 있음
  • 만약 아두이노에 센서를 연결한다면 센서 값에 따라 원하는 동작을 하도록
    만들 수도 있음
  • 중요한 것은 생각한 것을 조건문을 이용해 잘 정리하는 것

똑같은 것 반복시키기 : 반복문

  • 컴퓨터에게 어떻게 계속
    똑같은 것을 하게 만들 수 있을까?
  • for 문
    • 반복문의 한 종류
    • 특정 횟수 동안 컴퓨터가 반복하도록 하는데 사용

for문의 구성

  • 반복하는 횟수를 세는 변수(카운터 변수)를
    설정하는 부분
  • 반복 조건이 들어가는 부분
  • 매번 반복할 때마다
    실행하는 부분
  • 각 부분들은 사이에 세미콜론을 통해 나뉘어짐

  • for문의 소괄호 첫 번째 부분
  • 변수 i를 통해 컴퓨터가 몇 번 반복했는지 확인

int i = 0

  • for문의 소괄호 두 번째 부분
  • 조건이 맞는 경우에만 계속 반복하라는 뜻
  • 만약 이 조건이 틀리면
    반복이 멈춤

i < 3

i++

  • 무한 반복 : 반복 조건이 항상 맞아 계속 반복하는 것
  • for문의 소괄호 세 번째 부분
  • 카운터 변수를 바꿔주는 곳

연산자

명칭

기능

의미

++

증가 연산자

변수의 값을 1 증가

a++ 또는 ++a

a의 값을 1 증가

--

감소 연산자

변수의 값을 1 감소

a-- 또는 --a

a의 값을 1 감소

  • 처음에 카운터 변수로 i라는 이름을 가진 int형 변수가 선언됨
  • 초기 값으로 0이 들어감

  • i가 설정된 뒤 중괄호 안에 있는 코드가 실행됨
  • hello 함수 호출

  • for문의 3번째 부분 코드가 실행됨
  • i를 1 증가시키는 코드
  • i는 1이 됨

  • 반복 조건이 맞는지 확인
  • 아직 1이고 3보다 작기 때문에 반복 조건이 맞음

  • 중괄호 안에 코드가 실행됨

  • i를 1 증가시켜 2가 됨

  • 반복 조건이 맞는지 확인
  • i가 2이고 여전히 3보다 작기 때문에 반복 조건은 여전히 맞음

  • 중괄호 안의 코드가 실행됨

  • i가 증가해서 3이 됨

  • 반복 조건을 확인하는데 i가 3보다 작지 않기 때문에 조건이 틀림
  • 더 이상 반복하지 않고 for문을 빠져나감

프로그래밍 교육 사이트

10MAKE

  • http://10make.com
  • 아두이노 저자 회사가 운영
  • 아두이노, 라즈베리 파이,
    3D 프린터 관련 무료 동영상
    강의 제공

아워 오브 코드

  • https://code.org
  • 미국 비영리 단체
    Code.org가 운영
  • 수준별 프로그래밍 강의 제공

쉽고 재미있는 프로그래밍 도구, 스크래치

스크래치

  • http://scratch.mit.edu
  • MIT 미디어랩 미첼 레즈닉 교수와 그의 동료들이 만든
    프로그래밍 언어
  • 애초 8~16세 학생들을 위해 상당히 쉽게 만들어짐

  • 레고를 조립하듯이 블록을 통해 프로그래밍
  • 동작, 이벤트, 제어와 같은 9가지 종류의 블록으로 구성
  • 변수와 함수 그리고 조건문과 반복문을 이 블록을 이용해 쉽게 만들 수 있음

  • 좋아하는 그림을 사용해 애니메이션을 만들거나
    목소리를 녹음해 효과음으로
    사용할 수 있음
  • 대개 스크래치를 통해 재미있는 뮤직 비디오 또는 게임을 많이 만듬

  • 다른 사람들이 만든 작품을 공유할 수 있음
  • 다른 사람들의 작품을 직접 실행해보거나 수정할 수도 있음
  • 아두이노도 스크래치에 연결해 사용할 수 있음

감사합니다!