En este momento estás viendo Clase 4 – Curso ESP 32

Clase 4 – Curso ESP 32

Módulo 1 – Qué es el ESP32 y por qué deberías tener esta placa

  • Introducción al ESP32:
    • Se define como un chip de la familia SoC (System on Chip) desarrollado por la empresa Expressif Systems.
    • Se menciona que es el sucesor del chip ESP8266.
    • Formas de uso: de manera independiente (para placas personalizadas) o mediante un kit de desarrollo listo para usar.
    • El video se enfoca en el kit básico DOIT ESP32 DEVKIT V1 de 30 pines.
  • Alimentación y Voltaje:
    • Cuenta con puerto micro USB para programación y energía.
    • Su voltaje de alimentación es de 5V (vía USB o pin VIN), pero sus pines operan estrictamente a 3.3V, por lo que requiere conversores de nivel lógico para conectarse con lógica de 5V.
  • Procesador y Modos de Energía:
    • Posee un procesador principal de doble núcleo de 32 bits (Tensilica Xtensa LX6) que corre a 240 MHz (15 veces más rápido que un Arduino Uno).
    • Incluye un coprocesador de ultra bajo consumo para el modo Deep Sleep (sueño profundo), donde el consumo baja a unos 10 microamperios, ideal para proyectos con baterías.
  • Tipos de Memoria (Internas y Externas):
    • ROM interna (448 KB): Solo lectura, almacena los códigos de arranque, WiFi y Bluetooth.
    • SRAM interna (520 KB): Datos e instrucciones de acceso rápido.
    • RTC FAST SRAM (16 KB): Usada por el procesador en modo Deep Sleep.
    • Memoria eFuse (1 Kb): Configuración del sistema y aplicaciones.
    • Flash empotrada (4 MB en este kit): Almacena el código de la aplicación.
    • Capacidad de expansión externa de hasta 16 MB de Flash y 8 MB de SRAM.
  • Periféricos y Pines de Entrada/Salida:
    • Pines digitales: 25 pines en total.
    • ADC (Conversor Analógico a Digital): 12 bits de resolución y 18 canales.
    • DAC (Conversor Digital a Analógico): 2 conversores para generar señales analógicas puras (útil para audio/música).
    • Sensores Táctiles Capacitivos: 9 pines capaces de actuar como botones o barras deslizantes sin componentes mecánicos.
    • Pines PWM: Hasta 16 pines configurables como salidas PWM.
  • Protocolos de Comunicación y Controladores:
    • Controlador integrado para tarjetas SD y MMC.
    • 3 puertos UART (comunicación serial).
    • 2 interfaces I2C (soporta modos maestro/esclavo y velocidades estándar o rápidas).
    • 4 puertos SPI de alta velocidad (hasta 80 MHz).
    • 2 puertos I2S para transmisión de datos de audio digital [07:40].
  • Seguridad y Conectividad Inalámbrica:
    • Aceleradores criptográficos por hardware para encriptación de datos.
    • Wi-Fi: Integrado, banda de 2.4 GHz con velocidades de hasta 150 Mbps.
    • Bluetooth: Versión 4.2 y BLE (Bluetooth Low Energy).
    • Sensores internos: Sensor de efecto Hall (para campos magnéticos) y, en algunas versiones, sensor de temperatura.
  • Entornos de Programación (IDE) y Comunidad:
    • Soporta el entorno oficial ESP-IDF, MicroPython y el IDE de Arduino (siendo este último el más fácil para iniciar).
    • Se destaca el gran respaldo de documentación y la enorme comunidad global existente

Módulo 2 – ESP32 Primeros pasos: Instalación y configuración del IDE de Arduino

  • Descarga e Instalación del IDE de Arduino:
    • Explicación de cómo acceder a la página oficial de Arduino, sección de Software, y seleccionar el instalador según el sistema operativo (ejemplo con Windows).
    • Proceso de instalación aceptando los acuerdos de licencia y las opciones por defecto.
    • Importancia de los drivers: Advertencia sobre aceptar la instalación de todos los controladores/drivers que solicite el instalador para evitar problemas de conexión futuros.
  • Agregar el Soporte para ESP32 en el IDE de Arduino:
    • Configuración del entorno abierto de Arduino para aceptar placas de terceros.
    • Acceso al menú Archivo > Preferencias e inclusión de la URL oficial de Espressif en el cuadro de Gestor de tarjetas adicionales.
    • Acceso a Herramientas > Placa > Gestor de tarjetas, búsqueda del término «esp32» e instalación del paquete de herramientas, compiladores y librerías de Espressif Systems.
  • Conexión de la Placa y Configuración del Puerto COM:
    • Recomendación crítica: usar un cable micro USB que sea de datos y no únicamente de carga.
    • Identificación del puerto asignado mediante el Administrador de dispositivos de Windows, buscando el chip de comunicación serial (en este caso, el CP2102).
    • Solución de problemas con el driver serial: Qué hacer si aparece un triángulo amarillo de advertencia. Explicación de cómo descargar e instalar el controlador CP2102 desde la página oficial del fabricante según la arquitectura del procesador (32 o 64 bits).
  • Selección de Placa y Puerto en el IDE:
    • Configuración final dentro del software dirigiéndose a Herramientas > Placa > ESP32 para seleccionar el modelo específico (DOIT ESP32 DEVKIT V1).
    • Selección del puerto COM identificado previamente en el menú Herramientas > Puerto.
  • Carga del Primer Programa de Prueba («Blink»):
    • Apertura del ejemplo clásico de parpadeo desde Archivo > Ejemplos > 01.Basics > Blink.
    • Modificación obligatoria para ESP32: Explicación de por qué la constante estándar LED_BUILTIN falla en esta placa (no está definida). Solución reemplazándola por el número de pin físico 2 (donde está el led azul integrado).
    • Explicación del proceso de compilación (conversión a binario) y subida mediante la herramienta esptool.
  • Solución al error típico de subida («Connecting…»):
    • Explicación del error común Failed to connect to ESP32. Se debe a que las placas de bajo costo a veces no entran automáticamente en modo programación.
    • Solución práctica: Mantener presionado el botón BOOT de la placa física justo cuando el IDE muestra el texto Connecting… con puntos y guiones, liberándolo una vez que inicia el porcentaje de subida.
    • Verificación final al observar el led azul de la placa parpadear cada segundo

Módulo 3 – ESP32 Entradas y salidas digitales

  • Concepto de Señal Digital:
    • Explicación de que una señal digital solo proporciona dos estados lógicos: alto (1) y bajo (0).
    • Su representación teórica es una onda cuadrada.
    • En el ESP32, el estado alto (HIGH) equivale a 3.3V y el estado bajo (LOW) equivale a 0V.
  • Entradas Digitales y Resistencias Pull-up / Pull-down:
    • Permiten recibir voltajes para desencadenar acciones en el código (ej. leer un pulsador).
    • Definición y función: Sirven para establecer un estado lógico conocido en reposo y evitar falsos estados por ruido eléctrico (estados indeterminados o flotantes).
    • Pull-up: Estado de reposo en ALTO (3.3V); al pulsar pasa a BAJO (0V).
    • Pull-down: Estado de reposo en BAJO (0V); al pulsar pasa a ALTO (3.3V).
    • Resistencias Internas: El ESP32 las incluye de forma interna y se activan por código. Están disponibles en todos los pines excepto en los pines del 34 al 39.
  • Práctica 1: Lectura de pulsador con resistencia Pull-down externa:
    • Conexión física: Un terminal del pulsador a 3.3V, el otro terminal al pin GPIO 23 y a una resistencia externa conectada a GND.
    • Explicación del código usando la función digitalRead(pin) y el envío de datos al monitor serie mediante Serial.println() al detectar el estado alto.
  • Práctica 2: Configuración con resistencia Pull-down interna:
    • Retiro del componente físico (resistencia externa) para simplificar el circuito.
    • Modificación en el código: Sustitución de la constante INPUT por INPUT_PULLDOWN dentro de la función pinMode().
  • Salidas Digitales:
    • Permiten realizar acciones físicas en el entorno como encender LEDs, activar relés o zumbadores.
    • El kit de desarrollo DOIT ESP32 DEVKIT V1 dispone de 20 pines configurables como salidas.
  • Práctica 3: Control de una Salida Digital (Parpadeo de un LED):
    • Conexión física: Pin GPIO 22 conectado al ánodo del LED, y el cátodo conectado a GND en serie con una resistencia de 220 ohmios.
    • Explicación del código utilizando pinMode(pin, OUTPUT) en el setup() y la función digitalWrite(pin, STATE) combinada con delay(1000) en el loop() para alternar el encendido y apagado cada segundo.
  • Práctica 4: Combinación de Entradas y Salidas (Causa y Efecto):
    • Integración de ambos conceptos en un solo circuito: Entrada en el GPIO 23 (pulsador con pull-down interna) y Salida en el GPIO 22 (LED).
    • Lógica del código: Al presionar el botón, la lectura digital pasa a un estado alto (HIGH), lo que activa una condición que hace parpadear el LED de forma intermitente.

Módulo 4 – ESP32 Entradas analógicas

  • Concepto de Señal Analógica:
    • Explicación de que una señal analógica puede tomar infinitos valores de tensión de manera continua en un rango de tiempo determinado.
    • Su forma característica es una onda senoidal.
    • En el ESP32, el rango de voltaje analógico que se puede leer oscila estrictamente entre los 0V y los 3.3V.
  • El Conversor Analógico Digital (ADC) del ESP32:
    • El modelo DOIT ESP32 DEVKIT V1 cuenta con 18 pines con soporte para entradas analógicas.
    • Resolución por defecto: Es de 12 bits. Esto significa que mapea el rango de voltaje (0V a 3.3V) a valores enteros comprendidos entre 0 y 4095.
    • Configuración de resolución: Aunque por defecto es de 12 bits, se puede ajustar mediante código para trabajar de 9 a 12 bits según la necesidad del proyecto.
    • Limitación por falta de linealidad: Se menciona que el comportamiento del ADC no es perfectamente lineal, especialmente en los extremos del rango de voltaje (cerca de 0V y cerca de 3.3V).
  • Restricción Crítica entre Puertos ADC y el Wi-Fi:
    • Los 18 canales analógicos están divididos en dos bloques internos: ADC1 y ADC2.
    • Advertencia importante: El puerto ADC2 comparte recursos con el controlador Wi-Fi integrado. Por lo tanto, no se pueden usar los pines del ADC2 para lecturas analógicas si el Wi-Fi de la placa está encendido o inicializado.
  • Práctica 1: Lectura de un Potenciómetro:
    • Componentes: Un potenciómetro rotatorio de 10 kΩ y la placa ESP32.
    • Conexión física: El terminal central (señal) al pin GPIO 34 (que pertenece al ADC1). Los dos terminales extremos se conectan a 3.3V y GND respectivamente].
    • Explicación del código: Uso de la función analogRead(pin) para obtener el valor del voltaje mapeado e impresión en el monitor serie mediante Serial.println() con una pausa de 1 segundo para estabilizar.
  • Práctica 2: Proyecto con Lógica de Control (Indicador de Niveles por LEDs):
    • Aplicación práctica: Representar niveles de una magnitud física dividiendo el rango de lectura máximo (4095) en tres tramos iguales de 1365 unidades cada uno.
    • Conexión física: Mantiene el potenciómetro en el GPIO 34 y suma tres LEDs conectados a las salidas digitales GPIO 25, GPIO 33 y GPIO 32 con sus respectivas resistencias de 220 ohmios a GND.
    • Lógica del código utilizando condicionales if / else:
      • Si el valor es mayor o igual a 1365, se enciende el primer LED; si es menor, se apaga.
      • Si el valor es mayor o igual a 2730, se enciende el segundo LED; si es menor, se apaga.
      • Si el valor alcanza el máximo absoluto de 4095, se enciende el tercer LED.
  • Funciones de Ajuste Avanzado (Mención):
    • El video menciona la existencia de funciones específicas de Espressif en el IDE para calibrar las lecturas, alterar los ciclos de muestreo o el número de lecturas por rango para aumentar la sensibilidad del ADC

Deja una respuesta