2022.01.05 - [메이커 자료/ESP32 : Easy Connector] - #1. ESP32 아두이노 설치 및 세팅하기 - MakeitNow 메이크잇나우
2022.01.06 - [메이커 자료/ESP32 : Easy Connector] - #2. ESP32 LED 제어하기 - on / off - MakeitNow 메이크잇나우
2022.01.13 - [메이커 자료/ESP32 : Easy Connector] - #3. ESP32 버튼으로 LED 제어하기 : 디지털 입력 - Makeitnow 메이크잇나우
2022.01.17 - [메이커 자료/ESP32 : Easy Connector] - #4. ESP32 조도센서 읽어오기 [아날로그 입력] - Makeitnow 메이크잇나우
2022.01.18 - [메이커 자료/ESP32 : Easy Connector] - #5. ESP32 온습도센서 활용, DHT11 - Makeitnow 메이크잇나우
2022.01.22 - [메이커 자료/ESP32 : Easy Connector] - #6. ESP32 근접센서 활용 주차장 차량감지기 - MAKEITNOW 메이크잇나우
안녕하세요.
MAKE IT NOW : 메이크잇나우 입니다.
이번에는 ESP32에서 아날로그 출력에 대해서 알아보도록 하겠습니다.
ESP32에서는 아두이노와 조금 다른 부분이 아날로그 출력하는 부분인데요.
아두이노에서는 DAC기능을 제공해주고 있지 않기 때문에, analogWrite()함수를 사용하면 PWM방식으로만 제어가 되었다면 ESP32는 PWM / DAC 두 가지 기능을 모두 사용 할 수 있기 때문에, 원하시는 방법으로 아날로그 출력을 할 수 있습니다.
그럼 간단히 LED를 활용하여 아날로그 출력을
그럼 ESP32에서 사용하는 아날로그 출력에 대해서 한번 살펴보도록 하겠습니다.
PWM방식과 DAC방식으로 아날로그 출력하기
STEP 1. 아날로그 출력이란 무엇인가요? 그리고 PWM이 무엇인가요?
▶ 디지털 출력과는 다르게 아날로그 출력은 더 정교한 값의 제어가 가능합니다. 디지털 출력에서는 LED의 밝기 변화를 하는 것은 불가능했죠? 아날로그 출력을 사용하시면 출력하는 전압의 량을 다르게 해서 LED의 밝기를 변화 시킬 수 있습니다.
▶ PWM방식은 펄스폭을 조절하면서 제어하는 방식인데요. 일반적으로 서보모터와 같이 정교한 움직이 필요한 장비를 제어하기 위해서 많이 사용되어지고 있습니다.
▶ 위의 사진과 같이 1펄스의 폭에서 duty값을 변화시켜가면서 값을 출력하는 것입니다.
▶ 아두이노에서는 analogWrite()함수를 사용했지만, ESP32에서는 조금 다르게 제어를 할 수 있습니다..
STEP 2. PWM방식 제어
▶ ESP32에서 PWM방식 제어를 위해서는 첫번째로
1. 채널값 : 0-15 까지 총 16개의 채널을 사용할 수 있구요.
2. 주파수(frequency) : 주파수는 일반적으로 5000Hz정도를 사용합니다.
3. 분해능 (resolution) : 분해능은 1-16bits지만 저희는 아두이노 비슷하게 8bit 정도로 사용해보도록 하겠습니다.
▶ 필요한 함수는 아래와 같습니다.
ledcAttachPin(핀번호, 채널);
ledcSetup(채널, 주파수, 분해능);
ledcWrite(채널, 값)
STEP 3. 선 연결 및 코드 작성하기
▶ LED 밝기를 점차 밝게 하는 간단한 코드는 아래와 같다고 보시면 됩니다.
// 1. channel 16 -> 0-15
// 2. 5000hz
// 3. 1 ~16bit 8bit -> 0-255
void setup() {
ledcAttachPin(15, 0);
ledcSetup(0, 5000, 8);
}
void loop() {
for(int i=0; i<=256; i++){
ledcWrite(0,i);
delay(10);
}
}
▶ LED 밝기를 점차 밝게 하는 간단한 코드는 아래와 같다고 보시면 됩니다.
DAC방식으로 아날로그 출력하기
STEP 1. DAC방식??
▶ DAC : Digital to Analog Converter의 약자로, 디지털 신호를 아날로그로 변환하여 보내주는 방식입니다.
PWM방식으로 아날로그처럼 변환하는 것이 아니라 간편히 아날로그 신호를 보낼 수 있다라고 보시면 되는데요.
▶ 아두이노에서는 DAC 기능을 지원하지 않지만 ESP32에서는 DAC기능이 가능한 핀이 2개가 있습니다.
DAC1 = GPIO25
DAC2 = GPIO26
▶ 위의 두 핀을 사용하면 아주 간편하게 아날로그 출력이 가능합니다.
STEP 2. 코드 작성
void setup() {
}
void loop() {
for(int i=0; i<=255; i++){
dacWrite(25,i);
delay(15);
}
}
아주 간편하죠?
이제 모든 준비는 완료 되었습니다!
아래 빨간색 위치에 업로드 버튼 누르면!! 끝!
단, 포트연결까지 완료해야 된다는 점!
MAKE IT NOW Easy Connector 보드를 활용하여 간편하게 IoT 시스템을 학습하고 만들어보세요!
[메이크잇나우] 쉽게 연결하는 Easy Connect IoT 베이직 키트 (iot 키트 교육 교구 패키지 이지커넥트
[Make it Now] 메이커 제품을 만날 수 있는 마켓입니다.
smartstore.naver.com
카카오톡 문의하기 !
MAKE IT NOW
카카오톡 채팅을 해보세요.
pf.kakao.com
'메이커 자료 > ESP32 : Easy Connector' 카테고리의 다른 글
#9. ESP32 적외선 불꽃감지 센서 사용하기 _ 메이크잇나우 (0) | 2022.02.05 |
---|---|
#8. ESP32 업로드 에러(packet header) 해결 방법_메이크잇나우 Makeitnow (0) | 2022.02.05 |
#6. ESP32 근접센서 활용 주차장 차량감지기 - MAKEITNOW 메이크잇나우 (0) | 2022.01.22 |
#5. ESP32 온습도센서 활용, DHT11 - Makeitnow 메이크잇나우 (0) | 2022.01.18 |
#4. ESP32 조도센서 읽어오기 [아날로그 입력] - Makeitnow 메이크잇나우 (0) | 2022.01.17 |