3주차 ESP32 핀맵, 외부 LED 점멸 실습, PWM - hyunwoo14/SmartDevice GitHub Wiki

목차

  • ESP32 핀맵
  • 외부 LED 점멸 실습
    • 디지털 출력을 이용한외부 LED 켜고 끄기
    • 아날로그 출력을 이용한 외부 LED 켜고 끄기
    • 디지털 입력을 이용한 외부 LED 켜고 끄기
    • 아날로그 입력을 이용한 외부 LED 켜고 끄기
  • PWM이란?
    • PWM의 정의
    • PWM의 활용 예시
  • 후기

ESP32 핀맵

위 핀맵을 이용하여 브래드 보드를 사용한다.

외부 LED 점멸 실습

디지털 출력을 이용한외부 LED 켜고 끄기

회로

코드


const int ledPin = 4;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(1000);
}

LED를 4번 핀에 연결했으므로 핀 번호를 4번으로 설정하고, ledPin을 출력으로 설정한 후 1초 켜고 1초 끄는 것을 반복한다.

실습 영상

1.mp4

아날로그 출력을 이용한 외부 LED 켜고 끄기

회로

코드


const int ledPin = 4;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  for (int i = 0; i <= 255; i++) {
    analogWrite(ledPin, i);
    delay(15);
  }
  for (int i = 255; i >= 0; i--) {
    analogWrite(ledPin, i);
    delay(15);  
  }
}

아날로그 출력은 0~255값을 쓸 수 있다. PWM으로 밝기를 0부터 255까지 키웠다가 다시 0까지 내려가는 것을 반복한다.

실습 영상

2.mp4

디지털 입력을 이용한 외부 LED 켜고 끄기

회로

코드


const int buttonPin = 33;
const int ledPin = 4;
int buttonState = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}

void loop() {
  buttonState = digitalRead(buttonPin);

  if (buttonState == LOW) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

버튼 핀을 33번에 연결했으므로 핀 번호를 33번으로 설정하고, 버튼을 누른 것과 안 누른 것이 LOW와 HIGH값을 가지고 그 결과 값을 LED와 연결한다.

실습 영상

3.mp4

아날로그 입력을 이용한 외부 LED 켜고 끄기

회로

코드


const int potPin = 34;
const int ledPin = 4;
int potValue = 0;

void setup() {
  pinMode(potPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  potValue = analogRead(potPin);
  analogWrite(ledPin, map(potValue, 0, 4095, 0, 255));
  delay(500);
}

가변저항 모듈을 34번 핀에 연결하고, potValue를 사용하여 가변저항의 값을 저장하는 변수를 만든다. 아날로그 입력은 0~4095값을 가지기 때문에 가변저항 값이 변할 수록 LED의 밝기도 변하게 작성하였다.

실습 영상

4.mp4

PWM 이란?

PWM의 정의

PWM(pulse width modulation)이란 이름 그대로는 펄스 폭 변조라는 뜻이며 디지털 신호 중 특정한 형태를 띈 신호를 말하는 용어이며 회로 제어에서 다양한 용도로 활용되고 있다. 양쪽이 모두 디지털 신호일지라도 PWM을 사용하면 아날로그 신호와 유사한 효과를 낼 수 있다는 점에서 기인한 방법이다.

디지털 신호의 출력이 HIGH인 시간과 LOW인 시간의 비율을 조정해서 아날로그 효과를 내는 방법이기 때문에 디지털 신호 만을 사용하는 마이크로 컨트롤러에서 아날로그 신호가 필요할 때 매우 유용하게 사용된다.

PWM 활용 예시

가장 간단한 예시는 RGBLLED이다.

위 그림처럼 색상의 강도를 다르게 해서 원하는 빛의 색을 만들 때 PWM이 사용이 된다.

후기

아날로그 출력을 이용하여 외부 LED를 작동 시킬 때 처음 들어본 PWM이라는 단어가 나왔고 추가적으로 찾아 보았더니 처음에는 잘 이해가 가지 않았다. 하지만 RGBLED가 작동하는 방식을 알고 PWM을 이용한 코드를 살펴본 후 어떠한 원리로 작동하는지 알게 되었다. 또 ESPP32의 핀맵을 보고 올바른 방법으로 브레드 보드를 사용할 수 있게 되었다.

⚠️ **GitHub.com Fallback** ⚠️