아두이노:기초 문법
아두이노 관련 정보를 모으기 위한 틀. 틀:아두이노
- 아두이노:개요
- 아두이노:하드웨어
- 아두이노:코드
- 아두이노:핀 사용
- 아두이노:시리얼 통신
- 아두이노:편의함수
- 센서 사용
- 아두이노:LCD 사용
- 아두이노:스위치 사용
- 아두이노:릴레이
- 통신 관련, 정보 교환
- 아두이노:해결되지 않은 다양한 의문들
- 수업용 간단 실습
- 아두이노 모터 출력
- 미완문서
- 분류:아두이노 프로젝트
기본 함수[편집 | 원본 편집]
초기에 한 번 실행되는 setup 함수와 이후 반복적으로 실행되는 loop함수가 있다.
초기설정[편집 | 원본 편집]
setup 함수 안에 초기 설정을 집어넣는다.
라이브러리 추가 같은 코드를 사용하기도 한다.
void setup(){
//여기 안에 세팅요소를 넣는다.
}
| 요소 | 설명 | 예시 |
|---|---|---|
| Serial.begin(9600); | 시리얼 통신을 사용하겠다는 선언. 숫자는 초당 비트를 의미(통신속도)한다. 보통 9600.
시리얼 통신(직렬통신)은 데이터를 짧은 시간에 한 개씩 전달하는 통신, 병렬통신은 여러 데이터를 장시간에 전달하는 통신에 쓰인다. |
|
| pinMode(포트번호,OUTPUT); |
|
|
| pinMode(포트번호,INPUT); | 센서 따위를 통해 특정 값을 수신하겠다는 의미. | pinMode(12,INPUT); |
| constrain(포트번호, 최솟값, 최댓값); | 해당 포트의 입력값을 최솟값, 최댓값 사이로 제한한다. | |
| 이외 필요하다고 생각되는 코드. |
업로드[편집 | 원본 편집]
좌측 상단의 체크마크를 클릭 후 업로드를 하면 보드에 업로드된다.
기본명령[편집 | 원본 편집]
일반적으로 loop() 함수 안에 다양한 명령들을 기입한다.
신호 방출[편집 | 원본 편집]
해당 포트의 초기설정을 해준 후 진행해야 한다.
| 명령 | 설명 | 예시 |
|---|---|---|
| digitalWrite(포트번호, HIGH); | 포트번호에 HIGH 혹은 LOW 값을 넣는다. 이는 1, 0과 같다. | digitalWrite(12, HIGH); |
| analogWrite(포트번호, i); | 포트번호에 i값을 넣는다. 아날로그 데이터를 흉내 내어 0~255 을 넣을 수 있다.
아날로그를 흉내 낸 데이터를 출력하기 위해선 PWM(~표시가 있는 칸)이 가능한 곳에서만 가능하다. |
analogWrite(10, 200); |
신호 수신[편집 | 원본 편집]
| 명령 | 설명 | 예시 |
|---|---|---|
| digitalRead(포트번호); | 해당 포트의 초기설정을 해준 후 진행해야 한다.
포트번호에 입력된 값을 받는다.(0, 1로 받는다.) |
digitalRead(12); |
| analogRead(포트번호); |
|
int a = analogRead(A0); |
기타 조작[편집 | 원본 편집]
| 명령 | 설명 |
|---|---|
| delay(숫자); | 숫자에 해당하는 시간(ms)만큼 쉰다. |
시리얼모니터 관련[편집 | 원본 편집]
시리얼 모니터에서 읽어오는 데이터를 확인할 수 있다. 이를 위해서 데이터를 Serial로 보내는 과정이 필요.
| 설명 | |
|---|---|
| Serial.print(각종 문자열); | 시리얼 모니터에 해당 문자열을 띄운다.
변수의 경우 String(변수) 처리 해주어야 한다. |
| Serial.println(문자열); | ln은 한 칸 내리는 것을 의미. 데이터를 표시한 후 줄바꿈까지 실행. |
사용[편집 | 원본 편집]
우측 상단의 Serial Monitor를 통해 내부에서 연산된 값을 보거나, 필요한 값을 보드에 전달할 수 있다.
Tools>Serial Plotter를 통해 그래프로 볼 수 있다.
tip[편집 | 원본 편집]
주석처리: 쌍 슬래시 // 뒤에 쓰는 것은 주석처리된다.
범위주석: /* 내용 */ 형식으로 쓰면 범위 주석이 된다.
개별 함수[편집 | 원본 편집]
사용자가 자주 사용하는 명령들을 블록화하는 등의 작업이 필요하다.
개별함수 만들기[편집 | 원본 편집]
| 과정 | 설명 | 예시 |
|---|---|---|
| 만들기 | void 함수명() {내용} 형태로 개인함수를 지정할 수 있다. | |
| 변수 사용하기 | 함수명(자료형 변수) 형태로 첫줄을 시작하고, 내부에서 사용하면 된다.
|
void func(int x)
{
digitalWrite(x, 1);
}
|
개별함수 사용[편집 | 원본 편집]
함수명(); 이라고 입력하면 그 부분에서 함수가 작동한다.
반복문[편집 | 원본 편집]
for(int i=0; i<5;) {내용} 형태로 작성한다.
for(int i=0; i<5;)
{
명령
i = i+1
}
조건문[편집 | 원본 편집]
if(조건)
{
명령
}
else
{
명령
}
유의사항[편집 | 원본 편집]
코드를 폴더단위로 저장하기 때문에 다른 프로젝트를 같은 폴더에 넣어버리면 에러가 나곤 한다.
- 소문자, 대문자를 구분한다. 해당 함수의 옵션에 대소문자를 구분해 입력해야 한다.
- 동일한 라이브러리는 하나만 갖고 있어야 한다.(충돌위험)
- 코드는 잘 저장해두기. 아두이노에 업로드한 코드를 컴퓨터에 되돌리는 일은 굉장히 어렵다. HEX추출은 가능하지만 이를 코드로 되돌리는 일은 해당분야 종사자가 아니라면 거의 불가능에 가깝다 보면 되겠다.