MCU
ESP32 DevKit V1(ESP-WROOM-32)
IDE
VSC + ESP-IDF
목표
ESP32 DevKit V1의 LED를 ON-OFF

 

1. ESP-IDF

View - Command Palette

 

blink - Create project using example blink

 

LED GPIO 설정

#define BLINK_GPIO 2
 

 

flash method - UART

 

serial port - COM3

 

Build - 에러남

 

다음과 같이 c_cpp_properties.json를 수정

{
    "configurations": [
        {
            "name": "ESP-IDF",
            "compilerPath": "E:\\WORK\\P_ESP32\\.espressif\\tools\\xtensa-esp32-elf\\esp-12.2.0_20230208\\xtensa-esp32-elf\\bin\\xtensa-esp32-elf-gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "includePath": [
                "${config:idf.espIdfPath}/components/**",
                "${config:idf.espIdfPathWin}/components/**",
                "${config:idf.espAdfPath}/components/**",
                "${config:idf.espAdfPathWin}/components/**",
                "${workspaceFolder}/**"
            ],
            "browse": {
                "path": [
                    "${config:idf.espIdfPath}/components",
                    "${config:idf.espIdfPathWin}/components",
                    "${config:idf.espAdfPath}/components/**",
                    "${config:idf.espAdfPathWin}/components/**",
                    "${workspaceFolder}"
                ],
                "limitSymbolsToIncludedHeaders": false
            },
            "configurationProvider": "ms-vscode.cmake-tools",
            "compileCommands": "${workspaceFolder}/build/compile_commands.json"
        }
    ],
    "version": 4
}
 

 

Build - 에러 없어짐

 

Flash

 

 

 

MCU
ESP32 DevKit V1(ESP-WROOM-32)
IDE
Arduino IDE
목표
ESP32 DevKit V1의 Wifi 연결

 

1. Arduino IDE

Tools - Board - esp32 - ESP32 Dev module 선택

(이전 사용한 보드가 선택 되어져 있음)

2-1. HelloServer 예제 소스 불러오기

File - Examples - WebServer - HelloServer 선택

 

2-2. 코드 수정

※ PC와 ESP32는 같은 wifi를 사용해야 함

ssid : Wifi Name

password : Wifi Password

제어할 LED Port

#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
#include <ESPmDNS.h>

const char* ssid = "WifiName";
const char* password = "WifiPassword";

WebServer server(80);

const int led = 2;
 

기본 예제는 / 페이지만 존재

/LEDON 및 /LEDOFF 페이지를 추가

void setup(void) {
  pinMode(led, OUTPUT);
  digitalWrite(led, 0);
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  if (MDNS.begin("esp32")) {
    Serial.println("MDNS responder started");
  }

  server.on("/", handleRoot);

  server.on("/inline", []() {
    server.send(200, "text/plain", "this works as well");
  });

  server.on("/LEDON", []() {

    server.send(200, "text/plain", "LED ON");

    digitalWrite(led, 1);

    Serial.println("LED ON");

  });

  server.on("/LEDOFF", []() {

    server.send(200, "text/plain", "LED OFF");

    digitalWrite(led, 0);

    Serial.println("LED OFF");

  });

  server.onNotFound(handleNotFound);

  server.begin();
  Serial.println("HTTP server started");
}
 

 

2-3. 우측 상단 돋보기 모양의 Serial Monitor 클릭

 

2-4. Baudrate 확인

 

2-5. Compile 및 Upload​

Sketch - Verify/Compile

 

3-1. IP 확인

 

3-2. 확인된 IP에 접속

 

3-3. 동작 확인(LED ON)

 

 

 

MCU
ESP32 DevKit V1(ESP-WROOM-32)
IDE
Arduino IDE
목표
ESP32 DevKit V1으로 RGB LED Strip 구동

 

0. SK9822(SPI 방식 RGB LED)

- SK9822는 two-wire 전송 채널 3(RGB) 구동 지능형 제어 회로 및 조명

- 3가지 RGB 출력 제어, 8Bit(256) 색상, 밝기 조절을 위한 5Bit(32);

- 3개의 정전류 구동, 자체 감지 기능별 신호

- 최대 30MHZ 직렬 데이터 입력 주파수

 

1. Arduino IDE

Tools - Board - esp32 - ESP32 Dev module 선택

(이전 사용한 보드가 선택 되어져 있음)

 

2-1. APA102 라이브러리 설치

Sketch - Include Library - Manage Libraries

APA102 검색 - APA102 by Polulu 설치

 

2-2. Rainbow 예제 소스 불러오기

File - Examples - APA102 - Rainbow 선택

 

2-3. 코드 수정

ESP32 DEVKITV1의

- 12번에 data 연결

- 13번에 clock 연결

- LED 갯수가 10개

const uint8_t dataPin = 12;
const uint8_t clockPin = 13;

// Create an object for writing to the LED strip.
APA102<dataPin, clockPin> ledStrip;

// Set the number of LEDs to control.
const uint16_t ledCount = 10;
 

 

3. Compile 및 Upload

Sketch - Verify/Compile

4. 동작 확인

 

 

 

 
MCU
ESP32 DevKit V1(ESP-WROOM-32)
IDE
Arduino IDE
목표
ESP32 DevKit V1의 LED를 ON-OFF

 

0. ESP32 DevKit V1

- Espressif System 뿐만 아니라 ShenzenAV, DFRobot, LILYGO 등 많은 업체에서 ESP32를 이용하여 개발 보드를 만들어 판매함

- 여기서는 ESP32 DevKit V1(ShenzenAV)를 사용함

 

 

1. Arduino IDE

Tools - Board - esp32 - ESP32 Dev module 선택

 

COM 포트 선택

 

2-1. Blink 예제 소스 불러오기

File - Examples - 01.Basics - Blink 선택

 

2-2. 코드 수정

LED_BUILTIN이 define 되지 않았으므로, define 추가

#define LED_BUILTIN 2
 

 

3. Compile 및 Upload

Sketch - Verify/Compile

 

Sketch - Upload(Compile 과정 포함)

 

4. 동작 확인

 

 

 

1. LED(SPI 방식 RGB LED)

- SK9822(APA102C)는 two-wire 전송 채널 3(RGB) 구동 지능형 제어 회로 및 조명

- 3가지 RGB 출력 제어, 8Bit(256) 색상, 밝기 조절을 위한 5Bit(32);

- 3개의 정전류 구동, 자체 감지 기능별 신호

- 최대 30MHZ 직렬 데이터 입력 주파수

사진 삭제

사진 설명을 입력하세요.

 

2. Specifications

항목
스펙
작동 전압
5V DC
전류 소모
각 색상 채널 당 최대 20mA (RGB 최대 60mA)
데이터 속도
최대 20MHz
데이터 핀
DI (데이터 입력), CI (클럭 입력)
색 깊이
24비트 (RGB 각 8비트)
LED 모듈 크기
약 5mm x 5mm

Absolute Maximum Ratings

The electrical parameters

※ 전기적 스펙은 제조사 마다 다르므로 사용전에 반드시 확인

 

3. 회로 구성 및 설명

 

4. 제어 방법

데이터 시트 보고 직접 라이브러리를 만들어도 되나, 더 똑똑한 사람 라이브러리를 활용하도록 하자.(라이센스 확인 필수)

 

https://github.com/pimoroni/blinkt

 

GitHub - pimoroni/blinkt: Python Library for Blinkt; 8 APA102 LEDs for your Raspberry Pi

Python Library for Blinkt; 8 APA102 LEDs for your Raspberry Pi - pimoroni/blinkt

github.com

 

'전자 부품 > LED' 카테고리의 다른 글

LED(light emitting diode) 및 제어 회로  (0) 2025.03.16
LED
LED(light emitting diode, 발광 다이오드)
목표
LED의 개요와 사용법에 대해 알아봄

 

1. LED(light emitting diode, 발광 다이오드)

발광 다이오드. Ga(갈륨), P(인), As(비소)를 재료로 하여 만들어진 반도체. 다이오드의 특성을 가지고 있으며, 전류를 흐르게 하면 붉은색, 녹색, 노란색, 파란색으로 빛을 발한다. 전구에 비해 수명이 길고 응답 속도(전류가 흘러서 빛을 발하기까지의 시간)가 빠르고 소형화가 가능하며 다양한 모양으로 만들 수 있다.

 

반도체를 이용한 PN 접합이라고 불리는 구조로 만들어져 있다. 발광은 PN 접합에서 전자가 가지는 에너지가 직접 빛 에너지로 변환되기 때문에 거시적으로 열이나 운동에너지를 필요로 하지 않는다. 전극으로부터 반도체에 주입된 전자와 양공은 다른 에너지띠 (전도띠나 원자가띠)를 흘러 PN 접합부 부근에서 띠틈을 넘어 재결합한다. 재결합할 때 거의 띠틈에 상당한 에너지가 광자, 즉 빛으로 방출된다.

 

이 과정에서 사용하는 원소를 다르게 하면 방출되는 에너지의 양이 달라지는데 이러한 에너지의 양의 차이에 따라 빛의 파장의 길이가 결정되고 다른 색을 낼 수 있게 된다. 빨간색은 주로 GaAs를, 초록색과 파란색은 주로 GaN(Ga, N)를 기반으로 한다. 초록색은 GaP로 만들지만 실제로는 GaN에 Al이나 In 등의 도핑을 다르게 해서 사용하는 경우가 많다. 셋 다 인듐 등의 원소 첨가량을 바꾸며 밴드 갭을 조절한다. 적외선이나 자외선을 내는 LED도 있는데, 적외선은 AlGaAs, 자외선은 무색투명한 탄소로 만들 수 있다.

 

LED 색상에 따른 If - Vf 그래프

 

2. Specifications

(1) 1608 size SMD 빨강색 LED

- IF=5mA가 흐를때 LED에 걸리는 VF=1.85V이다.

 

(2) 1608 size SMD 파란색 LED

- IF=5mA가 흐를때 LED에 걸리는 VF=2.9V이다.

 

(3) Power LED

- IF=300mA가 흐를때 LED에 걸리는 VF=3.2V이다.

- Maximum Ratings가 있더라도 주변 환경(온도 및 방열)에 따라 사용 조건은 바뀔 수 있으며, Maximum Ratings에 가깝게 사용 할 수록 LED 수명이 단축 된다.

 

3. 회로 구성 및 설명

(1) 저항으로 전류 제한

- 왼쪽 1608 size SMD 빨강색 LED에 흐르는 전류 = (3.3V(VCC) - 1.85V(VF)) / 330ohm = 4.4mA

- 오른쪽 1608 size SMD 파란색 LED에 흐르는 전류 = (24V(VCC) - 2.9V(VF)) / 4.7kohm = 4.5mA

종종 파란색 LED가 빨강색 LED보다 전류를 적게 먹어서 전류 제한 저항값이 커지는 것으로 알고있는데, 정확히는 VF가 다르기 때문이다.

(2) 정전류 LED Driver IC 사용(DW8501)

- Maximum Ratings & Electrical Characteristics

- 1.5A까지 정전류 드라이브가 가능하며, 2번 RS 핀의 저항값으로 정전류 제한 할 수 있으며 전류 계산식은 아래와 같다.

Iout [mA] = (610[mV]/Rset[ohm]) X 1000

 

- 회로 구성 및 설명

 

DW8501 예제 회로

 

Iout [mA] = (610[mV]/10k[ohm]) X 1000 = 61mA

- 위 회로는 5번 OUT 핀으로 최대 61mA 전류를 내보낼 수 있다.

- 4번 EN 핀에 PWM 제어하여 LED 밝기 제어가 가능하다.

 

(3) 정전류 LED Driver IC 사용(TLC59116)

- 16 channel I2C 정전류 LED Sink Driver

- 1 channel 전류 120mA

- IC 전류 1.92A(0.12A * 16channel = 1.92A)

- 최대 14개의 TLC59116 연결 가능(SWRST I 2C bus address 1101 011 reserved)

- No Glitch on Power-Up(다른건 있다는 얘긴가..)

TLC59116 예제 회로

'전자 부품 > LED' 카테고리의 다른 글

LED(SPI 방식 RGB LED) 및 제어 회로  (0) 2025.03.16

+ Recent posts