Parches soluciones asequibles
Soluciones

Arduino

Arduino es un entorno de programación en código abierto, lo que significa que su hardware y software son libres y modificables por el usuario. Esto supone una gran libertad que va desde la construcción de circuitos por uno mismo, como adaptar los miles de programas que circulan a nuestras necesidades. Posteriormente he visto otros entornos, PINOCCIO y alguno más, pero no los he usado y por tanto no puedo opinar.

Sin embargo yo creo que la verdadera comodidad consiste en que por un precio asequible (menos de 30€) se puede adquirir una placa ya montada y programada para conectarla a un puerto USB del ordenador y usarla de inmediato. La progamación es relativamente sencilla aunque muy sensible a los errores sintácticos. Si no escribes PERFECTAMENTE el código, el programa no funciona o no hace lo que esperas de él. Y lo digo por experiencia ya que depurar un fallo en una rutina me supuso dos días desesperantes hasta encontrar un ; que sobraba.

La placas llevan integradas la conexión USB (no todas), la alimentación y un montón de puertos de entrada y salida, digitales y analógicos, leds integrados, resistencias de carga programables, etc. Directamente o por medio de transistores o amplificadores se pueden manejar leds, motores, servos, altavoces, relés, luces, motores paso-paso, pantallas de caracteres, enviar y recibir datos del PC...

Y para todo esto, no se necesitan muchos elementos, una placa de montaje, algunas resistencias, potenciometros, pulsadores y puentes de hilo para las conexiones.

El sitio oficial en español es Arduino y aquí dan consejos de como empezar, donde comprar el material, como bajarse los programas y drivers de control y como instalarlos, acceso a librerias o programas de ejemplo etc

Mis Arduinos

Para empezar compré un UNO . Tiene la ventaja de llevar conectores hembra donde se pueden instalar directamente led, resistencias, etc.

Luego pasé al NANO , es más pequeño pero lleva pines macho y necesita una protoboard para montar componentes con lo que se trabaja mejor si el circuito es más completo.

Y por último he comprado un PRO-MINI. Esta placa, que es realmente pequeña, lleva terminales para soldar, porque está diseñada para circuitos definitivos. No lleva conector USB y se necesita algún elemento exterior para programarla. Puede trabajar a 3'3 V con lo que la alimemtación puede ser de menos de 5 V.

Dudas

Hay mucha información en INTERNET, pero aun así me quedan algunas dudas que no he podido resolver.

Por ejemplo, la "potencia" que es capaz de manejar sin daño. Se indica que cada puerto puede suministrar 40 (¿50?) mA, pero, ¿tanto en estado alto como en bajo?. Tampoco he visto cuantos mA puede manejar en total, es decir la suma de todos los puertos, En algún sitio he leido que 200 mA, pero no estoy seguro. Supongo que el dato se refiere a corriente media cuando se use el PWM.

Parece que pueden usarse los resultados enviados al serialPort como datos para otro programa, pero no he encontrado como se hace.

Avisos

Cuidado con las medidas con analogRead(). Mide la tensión aplicada a un puerto analógico y permite usar un potenciómetro como control, medir la tensión de un sensor, etc. Pero atención, usa como referencia los "5 V" del circuito. Si esa tensión no es realmente la teórica, como la USB de mi ordenador portatil, la medida será erronea. Por ese motivo, yo utilizo analogReference(tipo), que puede ser internal (1'1 V) o external, para la que utilizo los 3'3 V que suministra la propia placa, conectándola con una R de 5 KΩ.

En un mismo programa pueden usarse diferentes tipos de analogReference(), pero necesita un poco de tiempo para el cambio de referencia. Supongo que habrá algún condensador que se cargará o descargará. Por tanto, si se quiere cambiar la referencia, para conseguir más precisión en las tensiones bajas, hay que colocar algunos pasos de programa entre el analogReference() y analogRead(), o poner un DELAY(20).

En la presentación de resultados con el serial port, hay una función que no he visto explicada en ningun sitio y es Serial.print("\t");. Aun no la he usado, pero sirve para presentar los resultados en forma de tabla.

Para comentarios enviadme un correo a:

buzon...Fernando


Hazlo tú mismo