디지털(Digital)
- 아날로그의 연속적인 실수가 아닌, 특정한 최소 단위를 갖는 이산적인 수치를 이용하여 처리하는 방법
- 1(켜짐) 0(꺼짐)과 같이 1/0으로 이산적인 수치
- 디지털 핀
- 아두이노 우노에서는 DIGITAL 0~13까지 적혀있는 핀이 있는데 이 이 부분이 디지털 핀 영역이다.
- 디지털핀을 input 또는 output으로 사용가능(Digital In / Digital out)
디지털 핀 초기화(pinMode)
- 디지털 핀을 사용하려면 무조건 초기화를 해주고 사용해야 함.
pinMode(핀번호, 입/출력);
//13번 핀을 입력으로 설정
pinMode(13, INPUT); //INPUT 대신 0 사용가능
//13번 핀을 출력으로 설정
pinMode(13, OUTPUT); //OUtPUT 대신 1 사용가능
디지털 핀 출력(digitalWrite)
- HIGH / 1 = 5V
- LOW / 0 = 0V
- LED의 회로가 위의 사진과 같이 연결되어 있다면 HIGH에서 LED의 불이 들어오고 LOW에서 불이 꺼진다.
digitalWrite(핀번호, H/L);
//13번 핀에 디지털 신호 High를 보낸다.
digitalWrite(13, HIGH); // HIGH 또는 1
//13번 핀에 디지털 신호 LOW를 보낸다.
digitalWrite(13, LOW); // LOW 또는 0
디지털 핀 입력(digitalRead)
- 5V와 13번핀을 스위치로 연결하였을 때 스위치를 누르면 5V가 13번 핀으로 흐르게 되고 누르지 않는다면 13번 핀은 0V값을 가지게 된다.
- digitalRead는 이런 스위치에 따른 HIGH / LOW 값을 읽을 수 있다.
//읽은 신호값을 저장할 변수
int a;
//13번 핀의 디지털 신호 읽기
a = digitalRead(13);
//a에는 HIGH 또는 LOW의 값이 들어가게 된다.
플로팅 현상
- 디지털 핀을 입력으로 설정하면 입력 핀 주위에 아주 작은 전류가 흐르기 때문에 디지털 핀의 값이 HIGH / LOW에서 왔다갔다 하는 현상
- 해결방법으로 전압을 LOW 또는 HIGH로 고정시켜줘야 한다.
- 풀다운(Pull Down) : 전압을 LOW에 고정, 저항을 GND 쪽으로 연결
- 풀업(Pull Up) : 전압을 HIGH에 고정, 저항을 VCC쪽으로 연결
아날로그
- 연속적으로 변하는 물리량(전압의 세기, 소리의 세기 등...), 연속적인 실수 형태로 나타낼 수 있다.
- 아날로그 핀
- A0~A5가 아날로그 핀 영역이다.
- 전압의 크기를 읽을 때 사용
- 아두이노 우노에서 아날로그 출력 핀을 디지털 핀 영역에 존재한다.
- [~번호] 모양의 핀이 아날로그 출력(PWM)을 할 수 있는 핀이다.(0~5V)
아날로그 출력(analogWrite)
- 아날로그 신호를 출력할 때 사용한다.
- 0(0v)~255(5V) 출력 값으로 가능
//11번핀의 전압을 0V로 설정
analogWrite(11, 0);
//11번핀의 전압을 5V로 설정
analogWrite(11, 255);
//11번핀의 전압을 2.5로 설정
analogWrite(11, 127);
아날로그 입력(analogRead)
- 아날로그의 신호 값을 읽는다.
- 값은 0(0V)~1023(5V)까지 받을 수 있다.
//아날로그 신호 입력 값을 저장할 변수
int a;
//A0핀의 아날로그신호 값을 저장
a = analogRead(A0);
// a : 0(0V) ~ 1,023(5V)
'연구노트 > 아두이노 강좌' 카테고리의 다른 글
06장 LED와 버튼 사용하기; (0) | 2020.12.31 |
---|---|
05장 아두이노 시작하기(Serial.println, Serial.print, blink예제) (0) | 2020.12.30 |
03장 아두이노를 위한 프로그래밍 기초(2) (0) | 2020.11.25 |
03장 아두이노를 위한 프로그래밍 기초(1) (0) | 2020.11.15 |
02장 아두이노 준비하기 (0) | 2020.11.13 |