03 Arduino에서 LED PWM을 사용하여 밝기 조절

4620 단어 ArduinoUno초학자

LED 밝기 조정 방법


LED의 밝기(밝기)를 조정하는 방법.
① 가하는 전압 변경
② IF 감소
③ 빛을 발하는 시간과 사라지는 시간의 차이를 벌린다
방법
마이크로컴퓨터 등 간단하게 제어할 수 있고 ③의 방식을 간단하게 사용할 수 있다

먼저


robot19_base
  PORTD = 0x01; delay(10);
  PORTD = 0x00; delay(100);
기술해 보았다.
LED가 깜박거릴 수 있지만 빛나는 시간도 10ms가 되고 눈이 아플 수 있다
이 동작이 조금 더 빠르면 어떨까요? delay 함수의 시간을 줄일게요.
단, 1ms 이하는 안 됩니다. 주의하세요.
이 시간차는 마치 Dutybi라고 불리는 것 같다.
이어서 이 비율을 연속으로 바꿔보도록 하겠습니다.
robot19_base
int i,j;
for(j=0;j<10;j++){
  for(i=0;i<100;i++){
    PORTD = 0x01; delay(j);
    PORTD = 0x00; delay(10-j);
  }
}
<결과> 밝기가 단계적으로 변경되었습니다.
연속적으로 밝기를 바꾸기 위해서.
소프트 컨트롤도 어려워요.

PWM 신호 및 analogWrite()


Arduino에는 analogWrite () 함수가 있는데, 이것을 사용하면 LED의 밝기를 바꿀 수 있습니다.
analogWrite(6,i)  //第1引数 6・・・出力ポート 第2引数 i・・・値0~255 
이 함수를 사용하면 PWM이라는 기능을 간단하게 사용할 수 있지만, 하드웨어적으로 신호가 생성되기 때문에 어떤 인덱스도 사용할 수 있는 것은 아닌 것 같다.
아두노 언노에서는 디지털 출력의 3, 5, 6, 9, 10, 11개의 마중물을 PWM에 사용할 수 있다.
이 기능을 이용해 LED의 밝기를 연속적으로 바꾸어 보았다.
Robot19_base
int i,j;
for(j=0;j<10;j++){
  for(i=0;i<255;i++){
    analogWrite(6,i);
    delay(100);
  }
}
LED 6만 서서히 밝아졌다가 갑자기 어두워졌다가 다시 서서히 밝아졌다.

PWM의 구조


PWM(Pulse Width Modulation)은 간단히 전압 등을 제어하는 방법 중 하나로 주기당 1(접속)과 0(끊기) 시간을 가변할 수 있는 기술, 펄스 폭에 비례하는 전압을 얻을 수 있다.
다음 예에서 매 주기마다 1개의 시간과 0개의 시간이 변화한다
첫 번째 주기는 20%의 작동 시간입니다.

이렇게 하면 평균 ON시 전압의 20%(즉 5[V]*20[%]=1.00[V])를 얻을 수 있다.
또 이때 ON의 시간을 점공비(Duty Cycle)라고 부른다.이것은 출력 전압이 최대 전압에 대한 비율이다.
[확인].
50% LED 밝기 조절
20% 및 80% LED 2개 활성화

사이트 축소판 그림


참조된 페이지는 다음과 같습니다.
매우 통속적이고 알기 쉽게 총결하다.
감사합니다.
[PWM 정보]

좋은 웹페이지 즐겨찾기