No hay duda de cual es el principal obstáculo para cualquier persona que quiera adentrarse en el apasionante mundo de Arduino.
El lenguaje de programación del Arduino es una variante del lenguaje C++. Este es uno de los mejores lenguajes para llevar la programación a su más alto nivel, es decir, para programar a un nivel de ingeniería del software.
Esto tiene unas pocas ventajas para un principiante pero también muchos inconvenientes.
La ventaja es que facilita la reutilización del software y gracias a ello el entorno de programación de Arduino ya incluye un montón de librerías estupendas, listas para ser utilizadas.
Cada hardware utilizable en el entorno Arduino dispone de una serie de librerías que facilitan su uso extraordinariamente.
La dificultad es que la enorme potencia de C++ y los avanzados conceptos que maneja, hacen de él un vasto mundo de programación que cuesta bastante tiempo llegar a dominar completamente.
Hacer cositas sencillitas no es muy complicado, pero dominar completamente las herramientas que ofrece este lenguaje, exige bastante estudio y dedicación.
Por todo ello, me ha parecido muy buena la idea de que en Genbeta dedicaran todo un artículo al C++ titulado
Estas son las mejores webs y canales de YouTube para aprender C++ desde cero hasta nivel experto
Tratándose de Genbeta, no me cabe duda de los video tutoriales son de una gran calidad y es cuestión de seguir aquel canal que se adapte mejor a tus necesidades , ya sea para empezar a aprender programación o para perfeccionar tu actual nivel de programación.
No debéis dejaros intimidar por la complejidad de algunos programas que se publiquen aquí porque hay muchas formas de conseguir un mismo objetivo y para ilustrar esto mismo tenemos el ejemplo muy bueno. E de la refrigeración de un acuario.
Pese a que la refrigeración de acuarios es un tema aparentemente sencillo, o quizás debido a eso, los antecedentes de la refrigeración de acuarios en el proyecto CAO, nos han dejado una secuencia de versiones que dan testimonio de la propia evolución de todo el proyecto CAO.
Todos los refrigeradores CAO usan como sensor de temperatura el DS18B20 del cual ya se habló en CAO1. Basicamente un refrigerador de acuario consiste en conectar un ventilador a partir de cierta temperatura así que es perfectamente posible hacer algo muy sencillo.
Cao_RefrigV1
Esta fue la primera versión. No es parametrizable, no tiene un modulo genérico de sensores, no tiene parte de comunicaciones. Los ajustes de funcionamiento han de hacerse en el código. Consta de un único módulo con 289 líneas de código (y podía haberse hecho incluso con menos). Se usó un Arduino Uno.
RefrigParmV2.1
Esta nueva versión es parametrizable. Se hizo como preparación a la siguiente versión. Se publicó como versión provisional porque con el verano en ciernes quise ofrecer algo aunque fuera temporal. Yo mismo lo necesité para dejar mi gambario refrigerado en verano. Una diferencia interesante con la versión anterior de solo 289 líneas de código, es que el control de la temperatura no activa y desactiva un ruidoso ventilador, sino que gradualmente a plica más o menos potencia hasta lograr la temperatura deseada. También incluye una indicación con LEDs de colores rojo verde y azul, que indica un valor aproximado de la temperatura para aquellos que no de seen usar un LCD de 16x2.
“RefrigParmV2.1” tiene 10 módulos de software además de su módulo principal. Con un total de 2867 líneas de código . Se usó un Arduino Pro Mini.
CaoBT_Refrig_Mini_V1
Esta versión incluye un diseño de PCB de nuestro compañero Ruben
Usa Arduino Pro Mini y tiene una parte de código para Android. La parte de Arduino tiene 3515 líneas de código y la parte de Android no usa líneas de código porque está realizada con App Inventor que es un lenguaje visual pero también lleva bastante trabajo.
Se ha implementado entre otras cosas un protocolo de comunicaciones propio. La comunicación usa Bluetooth y se hace con un modulito HC-05.
Las líneas de código no son en vano. Gracias a que podemos usar un terminal Android como interfaz, podemos, si así lo deseamos, prescindir de botonera y LCD resultando con ello un modelo barato, más muy pequeño y con diferencia el más potente.
Conclusión:
Si bien un hardware económico como este puede hacer mucho usando un software potente, también se pueden hacer cosas muy interesantes con muy pocas líneas de código.
Os animo a programar cosillas para Arduino.