36
QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA DIGITAL DCC QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA DIGITAL DCC

QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

Page 1: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA DIGITAL DCCQUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA DIGITAL DCC

Page 2: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

¿QUE ES ARDUINO?� Arduino es una plataforma electrónica

de código abierto basada en hardwarey software de fácil uso. Esta pensadopara cualquier persona que hagaproyectos interactivos.proyectos interactivos.

� El software (Arduino IDE) hace que seafácil escribir código (lenguaje C) ysubirlo a la placa Arduino.

� Hay diferentes tipos de placas,básicamente son un microprocesadorcon diferentes tipos de entradas ysalidas, con conexión USB y dealimentación.

Page 3: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

LA PLACA ARDUINO UNO� La placa Arduino UNO es la más popular y utilizada de toda la familia

Arduino

Page 4: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

LA PLACA ARDUINO UNO� Hay diferentes versiones de Arduino UNO. Con diferente tamaño pero

básicamente igual está la Arduino Nano.

Page 5: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

LA PLACA ARDUINO UNO� Con diferente microprocesador y número de entradas y salidas hay otras

placas Arduino (MEGA, DUE, Leonardo,…) pero todas se programan igualdesde el software Arduino IDE.

Page 6: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

LA PLACA ARDUINO UNO� Podéis decir a vuestro Arduino que es lo que tiene que hacer escribiendo

código en el lenguaje de programación Arduino o copiando el código yahecho por otros y descargarlo a la placa desde el Arduino IDE

Page 7: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONOCIENDO LA PLACA ARDUINO UNO� Arduino Uno es una placa con un micro controlador basado en

ATmega328P

Page 8: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONOCIENDO LA PLACA ARDUINO UNO� Tiene 14 pines digitales de entrada / salida (de los cuales 6 se pueden

utilizar como salidas PWM)

Page 9: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONOCIENDO LA PLACA ARDUINO UNO� Hasta 6 entradas analógicas. Pueden ser usados como pines digitales extra.

Page 10: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONOCIENDO LA PLACA ARDUINO UNO� Se puede alimentar externamente con tensión continua entre 7V y 12V. El

microprocesador trabaja a 5V y en el conector hay disponibles lastensiones de alimentación, los 5V y 3.3V, esta última solo da 50mA

Page 11: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONOCIENDO LA PLACA ARDUINO UNO� Tiene una conexión USB para poder cargar el software desde el Ardunio

IDE y comunicarse con él con un puerto serie, utiliza dos pines digitales.También puede ser alimentado solo desde el USB si el consumo espequeño.

Page 12: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONOCIENDO LA PLACA ARDUINO UNO� Tiene una serie de LEDs indicadores: Alimentación, puerto serie y pin13.

� Botón de Reset

� Dos de los pines (A4, A5) pueden funcionar como un bus I2C

Page 13: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONOCIENDO LA PLACA ARDUINO NANO� El Arduino Nano, de medida mucho

más pequeña que el Arduino UNO,tiene las mismas prestaciones yaque hace servir el mismoprocesador. Han reducido losprocesador. Han reducido losconectores y medida de la placa.

Page 14: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

COMO CONECTAR LOS ELEMENTOSPara pruebas se puede hacer servir una placa dónde poner los elementos queno necesita soldadura para hacer las conexiones, sólo cables.

Los LED necesitan su resistencia, el pinda 5V y 20mA máximoLos REED y pulsadores necesitan unaresistencia de pull-uppull upLos SERVOS normalmente se conectan alos pines PWM

Page 15: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

LAS PLACAS DE EXTENSIÓN O ‘SHIELD’Un ‘shield’ en Arduino és una placa que se apila sobre el Arduino o sobre otro‘shield’, de manera que nos permite ampliar el hardware o para darfuncionalidad extra a un Arduino.

Hay placas ‘shield’ para prototipos consoldadura o con tablero

Page 16: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

LAS PLACAS DE EXTENSIÓN O ‘SHIELD’Otros ‘shield’ interesantes para las maquetas incluyen control de motores decorriente continua, motores paso a paso, relés, sensores, servos,...

Page 17: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

OTROS TIPOS DE PLACAS DE EXTENSIÓNOtras placas de extensión no se pinchan en el Arduino pero también puedenser controladas desde los pines analógicos y digitales o por el bus I2C.Hay de relés, servos, barreras de infrarojos, pantallas OLED, transistores depotencia, ...

Page 18: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONEXIÓN ARDUINO A DCCPara hacer un descodificador de accesorios con Arduino necesitamos de uncircuito para poder leer la señal DCC y que a la vez nos aísle de las tensionesaltas que tenemos en la vía perjudiciales para el Arduino, recordemos quetrabaja a 5V.

Esto se consigue mediante un optoacoplador, el 6N137que es lo suficiente rápido para leer la señal DCC yentregársela al Arduino por el pin 2

Page 19: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONEXIÓN ARDUINO A DCCDesgraciadamente no hay una ‘shield’ comercial así que la tendremos quemontar nosotros con una placa prototipos o encargarla hacer desde un diseñode alguna web

https://github.com/lucadentella/arduino-dccshield

Page 20: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONEXIÓN ARDUINO A DCCLa señal DCC llegará al pin 2 del Arduino pero para hacerla servir en nuestroprograma hará falta descodificarla. Por suerte la comunidad Arduino hapuesto a disposición una librería para Arduino IDE para poder recibir yentender la señal DCC .

Desde el mismo Arduino IDE se puede instalar. Con la librería, el trabajo dehacer por ejemplo, un descodificador de accesorios DCC es bastante simple.

Page 21: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONEXIÓN ARDUINO A DCCEste pequeño programaenciende y apaga el LEDde la placa Arduino(conectado al pin 13)cuando recibe la ordencorrespondiente para laactivación del accesorio 6activación del accesorio 6en posición recto /desviado.

Si queremos que lo hagapara otro accesorio sólohay que cambiar en lalínea 9 la dirección 6 por elaccesorio que escojamos yvolver a subir el programaa Arduino.

Page 22: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONEXIÓN ARDUINO A DCCEn el Arduino IDE comprobamos que hemosseleccionado la placa Arduino que tenemos yel puerto al que esta conectada.

Para cargar el programapulsaremos sobre el botónde ‘Subir’ programa

La librería permite hacer tanto descodificadores de accesorios comodescodificadores embarcados. También tiene funciones para poder gestionarlas CV.

Hay otras librerías para descodificar la señal DCC:MynaBay: https://github.com/MynaBay/DCC_Decoder

de ‘Subir’ programa.

Si todo va bien nosinformará de que hasido subido

Page 23: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONEXIÓN ARDUINO A DCCPinchando una ‘shield’ de relés yampliando un poco el programa podemostener un descodificador de accesorios con4 relés similar a los comerciales y aúnpodríamos aprovechar alguna de lassalidas para encender unos LEDs, porejemplo.ejemplo.

O bien, añadiendo otra de laslibrerías disponibles que nos permitecontrolar un servo, y modificandoconvenientemente el programapodemos tener un descodificadorpara desvíos accionados por servocon polarización de los corazones

Page 24: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONEXIÓN ARDUINO A DCCCon la librería de servos sólo podríamos controlar hasta 12 servos en el ArduinoUno, pero con placas adicionales y haciendo uso del bus I2C podríamos controlarde 16 a 1000. Necesitaremos instalar las librerías adecuadas para trabajar con elbus I2C y el chip controlador de la placa de servos.

Las salidas son PWM por lo que en lugar de servospodríamos controlar la intensidad de LEDs

Page 25: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CONEXIÓN ARDUINO A DCC

Con librería I2C y otra para pantallasOLED, y un poco de trabajo deprogramación podemos tener cartelesanunciadores en las estaciones.

Con un ‘shield’ de control de motorespodremos controlar un motor paso apaso para mover una plataformagiratoria.

Hay una librería para este tipo demotores.

Page 26: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

APRENDER A PROGRAMAR EL ARDUINO

Tiene dos rutinas principales:

setup() – Contiene el código deconfiguración, se ejecuta una sola vez aldar tensión o pulsar el botón Reset.

Se denomina ‘sketch’ a un programa hecho para la plataforma Arduino.

pulsar

loop () – Es el programa principal, seejecuta una y otra vez sin parar.

Hay gran cantidad de librerías que podemos hacer servir y que hacen muy fácilinteractuar con el hardware, para utilizarlas las tendremos que instalar y se han deincluir en el código haciendo servir la directiva #include <libreria.h>

Hemos de estudiar la librería o mirar los ejemplos que normalmente llevan parasaber que funciones añade y como las tenemos que utilizar.

Page 27: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

APRENDER A PROGRAMAR EL ARDUINO

¡Eh!

¡Un momento!

¿He de aprender todo estohacer servir el Arduinopara hacer servir el Arduino

en la maqueta?

Page 28: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

APRENDER A PROGRAMAR EL ARDUINO

Me vale con el diseño que he visto enInternet en que el trabajo ya esta

Quiero un diseño especial ya que nohe encontrado nada que haga lo que

hecho.necesito.

Page 29: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

NO APRENDER A PROGRAMAR EL ARDUINO

1 He visto en Internet

� un descodificadorque me sirve y ya tieneel software listo paradescargar �

2 Descargamos el software y lo descomprimimos si hace

falta. Lo abriremos en el Arduino IDE.

3 Instalamos las librerías que nos

indiquen o miramos en el código sinos hace falta alguna librería

Page 30: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

NO APRENDER A PROGRAMAR EL ARDUINO

4 Comprobamos si hemos de cambiar algo en el código

para que se adapte a mis necesidades

5 Escogemos nuestra placa en el Arduino IDE y

el puerto donde está conectada

6 Pulsamos en el botón de ‘Subir’ el programa a nuestro

Arduino

7 Comprobamos que haya ido bien sin errores

8 Comprobamos que funciona

Page 31: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

ARDUINO SIN COMPLICACIONESEn Internet hay montajes dedescodificadores DCC en que eltrabajo ya está hecho. Sólo hay quebajarse el código, instalar las libreríasque use, y subir el programa alArduino.

Muchas veces lo único que se ha demodificar del código es la dirección ala que queremos que responda oalgún valor que dependa de lo quehemos montado si hay diferentesopciones.

Si hacen servir CV es como undescodificador normal comercialpero hay que no hace falta, se lepuede decir desde el monitor serie:

Page 32: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

DESCODIFICADORES PARA LOCOMOTORAS

También hay algún diseño dedescodificadores embarcados paralocomotoras, pero el tamaño esgrande para las escalas pequeñas.

Están basados en la utilización delcircuito de control de motores.

Lo más habitual es encontrar circuitos de controlpara ida y vuelta de locomotoras.

Page 33: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CENTRAL DCC CON ARDUINO

DCC++ es el diseño de una central DCChecha con Arduino y una ‘shield’ decontrol de motores.

Se controla desde el USB con elmonitor serie mediante comandos detexto.

Tiene salidas para vía principal y vía deprogramación para leer y escribir CV.

También se puede controlar desdeJMRI y Rocrail.

Page 34: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

CENTRAL DCC CON ARDUINO

Recordemos que el Arduino se alimenta entre 7 i12V, así que hemos de aislar la conexión VIN de la‘shield’ para que la tensión a la que alimentamosla DCC++ que es superior no es estropee elArduino, este se alimentará desde el USB.

En Internet, hay montajes de la DCC++con ‘shield’ Ethernet o WiFi y con unapantalla LCD para hacerla autónoma yno depender del ordenador.

También se han diseñado mandos porcable o inalámbricos para la conexiónserie.

Page 35: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

INTERNET� Librerías Arduino

https://www.arduino.cc/en/Reference/Libraries

� Adafruit PCA9685 16-Channel Servo Driver

https://learn.adafruit.com/16-channel-pwm-servo-driver?view=all

� Arcomora

https://www.arcomora.com/

� DCC++

https://sites.google.com/site/dccppsite/home

� La maqueta de Infotronikblog

http://lamaquetade.infotronikblog.com/

� Club N Caldes

http://www.clubncaldes.com/search/label/Arduino

� Locoduino

http://www.locoduino.org/

Page 36: QUE SE PUEDE HACER CON ARDUINO PARA LA MAQUETA … · CONEXIÓN ARDUINO A DCC Este pequeño programa enciende y apaga el LED de la placa Arduino (conectado al pin 13) cuando recibe

GRACIAS POR GRACIAS POR GRACIAS POR GRACIAS POR SU ATENCIÓNSU ATENCIÓN

Ponente: Paco Cañada

www.fut.es/~fmco