top of page

아두이노 문법

아두이노는 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 인지 판별

bottom of page