아두이노:핀 사용

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동

아두이노 관련 정보를 모으기 위한 틀. 틀:아두이노

  1. 아두이노:개요
  2. 아두이노:하드웨어
    1. 아두이노:우노보드
  3. 아두이노:코드
    1. 아두이노:기초 문법
    2. 아두이노:라이브러리
    3. 아두이노:컴퓨터에서 보드로
    4. 아두이노:안드로이드에서 보드로
  4. 아두이노:핀 사용
    1. 아두이노:전원공급
  5. 아두이노:시리얼 통신
    1. 아두이노:엑셀기록
    2. 아두이노:파이썬과 통신
  6. 아두이노:편의함수
  7. 센서 사용
    1. 아두이노:모션센서
    2. 아두이노:온습도센서
    3. 아두이노:조도센서
    4. 아두이노:pH미터 만들기(Gravity 아날로그 pH센서)
  8. 아두이노:LCD 사용
  9. 아두이노:스위치 사용
  10. 아두이노:릴레이
  11. 아두이노:WIFI
  12. 아두이노:해결되지 않은 다양한 의문들
  13. 수업용 간단 실습
    1. 아두이노:LED
    2. 아두이노:초음파센서
  14. 분류:아두이노 프로젝트

개요[편집 | 원본 편집]

아두이노엔 Input을 위한 핀과 Output을 위한 핀이 있다.

디지털 핀[편집 | 원본 편집]

입력[편집 | 원본 편집]

0, 1로만 입력을 받는다. 3~5V가 들어오면 High(1)로 인식하고, 0~1.5V가 들어오면 Low(0)으로 인식한다.

int val = 0;  // 들어오는 신호를 담을 변수를 선언한다.

void setup(){
    pinMode(8, INPUT);  // 핀 8번을 입력모드로 설정한다.
}

void loop(){
    val = degitalRead(8);  // 8번 핀으로 들어온 신호를 변수에 대입한다.
    Serial.println(val);  // 시리얼모니터에 해당 값을 출력한다.
}

출력[편집 | 원본 편집]

출력 시엔 5V, 0V를 내보낸다.

void setup(){
    pinMode(8, OUTPUT);  // 핀 8번을 출력모드로 설정한다.
}

void loop(){
    digitalWrite(8, HIGH);  // 핀 8번에 디지털 신호 1을 넣는다.
    digitalWrite(8, LOW);  // 핀 8번에 디지털 신호 0을 넣는다.
}

이름이 HIGH, LOW인 이유는 LOW라 해서 아무 전압이 나가지 않는 게 아니라, 낮은 전압(-0.4~1.5V)이 나가고 있기 때문.

아날로그 핀[편집 | 원본 편집]

일반적으로 A0~A5 처럼 앞에 A가 붙는 핀이 아날로그 핀이다.

입력[편집 | 원본 편집]

기본적으로 외부에서 0~5V의 아날로그 신호를 받으면 아두이노에선 0~1023의 값으로 인식한다.

int val = 0;  // 들어오는 신호를 담을 변수를 선언한다.

void setup(){
    Serial.begin(9600);  // 시리얼통신 시작.(속도 9600)
    }

void loop(){
    val = analogRead(A0);  // 0번 핀으로 들어온 신호를 변수에 대입한다.
    Serial.println(val);  // 시리얼모니터에 해당 값을 출력한다.
}

출력[편집 | 원본 편집]

출력은 PWM(Pulse Width Modulation) 핀으로만 할 수 있다.(일반적으로 앞에 ~ 표시가 붙은 핀)

출력은 0~5V의 신호를 0~255 값으로 출력한다.

실제로 전압이 낮은 게 아니라, 계속해서 5V 전압이 나오는데, 신호를 보내는 시간과 보내지 않는 시간 비율을 이용해 평균전압을 5V 이하로 낮춘다.(입력도 기본 원리는 같다.)

void setup(){
    pinMode(8, OUTPUT);  // 8번 핀을 출력모드로 지정한다.
    }

void loop(){
    analogWrite(8, 10);  // 8번 핀에 10 만큼의 신호를 출력한다.(0~255)
}