Ya hace tiempo que no dedicaba un artículo y capítulo del podcast a resolver dudas que me van llegando de usuarios de la web, oyentes del podcast y alumnos del curso de Arduino.
Así que hoy toca resolver dudas que imagino que todos podemos tener en algún momento.
Lo importante es que no te quedes con ellas.
Yo, dentro de mis posibilidades, intento resolverlas. Si creo que es una duda que podemos tener cualquiera de nosotros, pues la trato en un podcast y en un artículo.
Como las 3 dudas que se plantean hoy:
- Si aprendo a programar con Arduino ¿me vale para un ESP8266 o un ESP32?
- Cuando actualizo el IDE de Arduino ¿se pierden los archivos de la versión anterior (códigos y librerías)?
- ¿Puedo utilizar el pin GPIO15 de un ESP8266?
De todas estas preguntas hablaré a continuación.
Además, en el podcast podrás escuchar a Diego Trapero hablarnos de técnicas para pegar el PLA.
Por último, si quieres ver el proyecto del Mastermind Star Wars con Arduino ya lo puedes encontrar en Instructables.
Así que, vamos a comenzar.
Indice de contenidos
Si aprendo a programar con Arduino ¿me vale para un ESP8266 o un ESP32?
Mariano desde Buenos Aires Argentina preguntaba lo siguiente
Hola Luis, soy Mariano de Buenos Aires, actualmente me dedico a proyectos de automatización. De cultivos e industrias metalúrgicas, quiero hacer este curso hace mucho tiempo, pero no me decido. Ya que hoy por hoy solo trabajo con esp32 esp8266 y raspberryPi. Uso muy poco arduino. No uso los conectados por su alto costo en relación a los esp. La pregunta es, que tanto me ayudaría este curso en relación a los dispositivos que uso habitualmente? Apelo a tu buena fe y sinceridad para poder tomar un buena decisión con respecto a esto.
Muchas gracias!
Te mando un gran abrazo desde Argentina!!
Lo primero agradecerte el interés en el curso de Arduino y también que hayas contactado conmigo.
Esta duda es algo normal que suelen tener muchos usuarios.
Para empezar, todo lo que aprendas con un Arduino UNO lo podrás utilizar en un ESP8266 o en un ESP32. En todos los casos se programa con una versión reducida del lenguaje C/C++.
Esto quiere decir que si tienes un código que has probado en un Arduino UNO donde no incluyas ninguna librería, funcionará en cualquier placa de Arduino y además en un ESP8266 o ESP32.
Esta es una de las grandes ventajas, la compatibilidad del código.
Pero no solo con Arduino y ESP8266, también ocurre con otras placas como Particle Photon, Monteino, las de BQ, y un montón más.
Siempre pensando en que no vamos a añadir funcionalidades extra con alguna librería para Arduino.
Si necesitas añadir una librería, tendrás que comprobar si dicha librería es compatible con la placa con la que quieres trabajar.
En el caso de Arduino y ESP8266, la compatibilidad es casi del 100%. Seguro que hay alguna librería que no es compatible pero vamos, casi todas lo son.
Incluso me estoy dando cuenta que en algunas ocasiones hay ciertas librerías para el ESP8266 o ESP32 que no existen para Arduino.
Un claro ejemplo es la librería WiFiManager de la cual he hablado en este blog.
Hasta aquí tiene que quedar claro que lo que aprendas con una de estas placas lo podrás aplicar en cualquier otra, a nivel de programación.
Dicho esto, en el curso de programación de Arduino desde cero se trabaja con una Arduino UNO. Está muy enfocado a la programación y por lo tanto, si ya tienes conocimientos quizás no sea tu curso.
Cuando hablo de conocimientos hablo de programar tus propios códigos por ti mismo. De poder coger un tutorial, ver el código y adaptarlo a un proyecto que quieres hacer.
En este caso no te recomiendo el curso salvo que quieras afianzar conocimientos.
Aún así Mariano, siempre puedes probarlo. Recuerda que doy una garantía de 30 días para probar el curso.
Si no te gusta o no te convence, me mandas un email y te devuelvo el dinero.
Con esto finalizo, vamos a pasar a la siguiente pregunta.
Cuando actualizo el IDE de Arduino ¿se pierden los archivos de la versión anterior (códigos y librerías)?
Juan Alcántara de El Prat de Llobregat en Cataluña preguntaba lo siguiente
Buenas noches Luis! Mi pregunta es la siguiente: Si me bajo la última versión de Arduino en este caso 1.8.9 . ¿Qué le sucede a todos los archivos de la versión anterior? ¿Se pierde algo? ¿Puedo bajarme la última versión sin ningún problema? Gracias.
Un saludo cordial Juan Alcántara
Juan es un alumno del curso de Arduino y esta pregunta me la hizo llegar a través de los comentarios de una lección.
Hablando del IDE de Arduino tengo que empezar diciendo que gracias a los desarrolladores por mantener siempre la compatibilidad entre las diferentes versiones.
Seguro que te ha ocurrido alguna vez con algún otro software que a partir de una versión, no había compatibilidad para atrás con las viejas versiones.
De momento (toquemos madera) esto no ha sucedido con el IDE de Arduino.
Incluso lo que son las funciones principales de este software, han variado muy poco. Esto es muy importante a la hora de aprender a crear proyectos con la plataforma de Arduino.
Imagínate que con cada nueva versión cambian las funciones, los iconos o el IDE completo. ¿Sería un auténtico lío?
Cuando actualizas el IDE a una nueva versión, las librerías y los programas o sketch se mantienen en la carpeta que tengas configurada por defecto.
Esta carpeta se llama carpeta de proyecto o proyectos y puedes saber cuál es si entras en la opción del menú del IDE en Archivo>Preferencias.
El primer parámetro que te encuentras pone Localización de proyecto.
Aquí verás la carpeta que se utiliza para guardar por defecto cualquier proyecto y donde se descargan las librerías.
Bueno, las librerías luego van dentro de una carpeta que se llama libraries como ya vimos cuando hablé de las librerías de Arduino.
Pues todo lo que hay dentro de esta carpeta se mantiene aunque tu actualices el IDE de Arduino.
Aún así, recomiendo siempre tener una copia de seguridad de todos los programas que tengas ahí por si acaso.
Siempre puedes tener una carpeta en la nube de Google o en Dropbox.
Bueno, creo que con esto queda resuelta la duda de Juan. Ahora vamos a pasar a la siguiente.
¿Puedo utilizar el pin GPIO15 de un ESP8266?
Vicent desde Valencia me pregunta
Muy buenas,
Estoy leyendo toda la información de tu web (que he de reconocerte lo buena que es) porque me interesa mucho el módulo NodeMCU v3.
Pero estoy teniendo un problema, y no encuentro la solución, es una tontería, pero quería saber tu que opinas.
Es con respecto al pin GPIO15 (D8) configurado como entrada (a la que he puesto un Pull Down de 1K), al igual que he hecho en D5, D6 y D7.
Con D5, D6 y D7 no tengo problemas, pero en D8 no me reacciona.
He probado a en lugar de hacerlo por PullDown, hacerlo por Pull Up y si que funciona.
¿Tienes idea si esa entrada tiene un inversor o alguna construcción diferente?
Lo primero que tengo que decir es que es una pregunta típica donde las haya.
Para aclarar la pregunta, Vicent habla del pin D8, que corresponde al pin GPIO15.
D8 es la numeración en la placa en este caso NodeMCU.
Si hablamos de otras placas puede que tenga otra numeración como por ejemplo la placa Adafruit Feather ESP8266.
Sin embargo, la placa Wemos Mini si que tiene la misma numeración y el D8 corresponde con el pin GPIO15.
Por otro lado, la numeración GPIO15 hace referencia al SoC ESP8266 y por lo tanto, en todas las placas es igual.
Así que lo mejor es utilizar la numeración del GPIO15 es decir, del ESP8266.
Aclarado esto hay que saber también que hay ciertos pines que pueden ser utilizados como salida pero no como entrada.
¿Por qué sucede esto? Pues porque esos pines se utilizan durante el arranque de la placa para poner los diferentes modos en los que puede estar un ESP8266.
Estos pines son el GPIO0, GPIO2 y GPIO15.
Son los encargados de decir al ESP8266 si hay que cargar un programa o hay que ejecutar el programa que tiene cargado en memoria.
Estos serían los estados y los diferentes modos de estos pines.
GPIO0 | GPIO2 | GPIO15 | |
Modo UART carga de programa | LOW | HIGH | LOW |
Modo Flash, ejecución del programa | HIGH | HIGH | LOW |
Arranque de SD-Card | LOW | LOW | HIGH |
Estos serían los 3 modos.
Por defecto, el modo en el que está configurado es en el modo Flash, modo de ejecución de programa.
Si miras en las documentación del ESP8266 verás que en el pin GPIO0 y GPIO2 hay una resistencia pull-up y en el pin GPIO15 está conectado a GND.
Si utilizas el pin GPIO15 como entrada y conectas un componente que por defecto está en modo alto, al arrancar el ESP8266 dará un error ya que intentará arrancar en un modo que no es el de ejecución.
Pero también me ha llegado el caso contrario, cuando intenta cargar un código y no permite cargarlo porque está en modo que no corresponde.
Me han llegado muchos emails con problemas de este tipo, tanto un caso como otro.
El problema es que no te da un error concreto diciendo que algo está mal en el pin GPIO15 o cualquier otro pin de arranque y es difícil detectarlo si no entiendes su funcionamiento.
Así que la recomendación es no utilizar estos pines en modo entrada, solo en modo salida.
Esto se puede aplicar a cualquier placa no solo a una NodeMCU, siempre que utilice un ESP8266
Con esto damos por finalizado este capítulo y resuelto todas las dudas.
Recuerda que me puedes enviar tus preguntas haciendo un comentario en cualquier artículo o a través del formulario de contacto.
Gracias a Shutterstock por ceder los derechos de la imagen.