Notice
Recent Posts
Recent Comments
준호씨의 블로그
Arduino - analogRead(0) 와 analogRead(A0) 는 같다 본문
반응형
http://junho85.pe.kr/620 에서 확인 했듯이
A0 는 14 이다.
#define PIN_A0 (14)
...
static const uint8_t A0 = PIN_A0;
그런데 많은 예제에서 A0 핀의 값을 읽을 때
analogRead(0)
을 쓰기도 하고
analogRead(A0)
을 쓰기도 한다.
공식홈페이지의 예제를 보아도 다음과 같이 analogPin 3 번을 A3 로 쓰지 않고 그냥 3 번을 썼다.
int analogPin = 3; // potentiometer wiper (middle terminal) connected to analog pin 3
// outside leads to ground and +5V
int val = 0; // variable to store the value read
void setup()
{
Serial.begin(9600); // setup serial
}
void loop()
{
val = analogRead(analogPin); // read the input pin
Serial.println(val); // debug value
}
출처: https://www.arduino.cc/en/Reference/AnalogRead
아무튼, 결론 부터 말하면 둘은 같다.
https://github.com/arduino/Arduino/blob/2bfe164b9a5835e8cb6e194b928538a9093be333/hardware/arduino/avr/cores/arduino/wiring_analog.c 에서 다음과 같은 코드를 볼 수 있다.
if (pin >= 14) pin -= 14; // allow for channel or pin numbers
14 이상이면 14만큼 빼준다. (칩셋에 따라 좀 다르긴 하다)
결국 0 이나 A0 이나 같게 된다.
그럼 그냥 숫자를 쓰는게 좋을까 A0 같은 값을 쓰는게 좋을까? 아두이노 공식 예제는 그냥 숫자를 쓰고 있다. 어떤 방식을 선호한다는 이야기도 없다.
개인적으로는 A0 이 좀 더 가독성이 좋다고 생각해서 A0 이 좋다고 본다. 좀 더 관련 내용을 알게 되면 좀 더 보강 해 봐야 겠다.
반응형
'메이커' 카테고리의 다른 글
Arduino - LCD Keypad Shield test (0) | 2017.07.13 |
---|---|
Arduino - Attaching LCD Keypad Shield (0) | 2017.07.13 |
Arduino - A0 는 14 번 (0) | 2017.07.04 |
Arduino - 아두이노 UNO SMD 버전 인식 안되는 문제 해결 (0) | 2017.06.14 |
아두이노 개발을 웹에서 (0) | 2017.06.13 |
Comments