https://dokkodai.tistory.com/188

 

PWM에 대해서 알아보자

PWM은 Pulse Width Modulation의 약자로 펄스 폭 변조를 말하는 것이다. 쉽게 말해, 디지털 신호를 아날로그 신호처럼 흉내내는 것이라고 보면된다. 아날로그 신호는 sin신호처럼 곡선으로 연속된 형태의 신호이고..

dokkodai.tistory.com

오랜만에 Arduino 실습에 대한 포스팅을 하는 것 같네

PWM은 Pulse Width Modulation의 약자로 펄스 폭 변조를 말하는거야. 자세한 것은 검색해보면 쉽게 나올거야.

Arduino UNO는 6개의 PWM을 지원 하고, Digital  2,5,6,9,10,11 핀을 이용해 사용 할 수 있어

analogWrite(A,B); 이 함수를 이용해서 PWM을 사용 할 수 있는데, A는 사용할 핀 번호 이고, 듀티 사이클이야.

듀티 사이클은 0(0%)~255(100%)에서 조절이 가능해. 참쉽네.

아래 회로로 실습을 해봤어

[#M_소스코드 보기|접기|

 

int ledRPin = 3, ledGPin = 5, ledBPin = 6;  //Red LED 3, Green LED 5, Blue LED 6
void setup() {
  // put your setup code here, to run once:
  pinMode(ledRPin, OUTPUT);
  pinMode(ledGPin, OUTPUT);
  pinMode(ledBPin, OUTPUT);
  
  analogWrite(ledRPin, 255);
  analogWrite(ledGPin, 255);
  analogWrite(ledBPin, 255);
}
void loop() {
  // put your main code here, to run repeatedly:
  //RED LED
  for(int i = 255;i >= 0; i--){
    analogWrite(ledRPin, i);
    delay(10);
  }
  for(int i = 0;i < 256; i++){
    analogWrite(ledRPin, i);
    delay(10);
  }
  
  //GREEN LED
  for(int i = 255;i >= 0; i--){
    analogWrite(ledGPin, i);
    delay(10);
  }
  for(int i = 0;i < 256; i++){
    analogWrite(ledGPin, i);
    delay(10);
  }
  
  //BLUE LED
  for(int i = 255;i >= 0; i--){
    analogWrite(ledBPin, i);
    delay(10);
  }
  for(int i = 0;i < 256; i++){
    analogWrite(ledBPin, i);
    delay(10);
  }
}

 

PWM.ino
다운로드

 

 

+ Recent posts