아두이노 나노의 PWM 주파수를 변경하는 방법
이 포스팅에서는 아두이노 나노의 PWM 주파수를 변경하는 방법을 보여드리겠습니다. PWM 또는 펄스 폭 변조는 입력 전압을 매우 높은 주파수로 ON/OFF하여 출력 전압을 낮추는 방법입니다. 여기서 줄인다는 것은 출력의 평균 전압 값을 얻는 것을 의미합니다.
아두이노 나노 PWM 핀
보드에는 이러한 PWM 전압 출력을 공급할 수 있는 총 6개의 PWM 핀이 있습니다. 이 핀은 3, 5,6,9,10, 11로 번호가 매겨져 있습니다. 아두이노 보드에서 PWM 핀은 핀 옆에 인쇄된 “~” 기호 또는 핀 이름 위에 표시된 “-”로 식별할 수 있습니다.
PWM 출력을 얻으려면 “analogWrite(PWM 핀, PWM 값)” 명령이 사용됩니다. PWM 값은 0에서 255 사이입니다. PWM 값 255는 출력 5V를 의미하고 0은 0V를 의미합니다. 0에서 255 사이의 PWM 값은 출력 전압이 0에서 5V 사이가 됩니다.
위에서 언급했듯이 PWM 출력은 입력 전압(5V)을 특정 주파수로 전환하는 방식으로 이루어집니다. 애플리케이션/프로젝트에 따라 이 주파수는 다를 수 있습니다. 하지만 아두이노 나노의 PWM 핀에서 PWM 출력이 생성되는 특정 기본 주파수가 있습니다.
이 기본 주파수는 일부 핀의 경우 최대 65Khz, 다른 핀의 경우 최대 30Hz의 값으로 변경할 수 있습니다. 이는 PWM 파의 모양이나 주요 감쇠를 변경하지 않고 코드 섹션에 한 줄 명령을 추가하여 수행됩니다.
기본 아두이노 나노 PWM 주파수
아두이노 나노에는 총 6개의 PWM 핀을 사용할 수 있습니다. 이 핀은 3, 5,6,9,10, 11로 번호가 매겨져 있습니다. 기본 주파수가 980Hz인 4번과 13번 핀을 제외한 모든 핀의 기본 PWM 주파수는 490Hz입니다.
D3, D9, D10 및 D11의 기본 PWM 주파수:
490.20Hz(기본값)
D5 및 D6의 기본 PWM 주파수:
976.56Hz(기본값)
이제 이러한 주파수는 LED 페이딩과 같은 저주파 애플리케이션에 최적입니다. 그러나 이러한 기본 주파수는 벅/부스트 컨버터 및 S.M.P.S와 같은 고주파 회로에는 적합하지 않습니다.
따라서 PWM 핀의 기본 주파수보다 낮거나 높은 주파수를 얻기 위해 PWM 핀을 출력으로 초기화하기 전에 사용할 수 있는 한 줄 명령은 다음과 같습니다:
아두이노 나노 PWM 핀 주파수 변경을 위한 명령어
Code for Available PWM frequency on D3 & D11:
TCCR2B = TCCR2B & B11111000 | B00000001; // for PWM frequency of 31372.55 Hz
TCCR2B = TCCR2B & B11111000 | B00000010; // for PWM frequency of 3921.16 Hz
TCCR2B = TCCR2B & B11111000 | B00000011; // for PWM frequency of 980.39 Hz
TCCR2B = TCCR2B & B11111000 | B00000100; // for PWM frequency of 490.20 Hz (The DEFAULT)
TCCR2B = TCCR2B & B11111000 | B00000101; // for PWM frequency of 245.10 Hz
TCCR2B = TCCR2B & B11111000 | B00000110; // for PWM frequency of 122.55 Hz
TCCR2B = TCCR2B & B11111000 | B00000111; // for PWM frequency of 30.64 Hz
Code for Available PWM frequency on D5 & D6:
TCCR0B = TCCR0B & B11111000 | B00000001; // for PWM frequency of 62500.00 Hz
TCCR0B = TCCR0B & B11111000 | B00000010; // for PWM frequency of 7812.50 Hz
TCCR0B = TCCR0B & B11111000 | B00000011; // for PWM frequency of 976.56 Hz (The DEFAULT)
TCCR0B = TCCR0B & B11111000 | B00000100; // for PWM frequency of 244.14 Hz
TCCR0B = TCCR0B & B11111000 | B00000101; // for PWM frequency of 61.04 Hz
Code for Available PWM frequency on D9 & D10:
TCCR1B = TCCR1B & B11111000 | B00000001; // for PWM frequency of 31372.55 Hz
TCCR1B = TCCR1B & B11111000 | B00000010; // for PWM frequency of 3921.16 Hz
TCCR1B = TCCR1B & B11111000 | B00000011; // for PWM frequency of 490.20 Hz (The DEFAULT)
TCCR1B = TCCR1B & B11111000 | B00000100; // for PWM frequency of 122.55 Hz
TCCR1B = TCCR1B & B11111000 | B00000101; // for PWM frequency of 30.64 Hz
프로테우스(회로 시뮬레이션 프로그램) 에서 아두이노 나노 PWM 주파수를 변경하는 방법
위의 명령어를 적용했을 때 주파수가 어떻게 변화하는지 보여드리기 위해 프로테우스에서 아두이노 나노용 회로를 시뮬레이션해 보았습니다. 이를 위해 두 개의 아두이노 나노가 선택되어 있으며 PWM 핀 3이 사용됩니다. 나노 1은 기본 주파수인 490Hz(명령 없이)를 생성하고 다른 하나는 3921Hz의 PWM 주파수를 생성합니다. 그런 다음 두 아두이노 나노의 출력이 오실로스코프에 제공됩니다.
확인해보세요: 프로테우스에 아두이노 라이브러리를 추가하고 아두이노 프로젝트를 시뮬레이션하는 방법
1. 두 개의 아두이노를 선택하고 전면 시트에 배치합니다.
2. 각 아두이노의 디지털 핀 3(PWM 핀)을 오실로스코프에 연결합니다.
3. 각 아두이노마다 2개의 프로그램을 따로 작성한 후 헥스 파일을 따로 업로드합니다:
Nano1용 프로그램 A - 핀 3의 기본 주파수 :
void setup() {
pinMode(3,OUTPUT);
}
void loop() {
analogWrite(3,155);
}
Nano2용 프로그램 B - 핀 3의 주파수가 변경되었습니다:
void setup() {
TCCR2B = TCCR2B & B11111000 | B00000001; // for PWM frequency of 3921.16 Hz
pinMode(3,OUTPUT);
}
void loop() {
analogWrite(3,155);
}
4. 시뮬레이션 실행
5. 이 명령을 void setup() 에 사용하면 주파수가 매우 높은 값으로 증가하는 것을 오실로스코프에서 명확하게 볼 수 있습니다:
TCCR2B = TCCR2B & B11111000 | B00000010; // for PWM frequency of 3921.16 Hz
참고 문서: 영문 자료
'아두이노우노 R4' 카테고리의 다른 글
아두이노 UNO R4와 R3: 종합적인 검토 및 호환성 가이드 (0) | 2024.05.21 |
---|---|
아두이노 UNO PWM 주파수를 변경하는 방법 (0) | 2024.05.21 |
아두이노 우노 R4 LED Matrix 제어 꿀팁 (0) | 2024.05.21 |
아두이노 우노 R4 WiFI RTC 제어 꿀팁 (0) | 2024.05.20 |
키보드 수정자 및 특수 키 - 아두이노 우노 R4 키보드 기능 (1) | 2024.05.18 |
아두이노 우노 R4 DAC 제어 꿀팁 (0) | 2024.05.17 |
아두이노 우노 R4 설치 - Arduino IDE 2.0 (0) | 2024.05.16 |
Arduino Uno R4 WiFi 핀 맵 (1) | 2024.04.30 |
더욱 좋은 정보를 제공하겠습니다.~ ^^