정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

dc모터 코드 작성에서 pwm값을 125로 돌린다의 정확한 의미에 대한 질문이요
도짱 | 2020-04-09

pwm이 가능한 3번핀을 이용해서 DC모터의 세기를 PWM값 125로 돌리고 싶다 이때의 코드를 작성하라.라는 것을 void loop를 넣어서 코드를 짜보라고 하셨습니다. void loop라는거는 계속 돌아간다는것이기때문에 125까지 증가하고 감소하고를 반복해야하는 것 아닌가요? 단순히 증가만하는것도 가능한가요? 그리고 loop이기 때문에 125까지 점점증가시켜야하는 것 맞죠? 아니면 125로 바로 시작하도록 작성해야하나요?

const int MOTOR=3;

void setup() {
  // put your setup code here, to run once:
pinMode(MOTOR,OUTPUT);
}

void loop() {
for(int i=0; i<126; i++)
{
analogWrite(MOTOR,i);
delay(10);
}
delay(2000);
for(int i=125; i>0; i--)
{
  analogWrite(MOTOR,i);
  delay(10);
}
delay(2000);
}

프로필사진

판다마니아 2020-04-16 15:51:20

올려주신 코드는 3번핀에 연결된 DC모터를 PWM 0부터 125까지 서서히 올렷다가 다시 125부터 1까지 내리는 동작입니다.

 

for문이 있기 때문에 for문 괄호 안에 있는 동작이 조건만큼 반복하게 되는거죠.

 

코드는 첫번째 for문이 모터의 속도를 서서히 올리는 동작이고 딜레이 2초후 그다음 나오는 for문에서 속도를 서서히 감소시키는 동작을 하니 감소하는 코드를 제외하시면 증가하는 코드만 남기 때문에 모터는 pwm 0~125까지 동작을 반복하게 됩니다.

 

실질적으로 속도 125로만 동작시키시고 싶으시면 for 문 다 제외하고 analogWrite(MOTOR, 125); 만 넣으시면 동작하게 됩니다.

이전글   |    우노보드 마그네틱센서 + LED 사용시 질문입니다.... 2020-04-08
다음글   |    아두이노로 블랙박스를 구현하고자 하는데요... 2020-04-12