ESP32 Basic Starter Kit for dummys: Proyecto - 2 Entrada / Salida con GPIO
En este segundo proyecto va a "caharrear" además de programar, dado que va a aprender cómo utilizar los 36 GPIO (General Purpose Input/Output o Conectores de Entrada/Salida genéricos) de la placa ESP32 DEVKIT V1 mediante:
- la definición pinMode(GPIO, MODE), donde GPIO es el numero del PIN (Para salida y entrada no se pueden usar los GPIO del 6 al 11, y pasara salida tampoco los 34, 35, 36 y 39) y MODE el uso que se le va a dar, y los MODE básicos son: INPUT (entrada) y OUTPUT (salida)
- el comando digitalWrite(GPIO, STATE), para la salida HIGH (5V) y LOW (0V)
- el comando digitalRead(GPIO), para la entrada que devolverá al programa los valores HIGH para 5V de entrada y LOW para 0V
Asignación de los PINES de la ESP32 DEVKIT V1- DOIT Esquema visual de montaje. Del LED recuerde que la conexión larga es la (+) y la corta (-), si lo conecta al revés no funcionará. Sobre la placa de montaje debe saber que las dos filas superiores y las dos inferiores están conectadas cada una de ellas de forma continua en toda su longitud (azul que se usa por convención para la alimentación - y la roja para la alimentación +). Las 10 filas centrales por el contrario están conectadas por columnas y se interrumpen en el centro por esa especie de valle o rio que les separan Esquema electrónico realizado con circuit-diagram. Conviene que se acostumbre a interpretar los esquemas que es la forma convencional de documentar los circuitos eléctricos y electrónicos (Más sobre las herramientas para el diseño de circuitos) Otra información con la que deberá familiarizarse es con los códigos de colores de las resistencias. La primera banda es el primer dígito, la segunda el segundo, el tercero el tercero y el cuarto el multiplicador (tambien se emplean solamente 3 bandas), y la última la tolerancia. 10K es marrón (1)- negro (0)- negro(0) - rojo (100) = 10.000Ω Otro parámetro importante es la potencia que admite, pero eso es otro tema que ahora no tiene importancia y por ultimo su composición que tampoco nos influye por el momento El programa es el siguiente:
El montaje real no es tan ideal como el del dibujo del tutorial Si el circuito no va, revise que todo está montado como el esquema, y que los componentes están bien enchufados. NOTA:A mí se me queda el LED en ON pese a soltar el pulsador ¿?, seguramente está relacionado con que el pin esté leyendo estados indeseados cuando el botón no está presionado. La resistencia de 10kΩ entre el pin 4 y GND o resistencia Pull-Down deberia evitar este problema. (sobre PullUp y Pulldown). Si le ha gustado podría pensar sin tocar el circuito hacer que el LED esté intermitente
y si prefiere una sirena como las de las ambulancias, pues modifica un poco el circuito para incluir un segundo LED en el GPIO 18
Esquema de la sirena con dos LEDs También puede hacer un semáforo que pase de verde, a naranja o ambar (intermitente) y de este a rojo para pasar de nuevo a verde (Programa basado en este otro).
Vamos a mejorar el programa y aprenderemos cómo evitar escribir una y otra vez las mismas instrucciones, gracias al comando FOR. Dentro del paréntesis () y separados por ; encontramos el indice que llamaremos i con su valor inicial que es 0 "i=0", el bucle se ejecutará mientras se cumpla la condición de que el índice sea menor que 5 "i < 5", y el incremento i++ significa que cada vez que se ejecuta el bucle el indice i se incrementa en una unidad)
Esquema del circuito del semaforo Si es amante de las maquetas puede adquirir los tres leds en forma de semaforo Cuando comience a programar verá que es útil incluir mensajes mediante la instrucción que ya hemos visto Serial.println() que no aportan nada al programa pero que le permitirá ver por consola por donde va el flujo, terminadas las pruebas puede borrar estas líneas o comentarlas. Una herramienta web que puede probar es wokwi que permite simular el comportamiento de un programa ESP31 ( Ver: ESP32 Basic Starter Kit for dummys: WORKI) Por experiencia le puedo decir que resulta mucho mas fácil manejar los GIO en un arduino que en una Raspberry ( GPIO de Raspberry), o dicho de otra manera si va a interactuar con periféricos hardware mejor usar un Arduino que una Raspberry
|
Comentarios
Publicar un comentario