본문 바로가기

아두이노우노 R4

아두이노 UNO PWM 주파수를 변경하는 방법

반응형

 

 

아두이노 UNO의 PWM 핀에서 주파수를 변경하는 방법

 

아두이노 우노는 요즘 가장 일반적으로 사용되는 개발 보드 중 하나입니다. 생각할 수 있는 거의 모든 애플리케이션에 사용할 수 있습니다. 그러한 응용 분야 중 하나는 고주파 회로에 있습니다.

 

하지만 벅 컨버터와 같은 고주파 회로에서 컨트롤러를 사용하려면 컨트롤러가 고주파 PWM 파를 생성할 수 있어야 합니다. 그리고 사용 중인 컨트롤러가 아두이노 우노라면 이 핀의 주파수를 변경하는 방법을 알고 있어야 합니다.

 

이제 많은 학생들이 익숙하지 않은 아두이노에 대한 많은 사실이 있습니다. 사실 중 하나는 이것입니다:

 

“각 PWM 핀에는 특정 기본 주파수가 있으며, 이는 해당 핀에서 아날로그 쓰기 명령이 사용될 때 호출됩니다. 그리고 이 기본 주파수는 단 한 줄의 코드를 사용하여 최고 65Khz, 최저 30Hz의 값으로 변경할 수 있습니다."라고 설명합니다.

 

아두이노 UNO의 각 PWM 핀의 기본 주파수는 다음과 같습니다:

 

1) D3 및 D11의 PWM 주파수:

490.20Hz(기본값)

 

2) D5 & D6의 경우:

976.56Hz(기본값)

 

3) D9 및 D10의 경우

490.20Hz(기본값)

 

이러한 주파수는 LED 페이드와 같은 저주파 애플리케이션에 최적입니다. 그러나 이러한 기본 주파수는 고주파 회로에는 적합하지 않습니다. 예를 들어, 1Khz는 S.M.P.S에 있어서는 아무것도 아닙니다.

 

고주파 펄스가 필요한 프로젝트가 많이 있습니다. 그러한 프로젝트 중 하나가 벅 컨버터입니다. 따라서 기본 주파수보다 낮거나 높은 주파수를 얻기 위해 주파수를 변경하는 데 사용할 수 있는 한 줄 코드는 다음과 같습니다:

 

D3 및 D11 핀의 PWM 주파수를 변경하기 위한 한 줄 코드:

 

TCCR2B = TCCR2B & B11111000 | B00000001; // for PWM frequency of 31372.55 Hz

TCCR2B = TCCR2B & B11111000 | B00000010; //  3921.16 Hz

TCCR2B = TCCR2B & B11111000 | B00000011; // 980.39 Hz

TCCR2B = TCCR2B & B11111000 | B00000100; //  (default)

TCCR2B = TCCR2B & B11111000 | B00000101; //  245.10 Hz

TCCR2B = TCCR2B & B11111000 | B00000110; //  122.55 Hz

TCCR2B = TCCR2B & B11111000 | B00000111; //  30.64 Hz

 

 

D5 및 D6 핀의 PWM 주파수를 변경하기 위한 한 줄 코드입니다:

 

TCCR0B = TCCR0B & B11111000 | B00000001; // for PWM frequency of 62500.00 Hz

TCCR0B = TCCR0B & B11111000 | B00000010; //  7812.50 Hz

TCCR0B = TCCR0B & B11111000 | B00000011; //  (default)

TCCR0B = TCCR0B & B11111000 | B00000100; //  244.14 Hz

TCCR0B = TCCR0B & B11111000 | B00000101; //  61.04 Hz

 

 

D9 및 D10 핀의 PWM 주파수를 변경하기 위한 한 줄 코드입니다:

 

TCCR1B = TCCR1B & B11111000 | B00000001; // set timer 1 divisor to 1 for PWM frequency of 31372.55 Hz

TCCR1B = TCCR1B & B11111000 | B00000010; //  3921.16 Hz

TCCR1B = TCCR1B & B11111000 | B00000011; // 490.20 Hz (default)

TCCR1B = TCCR1B & B11111000 | B00000100; //  122.55 Hz

TCCR1B = TCCR1B & B11111000 | B00000101; //  30.64 Hz

 

 

예제

 

위의 코드를 사용하여 핀 D3의 주파수를 변경해 보겠습니다. 이 회로는 프로테우스 소프트웨어에서 시뮬레이션됩니다.

 

1단계: 두 개의 아두이노를 선택하여 전면 패널에 배치합니다.

 

2단계: 각 아두이노의 디지털 핀 3(PWM 핀)을 오실로스코프에 연결합니다.

 

3단계: 각 아두이노에 대해 두 개의 개별 프로그램을 작성합니다. 첫 번째 프로그램은 기본 주파수로 PWM 신호를 출력합니다. 두 번째 보드의 경우 위에 제공된 명령을 사용하여 31372.55Hz로 설정됩니다.

 

아두이노1용 프로그램 - 핀 3의 기본 주파수 설정

 

void setup() {

pinMode(3,OUTPUT);
// // 여기에 설정 코드를 넣어 한 번 실행합니다

}

void loop() {
analogWrite(3,155);
// // 반복적으로 실행할 메인 코드를 여기에 넣습니다:}

 

 

아두이노2용 프로그램 - D3의 기본 주파수 변경하기

 

void setup() {

TCCR2B = TCCR2B & B11111000 | B00000001; // PWM 주파수 31372.55Hz로 변경
pinMode(3,OUTPUT);
}

void loop() {
analogWrite(3,155);
}

 

 

4단계: 시뮬레이션 실행

 

두 보드는 서로 다른 주파수로 PWM 신호를 출력합니다.

 

위 이미지에서 볼 수 있듯이 두 번째 보드(위쪽)는 첫 번째 보드보다 더 높은 주파수로 PWM 신호를 출력합니다.

 

여기에서 타이머와 PWM에 대해 자세히 알아보세요.

 

자주 묻는 질문

 

아두이노의 PWM 주파수는 무엇인가요?

 

아두이노 UNO와 나노의 PWM 주파수는 D3, D9, D10, D11 핀의 경우 490Hz, D5와 D6 핀의 경우 980Hz입니다.

 

아두이노에서 PWM을 제어하는 방법은 무엇인가요?

 

PWM을 제어하기 위해 아날로그 쓰기(PWM 핀, 듀티 사이클) 명령이 사용됩니다. 아두이노 UNO와 나노에는 3,5,6,9,10,11번의 6개의 PWM 핀이 있습니다. 듀티 사이클은 0에서 255까지 다양합니다.

 

 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^