반응형
아두이노에서 아날로그 출력은 PWM을 활용하여 제어를 하는데요
사용하는 함수는 analogWrite() 함수를 사용합니다.
아두이노는 아날로그 출력이 안되기 때문에, pwm 제어를 사용하는데요
오늘 살펴볼 ESP32에서는 analogWrite()라는 함수를 사용할 수 없습니다.
그럼 어떻게 할까요?
아래 코드를 보면 아시다 시피
ESP32에서는 CH : 0~15 [16개의 채널을 사용]
핀은 : 2,4,12~19, 21,22,23,25,26,27,32 에서 PWM 제어를 할 수 있습니다.
그리고 ESP는
ledcAttachPin() 함수를 통해 핀 과 채널을 매칭하고
ledcSetup()를 통해서 채널과, Hz, resolution 을 지정하는데
일반적으로 Hz : 5000
resolution 은 8로 설정을 해주면 됩니다. (8로 하면 아두이노 처럼 0~255 까지 제어가 가능)
int ledPin = 15;
int val = 0;
void setup() {
ledcAttachPin(ledPin, 0);
ledcSetup(0, 5000, 8);
}
void loop() {
int sensorVal = analogRead(13);
int Brigtness = map(sensorVal, 0, 4095, 0, 255);
ledcWrite(0,Brigtness);
}
이런 방식으로 조도 센서에서 받은 값으로 led 밝기 변화를 줄 수 있습니다.
반응형
'메이커 이야기 > 아두이노' 카테고리의 다른 글
[UART통신] 아두이노간 채팅하기 예제 (0) | 2021.02.28 |
---|---|
아두이노 스케치 단축키 정리 | Arduino ShortCut Example (0) | 2020.02.24 |
[control servomotors with joystick] 조이스틱으로 서보모터 제어하기 (1) | 2020.02.24 |
[아두이노 조이스틱] Arduino Joystick Control (0) | 2020.02.23 |
[블루투스모듈] HC-06 Bluetooth On/Off (0) | 2020.02.11 |