INTRODUCCIÓN
Sabemos que para ver el funcionamiento de un proyecto electrónico previamente se tiene que hacer las pruebas correspondientes, ya sea montando en un protoboard o añadiendo módulos externos. Realizar todo ello conlleva mucho tiempo, por el mismo hecho de que se tiene que hacer conexiones con cables, etc. Viendo todo es inconveniente en este episodio crearemos una tarjeta entrenadora que contenga propiamente la tarjeta arduino uno, el modulo RTC, el Módulo ethernet, el módulo I2C para pantallas LCD, la pantalla OLED, un sensor de temperatura, 3 entradas analógicas, 6 entradas digitales, dos salidas a transistores, una salida a relé y una salida con un triac para controlar cargas de corriente alterna.
DATOS TÉCNICOS
- Tensión de alimentación……………………….…………12VDC
- Corriente de alimentación………………….……………120mA
- Programación Directa………………………………….….Ordenador – Tarjeta entrenadora
- Entorno de programación………………………..……..Arduino IDE
- Reloj de Tiempo Real…………………………………………..SÍ
- LCD (16×2)……………………………………………………………..SÍ
- OLED………………………………………………………………………SÍ
- ETHERNET (enc28j60)………………………………………….SÍ
- Serial com……………………………………………………………..SÍ
- ISP com………………………………………………………………….SÍ
- Sensor de temperatura incorporada………………..SÍ
- Entradas digitales incorporadas(button)………….4
- Entradas digitales externo(2-12V)……………………..2
- Entradas Análogas incorporadas(pot)………………3
- Salida RELAY………………………………………………………1
- Tensión salida AC…………………………..….……220V
- Corriente AC………………………………………….10A
- Tensión DC……………………………………………30V
- Corriente DC…………………………………………10A
- Salida TRIAC…………………………………………………….1
- Tensión salida AC…………………………….……250V
- Corriente AC……………………….……………….2A
- Salida TRANSISTOR IGBT…..………………………….1
- Tensión salida DC…………………………….……12V
- Corriente DC……………………….……………….1A
- Salida TRANSISTOR BJT…..…..……………………….1
- Tensión salida DC…………………………….……12V
- Corriente DC……………………….……………….1A
- Condiciones ambientales min………………………….-10°
- Condiciones ambientales max…………………..…….55°
LISTA DE DISPOSITIVOS ELECTRÓNICOS
- U1; Microcontrolador ATmega328p-PU ( see & buy )
- U2; Circuito Integrado ENC28J60-I/SS, SSOP-28 Ethernet ICs RoHS ( see & buy )
- U3; I2C Serial EEPROM ( see & buy )
- U4; Maxin Integrated RTC DS3231SN ( see & buy )
- U5; Circuito Integrado Transceiver USB CH340C ( see & buy )
- U6; Sensor de temperatura LM35 (see & buy)
- U7; I2C interface PCF8574 (see & buy)
- U9; Optoacoplador MOC3041 (see & buy)
- U10; TRIAC BTA 12 (see & buy)
- U11, U14, U15; Optoacoplador TLP127 (see & buy)
- U12; Regulador de Step-Down LM2576S-5.0/TR (see & buy)
- U13; Regulador de voltaje SMD (AMS 1117-3.3) 3.3V (see & buy)
- J1; Micro USB tipo B (see & buy)
- J2, J3,J11; Pines espadines Macho (see & buy)
- J4: NO FUNTION
- J6, J9; borneras 3PIN (see & buy)
- J5, J10,J12; Borneras 2PIN (see & buy)
- BAT1; Sócalo para batería (see & buy)
- D1,D2,D4,D5,D10,D11,D38; Led smd 1206 ( see & buy )
- D3,D9; Diodo rectificador SOD-123 (see & buy)
- D6; Diodo Schottky SS14-T (see & buy)
- D7; Diodo Schottky Barrier Diodes B330A-13-F (see & buy)
- C1,C4; Capacitor cerámico 0.1uF (0805) (see & buy)
- C2,C3; Capacitor cerámico 18pF (0603) (see & buy)
- C5; Capacitor cerámico 10uF (0805) (see & buy)
- C6-C9,C11,12,C16,C18; Capacitor cerámico 0.1uF (0603) ( see & buy )
- C14; Capacitor ceramico 0.1uF(1206) (see & buy)
- C10; Capacitor electrolítico 470uF ( see & buy )
- C13; Capacitor electrolítico 220uF ( see & buy )
- C17; Capacitor electrolítico SMD 47uF ( see & buy )
- Q1-Q2; Transistor SOT23 PNP ( see & buy )
- Q3; Transistor IGBT ( see & buy )
- Q4; Transistor DPAK NPN (see & buy)
- R1-R4; Resistencia SMD 1/8W, 49.9 Ohm, package 0805 ( see & buy )
- R5, R6,R30,R42,R43; Resistencia SMD 1/10W, 470 Ohm, package 0603 ( see & buy )
- R7-R9, R15,R20-R23, R31-R34; Resistencia SMD 1/10W, 10k Ohm, package 0603 ( see & buy )
- R10; Resistencia SMD 1/10W, 2.7k Ohm, package 0603 ( see & buy )
- R11-R14,R25,R28,R38,R39, R41; Resistencia SMD 1/10W, 1k Ohm, package 0603 ( see & buy )
- R16; Resistencia SMD 1/10W, 1M Ohm, package 0603 ( see & buy )
- R19; Resistencia SMD 1/8W, 470 Ohm, package 0805 ( see & buy )
- R24; Resistencia SMD 1/10W, 3.3k Ohm, package 0603 ( see & buy )
- R17, R18;Resistencia SMD 1/10W, array 4pack 4.7k Ohm, package 0603 ( see & buy )
- R36; Resistencia SMD 1/10W, 4.7k Ohm, package 0603 (see & buy)
- R29; Resistencia SMD 1/8W, 470 Ohm, package 1206 ( see & buy )
- R39; Resistencia SMD 1/8W, 10k Ohm, package 0805 ( see & buy )
- R40,41; Resistencia SMD 1/8W, 1k Ohm, package 0805 ( see & buy )
- R35,37; Resistencia SMD 1/8W, 10k Ohm, package 1206 ( see & buy )
- RV1-RV3; Ponteciometro (see & buy)
- RL1; Relay 12V (see & buy)
- L1; Inductor 1uH SMD 0805 (see & buy)
- L2; Inductor 100uH (see & buy)
- RJ1; conector RJ45 HR911105A ( see & buy )
- BTN1; Pulsador SMD (see & buy)
- BTN2-BTN5; Pulsador normal de 2 pines (see)
- X1; Crystal 25Mhz ( see & buy )
- X2; Crystal SMD 16Mhz ( see & buy )
PASOS PARA SUBIR UN PROGRAMA
PASO 1 : SUBIR GESTOR DE ARRANQUE (BOOTLOADER)
Para poder usar un microcontrolador nuevo (atmega328p-pu), es necesario subir un un gestor de arranque como también llamado “BOOTLOADER”, esto nos facilitará subir programas en futuras ocasiones.
finalmente para quemar el bootloader se tendrá que realizar a través de los pines ISP, que prácticamente serían los pines [ (MOSI=11) (MISO = PIN12) (SCK=PIN13) (Slave=PIN10) ]. Para subir y quemar el gestor de arranque necesitaremos un arduino UNO ó MEGA y realizar las siguientes conexiones (ARDUINO UNO – MAIN BOARD).
PASO 2 : SUBIR PROGRAMA; PC – MAIN BOARD
Después de haber subido el gestor de arranque finalmente ya podremos subir cualquier programa como normalmente lo realizamos a través del puerto serie.
PARTES Y CONEXIONES EXTERNAS
CÓDIGO DE PRUEBA
ENTRADAS Y SALIDAS DIGITALES
int in1 = 2; // entrada sensor1 y botton1 int in2 = 3; // entrada sensor1 y boton2 int btn3 = 4; // boton3 int btn4 = 5; // boton4 int igbt = 6; // salida transistor igbt int bjt = 7; // salida transistor bjt int triac = 8; // salida triac para controlar corriente alterna int rele = 9; // salida para controlar rele void setup() { pinMode(in1, INPUT); pinMode(in2, INPUT); pinMode(btn3, INPUT); pinMode(btn4, INPUT); pinMode(igbt, OUTPUT); pinMode(bjt, OUTPUT); pinMode(triac, OUTPUT); pinMode(rele, OUTPUT); } void loop() { int v_in1 = digitalRead(in1); int v_in2 = digitalRead(in2); int v_btn3 = digitalRead(btn3); int v_btn4 = digitalRead(btn4); if (v_in1 == 1) digitalWrite (igbt, 1); if (v_in1 == 0) digitalWrite(igbt, 0); if (v_in2 == 1) digitalWrite (bjt, 1); if (v_in2 == 0) digitalWrite(bjt, 0); if (v_btn3 == 1) digitalWrite (triac, 1); if (v_btn3 == 0) digitalWrite(triac, 0); if (v_btn4 == 1) digitalWrite (rele, 1); if (v_btn4 == 0) digitalWrite(rele, 0); }
MODBUS; ARDUINO-PLC
/* MODIFICADO POR :{==[=======>>>> ELECTROALL <<<<<=======]==} INSTAGRAM : https://www.instagram.com/carlos_j_fuentess/ ó @carlos_j_fuentess FACEBOOK : https://web.facebook.com/ELECTROALL.ELECTRONICA/?_rdc=1&_rdr PÁGINA WEB : https://www.electroallweb.com/ YOUTUBE : https://www.youtube.com/c/ELECTROALL ________________________________________________________ {==[=======> (ENVIANDO DATOS ANALÓGICOS DESDE ARDUINO A PLC S7 1200) <=======]==} ________________________________________________________ */ #include <EtherCard.h> #include <Modbus.h> #include <ModbusIP_ENC28J60.h> #include <LiquidCrystal_I2C.h> // Debe descargar la Libreria que controla el I2C LiquidCrystal_I2C lcd(0x27, 16, 2); const int SENSOR_IREG = 50; const int sensorAnalog = A1; const int SENSOR_IREG1 = 60; const int sensorAnalog1 = A2; const int SENSOR_IREG2 = 70; const int sensorAnalog2 = A3 ; ModbusIP mb; void setup() { Serial.begin(9600);// inicializamos el serial com lcd.init(); lcd.backlight(); lcd.clear(); //dirección MAC byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //dirección IP byte ip [] = {192, 168, 1, 22}; mb.config (mac, ip); // se confirma las direcciones mb.addIreg(SENSOR_IREG); mb.addIreg(SENSOR_IREG1); mb.addIreg(SENSOR_IREG2); } void loop() { mb.task();// actualiza para el trabajo se realize // con normalidad // envía los valores del potenciometro mb.Ireg(SENSOR_IREG, analogRead(sensorAnalog)); mb.Ireg(SENSOR_IREG1, analogRead(sensorAnalog1)); mb.Ireg(SENSOR_IREG2, analogRead(sensorAnalog2)); //muestra en el monitor serie los valores del pot4 Serial.println(analogRead(sensorAnalog)); lcd.setCursor(0, 0); lcd.print("A1="); lcd.print(analogRead(sensorAnalog)); lcd.setCursor(8, 0); lcd.print("A2="); lcd.print(analogRead(sensorAnalog1)); lcd.setCursor(0, 1); lcd.print("A3="); lcd.print(analogRead(sensorAnalog2)); }
RELOJ DE TIEMPO REAL + TEMPERATURA
DESCARGAR LIBRERÍA LCD
DESCARGAR LIBRERÍA RTC
/* CREADO POR :{==[=======>>>> ELECTROALL <<<<<=======]==} INSTAGRAM : https://www.instagram.com/carlos_j_fuentess/ ó @carlos_j_fuentess FACEBOOK : https://web.facebook.com/ELECTROALL.ELECTRONICA/?_rdc=1&_rdr PÁGINA WEB : https://www.electroallweb.com/ YOUTUBE : https://www.youtube.com/c/ELECTROALL ________________________________________________________ {==[=======> (CONTROL INALAMBRICO MAS DE 10 SALIDIAS (CANALES)) <=======]==} ________________________________________________________ */ // {==[=======> (RTC Y TEMPERATURA) <=======]==} #include <Wire.h> #include "Sodaq_DS3231.h" #include <LiquidCrystal_I2C.h> // Debe descargar la Libreria que controla el I2C LiquidCrystal_I2C lcd(0x27, 16, 2); char DiaSemana[][4] = {"Dom", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab" }; const int alarm1 = 8; const int alarm2 = 9; int mV; // La linea fija la fecha, hora y dia de la semana, se debe suprimir la linea en la segunda carga // Ejemplo 2017 diciembre 06, 22:00:00 dia 1-Lunes (0=Dom, 1=Lun, 2=Mar, 3=Mie, 4=Jue, 5=Vie, 6=Sab) // DateTime dt(2020, 04, 26, 9, 42, 0, 0); void setup () { Serial.begin(9600); Wire.begin(); rtc.begin(); lcd.init(); lcd.backlight(); lcd.clear(); // La linea fija la fecha, hora y dia de la semana, se debe suprimir la linea en la segunda carga // rtc.setDateTime(dt); pinMode(alarm1, OUTPUT); pinMode(alarm2, OUTPUT); } void loop () { DateTime now = rtc.now(); lcd.setCursor(0, 0); lcd.print(now.date(), DEC); lcd.print('/'); lcd.print(now.month(), DEC); lcd.print(' '); lcd.print(now.hour(), DEC); lcd.print(':'); lcd.print(now.minute(), DEC); lcd.print(':'); lcd.print(now.second(), DEC); lcd.print(' '); lcd.print(DiaSemana[now.dayOfWeek()]); //lcd.setCursor(0, 1); mV = analogRead(A0); float real = (mV/1024.0)*5000.0; int temp = real/10; lcd.setCursor(0, 1); lcd.print("Temp:"); lcd.print(temp); lcd.print("C"); //delay(1000); // Se actualiza cada segundo //lcd.clear(); if ((now.hour() == 10)&& (temp>=25)) { digitalWrite(alarm1, 1); digitalWrite(alarm2, 1); } else { digitalWrite(alarm1, 0); digitalWrite(alarm2, 0); } }
OLED + TEMPERATURA
////////////////////////////////////////////////////////////// // Creditos colega YT:https://www.youtube.com/watch?v=qWP3fMyZ158 // //////////////////////////////////////////////////////////////// #include "U8glib.h" // Incluir la libreria u8g para usar la pantalla OLED 0.96 ///////////////////////////Declaracion de variables ///////////////////////////////////////// int tempC=0; int reading; int tempPin = 0; ////////////////////////////////////////////////////////////////////////////////////// U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);//Especifica el nombre de la pantalla que nosotros tenemos ///////////////////////////////////////////////////////////////////////////////// ///////////Codigo en Hex (exagesimal que mapea la imagen en la pantalla///////////////////////// static unsigned char temp[] U8G_PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x81, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC3, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC6, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xC4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x80, 0x00, 0x00, 0x30, 0x00, 0x00, 0x0C, 0x01, 0x83, 0xFF, 0x00, 0x3E, 0x00, 0x00, 0x0C, 0x01, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x0C, 0x01, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x3F, 0xFC, 0x71, 0x80, 0x00, 0x00, 0x3E, 0x00, 0xF8, 0x7C, 0x71, 0x80, 0x00, 0x00, 0x1E, 0x03, 0x80, 0x0C, 0x71, 0x83, 0xE0, 0x00, 0x08, 0x0E, 0x00, 0x0C, 0x71, 0x83, 0xE0, 0x00, 0x00, 0x18, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x00, 0x00, 0x60, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x0C, 0x71, 0x83, 0xFF, 0x00, 0x01, 0x00, 0x00, 0x0C, 0x71, 0x83, 0xFF, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0C, 0x71, 0x83, 0xE0, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x06, 0x0C, 0x00, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x1E, 0x0C, 0x00, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x7F, 0x0C, 0x00, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x7F, 0x0C, 0x00, 0x00, 0x0C, 0x71, 0x83, 0xFF, 0x1E, 0x0C, 0x00, 0x00, 0x0C, 0x71, 0x83, 0xFF, 0x06, 0x0C, 0x00, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0C, 0x71, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x18, 0x70, 0xC0, 0x00, 0x00, 0x03, 0x00, 0x00, 0x30, 0x70, 0x60, 0x00, 0x00, 0x01, 0x00, 0x00, 0x60, 0x70, 0x30, 0x00, 0x00, 0x01, 0x80, 0x00, 0xC0, 0x1C, 0x18, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x80, 0x1E, 0x08, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, 0x1F, 0x0C, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x1F, 0x84, 0x00, 0x00, 0x00, 0x18, 0x03, 0x00, 0x7F, 0xC6, 0x00, 0x00, 0x08, 0x0E, 0x03, 0x00, 0xFF, 0xC6, 0x00, 0x00, 0x1E, 0x03, 0x82, 0x00, 0xFF, 0xC6, 0x00, 0x00, 0x3E, 0x00, 0xFE, 0x01, 0xFF, 0xC6, 0x00, 0x00, 0x3F, 0x00, 0x3F, 0x01, 0xFF, 0xC6, 0x00, 0x00, 0x3F, 0x00, 0x03, 0x1F, 0xFF, 0xC6, 0x00, 0x00, 0x3E, 0x00, 0x03, 0x1F, 0xFF, 0x84, 0x00, 0x00, 0x30, 0x00, 0x01, 0x0F, 0xFF, 0x84, 0x00, 0x00, 0x00, 0x00, 0x01, 0x87, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0xFE, 0x18, 0x00, 0x00, 0x00, 0x00, 0x07, 0xC0, 0xF8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF8, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xCC, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; /////////////////////////funcion para desplegar la temperatura///////// void draw(void) { u8g.drawBitmapP( 0, 0, 8, 64, temp);//////// Para dibujar el mapeo de tamaño 64*64 comenzando por la ubicacion x=0,y=0 char s[2] = " "; u8g.setFont(u8g_font_fur35n);/// declaring font name u8g.setPrintPos(67, 50); ///posicion para imprimir la temperatura u8g.println(tempC);//display de la temperatura u8g.setFont(u8g_font_osr18); s[0] = 176;///para desplegar el signo de grados en la pantalla u8g.drawStr(116, 28, s); } ////////////ESTA PARTE ES PARA EL LM 35///////////////////////////////////////// void setup(void) { analogReference(INTERNAL);///Declaracion de variable analogica para el LM 35 } void loop(void) { reading = analogRead(tempPin);//Para leer la temperatura desde el sensor LM35. tempC = reading / 9.31;///dividiendo entre 9.31 para convertir la temperatura en celcius ///////////////////////////////Mostrar figura////////////////// u8g.firstPage(); do { draw(); } while( u8g.nextPage() ); delay(1000); }
ENTRADA ANALÓGICA Y SALIDA PWM
int Motor_IZQ = 6; // declaramos las variables de tipo entero int entrada_analogica= A1; void setup() { pinMode (Motor_IZQ, OUTPUT); // designamos los pines como pines de salida y entrada } void loop() { //entramos a un siclo repetitivo int valor_entrada_analogica =0; // declaramos las variables de tipo entero int valor_salida_pwm=0; // declaramos la variable de tipo entero para la ulizacion de la modulacion por ancho de pulso // ojo ( estos pines tienes que ser pines de (PWM) valor_entrada_analogica = analogRead(entrada_analogica); // Guardamos la lectura analogica en la variable (valor_entrada_analógica) valor_salida_pwm =map(valor_entrada_analogica,0, 1023,0,255); // guardamos el mapeo en la variable (valor salida) analogWrite(Motor_IZQ, valor_salida_pwm); // donde 0 es 0 voltios y 255 viene ser 5 voltios }
6 comentarios. Dejar nuevo
Muy interesante todo el trabajo realizado. Me preguntó si los componentes se pueden ordenar como un solo paquete. Decir cómo ElectroAll#23..??? Ésto como para no pedir de uno en uno.
Uno nuevo hermano :(, pero voy a ver la manera
no en relaidad. Tiene que pedirlo uno por uno
cuanto cuesta todo para este proyecto
Gracias por sus tutoriales.tengo un proyecto en mente pero no se por donde comenzar..podrias ayudarme..y pues logico cuanto seria el costo $$$
El proyecto es un contador ascendente y descendente, con pulsadores manuales y numerados de 1 a 10 para aumentar y de 1 a 10 para disminuir, total 20 pulsadores y un pulsador adicional para el RESET….quiero que me quede algo pequeño no muy grande como el tamaño de una calculadora de dimenciones mas o menos ..mi celular mide 8cm X 16 cm,seria un tamaño apropiado,puede ser un poco mas o un poco menos…quisiera que los pulsadores tuvieran luz led….otra cosa quiero que al final del dia yo pueda saber cuantos articulos conte..Cree que puede ayudarme.yo quiero hacerlo yo mismo con la ayuda de un experto..Quiero que sepa que soy un principiante en arduino…solo lo que he podido ver en you tube..que es muy basico……Gracias .JuanG.
Buenas noches, ya le respondí a su correo, gracias.