안녕하세요.
디지털 입출력 함수는 아두이노를 제어할 때 제일 먼저 다루게 되는 기능입니다.
아두이노 우노를 기준으로 디지털 입출력 핀 총 14개를 입력 또는 출력으로 설정해서 사용합니다.
핀 번호 0번에서 13번까지 핀으로 구성되며, 이 중 몇 개의 핀은 부가적인 기능이 있습니다.
디지털 입출력에 대한 하드웨어 설명은 다른 포스팅에서 설명하도록 하며 본 포스팅에서는 디지털 입출력에 대한 사용법에 한정해서 다루겠습니다.
먼저 디지털 입출력에 대한 함수 3개를 알아보겠습니다.
첫 번째 만나볼 함수는 pinMode() 함수입니다.
이 함수는 지정된 디지털 핀을 입력 핀 또는 출력 핀으로 동작하게 합니다. 부가적으로 입력 설정 옵션 중 하나로 내부 풀업저항을 함께 사용하도록 설정할 수 있습니다.
이 저항은 외부의 스위치 회로와 연결할 때 부가적인 저항 회로를 제거할 수 있습니다.
함수.
pinMode(pin, mode)
매개변수.
pin: 디지털 핀 번호
mode: INPUT(입력), OUTPUT(출력), INPUT_PULLUP(입력_내부 풀업)
반환.
없음
두 번쨰 만나볼 함수는 digitalWrite() 함수 입니다.
이 함수는 지정된 디지털 핀이 출력으로 설정되었을 때, HIGH 또는 LOW를 선택하여 지정된 핀에 대응하는 5[V] 또는 0[V]를 출력하게 합니다.
만일 지정된 디지털 핀이 입력으로 설정되었다면, HIGH는 "내부 풀업저항 활성화", LOW는 "내부 풀업저항 비활성화" 동작을 하게 합니다. 그러나 내부 풀업저항의 사용은 pinMode() 함수를 사용하는 것이 올바른 방법입니다.
함수.
digitalWrite(pin, value)
매개변수.
pin: 디지털 핀 번호
value: HIGH(5[V]), LOW(0[V])
반환.
없음
세 번쨰 만나볼 함수는 digitalRead() 함수 입니다.
이 함수는 지정된 디지털 핀이 입력 또는 출력으로 설정되었을 때, 해당 핀에 입력되는 5[V] 또는 0[V]를 읽어와 대응하는 HIGH 또는 LOW로 반환합니다.
함수.
digitalRead(pin)
매개변수.
pin: 디지털 핀 번호
반환.
HIGH(5[V]), LOW(0[V])
다음은 위에서 설명드린 디지털 입출력 제어 함수 3개를 사용한 예제입니다.
샘플코드1. 디지털 13번 핀을 출력으로 설정하고 1초에 한 번 켜고 끄는 동작 반복
void setup()
{
pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, HIGH);
delay(1000);
}
다음은 ARDU-STAND V1에서 샘프코드1을 구동한 영상입니다.
[ARDU-STAND V1 샘플코드1 구동 영상]
void setup()
{
for(int i = 0; i <= 13; i++) pinMode(i, OUTPUT);
}
void loop()
{
for (int on = 0; on <= 13; on++)
{
digitalWrite(on, HIGH);
delay(200);
}
for (int off = 0; off <= 13; off++)
{
digitalWrite(off, LOW);
delay(200);
}
}
다음은 ARDU-STAND V1에서 샘프코드2를 구동한 영상입니다.
[ARDU-STAND V1 샘플코드2 구동 영상]
샘플코드3. 디지털 13번 핀을 입력으로 설정하고 푸시버튼을 통해 입력 읽어와 7번 핀에 출력하기
void setup()
{
pinMode(13, INPUT);
pinMode(7, OUTPUT);
}
void loop()
{
bool nPushBtn;
nPushBtn = digitalRead(13);
if (nPushBtn == HIGH) digitalWrite(7, HIGH);
else digitalWrite(7, LOW);
}
처음 푸시버튼이 눌렸을 때 13번 핀 LED가 켜지는 이유는 13번 핀에 HIGH가 입력을 모니터링 할 수 있어 LED가 켜지지거나 꺼집니다. 스케치 업로드 이후 13번 핀에 입력이 들어오면 7번핀에 똑같이 출력이 되는 동작을 확인할 수 있습니다.
[ARDU-STAND V1 샘플코드3 구동 영상]
이상으로 아두이노의 디지털 입출력에 대한 동작에 대해 살펴 보았습니다.
만일 잘못되거나 부족한 정보는 추후 업데이트 하겠습니다.
감사합니다.
'앱스킷(APPSKIT) 강좌' 카테고리의 다른 글
[앱스킷](BLUE-ON V1) 저전력 블루투스 모듈 사용방법 알아보기 - 2편 (0) | 2018.11.29 |
---|---|
[앱스킷](BLUE-ON V1) 저전력 블루투스 모듈 사용방법 알아보기 - 1편 (0) | 2018.11.29 |
[코딩노트_문자열] String 클래스 (0) | 2018.11.29 |
[코딩노트_스케치] 스케치 동작원리 (0) | 2018.11.29 |
[앱스킷](TEMP-ON V1) I2C 온습도 센서 모듈 사용방법 알아보기 (0) | 2018.11.28 |
댓글