Índice general Foros Digital, Electricidad e Informática Descodificador DCC para 8 señales con Arduino

Descodificador DCC para 8 señales con Arduino

Moderador: 241-2001



Desconectado
Mensajes: 434
Ubicación: Madrid
Registrado: 05 Ene 2017 11:09
ray269 escribió:
Y por cierto tiene muy buena pinta. Quiero una!!!!!!,jajaja

Enviado desde mi Redmi Note 3 mediante Tapatalk



Tengo varios circuitos impresos que me sobran ... te envío un privado


Desconectado
Mensajes: 312
Registrado: 08 Abr 2009 02:04
Una cosa, el decodificador que hizo la asociación no lo lleva ni tampoco el rwgulador l7805.
Lo.digo, porque he pedido una placa y los componentes tal y como describen desde su web para hacerlo. Entonces faltaría añadirle el recom?

Enviado desde mi Redmi Note 3 mediante Tapatalk
Un saludo
Betera(Valencia)
[size=85]multimaus+s88XPressNeTLi+rocrail


Desconectado
Mensajes: 312
Registrado: 08 Abr 2009 02:04
Ok. A ver si lo veo

Enviado desde mi Redmi Note 3 mediante Tapatalk
Un saludo
Betera(Valencia)
[size=85]multimaus+s88XPressNeTLi+rocrail


Desconectado
Mensajes: 434
Ubicación: Madrid
Registrado: 05 Ene 2017 11:09
Es que el regulador yo se lo añadí para poder alimentarlo con los 12 voltios que alimentan la central o los accesorios y así no tener que hacer una alimentación aparte de 5 Voltios para el arduino.


Desconectado
Mensajes: 312
Registrado: 08 Abr 2009 02:04
Te he mandado un MP

Enviado desde mi Redmi Note 3 mediante Tapatalk
Un saludo
Betera(Valencia)
[size=85]multimaus+s88XPressNeTLi+rocrail


Desconectado
Mensajes: 10
Registrado: 25 Jul 2012 14:45
Pecetero escribió:
ray269 escribió:
Y por cierto tiene muy buena pinta. Quiero una!!!!!!,jajaja

Enviado desde mi Redmi Note 3 mediante Tapatalk



Tengo varios circuitos impresos que me sobran ... te envío un privado


Hola, no querras vender alguno, jejeje

Un saludo.


Enviado desde mi iPhone utilizando Tapatalk


Desconectado
Mensajes: 434
Ubicación: Madrid
Registrado: 05 Ene 2017 11:09
maab2413 escribió:
Pecetero escribió:
ray269 escribió:
Y por cierto tiene muy buena pinta. Quiero una!!!!!!,jajaja

Enviado desde mi Redmi Note 3 mediante Tapatalk



Tengo varios circuitos impresos que me sobran ... te envío un privado


Hola, no querras vender alguno, jejeje

Un saludo.


Enviado desde mi iPhone utilizando Tapatalk


Te he enviado un mensaje privado.


Desconectado
Mensajes: 312
Registrado: 08 Abr 2009 02:04
Bueno pues me respondo a mí mismo
Encontré el esquema de conexión y el decoder ya hecho por si alguien lo quiere comprar sin tener que al hacerlo, me refiero a la interfaz al Arduino. Está sacado de la misma web donde explican su realización.
https://www.dccinterface.com/product/arduino-model-railway-dcc-interface/.
ImagenImagenImagen

Enviado desde mi Redmi Note 3 mediante Tapatalk
Un saludo
Betera(Valencia)
[size=85]multimaus+s88XPressNeTLi+rocrail


Desconectado
Mensajes: 312
Registrado: 08 Abr 2009 02:04
ray269 escribió:
Bueno pues me respondo a mí mismo
Encontré el esquema de conexión y el decoder ya hecho por si alguien lo quiere comprar sin tener que al hacerlo, me refiero a la interfaz al Arduino. Está sacado de la misma web donde explican su realización.
https://www.dccinterface.com/product/arduino-model-railway-dcc-interface/.
ImagenImagenImagen

Enviado desde mi Redmi Note 3 mediante Tapatalk
Me he equivocado de hilo, esto va con el hilo de los servos, perdón


Enviado desde mi Redmi Note 3 mediante Tapatalk
Un saludo
Betera(Valencia)
[size=85]multimaus+s88XPressNeTLi+rocrail


Desconectado
Mensajes: 4
Ubicación: Buenos Aires, Argentinas
Registrado: 04 Jul 2018 23:57

Hola a todos

He leido todo este hilo muy interesante. De hecho he armado el circuito y seguramente cambiare los decodificadores para señales de mi maqueta (accionan relés para encender y apagar las señales) por estos de luz dimerizada, realmente es mucho mas real el efecto de encendido y apagado.

Como les decía he armando el circuito con un Arduino Nano y funciono perfectamente.

Mi consulta es si pueden ayudarme a encontrar para el Arduino Nano el Sketch para decodificadores DCC para desvíos con solenoides. Se que hay que colocar unos componentes adicionales que no seria problema, pero lo que no encuentro es el Sketch (y aún no me he lanzado al infinito espacio de la programación de Arduino). Específicamente necesito que para realizar el cambio de via coloque un pulso en estado LOW en la salida a activar.

No lo voy a utilizar para mover desvios, lo voy a utilizar para activar sonidos ambientales en una estación. Estoy experimentando con unos módulos que es posible grabarles sonidos y activarlos por medio de pulsadores, o en el caso que quiero implementar, por medio de la central DCC.
No se si en el foro han tocado este tema, si les interesa puedo aportar mi experiencia en estos módulos. Incluso he equipado dos locomotoras, logrando activar por medios de las funciones del deco los sonidos. No es un loksound, pero aporta mucho al realismo del modelo y he decidido ir equipando mis locomotoras (electricas) con estos módulos.

Saludos y muchas gracias
Carlos


Desconectado
Mensajes: 434
Ubicación: Madrid
Registrado: 05 Ene 2017 11:09
Te pongo aquí el sketch, ya que no localizo el link de donde me lo bajé:


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Arduino DCC Solenoid Switch Decoder.
// Author: Ruud Boer - January 2015
// This sketch turns an Arduino into a DCC decoder to drive max 8 dual coil solenoid switches.
// The DCC signal is optically separated and fed to pin 2 (=Interrupt 0). Schematics: www.mynabay.com
// Many thanks to www.mynabay.com for publishing their DCC monitor and -decoder code.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IMPORTANT: GOTO lines 17 and 40 to configure some data!
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include <DCC_Decoder.h>
#define kDCC_INTERRUPT 0

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FILL IN
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const byte maxaccessories=1; //The number of switches you want to control with this Arduino
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

typedef struct
{
int address; // Address to respond to
byte output; // State of accessory: 1=on, 0=off (for internal use only)
int outputPin; // Arduino output pin
int outputPin2; // Arduino output pin2, used for solenoid junctions
byte highlow; // State of outputpin: 1=HIGH, 0=LOW
byte highlow2; // State of outputpin2: 1=HIGH, 0=LOW
boolean finished; // Memory location that says the oneshot is finished
boolean finished2; // Memory location that says the second oneshot (for solenoid) is finished
int durationMilli; // ms flash time
unsigned long onMilli; // for internal use
unsigned long offMilli; // for internal use
}
DCCAccessoryAddress;
DCCAccessoryAddress accessory[maxaccessories];

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Initialization: COPY - PASTE the structure as many times as you have switches and fill in the values you want.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void ConfigureDecoderFunctions() // The amount of accessories must be same as in line 26 above!
{
accessory[0].address = 1;
accessory[0].durationMilli = 250;
accessory[0].outputPin = 12;
accessory[0].outputPin2 = 13;
accessory[0].highlow = 0; // Do not change this value
accessory[0].highlow2 = 0; // Do not change this value
accessory[0].finished = false; // Do not change this value
accessory[0].finished2 = true; // Do not change this value
accessory[0].output = 0; // Do not change this value

// Setup output pins
for(int i=0; i<maxaccessories; i++)
{
if( accessory[i].outputPin )
{
pinMode( accessory[i].outputPin, OUTPUT );
digitalWrite( accessory[i].outputPin, LOW);
}
if( accessory[i].outputPin2 )
{
pinMode( accessory[i].outputPin2, OUTPUT );
digitalWrite( accessory[i].outputPin2, LOW);
}
}
} // END ConfigureDecoderFunctions

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// DCC packet handler
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void BasicAccDecoderPacket_Handler(int address, boolean activate, byte data)
{
// Convert NMRA packet address format to human address
address -= 1;
address *= 4;
address += 1;
address += (data & 0x06) >> 1;

boolean enable = (data & 0x01) ? 1 : 0;

for(int i=0; i<maxaccessories; i++)
{
if( address == accessory[i].address )
{
if( enable ) accessory[i].output = 1;
else accessory[i].output = 0;
}
}
} // END BasicAccDecoderPacket_Handler

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Setup (run once)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup()
{
DCC.SetBasicAccessoryDecoderPacketHandler(BasicAccDecoderPacket_Handler, true);
ConfigureDecoderFunctions();
DCC.SetupDecoder( 0x00, 0x00, kDCC_INTERRUPT );
pinMode(2,INPUT_PULLUP); //Interrupt 0 with internal pull up resistor (can get rid of external 10k)
pinMode(13,OUTPUT);
digitalWrite(13,LOW); //turn off Arduino led at startup

for (int n=0; n<maxaccessories; n++) accessory[n].output = 0; //all servo's to min angle and functions to 0
} //END setup

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Main loop (run continuous)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop()
{
static int addr = 0;

DCC.loop(); // Loop DCC library

if( ++addr >= maxaccessories ) addr = 0; // Bump to next address to test

if (accessory[addr].output == 1)
{
if (!accessory[addr].highlow && !accessory[addr].finished)
{
accessory[addr].highlow = 1;
accessory[addr].offMilli = millis() + accessory[addr].durationMilli;
}
if (accessory[addr].highlow && millis() > accessory[addr].offMilli)
{
accessory[addr].highlow = 0;
accessory[addr].finished = true;
}
accessory[addr].finished2 = false;
}

else // output==0
{
accessory[addr].highlow=0;
accessory[addr].finished = false;
if (!accessory[addr].highlow2 && !accessory[addr].finished2)
{
accessory[addr].highlow2 = 1;
accessory[addr].offMilli = millis() + accessory[addr].durationMilli;
}
if (accessory[addr].highlow2 && millis() > accessory[addr].offMilli)
{
accessory[addr].highlow2 = 0;
accessory[addr].finished2 = true;
}
}

if (accessory[addr].highlow) digitalWrite( accessory[addr].outputPin, HIGH);
else digitalWrite( accessory[addr].outputPin, LOW);
if (accessory[addr].highlow2) digitalWrite( accessory[addr].outputPin2, HIGH);
else digitalWrite( accessory[addr].outputPin2, LOW);

} //END loop

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Desconectado
Mensajes: 4
Ubicación: Buenos Aires, Argentinas
Registrado: 04 Jul 2018 23:57

Hola, muchisimas gracias!!!

He comenzado probando de copiar en el Arduino IDE el texto que me has pasado, el verificar tengo este mensaje de error:

sketch_jul22a.ino: In function 'void setup()':
sketch_jul22a:98: error: 'DCC' was not declared in this scope

Me esta faltando sumar algún archivo mas?


También veo que hay que copiar y pegar las lineas de abajo tantas veces como desvíos quiero controlar con este arduino, si son 8 desvíos lo debo repetir tal como esta 8 veces, pero cambiando los valores de "address" y de outputpin

accessory[0].address = 1;
accessory[0].durationMilli = 250;
accessory[0].outputPin = 12;
accessory[0].outputPin2 = 13;
accessory[0].highlow = 0; // Do not change this value
accessory[0].highlow2 = 0; // Do not change this value
accessory[0].finished = false; // Do not change this value
accessory[0].finished2 = true; // Do not change this value
accessory[0].output = 0; // Do not change this value



Otra consulta: Como puedo ver el número de linea de programación? asi comprendo mejor las indicaciones del autor de la programación.


Mil disculpas por tanta pregunta, pero es el primer Arduino que estoy utilizando!

Muchas gracias
Carlos


Desconectado
Mensajes: 434
Ubicación: Madrid
Registrado: 05 Ene 2017 11:09
Poco puedo ayudarte, porque soy un novato en arduino, pero comprueba que tengas las librerías DCC, según la línea donde se define:

#include <DCC_Decoder.h>

Te la puedes bajar de aquí --> https://github.com/MynaBay/DCC_Decoder


Desconectado
Mensajes: 11
Registrado: 04 Dic 2009 00:40
cviva escribió:
Otra consulta: Como puedo ver el número de linea de programación? asi comprendo mejor las indicaciones del autor de la programación.


Mil disculpas por tanta pregunta, pero es el primer Arduino que estoy utilizando!

Muchas gracias
Carlos


Archivo => Preferencias => Mostrar Números de Línea => OK.

Y a segiir aprendiendo!


Desconectado
Mensajes: 4
Ubicación: Buenos Aires, Argentinas
Registrado: 04 Jul 2018 23:57

Hola a todos


Por si a alguien le interesa, este es Sketch ya completo y modificado para: 8 salidas para desvíos, con conexión positivo común. Osea el Nano coloca un LOW para generar el pulso.

Sugiero pasar todos los "accessory[0].durationMilli = 500" a un valor de 100 para que el pulso sea mas corto.

Disculpen si esto iria en otro hilo pero quisiera colaborar en lo que he trabajado por si a otro le interesa.

Saludos y gracias
Carlos



//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Arduino DCC Solenoid Switch Decoder.
// Author: Ruud Boer - January 2015
// This sketch turns an Arduino into a DCC decoder to drive max 8 dual coil solenoid switches (POSITIVO COMUN)
// The DCC signal is optically separated and fed to pin 2 (=Interrupt 0). Schematics: www.mynabay.com
// Many thanks to www.mynabay.com for publishing their DCC monitor and -decoder code.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// IMPORTANT: GOTO lines 19 and 44 to configure some data! Copiar Folder y todo contenido "DCC_Decoder-master" en C:\Program Files\Arduino\libraries\DCC_Decoder-master
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include <DCC_Decoder.h>
#define kDCC_INTERRUPT 0

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FILL IN
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const byte maxaccessories=8; //The number of switches you want to control with this Arduino (colocar numero de salidas habilitadas)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

typedef struct
{
int address; // Address to respond to
byte output; // State of accessory: 1=on, 0=off (for internal use only)
int outputPin; // Arduino output pin
int outputPin2; // Arduino output pin2, used for solenoid junctions
byte highlow; // State of outputpin: 1=HIGH, 0=LOW
byte highlow2; // State of outputpin2: 1=HIGH, 0=LOW
boolean finished; // Memory location that says the oneshot is finished
boolean finished2; // Memory location that says the second oneshot (for solenoid) is finished
int durationMilli; // ms flash time
unsigned long onMilli; // for internal use
unsigned long offMilli; // for internal use
}
DCCAccessoryAddress;
DCCAccessoryAddress accessory[maxaccessories];

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Initialization: COPY - PASTE the structure as many times as you have switches and fill in the values you want.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void ConfigureDecoderFunctions() // The amount of accessories must be same as in line 19 above!
{
accessory[0].address = 113; // Colocar direccion asignada a la salida para los outputpin definidos en este grupo
accessory[0].durationMilli = 500; // Duracion de pulso
accessory[0].outputPin = 4;
accessory[0].outputPin2 = 5;
accessory[0].highlow = 0; // Do not change this value
accessory[0].highlow2 = 0; // Do not change this value
accessory[0].finished = false; // Do not change this value
accessory[0].finished2 = true; // Do not change this value
accessory[0].output = 0; // Do not change this value

accessory[1].address = 114;
accessory[1].durationMilli = 500;
accessory[1].outputPin = 6;
accessory[1].outputPin2 = 7;
accessory[1].highlow = 0; // Do not change this value
accessory[1].highlow2 = 0; // Do not change this value
accessory[1].finished = false; // Do not change this value
accessory[1].finished2 = true; // Do not change this value
accessory[1].output = 0; // Do not change this value

accessory[2].address = 115;
accessory[2].durationMilli = 500;
accessory[2].outputPin = 8;
accessory[2].outputPin2 = 9;
accessory[2].highlow = 0; // Do not change this value
accessory[2].highlow2 = 0; // Do not change this value
accessory[2].finished = false; // Do not change this value
accessory[2].finished2 = true; // Do not change this value
accessory[2].output = 0; // Do not change this value

accessory[3].address = 116;
accessory[3].durationMilli = 500;
accessory[3].outputPin = 10;
accessory[3].outputPin2 = 11;
accessory[3].highlow = 0; // Do not change this value
accessory[3].highlow2 = 0; // Do not change this value
accessory[3].finished = false; // Do not change this value
accessory[3].finished2 = true; // Do not change this value
accessory[3].output = 0; // Do not change this value

accessory[4].address = 117;
accessory[4].durationMilli = 500;
accessory[4].outputPin = 12;
accessory[4].outputPin2 = 13;
accessory[4].highlow = 0; // Do not change this value
accessory[4].highlow2 = 0; // Do not change this value
accessory[4].finished = false; // Do not change this value
accessory[4].finished2 = true; // Do not change this value
accessory[4].output = 0; // Do not change this value

accessory[5].address = 118;
accessory[5].durationMilli = 500;
accessory[5].outputPin = A0;
accessory[5].outputPin2 = A1;
accessory[5].highlow = 0; // Do not change this value
accessory[5].highlow2 = 0; // Do not change this value
accessory[5].finished = false; // Do not change this value
accessory[5].finished2 = true; // Do not change this value
accessory[5].output = 0; // Do not change this value

accessory[6].address = 119;
accessory[6].durationMilli = 500;
accessory[6].outputPin = A2;
accessory[6].outputPin2 = A3;
accessory[6].highlow = 0; // Do not change this value
accessory[6].highlow2 = 0; // Do not change this value
accessory[6].finished = false; // Do not change this value
accessory[6].finished2 = true; // Do not change this value
accessory[6].output = 0; // Do not change this value

accessory[7].address = 120;
accessory[7].durationMilli = 500;
accessory[7].outputPin = A4;
accessory[7].outputPin2 = A5;
accessory[7].highlow = 0; // Do not change this value
accessory[7].highlow2 = 0; // Do not change this value
accessory[7].finished = false; // Do not change this value
accessory[7].finished2 = true; // Do not change this value
accessory[7].output = 0; // Do not change this value

// Setup output pins
for(int i=0; i<maxaccessories; i++)
{
if( accessory[i].outputPin )
{
pinMode( accessory[i].outputPin, OUTPUT );
digitalWrite( accessory[i].outputPin, LOW);
}
if( accessory[i].outputPin2 )
{
pinMode( accessory[i].outputPin2, OUTPUT );
digitalWrite( accessory[i].outputPin2, LOW);
}
}
} // END ConfigureDecoderFunctions

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// DCC packet handler
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void BasicAccDecoderPacket_Handler(int address, boolean activate, byte data)
{
// Convert NMRA packet address format to human address
address -= 1;
address *= 4;
address += 1;
address += (data & 0x06) >> 1;

boolean enable = (data & 0x01) ? 1 : 0;

for(int i=0; i<maxaccessories; i++)
{
if( address == accessory[i].address )
{
if( enable ) accessory[i].output = 1;
else accessory[i].output = 0;
}
}
} // END BasicAccDecoderPacket_Handler

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Setup (run once)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup()
{
DCC.SetBasicAccessoryDecoderPacketHandler(BasicAccDecoderPacket_Handler, true);
ConfigureDecoderFunctions();
DCC.SetupDecoder( 0x00, 0x00, kDCC_INTERRUPT );
pinMode(2,INPUT_PULLUP); //Interrupt 0 with internal pull up resistor (can get rid of external 10k)
pinMode(13,OUTPUT);
digitalWrite(13,LOW); //turn off Arduino led at startup

for (int n=0; n<maxaccessories; n++) accessory[n].output = 0; //all servo's to min angle and functions to 0
} //END setup

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Main loop (run continuous)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop()
{
static int addr = 0;

DCC.loop(); // Loop DCC library

if( ++addr >= maxaccessories ) addr = 0; // Bump to next address to test

if (accessory[addr].output == 1)
{
if (!accessory[addr].highlow && !accessory[addr].finished)
{
accessory[addr].highlow = 1;
accessory[addr].offMilli = millis() + accessory[addr].durationMilli;
}
if (accessory[addr].highlow && millis() > accessory[addr].offMilli)
{
accessory[addr].highlow = 0;
accessory[addr].finished = true;
}
accessory[addr].finished2 = false;
}

else // output==0
{
accessory[addr].highlow=0;
accessory[addr].finished = false;
if (!accessory[addr].highlow2 && !accessory[addr].finished2)
{
accessory[addr].highlow2 = 1;
accessory[addr].offMilli = millis() + accessory[addr].durationMilli;
}
if (accessory[addr].highlow2 && millis() > accessory[addr].offMilli)
{
accessory[addr].highlow2 = 0;
accessory[addr].finished2 = true;
}
}

if (accessory[addr].highlow) digitalWrite( accessory[addr].outputPin, LOW); // Pasar a HIGH si de desea negativo comun
else digitalWrite( accessory[addr].outputPin, HIGH); // Pasar a LOW si de desea negativo comun
if (accessory[addr].highlow2) digitalWrite( accessory[addr].outputPin2, LOW); // Pasar a HIGH si de desea negativo comun
else digitalWrite( accessory[addr].outputPin2, HIGH); //Pasar a LOW si de desea negativo comun

} //END loop


Desconectado
Mensajes: 262
Registrado: 28 Oct 2015 09:35
Hola compañeros.
Estoy montando varios semáforos con este programa y veo que en el cambio de estado del semáforo hay en un momento que las dos luces están encendidas durante unos segundos, esto es correcto en la realidad?.
En el caso que no, como se podía eliminar este problema?.
Un saludo, gracias


Desconectado
Mensajes: 6426
Registrado: 19 Ago 2009 20:39

En la realidad el cambio de aspecto de una señal es gradual.
Si crees que te he servido de ayuda, puedes invitarme a un café alfredpuro (a) telefonica .net

l'Alfred, el Fantito.


Desconectado
Mensajes: 262
Registrado: 28 Oct 2015 09:35
Gracias, pero realmente hay en un momento los dos aspectos están iluminados?


Desconectado
Mensajes: 6426
Registrado: 19 Ago 2009 20:39

Tal como se desvanece un aspecto, se ilumina el otro. Sí, en un momento se ven los dos aspectos iluminados.
Si crees que te he servido de ayuda, puedes invitarme a un café alfredpuro (a) telefonica .net

l'Alfred, el Fantito.


Desconectado
Mensajes: 262
Registrado: 28 Oct 2015 09:35
Gracias, pues no lo toco, así se queda.
Ya te enviaré una cápsula de café.
Saludos.

AnteriorSiguiente

Volver a Digital, Electricidad e Informática

Síguenos en Facebook Síguenos en Youtube Síguenos en Instagram Feed - Nuevos Temas
©2017   -   Información Legal