2016-11-19 7 views
1

저는 최근에 C++과 Arduino Coding을 시작했습니다. 예를 들어 Arduino UNO R3, Arduino Mini 및 Arduino 호환 Teensy 3.2와 같은 다른 게시판이 있습니다.C++에서 Arduino 하드웨어 사양을 읽으십시오.

내 프로그램이 특정 핀을 자동으로 선택하도록하고 싶습니다. EEPROM 라이브러리 (라이브러리가 올바른 용어인지 확신 할 수 없다. 내가 C++에 대해 새로운 것을 말한 것처럼)는 각 보드의 EEPROM 크기를 얻을 수있다. 보드에 입력/출력 핀으로 사용할 수있는 디지털/아날 그램 핀 수를 다른 데이터로 가져 오는 방법이 있습니까?

답변

2

디지털 핀의 수는 NUM_DIGITAL_PINS 매크로에 정의되어 있습니다.

아날로그 입력 핀 수는 NUM_ANALOG_INPUTS 매크로에 정의되어 있습니다.

매크로는 (OP의 요청에 의해 추가)에 있습니다 :

우노 : https://github.com/arduino/Arduino/blob/1.6.12/hardware/arduino/avr/variants/standard/pins_arduino.h#L28-L29

#define NUM_DIGITAL_PINS   20 
#define NUM_ANALOG_INPUTS 6 

미니을 : https://github.com/arduino/Arduino/blob/1.6.12/hardware/arduino/avr/variants/standard/pins_arduino.h#L28

#define NUM_DIGITAL_PINS   20 

,

https://github.com/arduino/Arduino/blob/1.6.12/hardware/arduino/avr/variants/eightanaloginputs/pins_arduino.h#L25

#include "../standard/pins_arduino.h" 
#undef NUM_ANALOG_INPUTS 
#define NUM_ANALOG_INPUTS 8 

얼른 3.X : https://github.com/PaulStoffregen/cores/blob/1.31/teensy3/core_pins.h#L97-L127

#if defined(__MK20DX128__) 

#define CORE_NUM_TOTAL_PINS  34 
#define CORE_NUM_DIGITAL  34 
#define CORE_NUM_INTERRUPT  34 
#define CORE_NUM_ANALOG   14 
#define CORE_NUM_PWM   10 
#elif defined(__MK20DX256__) 
#define CORE_NUM_TOTAL_PINS  34 
#define CORE_NUM_DIGITAL  34 
#define CORE_NUM_INTERRUPT  34 
#define CORE_NUM_ANALOG   21 
#define CORE_NUM_PWM   12 
#elif defined(__MKL26Z64__) 
#define CORE_NUM_TOTAL_PINS  27 
#define CORE_NUM_DIGITAL  27 
#define CORE_NUM_INTERRUPT  24 // really only 18, but 6 "holes" 
#define CORE_NUM_ANALOG   13 
#define CORE_NUM_PWM   10 
#elif defined(__MK64FX512__) 
#define CORE_NUM_TOTAL_PINS  64 
#define CORE_NUM_DIGITAL  64 
#define CORE_NUM_INTERRUPT  64 
#define CORE_NUM_ANALOG   27 
#define CORE_NUM_PWM   20 
#elif defined(__MK66FX1M0__) 
#define CORE_NUM_TOTAL_PINS  64 
#define CORE_NUM_DIGITAL  64 
#define CORE_NUM_INTERRUPT  64 
#define CORE_NUM_ANALOG   25 
#define CORE_NUM_PWM   22 
#endif 

https://github.com/PaulStoffregen/cores/blob/1.31/teensy3/pins_arduino.h#L157-L158

#define NUM_DIGITAL_PINS CORE_NUM_DIGITAL 
#define NUM_ANALOG_INPUTS CORE_NUM_ANALOG 

다른 보드와 비슷한 위치에 있습니다. 해당 보드의 boards.txt에 설정된 build.variant 값을 확인한 다음 보드 플랫폼의 variants 폴더 아래에있는 같은 이름의 폴더로 이동하면됩니다.

이러한 변형 파일을 살펴보면 다른 유용한 것들을 발견 할 수 있습니다.

+0

흥미 롭 군, 나는 이것을 위해 어떤 근원을 찾아내는 것처럼 보인다. 어떻게 그것에 왔습니까? 가장 좋은 답을 알려 드리 겠지만, 당신이 발견 한 곳을 업데이트 할 수 있다면 정말 행복 할 것입니다. 고마워요! :) – KoalaGangsta

+0

나는 그것을 내 답변에 추가하려고했으나 보드에 따라 약간 다르기 때문에 나는 그것을 제거했다. – per1234

+0

많은 노력에 감사드립니다! :) – KoalaGangsta