Parches soluciones asequibles
Soluciones

Cosas que no he encontrado sobre ARDUINO

Hay una gran cantidad de información sobres ARDUINO y su desarrollo, "oficiales", colaboraciones, foros, tutoriales, programas y librerias "preparados para su uso", etc. Parece que cualquier cosa que necesites la puedes encontrar en la RED, sin embargo yo no he podido localizar algunos aspectos que me interesan, o lo que he encontrado no resolvia mi problema, así que aquí recopilo lo que echo en falta y lo que he podido resolver o averiguar por mi cuenta, generalmente por el sistema de prueba y error.

Por ejemplo el uso de rutinas o funciones. ¿Donde se ponen?, ¿como se accede a ellas en un programa?. Creo que ya lo he resuelto, a base de mirar programas que las incluyen, así que aquí resumo lo que he deducido, espero que de una forma clara.

Rutinas o funciones

Curva de carga de un puerto.

Cuando un puerto digial (¿ y análogico?) se ponen en INPUT sirven para suministrar 5 V ó 0 V, pero como lo hacen "electrónicamente" hay una caida de tensión. No he encontrado datos en ningún sitio, pero en las pruebas (ver multivoltímetro) he medido una caida de tensión de un voltio en una puerta HIGH y casi 0'2 V en una LOW. Por tanto

Aumentar la intensidad de un puerto

Creo que se pueden conectar varios puertos en paralelo para alimentar alguna carga que necesite más de los 40-50 mA de un puerto individual. La resistencia interna del circuito hará que se reparta la intensidad entre los dos (¿o más?). El problema es que no pueden estar uno en HIGH y otro en LOW por lo que si tienen que cambiar de estado deben ponerse las órdenes en líneas contiguas de programa. Además, no es mala idea colocar una resistencia de pequeño valor en serie con cada puerto.

Otro "truco" que puede usarse es hacer trabajar el puerto a pulsos. Por ejemplo, si queremos controlar el polo común de un display de 7 segmentos y cada segmento necesita 10 mA, para escribir el 8 consumirá 70 mA. Sin embargo, podemos hacer que el display "parpadee" un 50% del tiempo, con una frecuencia de 30 veces por segundo. La luminosidad será la misma pero el consumo medio solo la mitad, es decir unos 35 mA en el caso del 8. Este sistema se aplica en los displays de varios dígitos multiplexados cuya presentación se va alternando-

Cambiar el PINMODE "en caliente"

Cambiar "analog reference" sobre la marcha

La función analog reference es muy útil. Cambia el margen de medida de un puerto analógico para medir tensiones menores de 5 V con una mayor resolución. Pero le he encontrado un problema; si queremos cambiar la tensión de referencia, por ejemplo de DEFAULT a INTERNAL en medio de un programa, no funciona bien y sigue usando la referencia de 5 V.

Después de muchas pruebas, he visto que necesita algunos ciclos para hacer el cambio. En el programa del multivoltímetro lo resolví haciendo el cambio inmediatamente después de cada medida para dar tiempo antes de medir con otra analog reference

Hazlo tú mismo