아날로그 신호로 LED 제어

발행일 : 2018-12-03 15:19  

  • 안녕하세요~ 주말은 잘 보내셨나요?

    지난 시간에는 디지털 신호로 LED를 점등, 소등하는 제어를 해봤습니다. 오늘은 아날로

    그 신호로 같은 기능을 구현해보겠습니다.


    디지털 신호와 아날로그 신호를 다시 정리해보면 디지털 신호는 이산적인 신호로 0, 1

    데이터만 사용합니다. 0일 때 0V, 1일 때 5V가 인가되었습니다. 그렇다면 아날로그 신호

    는 어떻까요? 아날로그 신호는 0 ~ 255 사이의 숫자를 사용합니다. 여기서 255가 5V를

    의미합니다. 다시 말하면 아날로그 신호는 0 ~ 5V 사이의 전압을 인가할 수 있다는

    점에서 디지털 신호와 다릅니다. 이번 실습에서 5V 이하의 전압을 제공했을 때 LED

    상태가 어떻게 변화는지 살펴보시면 좋을듯 합니다.


    회로의 연결은 지난 시간과 대부분 비슷합니다. 그러나 아날로그 출력 핀을 사용해야

    하기 때문에 13번 핀이 아닌 11번 핀을 사용하려고 합니다. 아날로그 출력 핀은 숫자

    앞에 틸트(~)가 있는 핀이 아날로그 출력으로 사용할 수 있습니다.

  • void setup() {
      // put your setup code here, to run once:
      pinMode(11, OUTPUT);  //11번 핀을 출력용으로 사용
    }

    void loop() {
      // put your main code here, to run repeatedly:
      analogWrite(11, 255); //11번 핀에 5V 신호 인가
      delay(1000);            //1초 동안 회로 멈춤
      analogWrite(11, 51); //11번 핀에 1V 신호 인가
      delay(1000);   
      analogWrite(11, 0);  //11번 핀에 0V 신호 인가
      delay(1000);
    }
  • setup 함수 안에서 변경된 사항은 13번 핀이 아닌 11번 핀을 사용했다는 것입니다. 
    loop 함수에서는 analog 신호를 인가하기 때문에 analogWrite 함수를 사용하였고 함수의 사용법은 analogWrite(핀 번호, 0~255 사이 값); 형태로 들어가야 합니다. 
    값이 255인 경우는 5V, 51은 1V, 0은 0V를 의미합니다. 
    아래 결과 영상을 보시면서 지난 시간 디지털 신호를 인가했을 때와 비교해보시면 더욱 의미가 있을것 같습니다. 

댓글(0)

이모티콘