아두이노 > 아두이노 문법

TODAY125 TOTAL270,641
사이트 이용안내
Login▼/회원가입
포럼 동영상강좌 회원가입


▼ BASIC4MCU 후원업체 최신 정보 ▼

▲ BASIC4MCU 후원업체 최신 정보 ▲

BASIC4MCU | 아두이노 | 아두이노 | 아두이노 문법

페이지 정보

작성자 키트 작성일2017-09-13 15:39 조회1,392회 댓글0건

본문

	

아두이노 문법


아두이노는 C언어를 사용합니다. 그렇지만 처음에는 매우 생소함을 느낍니다. main()함수가 안보이기 때문이죠.

이전에 설명한 바와 같이 아두이노는 크게 두부분(setup(), loop())으로 되어 있습니다.
 

하나씩 생각해 보죠. 기초는 매우 중요합니다. 그래서 하는 말인데 혹시 아래 함수에서 void에 대해 생각해 보셨나요?

 

void setup(), void loop() 

 

둘다 void라고 붙여 있지요. 이 뜻은 출력으로 내보낼 것이 없고 단지 그 안에서 처리하고 끝내라는 뜻입니다.

 

그렇다면 함수는 무엇일까요? 어렵게 생각하지 마세요. 무엇인가 재료를 넣어주면 제품을 만들어 내는 기계(혹은 상자)라고 생각하세요. 혹시 엑셀이라는 프로그램을 사용할 줄 아신다면 sum이라는 함수하나면 생각해 보면 됩니다.

 

■ 디지털 입출력(Digital I/O) 
   - pinMode(핀번호, 모드) : 핀번호에 대해 입출력 모드(INPUT, OUTPUT)로 설정, 신호가 들어오는 핀이냐? 내보내는 핀이냐?를 지정
   - digitalWrite(핀번호,값) : 출력 핀 번호에 대해 값(HIGH, LOW) 출력, LED의 경우 HIGH면 5V가 흘려 켜지고 LOW면 반대로 꺼짐
   - digitalRead(핀번호) : 출력 핀 번호에 대해 값(HIGH, LOW) 읽기, 해당 핀에 5V가 흐르는지 아닌지 읽음

 

■ 아날로그 입출력(Analog I/O)

   - analogReference() : ADC(Analog-Digital Converter)의 기준전압을 설정함

     낮고 좁은 범위의 전압을 높은 분해된 값으로 읽고 싶을 때 사용
   - analogWrite(핀번호) : digitalWrite()가 0 또는 1만 설정하는 것에 비해 0~255값을 설정할 수 있음. 서서히 변화하도록 할 때 사용
   - analogRead() : 0~5V를 1024개의 전압 구간으로 나누어 0~1023의 숫자를 할당하여 읽어들임 

     아두이노 우노의 경우 아날로그 신호를 입력받을 수 있는 핀은 A0~A5까지 6개가 있음

     핀은 A0의 경우 A0 또는 0 이라고 써도 됨
    
■ 고급 입출력(Advanced I/O)
   - tone(핀번호, 주파수, 지속시간) : 스피커 멜로드 재생
   - noTone(핀번호) : 스피커 멜로드 중지
   - shiftOut()
   - shiftIn()
   - pulseIn()

  
■ 통신 함수

   - Serial

     Serial.begin(9600) : 시리얼 통신 시작
     Serial.end() : 시리얼 통신 종료
     Serial.print() : () 출력
     Serial.println() : 새줄에서 () 출력
     Serial.available() : 
     Serial.read() : 데이터 입력
   - Stream : 
   - keyboard : 
   - Mouse : 

  
■ 시간 함수
   - miliis()
   - micros()
   - delay(time) : 지정한 시간만큼 프로그램을 지연 [delay(1000) = 1초]
   - delayMicroseconds()
  
■ 수학 함수

   - min(A, B) : A, B 중 작은 수를 리턴 
   - max(A, B) : A, B 중 큰 수를 리턴
   - abs() : 절대값
   - constrin(x, A, B) : x를 A이상 B이하로 제한
   - y=map(x, a, b, A, B) : (x : y) = (a : A) ~ (b : B)
   - pow(A, B) : A를 B제곱
   - sqrt() : 제곱근
   - sq(A) : A의 제곱값 리턴
   - almostEqual(변수, 목표값) :  변수 값과 원하는 목표 값의 차이가 0.0001 이내이면 true 리턴
   - floor(x) : x보다 크지 않은 정수 중 가장 큰 정수 값 리턴
   - ceil(x) : x보다 작지 않은 정수 중 가장 작은 정수 값 리턴

 

■ 삼각 함수
   - sin() : 
   - cos() : 
   - tan() : 

 

■ 난수발생 함수

   - randomSeed(seed) : 지정된 seed 매개변수를 기반으로 임의의 위치에서 난수 생성
   - random(A, B) : A ~ B-1 까지의 난수 생성

■ 비트와 바이트 함수
   - lowByte() : 변수의 하위 바이트(오른쪽 바이트) 추출
   - highByte() : 변수의 상위 바이트(왼쪽 바이트) 추출
   - bitRead(x, n) : 변수 x의 0부터 n번째 비트에서 "0" 또는 "1"을 반환
   - bitWrite(x, n, value) : 변수 x의 0부터 n번째 비트값을 value(0" 또는 "1")을 반환
   - bitSet(x, n) : 변수 x의 0부터 n번째 비트를 "1"로 설정
   - bitClear(x, n) : 변수 x의 0부터 n번째 비트를 "0"로 설정
   - bit(n) : 
  
■ 외부 인터럽트 함수
   - attachInterrupt() :    
   - detachInterrupt() : 
  
■ 인터럽트 함수
   - interrupts() : 
   - nointerrupts() : 
  
■ 문자열 함수

   - charAt(n) : String 객체의 n번째 문자를 리턴
   - compareTo(S2) : String 객체를 지정된 S2 객체와 비교
   - concat(S2) : String 객체와 S2 객체가 결합된 새로운 String 객체를 리턴
   - endWith(S2) : String 객체와 S2 객체의 문자들로 끝나면 true를 리턴
   - equals(S2) : String 객체와 S2 객체와 정확히 일치하면 true를 리턴
   - equalsIgnoreCase(S2) : equals()와 같지만 대소문자를 구분하지 않는다.
   - getBytes(buffer, len) : len에 해당하는 개수의 문자를 제공된 바이트 버퍼에 복사
   - indexOf(S) : S 객체의 인덱스를 리턴, 없으면 -1을 리턴
   - length() : 문자열의 문자수 리턴
   - replace(A, B) : String 객체 A의 모든 인스턴스를 B로 바꾼다.
   - setCharAt(index, c) : 문자 c를 String 객체의 지정 위치에 저장
   - startsWith(S2) : String 객체가 S2 객체의 문자들로 시작되면 true를 리턴
   - substring(index) : String 객체의 지정된 위치부터 마지막까지의 문자로 구성된 String 객체로 리턴
   - substring(index, to) : 위 함수와 같지만 'to' 앞의 문자까지만 하위 문자열에 포함
   - tocharArray(buffer, len) : String 객체의 문자 중에서 최대 len개의 문자를 제공된 버퍼에 복사
   - toInt() : String 객체에 있는 숫자의 정수 값을 리턴
   - toLowerCase() : 모든 문자를 소문자로 변환
   - toUpperCase() : 모든 문자를 대문자로 변환
   - trim() : 선행 후 후행 공백을 모두 제거
   - strtok_r(S1, c, S2) : S1 객체에서 c를 찾아  분리하여 S2에 저장
   - strcmp(S1, S2)

     S1, S2 객체의 문자열 비교하여 해당 값 리턴 

     S1 > S2    "1"

     S1 = S2    "0"

     S1 < S2    "-1"
   - strncmp(S1, S2, n) : S1과 S2 객체의 비교할 최대 문자수 n을 지정하여 비교 
   - itoa(N, buffer, n) : 숫자 N을 문자열 buffer에 n진수로 변환하여 저장(int형) 
   - ltoa(N, buffer, n) : 숫자 N을 문자열 buffer에 n진수로 변환하여 저장(long형) 
   - atoi(str) : 문자열을 정수로 변환(int형) 
   - atol(str) : 문자열을 정수로 변환(long형) 

 

■ Due 전용 함수

   - analogReadResolution() : 
   - analogWriteResolution() : 

 

■ 기타 함수
   - isDigit(ch) : ch가 0~9 사이의 ascii 인지 판별



댓글 0

조회수 1,392

등록된 댓글이 없습니다.

아두이노HOME > 아두이노 > 전체 목록

아두이노 목록
제목 작성자 작성일 조회
305 아두이노 작동 중인 팬모터를 블루투스와 연결된 앱으로 RPM 조절하는 코드를 추가해야하는데요. 새글 RobustWalKeR 18-10-19 7
답변 답변글 답변 : 작동 중인 팬모터를 블루투스와 연결된 앱으로 RPM 조절하는 코드를 추가해야하는데요. 새글 master 18-10-19 5
303 아두이노 master님 rc카 적외선센서 추가 질문 해도될까요? ㅠㅠ 새글 윤재 18-10-19 7
답변 답변글 답변 : master님 rc카 적외선센서 추가 질문 해도될까요? ㅠㅠ 댓글[1] 새글 master 18-10-19 6
301 아두이노 앱인벤터 스크린마다 블루투스 댓글[1] 새글 intoo07 18-10-19 11
300 아두이노 온도가 특정 온도 이상이면 팬이 동작하지 않고, 그 온도로 코드를 수정하면 팬이 작동합니다. 새글 RobustWalKeR 18-10-18 8
답변 답변글 답변 : 온도가 특정 온도 이상이면 팬이 동작하지 않고, 그 온도로 코드를 수정하면 팬이 작동합니다. 새글 master 18-10-18 6
298 아두이노 앱인벤터를 이용해 블루투스 통신 오류해결 댓글[1] 새글 개준범 18-10-18 10
297 아두이노 아두이노 우노보드R3 로 블루투스 스피커를 만들려고 하는데요 댓글[2] 새글 ㅁㅋㄴㅌ 18-10-18 14
296 아두이노 12v 팬 구동하려고합니다. 새글 zi9104 18-10-18 14
답변 답변글 답변 : 12v 팬 구동하려고합니다. 댓글[7] 새글 master 18-10-18 26
294 아두이노 아두이노 I2C.h 댓글[5] 새글 김리락 18-10-18 13
293 아두이노 2축 엑츄에이터 사용법 댓글[1] 이미지 날다람쥐 18-10-17 20
292 아두이노 온습도출력까진 되는데 그 뒤에 팬이 동작하지를 않습니다. 이미지첨부파일 RobustWalKeR 18-10-17 14
답변 답변글 답변 : 온습도출력까진 되는데 그 뒤에 팬이 동작하지를 않습니다. 댓글[5] master 18-10-17 23
게시물 검색

Privacy Policy
MCU BASIC ⓒ 2017