0% encontró este documento útil (0 votos)
17 vistas45 páginas

Guía Completa para Programar ESP32

El documento detalla aplicaciones educativas del microcontrolador ESP32, destacando su uso en educación STEM y desarrollo de habilidades técnicas. Se proporciona una guía sobre la instalación y configuración del entorno de desarrollo Arduino IDE, así como ejemplos de programación y buenas prácticas para trabajar con el ESP32. Además, se explican conceptos fundamentales de programación como estructuras condicionales y cíclicas, junto con ejercicios prácticos para encender LEDs.

Cargado por

ingridvargas050
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas45 páginas

Guía Completa para Programar ESP32

El documento detalla aplicaciones educativas del microcontrolador ESP32, destacando su uso en educación STEM y desarrollo de habilidades técnicas. Se proporciona una guía sobre la instalación y configuración del entorno de desarrollo Arduino IDE, así como ejemplos de programación y buenas prácticas para trabajar con el ESP32. Además, se explican conceptos fundamentales de programación como estructuras condicionales y cíclicas, junto con ejercicios prácticos para encender LEDs.

Cargado por

ingridvargas050
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Aplicaciones educativas y prácticas

• Educación STEM: Fomenta el aprendizaje en ciencia, tecnología,


ingeniería y matemáticas mediante la práctica y resolución de
problemas reales.
• Desarrollo de habilidades técnicas: Soldadura, diseño CAD,
impresión 3D, programación de microcontroladores, entre otros.
• Trabajo en equipo y resolución de problemas: Los equipos deben
colaborar desde la fase de diseño hasta la estrategia de combate.
• Innovación en ingeniería: Se estimula la búsqueda de soluciones
mecánicas y electrónicas creativas para obtener ventajas
competitivas.
ESP32

El ESP32 es un microcontrolador de bajo


costo y alto rendimiento desarrollado por
Espressif Systems, muy popular en
proyectos de electrónica, IoT (Internet de
las Cosas), automatización y robótica.
ESP32 WROOM 30 PINES
PARTES DEL ESP32

CHIP
RESET MICROCONTROLADOR

PUERTO USB
ANTENA

BOOT

PINES E/S
PINES DE ALIMENTACIÓN

ENTRADA 5V

ALIMENTACIÓN
TIERRA
POR USB

SALIDA 3.3V
PINES GPIO
ENTRADA/SALIDA SOLO ENTRADA

SEGUROS

GPIO4, GPIO5,
GPIO13, GPIO14,
GPIO16, GPIO17,
GPIO18, GPIO19,
GPIO21, GPIO22,
ENTRADA/SALIDA GPIO23, GPIO25–
GPIO27, GPIO32,
GPIO33
Entornos de programación: Arduino IDE

• Se puede programar con lenguaje C/C++


• Compatible con Windows, macOS y Linux.
• Curva de aprendizaje amigable, ideal para principiantes.
• Permite desarrollar desde proyectos simples (como encender un LED)
hasta avanzados (domótica, robots controlados por Wi-Fi o
Bluetooth).
• Comunidad activa y gran cantidad de tutoriales disponibles.
Instalación y configuración del entorno de
desarrollo.
1. Identificar el chip (CH340 o CP2102)
2. Descargar el driver e instalar
3. Instalar el Arduino IDE.
4. Agregar soporte para ESP32
• Una vez abierto el Arduino IDE:
• Ve a Archivo > Preferencias.
• En el campo “Gestor de URLs adicionales de tarjetas”, copia y pega la siguiente
URL:

[Link]
pages/package_esp32_index.json
Instalación y configuración del entorno de
desarrollo.

• Luego haz clic en Herramientas > Placa > Gestor de


placas.
• Busca ESP32 y selecciona "esp32 by Espressif Systems".
• Haz clic en Instalar.

5. Seleccionar la placa ESP32


• Ve a Herramientas > Placa y elige el modelo:
• “ESP32 Dev Module” para placas genéricas.
Instalación y configuración del entorno de
desarrollo.

6. Configurar el puerto
Conecta tu placa ESP32 al puerto USB de tu computadora. En el
menú Herramientas > Puerto, elige el puerto COM disponible
para seleccionar.

7. Cargar un programa de prueba


• Abre el ejemplo “Blink” desde Archivo > Ejemplos >
[Link] > Blink.
CUIDADOS DEL ESP32

✅ Antes de conectar o desconectar cables, apaga la alimentación.

✅ Conecta primero el cable al ESP32 y luego a la PC (o viceversa, pero sin


forzar el conector).

✅ El ESP32 puede calentarse un poco, sobre todo con WiFi, pero si está muy
caliente al tacto, revisa que no haya cortos.

✅ Cada escritura a la memoria flash tiene un ciclo de vida (~10,000 ciclos).


MALAS PRACTICAS CON ESP32

🚫 No toques los pines con objetos metálicos (como pinzas o


destornilladores con corriente).

🚫 No Conectar/desconectar cables con el ESP32 encendido aumenta el


riesgo de picos o cortos accidentales.

🚫 Evita conectar/desconectar repetidamente rápido, para no dañar el


regulador ni el chip USB.

🚫 No conectar directamente más de 3.3V a los pines GPIO


Función setup

void setup() { • Se ejecuta una sola vez, justo


después de encender o reiniciar el
// Instrucciones que microcontrolador.
se ejecutan una sola vez • Sirve para inicializar
al iniciar configuraciones básicas: pines de
entrada/salida, comunicación
} serial, sensores, etc.
• Es como preparar todo antes de
que empiece el "ciclo" principal.
Función loop

void loop() { • Se ejecuta infinitamente en bucle,


mientras la placa esté encendida.
// Instrucciones que se
repiten constantemente • Aquí se colocan las acciones que
deben repetirse: leer sensores,
} encender LEDs, controlar motores,
enviar datos, etc.
• Es el corazón del programa, que
nunca se detiene.
Función pinMode

Configura un pin específico pinMode(13,INPUT);


del ESP32 para que actúe
como salida (OUTPUT) o pinMode(12,OUTPUT);
entrada (INPUT).

INPUT = ENTRADA
pinMode(pin, mode);
OUTPUT = SALIDA
Función digitalWrite

Envía una señal digital (ON o


digitalWrite(13, HIGH);
OFF) a un pin.
→ el LED se enciende.

digitalWrite(pin, valor)
digitalWrite(13, LOW);
→ el LED se apaga.
HIGH = Enviar 3.3V → encender
el LED.
LOW = Enviar 0V → apagar el
LED.
Función delay

Pausa la ejecución del delay(1000);


programa por la cantidad
de milisegundos indicada.
Se usa para que el LED
1000 ms = 1 segundo. permanezca encendido o
apagado durante 1 segundo
antes de cambiar de estado.
delay(ms)
Declaración de Variables

int led1 = 13;


1. Su tipo de dato (qué
clase de valor puede
guardar). int → tipo de dato (número
entero).
2. Su nombre (cómo la vas
a llamar en el código). led1 → nombre de la variable.
3. Opcionalmente, su valor = 13 → se le asigna el valor 13
inicial. (que en este caso representa el
pin GPIO 13 del ESP32).
Tipos de variables comunes

Tipo ¿Qué guarda? Ejemplo

int Números enteros int led = 2;

float Números decimales float temp = 24.5;

bool Valores verdadero o falso bool encendido = true;

char Un solo carácter char letra = 'A';

String Cadenas de texto String nombre = "Luz";


Operadores matemáticos

Operador Significado Ejemplo

+ Suma int suma = a + b;

- Resta int resta = a – b;

* Multiplicación int mult = a * b;

/ División int div= a / b;

% Modulo (residuo división) int res = a % b;


Operadores de asignación

Operador Ejemplo Equivalente

= x = 5; Asigna 5 a x

+= x+= 3; x = x + 3;

-= x-= 3; x = x – 3;

*= x*= 3; x = x * 3;

/= x/= 3; x = x / 3;

%= x%= 3; x = x % 3;
Operadores de comparación

Operador Significado

== Igual a

!= Distinto de

> Mayor que

< Menor que

>= Mayor o igual que

<= Menor o igual que


Operadores lógicos

Para evaluar condiciones compuestas:

Operador Significado

&& Y lógico (AND)

! NO lógico (NOT)
Protoboard

También conocido como placa


de pruebas o breadboard, es
una herramienta muy útil
para construir y probar
circuitos electrónicos sin
necesidad de soldar.
LED – Diodo emisor de luz

• Es un componente
electrónico que emite luz
cuando pasa corriente
eléctrica por él.

• Ánodo (+) → patita larga.


• Cátodo (–) → patita corta.
SIMULADORES ESP32

• Simulador gratuito en
lí[Link] ESP32, ESP8266 y
Arduino.
• Permite conectar sensores,
pantallas, LEDs y más.
• Interfaz amigable y sin necesidad
de instalación.
Para utilizar el ESP32 de 30 pines

wokwi-esp32-devkit-v1
Ejercicios

Utilizando las funciones anteriores:


1. Encender un led.
2. Encender y apagar un led de forma
intermitente, con un lapso de 1 segundo.
3. Encender 2 leds.
4. Encender y apagar 2 leds de forma intercalada,
con un lapso de medio segundo.
Ejercicio: Encender un led (SOLUCIÓN)

int ledPin = 13; // Pin donde está conectado el LED

void setup() {
pinMode(ledPin, OUTPUT); // Configura el pin como salida
}
void loop() {
digitalWrite(ledPin, HIGH); // Enciende el LED
}
Encender y apagar un led de forma
intermitente, con un lapso de 1 segundo.
int ledPin = 13; // Pin donde está conectado el LED
void setup() {
pinMode(ledPin, OUTPUT); // Configura el pin como salida
}
void loop() {
digitalWrite(ledPin, HIGH); // Enciende el LED
delay(1000); // Espera 1 segundo (1000 ms)
digitalWrite(ledPin, LOW); // Apaga el LED
delay(1000); // Espera 1 segundo
}
Encender 2 leds

int led1 = 13; // LED1 en pin 13


int led2 = 14; // LED2 en pin 14
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
digitalWrite(led1, HIGH); // Enciende LED1
digitalWrite(led2, HIGH); // Enciende LED2
}
Encender y apagar 2 leds de forma
intercalada, con un lapso de medio segundo.
int led1 = 13; // LED1 en pin 13 digitalWrite(led2, LOW);
int led2 = 14; // LED2 en pin 14 delay(500); // espera medio
void setup() { segundo
pinMode(led1, OUTPUT); // Apaga LED1, enciende LED2
pinMode(led2, OUTPUT); digitalWrite(led1, LOW);
} digitalWrite(led2, HIGH);
void loop() { delay(500); // espera medio
segundo
// Enciende LED1, apaga LED2
}
digitalWrite(led1, HIGH);
¿Qué son las estructuras condicionales?

Las estructuras condicionales como if, else if y else permiten que


el programa ejecute diferentes bloques de código dependiendo
de si una condición es verdadera o falsa.

 Encender o apagar un LED si se presiona un botón.

 Tomar acciones según el valor leído en un sensor.


Sintaxis básica

if (condición) {

// Código que se ejecuta si la condición es verdadera

} else if (otra_condición) {

// Código que se ejecuta si la otra condición es verdadera

} else {

// Código que se ejecuta si ninguna condición anterior es verdadera

}
Ejemplo Estructuras Condicionales
Ejemplo Estructuras Condicionales
int led1 = 13; delay(1000);
int led2 = 14; digitalWrite(led1, LOW);
[Link]("Letra a
void setup() { presionada");
pinMode(led1, OUTPUT); }
pinMode(led2, OUTPUT); else {
[Link](115200); [Link]("Letra incorrecta");
} }
}
void loop() {
if([Link]()){ }
char letra = [Link]();
if(letra=='a'){
digitalWrite(led1, HIGH);
¿Qué son las estructuras cíclicas?

Las estructuras cíclicas o bucles son bloques de código que se


ejecutan repetidamente mientras se cumpla una condición (o hasta
que se cumpla cierta condición).
Son esenciales para:
Repetir tareas continuamente (ej: leer un sensor).
Esperar a que ocurra algo.
Hacer operaciones repetidas, como parpadear un LED varias veces.
Tipos de bucles en ESP32

while
Ejecuta el bloque de código mientras la condición sea verdadera.
int contador = 0;
while (condición) { while (contador < 5) {
// Código a ejecutar contador++;
repetidamente }
}
Tipos de bucles en ESP32

do…while
Ejecuta al menos una vez, y luego sigue repitiendo mientras la
condición sea verdadera.

int x = 0;
do { do {
// Código a ejecutar x++;
} while (condición); } while (x < 3);
Tipos de bucles en ESP32

for
Es muy usado para repetir un número fijo de veces.

for (int i = 0; i < 5; i++) {


for (inicialización; [Link](i);
condición; incremento) { }
// Código a ejecutar
}
Ejemplo Estructuras Ciclícas
Ejemplo práctico con ESP32: parpadear LED

int led1 = 13; delay(500);


digitalWrite(led1, LOW);
void setup() { delay(500);
pinMode(led1, OUTPUT); }
} delay(2000);
}
void loop() {
for (int i = 0; i < 5; i++)
{
digitalWrite(led1, HIGH);
Ejemplo práctico con ESP32: Secuencia LED
Ejemplo práctico con ESP32: Secuencia LED

int led1 = 12;


int led2 = 13; void loop(){
int led3 = 14; for(int i = 12; i<15; i++){
int tiempo=500; digitalWrite(i, HIGH);
delay(tiempo);
void setup(){ digitalWrite(i, LOW);
pinMode(led1, OUTPUT); delay(tiempo);
pinMode(led2, OUTPUT); } // fin del for
pinMode(led3, OUTPUT); }
}

También podría gustarte