아두이노:기초 문법
편집하기 (부분)
둘러보기로 이동
검색으로 이동
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
=기본 함수= 초기에 한 번 실행되는 setup 함수와 이후 반복적으로 실행되는 loop함수가 있다. ==초기설정== setup 함수 안에 초기 설정을 집어넣는다. 라이브러리 추가 같은 코드를 사용하기도 한다.<syntaxhighlight lang="c"> void setup(){ //여기 안에 세팅요소를 넣는다. } </syntaxhighlight> {| class="wikitable" !요소 !설명 !예시 |- |Serial.begin(9600); |시리얼 통신을 사용하겠다는 선언. 숫자는 초당 비트를 의미(통신속도)한다. 보통 9600. 시리얼 통신(직렬통신)은 데이터를 짧은 시간에 한 개씩 전달하는 통신, 병렬통신은 여러 데이터를 장시간에 전달하는 통신에 쓰인다. | |- |pinMode(포트번호,OUTPUT); | *해당 포트번호를 OUTPUT으로 쓰겠다는 의미(출력(+)극으로 쓰겠다는 의미.) *A1 등의 포트에선 필요가 없지만, 번호로 이루어진 포트를 사용하려면 필수적인 설정이다. | |- |pinMode(포트번호,INPUT); |센서 따위를 통해 특정 값을 수신하겠다는 의미. |pinMode(12,INPUT); |- |constrain(포트번호, 최솟값, 최댓값); |해당 포트의 입력값을 최솟값, 최댓값 사이로 제한한다. | |- |이외 필요하다고 생각되는 코드. | | |} ===업로드=== 좌측 상단의 체크마크를 클릭 후 업로드를 하면 보드에 업로드된다. ==기본명령== 일반적으로 loop() 함수 안에 다양한 명령들을 기입한다. ===신호 방출=== 해당 포트의 초기설정을 해준 후 진행해야 한다. {| class="wikitable" !명령 !설명 !예시 |- |digitalWrite(포트번호, HIGH); |포트번호에 HIGH 혹은 LOW 값을 넣는다. 이는 1, 0과 같다. |digitalWrite(12, HIGH); |- |analogWrite(포트번호, i); |포트번호에 i값을 넣는다. 아날로그 데이터를 흉내 내어 0~255 을 넣을 수 있다. 아날로그를 흉내 낸 데이터를 출력하기 위해선 PWM(~표시가 있는 칸)이 가능한 곳에서만 가능하다. |analogWrite(10, 200); |} ===신호 수신=== {| class="wikitable" !명령 !설명 !예시 |- |digitalRead(포트번호); |해당 포트의 초기설정을 해준 후 진행해야 한다. 포트번호에 입력된 값을 받는다.(0, 1로 받는다.) |digitalRead(12); |- |analogRead(포트번호); |포트번호로 들어온 신호를 0~255로 받는다. 아날로그 데이터라면 인풋만 가능하기에 ANALOG IN 포트에 꽂으면 별 설정없이 가져온다. 우노보드에 아날로크 포트로 들어온 경우 0~1023 사이의 값으로 받는다. 한계값이 정해진 경우, n/1023 을 곱하는 등의 처리로 데이터의 값을 맞춰준다. |int a = analogRead(A0); |} ===기타 조작=== {| class="wikitable" !명령 !설명 |- |delay(숫자); |숫자에 해당하는 시간(ms)만큼 쉰다. |} ===시리얼모니터 관련=== 시리얼 모니터에서 읽어오는 데이터를 확인할 수 있다. 이를 위해서 데이터를 Serial로 보내는 과정이 필요. {| class="wikitable" ! !설명 |- |Serial.print(각종 문자열); |시리얼 모니터에 해당 문자열을 띄운다. 변수의 경우 String(변수) 처리 해주어야 한다. |- |Serial.println(문자열); |ln은 한 칸 내리는 것을 의미. 데이터를 표시한 후 줄바꿈까지 실행. |- | | |} ===사용=== 우측 상단의 Serial Monitor를 통해 내부에서 연산된 값을 보거나, 필요한 값을 보드에 전달할 수 있다. Tools>Serial Plotter를 통해 그래프로 볼 수 있다. ===tip=== 주석처리 : 쌍 슬래시 // 뒤에 쓰는 것은 주석처리된다. 범위주석 : /* 내용 */ 형식으로 쓰면 범위 주석이 된다. <br /> ==개별 함수== 사용자가 자주 사용하는 명령들을 블록화하는 등의 작업이 필요하다. ===개별함수 만들기=== {| class="wikitable" |+ !과정 !설명 !예시 |- |만들기 |void 함수명() {내용} 형태로 개인함수를 지정할 수 있다. | |- |변수 사용하기 |함수명(자료형 변수) 형태로 첫줄을 시작하고, 내부에서 사용하면 된다. 전역변수를 그대로 사용하려면 자료형을 기입하지 않고 그냥 변수명을 쓰면 된다. |<syntaxhighlight lang="c"> void func(int x) { digitalWrite(x, 1); } </syntaxhighlight> |- | | | |} ===개별함수 사용=== <code>함수명();</code> 이라고 입력하면 그 부분에서 함수가 작동한다. <br /> ==반복문== for(int i=0; i<5;) {내용} 형태로 작성한다.<syntaxhighlight lang="c"> for(int i=0; i<5;) { 명령 i = i+1 } </syntaxhighlight> ==조건문== <syntaxhighlight lang="c"> if(조건) { 명령 } else { 명령 } </syntaxhighlight>
요약:
학교의 모든 지식. SMwiki에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
학교의 모든 지식. SMwiki:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기 메뉴
개인 도구
로그인하지 않음
토론
기여
로그인
이름공간
문서
토론
한국어
보기
읽기
편집
원본 편집
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보