Cómo empecé con Arduino
www.geocities.ws/danielperez www.qsl.net/lw1ecp Ing. Daniel Pérez LW1ECP
fb: Daniel Ricardo Perez Alonso contacto: danyperez1{arrroba}yahoo.com.ar
Recopilación de mis primeras experiencias con Arduino, por si a alguien le guía en las suyas.
-
Conseguí un Arduino (compré lo más barato, un Nano chino; si cuando
haga algo en serio me queda chico no lo lamentaré) y un cable miniUSB.
- El vendedor me dijo que hará falta el 'driver (controlador) para CH340'.
CH340 es el integrado de interfase con USB de este chino.
(El Arduino que Ud. tenga puede que traiga los tradicionales FT232RL o ATMEGA16u2).
Lo busqué en web y lo bajé a una carpeta del rígido.
- Lo enchufo por 1a vez en USB.
- Salta 'No se pudo instalar el soft de controlador de dispositivo USB2.0-Serial'
Nota: mi PC la tengo seteada para 'No instalar nunca software de controlador de Windows Update'
-
Inicio -> Panel de Control -> Administrador de Dispositivos (se
encuentra más fácil si no estoy en modo 'Ver por Categoría')
-
En 'Otros Dispositivos' aparece el 'USB2.0-SERIAL' con un ! amarillo
-> clic derecho -> actualizar controlador -> Buscar en el
Equipo -> ir hasta donde lo puse.
- Instalando -> 'Finalizó la instalación para este dispositivo: USB-SERIAL CH340 (COM3)'
-
Ahora se borra de 'Otros Dispositivos' y aparece en 'Puertos (COM y
LPT)' como 'USB-SERIAL CH340 (COM3)' y sin el '!' amarillo.
- Ahora necesito un entorno de programación para Arduino. Por ejemplo el que ofrece la misma empresa:
www.arduino.cc -> Sign In -> Create New Account -> elijo
nombre y contra -> me mandan mail, ingreso -> termino en
https://create.arduino.cc/
- Puedo elegir entre descargar el entorno a mi PC (Desktop IDE), o usar el online (Create, en create.arduino.cc). Quiero el Desktop IDE.
En https://www.arduino.cc/en/Guide/Windows están las instrucciones del Desktop IDE
Está el instalador y el zip. Elijo el zip porque permite una instalación portable (no toca cosas de Windows).
- https://www.arduino.cc/en/Main/Software -> 'Windows ZIP file for non admin install' (son 159MiB)
-
Adentro del zip hay una carpeta 'arduino-1.8.2', la descomprimo en
c:\Archivos de Programa\ o a otro lado si Windows no me deja. Son 5195
archivos, 416MiB.
- Según instrucciones en https://www.arduino.cc/en/Guide/PortableIDE agrego una carpeta 'Portable' a las que se descomprimieron.
- Ejecuto arduino.exe -> Herramientas -> Placa: selecciono Nano. Procesaror: AtMega328. Puerto: COM3.
-
Archivo -> Ejemplos -> 01.Basic -> Blink -> Subir
(ícono flecha derecha) -> Compilando... -> veo que comienza a
parpadear el LED 'L'. Eureka!!!
-
Archivo -> Ejemplos -> 01.Basic -> AnalogReadSerial
-> Subir -> Compilando... -> Herramientas -> Monitor
Serie.
Van saliendo números caprichosos, por captación de zumbido y ruido en el contacto A0 (entrada analógica)
O bien, usar el SerialPlotter y grafica como un osciloscopio lento.
- Al otro día ahora Windows dice que el Arduino está en COM4!?! Y eso que en Panel de
Control -> Adm de Disps -> Puertos no figura ocupado con otra
cosa el COM3!
Bueno, esta es la parte exitosa de la historia. Si quiere aburrirse, o por si le pasó lo mismo, antes había sufrido esto:
La
1a vez yo no quería bajar nada, entonces en https://create.arduino.cc/
-> Arduino Web Editor -> me dice que tengo que instalar un
'plugin', y que está en https://github.com/arduino/arduino-create-agent
y http://create.arduino.cc/getting-started/plugin pero no hay nada que
se llame 'plugin'. Después de muchas vueltas y googlear de repente me
avivo de que se llama
"ArduinoCreateAgent-1.1-windows-installer.exe", son 10 megas! Cómo, no
era que no había que instalar nada? Mejor voy a
https://www.arduino.cc/en/main/software pero el zip instalador del IDE
son 166MB que descomprimidos son 436!!! Vuelvo con el caballo cansado a
la opción web: analizo con antivirus y ejecuto el dichoso Agent. "At
the end of the plugin installation you will be redirected to the
Arduino login page", no pasó eso. Tipeo manualmente
https://create.arduino.cc/editor Ahí me dice que no detectó plugin, el
help me dice que veififique si está el ícomo del plugin en la barra de
arriba o abajo, pero no sé qué forma tiene el ícono. Tras un rato
aparece "we are about to install some drivers to use Arduino/Genuino
boards". Pero si ya tengo el driver! Instala el "Arduino USB Driver",
editor: Arduino SRL. Le dije que NO.
Ahora, cada vez que voy a hacer algo con el Arduino:
- Lo enchufo a USB. En Administrador de Dispositivos me me dice que ahora es COM6!
- https://create.arduino.cc/ -> Web Editor -> user y pass -> dice 'Loading Arduino Create'
- a la derecha del botón de Upload hay un símblo de conexión cortada con una X roja: "-x- Arduino Nano"
- luego 'No plugin connection. Uploading is disabled until you reconnect'
-
Aunque esté el -x- a veces el botón Upload (flecha hacia derecha) está
en gris permanentemente. Otras, se activa tras unos segundos. Entonces
sí puedo upload.
Y siguieron las peripecias pero me cansé de seguir anotando. Todo se normalizó... después de reinstalar Windows, AUNLC...
Interfase entre lógicas de 5 y 3,3V
La
tendencia es hacia sistemas de 3,3V. Mientras dure la transición,
existirá la necesidad de interconectar sistemas de ambos mundos. Se
venden plaquetitas adaptadoras de nivel. Pero hay quienes que dicen
tener éxito con conexiones directas. Veamos el caso de conectar una
salida de un sistema de 3,3V a una entrada de 5:
Cuando la salida de 3,3 está en nivel bajo, su tensión es 0V, y si se conecta directamente a la entrada de 5 va perfectamente.
Pero su nivel alto será de 3,3V, y la entrada de 5 le gustaría que fuese lo más cercano a 5 posible. Alcanzará?
Al
menos en el caso del ATMEGA328 usado en el Arduino Nano, alimentado con
5V, el pdf de datos pide que el nivel bajo aplicado a una entrada sea
menor que 1,5V y que el alto sea mayor que 3,0V. Y entre esos valores,
no se sabe cómo lo interpretará.
O sea que así nomás estamos bien. Pero podríamos estar mejor.
-
Le estamos dando apenas 0,3V por encima del mínimo, o sea que si los
cables entre ambos sistemas captan un pulso de ruido mayor que 0,3V
hacia abajo se corre el riesgo de que la entrada se confunda.
-
Además, en las compuertas CMOS cuando las tensiones de entrada no son
lo suficientemente cercanas a 0V o Vdd, aunque interpreten
correctamente el nivel, comienza a haber un consumo en el MOS de canal
N o el P respectivamente. Otra razón para ser generosos con los niveles.
- Una más: si los 5V están en más de ese valor, y los 3,3 en menos, empeora el margen.
Sumando
la caída de un 1N4148 vemos que el nivel bajo empeora un poco, pero el
margen del alto mejora a 0,72V. Probé también cn un LED infrarrojo como
el de los remotos, que tiene mayor caída, y el nivel 0 ya queda un poco
demasiado alto, pero se puede tener en cuenta para conectar a otras
familias CMOS que tengan niveles simétricos, como la 74HC que pide
menos de 1,5V tanto con respecto a 0 como a 5. O sea 3,5V en el alto:
si le aplicáramos sólo 3,3 estaríamos en la zona gris.
Y al revés,
conectar una salida de 5 a una entrada de 3,3?. El nivel alto será
abundante, demasiado abundante. Las entradas CMOS suelen tener diodos
de potección: uno a masa y otro a Vdd, que normalmente están en
inversa. Si la tensión de entrada supera la Vdd más aprox. 0,6V
conduce el diodo de arriba, tomando corriente desde la salida de 5. No
es probable que se queme nada. Como la corriente circulante termina yendo a la línea de 3,3V, podría hacer que ésta se vaya para
arriba. Se aconseja intercalar un R de p. ej. 10k en serie con la
entrada. Si es importante no degradar la velocidad de la conexión,
agregar 47pF en paralelo con el R.
Alimentar consumos adicionales
Si
el Arduino se alimenta desde una fuente específica de 5V es lógico que
las cosas conectadas alrededor de él también sean de 5V, o 3,3. Pero si
la alimentación principal es p. ej. de 12V, y se está bajando a 5 a
propósito para el Arduino, hay probabilidad de que la mejor opción es
que los periféricos de alto consumo sean de 12V.
Veamos esta popular
placa de 8 relés. Por cada uno tiene un optoacoplador y un transistor.
Opino que el opto es innecesario, pero así
es esta placa y sus clones. No encontré datos del fabricante sobre su
consumo, sólo dice que el relé se energiza poniendo un 0 en la entrada,
y que en ese estado la corriente de entrada está entre 15 y 20mA. Esa
corriente activa su optoacoplador y enciende su LED.
Hay
una Vcc para los primarios de los optos, y una 'JD-Vcc' para los relés,
ambas de 5V, que mediante un jumper pueden puentearse, o alimentarlas
con fuentes distintas (Vcc desde Arduino y JD-Vcc con fuente aparte).
La
hoja de datos de ese modelo de relé especifica que consume máx. 90mA.
En el peor caso, si se energizan los 8, y está colocado el jumper, el
consumo total de relés y entradas sería de (90+20)*8=880mA, más el
interno del Arduino. Pongamos 900mA total-total.
Esto era la
consulta de alguien que iba a alimentar todo desde 12V. El regulador
interno del Arduino, si le entramos con 12V, disiparía 0,9A * (12 - 5)V
= 6,3W. Mmm... ese regulador es capaz de 1A y de esos watts, según su
hoja de datos, pero sólo si se le pone un generoso disipador, y en el
Arduino disipa lo que puede en la plaqueta... No, yo los 5V para los
relés los obtendría con un 7805 con disipador, conectado a JD-Vcc, y
que el Arduino regule sólo lo que va a consumir él mismo y los optos
del módulo. Unir la entrada del 7805 con la Vin del Arduino, y
aplicarles 12V en serie con un R que haga caer la tensión a 7,5V ente
máximo consumo, para que trabajen descansados ambos reguladores.
Pero
por qué no usar relés de 12V? Para una misma tecnología de relés en los
que sólo cambia la tensión de la bobina, la corriente es inversamente
proporcional a esa tensión de diseño. Efectivamente, el SRD-12VDC-SL-C
consume máximo 37,5mA. Abajo a la derecha está el esquema propuesto. En
este caso, el relé se energiza con un 1 en la salida del Arduino.