준호씨의 블로그
아두이노 - LED_BUILTIN 13은 어디에 정의되어 있을까? 본문
아두이노를 처음 시작할 때 blink예제로 시작하는 경우가 많습니다. 아래는 blink예제입니다.
예제 코드에 보면 LED_BUILTIN이 보이는데 보통 책에서는 아두이노 우노 보드 내장 LED를 뜻하고 13번과 연결되어 있다고 나옵니다. 보통 그러려니 하고 넘어갑니다.
그리고 LED_BUILTIN대신 13으로 고쳐 넣어도 잘 동작합니다.
그렇다는 것은 어디선가 LED_BUILTIN을 13으로 바꿔준다고 생각할 수 있는데요. variants/standard/pins_arduio.h에 13으로 선언되어 있는 것을 확인할 수 있습니다.
아래는 github url입니다.
컴파일 로그를 상세히 나오도록 설정해서 보면 /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을 체크해주면 됩니다.
'개발이야기' 카테고리의 다른 글
추천영상 - 그런 REST API로 괜찮은가 Deview 2017 (0) | 2021.04.01 |
---|---|
아두이노 - 로그로 알아보는 빌드 과정 (0) | 2021.03.15 |
손코딩 뇌컴파일 눈디버깅 소개 슬라이드를 보고 (0) | 2021.03.10 |
docker-compose - docker.credentials.errors.InitializationError: docker-credential-gcloud not installed or not available in PATH 오류 해결 (0) | 2021.03.07 |
jekyll 실행 시킬 때 `require': cannot load such file -- webrick (LoadError) 오류가 난다면 bundle add webrick (0) | 2021.03.06 |