Tutorial ESP32 18/55 - Detección de inclinación usando ESP32 | Kit de aprendizaje IoT ESP32 de SunFounder
En este tutorial, utilizaremos el microcontrolador SunFounder ESP32 para crear un proyecto simple que detecta la inclinación utilizando un interruptor de inclinación. Cuando el interruptor de inclinación se activa, un LED se apagará, y cuando esté en su posición vertical, el LED se encenderá. Este proyecto no solo es una excelente introducción al trabajo con sensores de inclinación, sino que también sirve como base para diversas aplicaciones de robótica. Para una guía visual detallada, asegúrate de revisar el video enlazado arriba (en el video a las 00:00).

Hardware Explicado
Los componentes principales utilizados en este proyecto incluyen el microcontrolador ESP32, un interruptor de inclinación y un LED. El ESP32 es un microcontrolador potente con Wi-Fi y Bluetooth integrados, lo que lo hace ideal para aplicaciones de IoT. El interruptor de inclinación es un dispositivo simple que contiene una bola de metal dentro de una lata. Cuando se inclina, la bola se mueve y rompe el circuito, lo que nos permite detectar el estado de inclinación. El LED indicará visualmente el estado de inclinación según el estado del interruptor. Además de estos componentes, también utilizaremos resistencias para limitar la corriente y por razones de pull-down. La resistencia de 220 ohmios conectada al LED garantiza que el LED funcione de forma segura sin consumir demasiado corriente. La resistencia de 10k ohmios actúa como un pull-down para el interruptor de inclinación, asegurando que el pin de entrada lea un estado conocido cuando el interruptor no está activado.
Detalles de la hoja de datos
| Fabricante | SunFounder |
|---|---|
| Número de parte | ESP32 |
| Voltaje de lógica/IO | 3.3 V |
| Tensión de suministro | 5 V |
| Corriente de salida (por canal) | 12 mA |
| Corriente máxima (por canal) | 40 mA |
| Guía de frecuencia PWM | 1 kHz |
| Umbrales de lógica de entrada | 0.8 V (bajo), 2.0 V (alto) |
| Caída de tensión / RDS(on)/ saturación | 0.2 V |
| Límites térmicos | 85 °C |
| Paquete | Módulo ESP32 |
| Notas / variantes | Incluye capacidades de Wi-Fi y Bluetooth. |
- Asegúrate de utilizar los valores de resistencia adecuados para prevenir daños al LED.
- Mantén el cableado ordenado para evitar cortocircuitos.
- Utilice resistencias de pull-down para garantizar lecturas estables del interruptor de inclinación.
- Prueba las conexiones antes de energizar el circuito para evitar fallos en los componentes.
- Verifique la orientación del interruptor de inclinación para un funcionamiento preciso.
Instrucciones de cableado

Para cablear los componentes, comienza con el interruptor de inclinación, que no tiene polaridad, por lo que se puede conectar en cualquier dirección. Conecta un pin del interruptor de inclinación a la fuente de 3.3V y el otro pin al pin 14 en el ESP32. Para asegurar que el pin 14 lea un estado conocido cuando el interruptor no está activado, conecta un resistor de 10k ohmios desde el mismo pin a tierra. A continuación, toma el LED e insértalo en la breadboard con la pata más larga (ánodo) conectada a un resistor de 220 ohmios. Conecta el otro extremo del resistor al pin 26 en el ESP32. La pata más corta (cátodo) del LED debe estar conectada a tierra. Finalmente, conecta el pin de tierra del ESP32 a la línea de tierra de tu breadboard y el pin de 3.3V a la línea de alimentación. Asegúrate de revisar todas las conexiones para prevenir cortocircuitos o lecturas incorrectas. Si sigues estos pasos, deberías tener un sensor de inclinación funcional listo para programar.
Ejemplos de código y guía paso a paso
El código comienza definiendo los números de pin para el interruptor de inclinación y el LED. El interruptor de inclinación está conectado al pin 14, y el LED está conectado al pin 26. El estado del interruptor de inclinación se almacena en la variable.tiltState.
// Set pin numbers
const int tiltPin = 14; // Tilt Switch
const int ledPin = 26; // LED
// Variable for storing the tilt status
int tiltState = 0;
Este extracto muestra las asignaciones de pines y la declaración de la variable que rastreará el estado de inclinación. LatiltPinse establece como una entrada para leer el estado del interruptor. En elsetup()Se inicializa la comunicación serie y se configuran los modos de los pines para el interruptor de inclinación y el LED. Esto asegura que el ESP32 pueda leer la entrada del interruptor de inclinación y controlar el LED en consecuencia.
void setup() {
Serial.begin(115200);
// Initialize the tilt pin as an input
pinMode(tiltPin, INPUT);
// Initialize the LED pin as an output
pinMode(ledPin, OUTPUT);
}
Esta sección es crucial ya que establece el entorno, permitiendo que el ESP32 se comunique de manera efectiva y controle la salida en función del estado del interruptor de inclinación.loop()la función comprueba continuamente el estado del interruptor de inclinación. Si el interruptor está en posición vertical, el LED se encenderá; si está inclinado, el LED se apagará. El estado actual se imprime en el monitor serial para la depuración.
void loop() {
// Read the state of the tilt switch
tiltState = digitalRead(tiltPin);
Serial.println(tiltState);
// If the switch is upright
if (tiltState == HIGH) {
// Turn LED on
digitalWrite(ledPin, HIGH);
} else {
// Turn LED off
digitalWrite(ledPin, LOW);
}
}
Este bucle se ejecuta continuamente, permitiendo el monitoreo en tiempo real del estado del interruptor de inclinación y el control correspondiente del LED. La salida se puede observar en el monitor serie, lo que facilita la verificación de la funcionalidad.
Demostración / Qué Esperar
Una vez que todo esté cableado correctamente y el código se haya subido, deberías ver que el LED se enciende cuando el interruptor de inclinación está en posición vertical, y se apagará cuando se incline. Esta correlación directa entre el estado de inclinación y la respuesta del LED muestra efectivamente la funcionalidad del interruptor de inclinación. Errores comunes incluyen asegurarse de que el cableado sea correcto y verificar que los resistores estén colocados adecuadamente para evitar cortocircuitos (en el video a las 12:00).
Marcas de Tiempo del Video
- 00:00 Comenzar
- 1:44 Introducción Proyecto
- 2:49 Documentación
- 6:43 Explicación del cableado de Arduino
- 10:39 Explicación del código de Arduino
- 13:40 Seleccionando la placa ESP32 y el puerto COM en Arduino IDE
- 15:22 Demostración del Proyecto Tilt
Common Course Links
Common Course Files
Recursos y referencias
-
DocumentaciónTutorial ESP32 18/55 - Documentación del sensor Tile de SunFounderdocs.sunfounder.com
Archivos📁
No hay archivos disponibles.