BASIC4MCU | 질문게시판 | 아두이노 주파수 변경하는법
페이지 정보
작성자 파란하늘 작성일2023-12-12 15:28 조회916회 댓글1건본문
주파수 변경에 대해서 찾아보니까 PWM.h 헤더를 써서 조절하라고 해서 어느정도 코딩을 짰는데 속도조절 핀번호를 5로 업로딩해서 해보니 안되던게
핀번호를 9로 바꾸고 하니까 되더라고요 혹시 핀 5번이 안되는 이유가 따로 있을까요?
ex) 스위치를 누르면 돌다가 2초 뒤에 서서히 줄어들면서 멈추는 동작 방법입니다.
#include <PWM.h>
int sw=2, fast=9;
int mode=0;
int32_t Fre = 13000;
void setup() {
InitTimersSafe();
SetPinFrequencySafe(fast, Fre);
pinMode(sw,INPUT_PULLUP); pinMode(fast,OUTPUT);
Serial.begin(9600);
pwmWrite(fast,0);
// put your setup code here, to run once:
}
void Mode0()
{
if(digitalRead(sw)==LOW) { mode=1;}
}
void Mode1(){
pwmWrite(fast,255);
delay(2000);
for(int i=255; i>=0; i--){
pwmWrite(fast,i);
Serial.println(i);
delay(40);
}
mode=0;
}
void loop() {
switch (mode) {
case 0: Mode0(); break;
case 1: Mode1(); break;
}
}
댓글 1
조회수 916master님의 댓글
master 작성일
5,6번핀은 타이머0 PWM 출력입니다.
타이머0은 아두이노 내부에서 사용하는 중요한 타이머라서 건드리지 않는 것이 좋습니다.
가장 빈번하게 사용하는 딜레이도 타이머0으로 부터 얻습니다.