1. 시작
일전에 여러 photoresistor 의 수치적인 차이를 확인해 보았습니다.
* Hardware | Arduino 로 Photoresister 가지고 놀기 - 2
- http://chocoball.tistory.com/entry/Hardware-Arduino-Photoresister-2
여기서 사용했던 arduino 의 또다른 기능.
그것은 AREF 였습니다.
위의 글에서는 참고한 사이트를 단순히 따라하다 보니 진정 AREF 의 기능을 모르고 사용했더랬습니다.
오늘은 이 AREF 에 대해 좀더 알아보도록 하죠.
2. What is the AREF?
왜 욕하냐구요?
아닙니다. Arduino 는 영어하는 형들이 만들었으므로, 기본 영어로 모든 문서가 되어 있습니다.
AREF 는 Analog REFerence 의 약자 입니다.
가장 명확한 설명은 당연 arduino 제조사 사이트겠지요.
* analogReference()
- https://www.arduino.cc/reference/en/language/functions/analog-io/analogreference/
다만 뭔가 와닿지 않습니다.
다른 사이트를 살펴 보지요.
* Arduino Tutorials – Chapter 22 – the AREF pin
- http://tronixstuff.com/2013/12/12/arduino-tutorials-chapter-22-aref-pin/
설명이 자세하게 잘 나와 있습니다.
요는, analogRead() 를 통해서 입력받은 voltage 값이 작거나 차이가 적을 때, digital 화 시켜서 leveling 을 해준다는 것 입니다.
실제로 photoresistor 를 가지고 놀았을 때, 소자간의 차이가 거의 없는 경우는,
단순히 voltage 값만 안다고 해서 그 차이를 느낄 수가 없었습니다.
3. ADC
이런 analog 값을 digital 로 바꿔주는 기능이 ADC 입니다.
그럼 ADC가 뭐야? 라고 할 수 있습니다. (욕 아니예요)
* Analog to Digital Conversion
- https://learn.sparkfun.com/tutorials/analog-to-digital-conversion
위의 그림처럼 5V 기준으로 4가지로 레벨링 한다고 합시다 (0, 1, 2, 3),
입력값이 1V라고 한다면 1.25V ~ 0V 사이이므로 0값을 리턴하고, 3V 라고 한다면 2값을 리턴하게 됩니다.
위의 경우는 2의 2승인 2-bit 해상도의 ADC 입니다.
Arduino 는 10-bit ADC 가 내장되어 있어서, 2의 10승인 1024 leveling 이 가능합니다.
실제 output 값은 0~1023 까지가 되지요.
아래는 실제 photoresistor 를 측정했을 시의 표시 값들입니다.
실제 voltage 값이 아니라 0~1023 으로 leveling 한 값이 측정되게 됩니다.
4. Sketch
그럼 어떻게 사용하는 것일까요?
아래 소스처럼 선언해주면 됩니다.
void setup() { ... analogReference(EXTERNAL); ... }
옵션의 의미는 다음과 같습니다.
* DEFAULT
- 5V 전압이 기본인 arduino 에서는 5V,
3.3V 전압을 사용하는 arduino 에서는 3.3V 를 기준 전압으로 사용합니다.
* INTERNAL
- 내장 기준 전압을 사용한다는 의미이며, ATmega168/ATmega328 를 사용한 arduino 에서는 1.1V,
ATmega8 를 사용한 보드에서는 2.56V 가 기준 전압이 됩니다.
Arudino MEGA 는 아래 두가지 (1V1 / 2V56) 기준이 사용됩니다.
* INTERNAL1V1 (only for Arduino MEGA)
- 내장 1.1V 를 기준 전압으로 사용합니다.
* INTERAL2V56 (only for Arduino MEGA)
- 내장 2.56V 를 기준 전압으로 사용합니다.
* EXTERNAL
- AREF 핀에 외부 전원 (0~5V)을 연결하여, 이를 기준 전압으로 사용합니다.
- 이것을 우리가 사용한 것이죠.
FIN
이제 analogRead() 를 사용할때면 analogReference() 를 사용하여 쉽게 leveling 할 수 있을것 같습니다.
'Hardware' 카테고리의 다른 글
Hardware | Cross cable 로 MediaWiki 서버 연결해 보기 (0) | 2018.03.25 |
---|---|
Hardware | RadarBox24 신청부터 설치까지 (0) | 2018.03.07 |
Hardware | HC-SR501 PIR motion sensor - 2 (2) | 2018.03.01 |
Hardware | Arduino 로 Photoresister 가지고 놀기 - 2 (0) | 2018.02.28 |
Hardware | Digitial Compass - HMC5883L 사용기 - 1 (0) | 2018.02.19 |