아날로그 값(PWM 파)을 핀에 출력합니다.
LED를 다양한 밝기로 켜거나 다양한 속도로 모터를 돌리는 데 쓸 수 있습니다.
analogWrite() 를 호출하면, 해당 핀에 다음 analogWrite() (또는 digitalRead() 또는 digitalWrite() )가 불릴 때까지 특정 듀티 사이클의 구형파를 발생시킵니다.
대부분 핀에서 PWM 신호의 주파수는 약 490Hz입니다. Uno, 혹은 비슷한 보드에서, 5, 6번 핀은 약 980Hz의 주파수를 가집니다.
대부분의 아두이노 보드(ATmega168 또는 ATmega328P가 장착된)에서, 이 함수는 3, 5, 6, 9, 10, 11번 핀에서 동작합니다.
아두이노 메가에서는 2 - 13번 핀 그리고 44 - 46번 핀에서 동작합니다.
ATmega8을 탑재한 구형 아두이노 보드는 9, 10, 11번 핀에서만 analogWrite() 를 지원합니다.
아두이노 DUE는 2번 핀에서 13번 핀까지, 그리고 DAC0과 DAC1 핀에서 analogWrite() 를 지원합니다.
PWM 핀과 달리, DAC0과 DAC1은 디지털을 아날로그로 바꾸는 컨버터이며, 실제 아날로그 출력처럼 동작합니다. analogWrite() 를 부르기 전에 핀을 출력으로 설정하기 위해 pinMode() 를 부를 필요는 없습니다. analogWrite 함수는 아날로그 핀 또는 analogRead 함수와 아무 관련이 없습니다.
문법
analogWrite(pin, value)
매개변수
pin: 출력할 핀. 허용되는 자료형: int
value: 듀티 사이클: 0 (언제나 꺼짐)과 255 (언제나 켜짐) 사이. 허용되는 자료형: int
반환
없음
예제 코드
가변 저항으로부터 읽은 값에 비례하게 LED 출력을 설정합니다.
int ledPin = 9; // LED는 디지털 핀 9번에 연결
int analogPin = 3; // 가변저항은 아날로그 핀 3번에 연결
int val = 0; // 읽은 값을 저장할 변수
void setup() {
pinMode(ledPin, OUTPUT); // 핀을 출력으로 설정
}
void loop() {
val = analogRead(analogPin); // 입력 핀에서 값 읽기
analogWrite(ledPin, val / 4); // analogRead 값은 0부터 1023까지, analogWrite 값은 0 부터 255까지
}
주의 및 경고
핀 5와 6에서 생성된 PWM 출력은 예상보다 높은 듀티 사이클을 가질 것입니다.
이것은 PWM 출력을 생성하기 위해 같은 내부 타이머를 공유하는 millis() 와 delay() 함수의 상호작용 때문입니다.
이는 대부분 낮은 듀티 사이클 설정(예: 0 - 10)에서 발견되며, 값을 0으로 설정해도 핀 5와 6이 출력을 완전히 끄지 않는 결과가 나올 수 있습니다.
We care about the privacy and personal data of our users.
To continue, please give us your consent:
Please confirm that you have read the privacy policy
Thank you for subscribing!
Curious to learn more?
Are you also a teacher, student, or professional that loves using Arduino in your day-to-day activities?
Then keep up-to-date with either our STEM or Professional monthly newsletters.
Arduino weekly newsletter (already subscribed)
Educators can benefit from the ever growing tech that shapes our environment through fun cool projects.
Why not awe your boss with highly innovative ways to help keep your enterprise connected at no extra cost?
Arduino Survey
We'd like to get to know you little better.
Please help us improve by answering this super short optional survey.