안녕하세요. 오늘은 수위 센서를 사용하는 방법에 대해 알아보고자 합니다.
앞에서 배웠던 다른 센서들과 마찬가지로 수위 센서도 굉장히 간단한 센서에 속합니다.
[그림 1 : 수위 센서]
그림 1에서 볼 수 있듯이 수위 센서에는 3개의 핀이 있습니다.
먼저 S라고 적혀있는 핀은 물의 높이를 입력으로 보내주는 핀입니다.
그 옆에 있는 + 핀은 전원(5V)을 연결하는 핀입니다.
가장 오른쪽에 있는 - 핀은 그라운드(GND)에 연결하는 핀입니다.
아래의 표 1에 아두이노 보드와 수위 센서에 연결되는 각 핀의 대응 관계를 나타냈습니다.
아두이노 보드 핀 | 수위 센서 핀 |
---|---|
아날로그 0번 핀 | 신호 입력 핀(S) |
5V | + |
GND | - |
[표 1 : 아두이노 보드와 연결되는 수위 센서 핀]
1. 회로 연결
표 1에 적혀 있듯이 각 핀을 연결해줍니다. 이 정도는 너무 간단하니 빵판(bread board)없이 작업하겠습니다.
[그림 2 : 아두이노 보드와 수위 센서 연결]
2. 스케치
수위 센서의 값을 입력으로 받아서, 시리얼 모니터로 출력하는 스케치를 작성해보겠습니다.
시리얼 모니터가 생소하다면, 이 글을 참조하시기 바랍니다.
const int WATER_SENSOR_PIN = A0; void setup() { Serial.begin(9600); } void loop() { int sensorVal = analogRead(WATER_SENSOR_PIN); Serial.print("sensor value = "); Serial.println(sensorVal); delay(500); }
- 1 줄 : 수위 센서 핀을 A0 핀으로 설정합니다. 디지털 핀의 경우는 1, 2같은 숫자를 썼지만, 아날로그 핀은 A0, A1과 같이 앞에 ‘A’를 붙여 줍니다.
- 3~5 줄 : 수위 센서의 값을 시리얼 모니터로 확인하기 위해서 9600 baud rate로 Serial.begin()을 사용합니다. 디지털 핀의 경우, 입력모드인지 출력모드인지 설정해주기 위해 pinMode()함수를 사용했던 것과 다르게, 아날로그 입력은 pinMode()설정이 필요없습니다.
- 8 줄 : analogRead()함수를 이용해서 수위 센서의 값을 받아옵니다.
- 10~11 줄 : 8줄에서 입력받은 센서 값을 시리얼 모니터에 출력합니다.
- 13 줄 : 500ms 동안 쉽니다.
3. 결과
이번 실험은 수위 센서를 물에 담궈야합니다.
이때 핀이 있는 위쪽에 물이 닿게 되면 어떤 일이 벌어질지 모르니, 아래쪽의 센서 부분에만 물이 닿도록 합니다.
[그림 3 : 수위 센서를 물에 담근 모습]
그림 3과 같이 수위 센서를 물에 담그고, 시리얼 모니터를 열어보면 수위에 대한 값이 출력 됨을 확인할 수 있습니다.
물을 더 넣어보면 값이 증가하는 것도 확인할 수 있을 것 입니다.
[그림 4 : 시리얼 모니터 결과]
'아두이노' 카테고리의 다른 글
[아두이노] 팁 - 스케치 업로드가 잘 안될 때 (0) | 2016.12.01 |
---|---|
[아두이노] 부저를 이용해서 음악을 연주해보자. (0) | 2016.11.10 |
[아두이노] 소리 센서 사용하기 (0) | 2016.11.02 |
[아두이노] 시리얼 모니터와 가변저항 (0) | 2016.10.30 |
[아두이노] PWM 활용편 - LED 점점 밝게, 점점 어둡게 (0) | 2016.10.04 |