아두이노 입력 이해하기
아두이노에서 입력은 센서와 같이 외부환경에 대한 값을 아두이노로 보내는 값이라고 생각하면 쉽다. 입력하는 방법은 다양한데, 입력부품을 이용하거나 또는 시리얼모니터를 통해 데이터 값을 입력 받을 수도 있다. 여기에서는 입력 부품에 대해서 입력하는 방법을 알아본다.
아날로그 입력과 디지털 입력
전자 부품(입력부품)에 따라 아날로그 입력으로 받을 지 디지털 입력으로 받을 지 구분해서 코드를 작성해야 한다.
아래에 주로 아날로그/디지털로 입력받는 부품들을 표로 정리해두었다.
입력방법 구분 | |
아날로그 입력 | 디지털 입력 |
가변저항 조도센서 온도 센서 거리 센서 가속도 센서 압력 센서 |
스위치 기울기 센서 인체 감지 센서 적외선 거리 센서 (라인 감지센서) |
analogRead | digitalRead |
아두이노 우노에서 아날로그 입력 포트와 디지털 입력 포트는 구분되어 있다.
아날로그 입력 : A0 ~A5
디지털 입력 : D0 ~D13 (A0 ~A5을 D14 ~ D19로도 사용 가능하다.) / 시리얼 통신(UART, I2C, SPI)
아날로그 입력 함수
아두이노에 아날로그 입력 부품과 연결해서 데이터 값을 읽으려면 analogRead 함수를 사용해야 한다. 이 함수의 반환 값은 0 ~ 1023이다. 아날로그의 값을 1024개로 나누어 읽을 수 있다.
analogRead(핀 번호);
주어진 핀 번호의 아날로그 입력 값을 반환한다. (범위 : 0 ~ 1023)
예시 : analogRead(A0);
디지털 입력 함수
아두이노에 디지털 입력 부품과 연결해서 데이터 값을 읽으려면 digitalRead 함수를 사용해야 한다. 이 함수의 반환 값을 0과 1이다. 디지털 입력을 받기 위해서 디지털 입출력핀의 설정을 입력으로 해야한다. 그래서 pinMode 함수를 같이 사용해야한다.
digitalRead(핀 번호);
주어진 핀 번호의 디지털 입력 값을 반환한다. (범위 : 0(HIGH) 또는 1(LOW)
예시 : digitalRead(13);
pinMode(핀 번호, 모드);
주어진 핀 번호를 입력 또는 출력으로 설정한다. digitalRead() 보다 먼저 설정되야 한다.
예시 : pinMode(13, INPUT);
디지털 입력 예시
아래의 링크를 클릭하면 아두이노 없이도 팅커캐드에서 회로를 시뮬레이션 할 수 있다.
'코드' 버튼을 클릭하면 코드를 확인할 수 있고 '시뮬레이션 시작' 버튼을 클릭한 후 스위치를 누르고 있으면 아두이노 13번 핀 밑에 LED에 불이 켜지는 것을 확인할 수 있다. 누르지 않을 때는 LED 불이 꺼진다.
https://www.tinkercad.com/things/lza9DZWBYn1
Circuit design digitalRead
Circuit design digitalRead created by myway 내맘대로 with Tinkercad
www.tinkercad.com