아두이노(ATmega328P 기반 Uno 기준)가 켜질 때, 모든 디지털 핀의 기본값(Default)은 '입력(INPUT)' 상태로 초기화됩니다. 이 내부 메커니즘 때문에 다음과 같은 상황에서 생략이 가능해집니다.
① 아날로그 입력 핀을 사용할 때 (analogRead)
가장 자주 보시는 경우입니다. analogRead(A0)를 호출하면 아두이노 내부에 있는 ADC(A/D 컨버터) 하드웨어가 해당 핀을 아날로그 입력 모드로 알아서 전환하여 값을 읽어옵니다. 따라서 pinMode(A0, INPUT);을 쓸 필요가 없습니다.
② 일반 디지털 핀을 '입력'으로만 쓸 때 (digitalRead)
아두이노의 핀은 부팅 시 기본적으로 INPUT 상태입니다. 예를 들어 2번 핀에 센서를 연결하고 바로 digitalRead(2);를 하더라도 에러 없이 작동합니다. 이미 기본값이 입력 상태이기 때문입니다.
③ PWM 출력을 할 때 (analogWrite)
디지털 3, 5, 6, 9, 10, 11번 같은 PWM 핀에 analogWrite(3, 125);를 사용할 때도 pinMode 생략이 가능합니다. analogWrite() 함수 내부에 해당 핀을 출력 모드로 자동 설정하는 코드가 내장되어 있기 때문입니다.



공학계열 장윤경 교수님