아두이노:핀 사용
아두이노 관련 정보를 모으기 위한 틀. 틀:아두이노
- 아두이노:개요
- 아두이노:하드웨어
- 아두이노:코드
- 아두이노:핀 사용
- 아두이노:시리얼 통신
- 아두이노:편의함수
- 센서 사용
- 아두이노:LCD 사용
- 아두이노:스위치 사용
- 아두이노:릴레이
- 아두이노:WIFI
- 아두이노:해결되지 않은 다양한 의문들
- 수업용 간단 실습
- 분류:아두이노 프로젝트
개요[편집 | 원본 편집]
아두이노엔 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)
}