준호씨의 블로그

아두이노 - LED_BUILTIN 13은 어디에 정의되어 있을까? 본문

개발이야기

아두이노 - LED_BUILTIN 13은 어디에 정의되어 있을까?

준호씨 2021. 3. 14. 23:22
반응형

아두이노를 처음 시작할 때 blink예제로 시작하는 경우가 많습니다. 아래는 blink예제입니다.

예제 코드에 보면 LED_BUILTIN이 보이는데 보통 책에서는 아두이노 우노 보드 내장 LED를 뜻하고 13번과 연결되어 있다고 나옵니다. 보통 그러려니 하고 넘어갑니다.

그리고 LED_BUILTIN대신 13으로 고쳐 넣어도 잘 동작합니다.

그렇다는 것은 어디선가 LED_BUILTIN을 13으로 바꿔준다고 생각할 수 있는데요. variants/standard/pins_arduio.h에 13으로 선언되어 있는 것을 확인할 수 있습니다.

아래는 github url입니다.

 

arduino/ArduinoCore-avr

The Official Arduino AVR core. Contribute to arduino/ArduinoCore-avr development by creating an account on GitHub.

github.com

컴파일 로그를 상세히 나오도록 설정해서 보면 /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/variants경로를 기본 include경로로 설정하는 것을 볼 수 있습니다.

그래서 해당 파일을 직접 고쳐주면 LED_BUILTIN값이 바뀌는 것을 확인해볼 수 있습니다.

pins_arduino.h파일을 찾아서 아래처럼 134로 고쳐주면 어떻게 될지 확인해보겠습니다.

!!! 주의: 테스트로 고친 코드이니 원래대로 돌려두는 걸 잊으면 안 됩니다.!!!

아두이노 스케치에다가 시리얼 출력 코드를 추가하고 시리얼 모니터를 띄워보면 고친 값인 134가 찍히는 모습을 볼 수 있습니다.

결론적으로 variants/standard/pins_arduio.h에 LED_BUILTIN 13으로 정의된 값을 사용한다는 것을 확인할 수 있었습니다.

아두이노 보드 버전에 따라 이 값의 위치는 달라질 수 있습니다.

아두이노 종류에 따라 다른 pins_arduino.h를 사용하게 될 것입니다.

 

참고로 컴파일 로그를 상세히 찍어보려면 Preferences에서 Show verbose output during설정에서 compilation을 체크해주면 됩니다.

반응형
Comments