아두이노:코드
편집하기
Sam
(
토론
|
기여
)
님의 2021년 9월 5일 (일) 16:03 판
(
→개요
)
(
차이
)
← 이전 판
|
최신판
(
차이
) |
다음 판 →
(
차이
)
둘러보기로 이동
검색으로 이동
경고: 이 문서의 오래된 판을 편집하고 있습니다.
이것을 게시하면, 이 판 이후로 바뀐 모든 편집이 사라집니다.
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
{{아두이노}} ==개요== c언어를 사용해 쉽지 않다. 친절하게도 아두이노에서 제공하는 IDE가 있어 이를 사용하면 무리 없이 코딩을 할 수 있다. <br /> ===유의사항=== *소문자, 대문자를 구분한다. 해당 함수의 옵션에 대소문자를 구분해 입력해야 한다. *동일한 라이브러리는 하나만 갖고 있어야 한다.(충돌위험) *코드는 잘 저장해두기. 아두이노에 업로드한 코드를 컴퓨터에 되돌리는 일은 굉장히 어렵다. HEX추출은 가능하지만 이를 코드로 되돌리는 일은 해당분야 종사자가 아니라면 거의 불가능에 가깝다 보면 되겠다. ===팁=== https://www.tinkercad.com/<nowiki/>에서 아두이노 회로와 코드의 시뮬레이션을 해볼 수 있다. ==초기설정== setup 함수 안에 초기 설정을 집어넣는다.<syntaxhighlight lang="c"> void setup(){ //여기 안에 세팅요소를 넣는다. } </syntaxhighlight> {| class="wikitable" !요소 !설명 !예시 |- |Serial.begin(9600); |시리얼 모니터를 사용하겠다는 선언. 숫자는 초당 비트를 의미한다. | |- |pinMode(포트번호,OUTPUT); | *해당 포트번호를 OUTPUT으로 쓰겠다는 의미(출력(+)극으로 쓰겠다는 의미.) *A1 등의 포트에선 필요가 없지만, 번호로 이루어진 포트를 사용하려면 필수적인 설정이다. | |- |pinMode(포트번호,INPUT); |센서 따위를 통해 특정 값을 수신하겠다는 의미. |pinMode(12,INPUT); |- |constrain(포트번호, 최솟값, 최댓값); |해당 포트의 입력값을 최솟값, 최댓값 사이로 제한한다. | |- |이외 필요하다고 생각되는 코드. | | |} ===업로드=== 좌측 상단의 체크마크를 클릭 후 업로드를 하면 보드에 업로드된다.<br /> ==기본명령== 일반적으로 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를 통해 그래프로 볼 수 있다. <br /> <br /> ===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:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
이 문서에서 사용한 틀:
틀:아두이노
(
편집
)
둘러보기 메뉴
개인 도구
로그인하지 않음
토론
기여
로그인
이름공간
문서
토론
한국어
보기
읽기
편집
원본 편집
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보