본문 바로가기
만들기/아두이노

아두이노 시리얼모니터와 핀모드

by 훨훨날아 2021. 6. 28.

아두이노 모터를 컨트롤 하는 과정에서 어떤 경우에 시리얼 모니터에 값이 출력되지 않았다. 비슷한 코드에서 어떤 경우에는 되고 어떤 경우에는 안되서 이것저것 비교하면서 살펴보니 문제(?)를 찾을 수 있었다.

먼저, 시리얼 모니터가 작동하지 않았을 때는 pinMode가 Serial.begin()보다 나중에 정해져 있었다. Serial.begin이 pinMode보다 뒷쪽에 있을 경우에는 시리얼 모니터에서 응답하지 않았다.

작동할때

void setup(){
  
  // 스텝모터 PWM 제어핀 출력 설정
  pinMode(15,OUTPUT); /* PWM pin for Speed Control */
  pinMode(3,OUTPUT); /* Motor control pin 1 */
  pinMode(1,OUTPUT);/* Motor control pin 2 */

  pinMode(14,OUTPUT); /* PWM pin for Speed Control */
  pinMode(12,OUTPUT); /* Motor control pin 1 */
  pinMode(13,OUTPUT);/* Motor control pin 2 */

  //esp8266의 시리얼 모니터 설정
  Serial.begin(115200);
  
}



작동하지 않을 때
void setup(){
  
  //esp8266의 시리얼 모니터 설정
  Serial.begin(115200);
  
  // 스텝모터 PWM 제어핀 출력 설정
  pinMode(15,OUTPUT); /* PWM pin for Speed Control */
  pinMode(3,OUTPUT); /* Motor control pin 1 */
  pinMode(1,OUTPUT);/* Motor control pin 2 */

  pinMode(14,OUTPUT); /* PWM pin for Speed Control */
  pinMode(12,OUTPUT); /* Motor control pin 1 */
  pinMode(13,OUTPUT);/* Motor control pin 2 */
  
}

 

아두이노 홈페이지 Serial.read 예제에서 보면 serial.begin과 pinMode의 위치는 상관이 없는 것 같은데 안되는 것을 보면 알지못하는 어떤 이유가 있을 것 같다.

https://www.arduino.cc/en/Tutorial/BuiltInExamples/DigitalReadSerial

 

Digital Read Serial

Open-source electronic prototyping platform enabling users to create interactive electronic objects.

www.arduino.cc

 

 

반응형