INTRODUCCIÓN
Después de hacer varias versiones de PLC, al fin puedo decir que esta versión es la más completa y la más segura de todas las anteriores, puesto que tenemos 24 entradas digitales (de 15-24Vdc), 4 entradas Analógicas (de 0-10Vdc), 2 entradas de corriente (de 4-20mA), 8 salidas a Relés, 8 salidas a transistores mosfet, 2 salidas pwm (0-10Vdc). Por otro lado, en esta versión tenemos incluido la comunicación RS485, la comunicación I2C, la comunicación ISP, la comunicación serial. Además, se contará con Reloj de tiempo real extremadamente preciso. No obstante, también se contará 4 entradas de dip_swich, y por último pero no menos importante la programación se realizará de manera directa PC- PLC V6.
ESPECIFICACIONES TÉCNICAS
- Tensión de alimentación……………………….…………24VDC
- Corriente de alimentación………………….……………200mA
- Entadas digitales 15-24VDC……………………….……24
- Entradas analógicas (corriente) 4-20mA………..2
- Entradas analógicas (voltaje) 0-10V…………..…..4
- Entradas digitales DIP_SWITCH………………………..4
- Salida PWM (0-10VDC)………………………………………2
- Salidas RLY…………………………………………………………8
-
- Tensión AC…………..……….………………….….……250V
- Corriente AC…………………………………………….5A
- Tensión DC………………………………………………30V
- Corriente DC……………………………………………5A
-
- Salidas trasistores Mosfet’s……………………………………8
-
- Tensión DC………………………………………………30V
- Corriente DC……………………………………………5A
-
- Puerto de comunicación serial……………………………1
- Comunicación ISP……………………………………..……….1
- Comunicación I2C…………………….……….………………1
- Comunicación RS485..……………….…….………………..1
- Reloj de tiempo real………………………………………..Sí
- Programación Directa………………………………………..Ordenador – PLC V5
- Entorno de programación………………………..………..Arduino IDE (Ladder en desarrollo)
- Condiciones ambientales min……………………….….-40°
- Condiciones ambientales max…………………..……….85°
- Dimensiones……………………………………………………….150x119mm
- Empotrable………………………………….……………………Sí
ESQUEMÁTICO ELECTRÓNICO
DESCARGAR DISEÑO Y ESQUEMÁTICO EN PROTEUS, ALTA RESOLUCIÓN COMPLETO
LISTA DE COMPONENTES ELECTRÓNICOS
CATEGORÍA | Cantidad | REFRENCIAS | VALOR | PCB Package | Datasheet |
Condensadores | 3 | C1,C3,C105 | 100nF | 1206_CAP | see & buy |
Condensadores | 1 | C2 | 470uF | CAP SMD 10.5X10MM ALUMINUM 470UF/35V | see & buy |
Condensadores | 3 | C4,C5,C104 | 220uF | CAP SMD 6.3X7.7MM ALUMINUM 220UF/16V | see & buy |
Condensadores | 74 | C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20, C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32, C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44, C45,C46,C47,C48,C49,C50,C51,C52,C53,C54,C55,C56, C57,C58,C59,C60,C61,C62,C63,C66,C67,C69,C71,C73, C74,C75,C78,C79,C81,C89,C90,C95,C96,C97,C100,C101,C102 |
100nF | 0603_CAP | see & buy |
Condensadores | 6 | C68,C70,C72,C86,C87,C88 | 10uF | 1206_CAP | see & buy |
Condensadores | 1 | C98 | 10uF | 0805_CAP | see & buy |
Resistencias | 52 | R1,R26,R27,R28,R29,R30,R31,R32,R33,R50,R51,R52,R53, R54,R55,R56,R57,R58,R75,R76,R77,R78,R79,R80,R81,R82, R99,R100,R101,R102,R103,R104,R105,R106,R124,R139, R159,R160,R161,R162,R165,R168,R171,R174,R177,R180, R183,R186,R189,R192,R249,R252 |
1k | 0603_RES | see & buy |
Resistencias | 24 | R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,R13,R14,R15,R16, R17,R18,R19,R20,R21,R22,R23,R24,R25 |
20k | 1206_RES | see & buy |
Resistencias | 85 | R34,R35,R36,R37,R38,R39,R40,R41,R42,R43,R44,R45,R46, R47,R48,R49,R59,R60,R61,R62,R63,R64,R65,R66,R67,R68, R69,R70,R71,R72,R73,R74,R83,R84,R85,R86,R87,R88,R89, R90,R91,R92,R93,R94,R95,R96,R97,R98,R108,R109,R112, R116,R123,R126,R127,R130,R134,R140,R144,R164,R166, R167,R169,R170,R173,R176,R179,R182,R185,R188,R191 ,R194,R197,R200,R203,R206,R209,R212,R215,R218,R221, R248,R250,R251,R253 |
10k | 0603_RES | see & buy |
Resistencias | 2 | R107,R125 | 100 | 1206_RES | see & buy |
Resistencias | 2 | R110,R128 | 20k | 0603_RES | see & buy |
Resistencias | 2 | R111,R129 | 2k | 0603_RES | see & buy |
Resistencias | 12 | R113,R131,R141,R142,R172,R175,R178,R181,R184,R187, R190,R193 |
4.7k | 0603_RES | see & buy |
Resistencias | 1 | R114 | 1.8k | 0603_RES | see & buy |
Resistencias | 1 | R115 | 240 | 0603_RES | see & buy |
Resistencias | 2 | R117,R135 | 51k | 0603_RES | see & buy |
Resistencias | 2 | R118,R136 | 15k | 0603_RES | see & buy |
Resistencias | 2 | R119,R137 | 10 | 0603_RES | see & buy |
Resistencias | 19 | R120,R121,R122,R163,R224,R226,R227,R229,R230,R232,R233, R235,R236,R238,R239,R241,R242,R244,R245,R247 |
10k | 0805_RES | see & buy |
Resistencias | 1 | R143 | 120 | 0603_RES | see & buy |
Resistencias | 1 | R145 | 1M | 0603_RES | see & buy |
Resistencias | 2 | R152,R157 | 4.7k | RES_ARRAY 0603X4 | see & buy |
Resistencias | 1 | R158 | 470 | 0603_RES | see & buy |
Resistencias | 22 | R195,R196,R198,R199,R201,R202,R204,R205,R207,R208, R210,R211,R213,R214,R216,R217,R219,R220,R222,R223, R254,R255 |
220 | 0603_RES | see & buy |
Resistencias | 8 | R225,R228,R231,R234,R237,R240,R243,R246 | 1k | 0805_RES | see & buy |
Resistencias | 1 | R256 | 10k | RES_ARRAY 0603X4 | see & buy |
Integrados | 1 | U1 | ATMEGA2560 | QFP50P1600X1600X120-100 | see & buy |
Integrados | 1 | U2 | MAX485 | SO8 | see & buy |
Integrados | 1 | U4 | CH340C | SO16 | see & buy |
Integrados | 1 | U5 | AT24C512B | SO8 | see & buy |
Integrados | 1 | U6 | DS3232 | SO16W | see & buy |
Integrados | 1 | U7 | 7810 | DPAK-N | see & buy |
Integrados | 1 | U8 | LM2576-5,0 | TO170P1410X464-6 | see & buy |
Integrados | 17 | U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21, U43,U44,U45,U46,U47 |
ILD207T | SO8 | see & buy |
Integrados | 4 | U22,U23,U24,U25 | 74HC14 | TSSOP14 | see & buy |
Integrados | 4 | U26,U27,U28,U42 | 74HC541 | TSSOP20 | see & buy |
Integrados | 5 | U29,U30,U31,U35,U37 | LM358N | SO8 | see & buy |
Integrados | 2 | U32,U38 | TL431 | SOT23-3 | see & buy |
Integrados | 1 | U33 | LM317L | SOT89 | see & buy |
Integrados | 1 | U34 | ICL7660 | SO8 | see & buy |
Integrados | 2 | U36,U41 | TLP127 | SOIC250P670X300-4 | see & buy |
Integrados | 1 | U48 | 7812 | DPAK-N | see & buy |
Transistores | 12 | Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q22,Q23 | PMBT3904,215 | SOT23-3 | see & buy |
Transistores | 9 | Q11,Q12,Q13,Q14,Q15,Q16,Q17,Q18,Q21 | FQD11P06TM | DPAK-N | see & buy |
Transistores | 2 | Q19,Q20 | PMV48XP,215 | SOT23 V1 | see & buy |
Diodos | 2 | D1,D8 | SS14-TP | DIOM5226X230N | see & buy |
Diodos | 1 | D2 | B330A-13-F | DIOM5226X230N | see & buy |
Diodos | 21 | D3,D36,D37,D39,D41,D43,D45,D47,D49,D51,D53,D54, D55,D56,D57,D58,D59,D60,D61,D62,D63 |
LED-RED | LEDC2012X120 | see & buy |
Diodos | 4 | D4,D5,D6,D7 | MM3Z5V1T1G | SOD-323 | see & buy |
Diodos | 24 | D9,D10,D11,D12,D13,D14,D15,D16,D17,D18,D19,D20, D21,D22,D23,D24,D25,D26,D27,D28,D29,D30,D31,D32 |
LED-GREEN | LEDC1608X60 | see & buy |
Diodos | 9 | D35,D38,D40,D42,D44,D46,D48,D50,D52 | RR1VWM6STFTR | SOD2614X116 | see & buy |
Diodos | 1 | D64 | LED Y-G-O | LED Y-G-O 0805 | see & buy |
Miscelánea | 1 | BAT1 | 3V | BAT 3V | see & buy |
Miscelánea | 1 | BTN1 | RST | BUTTON SMD | see & buy |
Miscelánea | 1 | DSW1 | DIPSW_4 | DIPSWTCH SMD 4P | |
Miscelánea | 1 | F1 | 1A | FUSE SMD | see & buy |
Miscelánea | 5 | J1,J2,J6,J15,J17 | TBLOCK-M2 | T-BLOCK 2PIN BLUE | |
Miscelánea | 1 | J3 | KFM736-5_0-5P | KFM736-5.0-5P P=5.0MM | see & buy |
Miscelánea | 2 | J4,J5 | KFM736-5_0-4P | KFM736-5.0-4P P=5.0MM | see & buy |
Miscelánea | 4 | J7,J16,J18,J20 | TBLOCK-M3 | T-BLOCK 3PIN BLUE | |
Miscelánea | 2 | J8,J9 | TBLOCK-M2 | T-BLOCK 2PIN BLUE | |
Miscelánea | 1 | J10 | TBLOCK-M2 | TBLOCK MINI 2PIN | |
Miscelánea | 1 | J11 | CONN-SIL6 | CONN-SIL6 | see & buy |
Miscelánea | 2 | J12,J14 | CONN-H4 | CONN-SIL4 | see & buy |
Miscelánea | 1 | J13 | JACK USB 2 TIPO B | JACK USB 2.0 TYPE B | see & buy |
Miscelánea | 1 | J19 | KFM736-5_0-6P | KFM736-5.0-6P P=5.0MM | see & buy |
Miscelánea | 1 | JP1 | JUMPER | CONN-SIL2 | see & buy |
Miscelánea | 1 | L2 | 100u | INDUCTOR 100UH | see & buy |
Miscelánea | 8 | RL1,RL2,RL3,RL4,RL5,RL6,RL7,RL8 | HF49FD/012-1H12G | RELAY24VPLC V1 | see & buy |
Miscelánea | 1 | X2 | CRYSTAL SMD S | OSCILADOR SMD CERAMIC RESONATORS | see & buy |
PASOS PARA SUBIR UN PROGRAMA
PASO 1 : SUBIR GESTOR DE ARRANQUE (BOOTLOADER)
Para poder usar un microcontrolador nuevo (atmega2560-16AU), 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 ICSP, que prácticamente serían los pines [ (MOSI=PIN51) (MISO = PIN50) (SCK=PIN52) (Slave=PIN53) ]. Para subir y quemar el gestor de arranque necesitaremos un arduino UNO ó MEGA y realizar las siguientes conexiones (ARDUINO UNO – PLC V6).
PASO 2 : SUBIR PROGRAMA; PC – PLC V6
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.
RELACIÓN DE BORNERAS EXTERNAS Y ATMEGA2560
ARQUITECTURA PLC V6
CODIGOS DE PRUEBA C++ (Arduino)
DIGITAL INPUTS AND DIGITAL OUTPUTS
//TESTER DIGITAL INPUTS 12/24VDC // ENABLER PIN const int E_IN = 62;// habilitador de pines de entrada. const int E_OT = 63; // habilitador de pines de salida reles, const int L_green = 64; // turn on LED GREEN // Digital inputs const int IN0 = 2; const int IN1 = 22; const int IN2 = 23; const int IN3 = 24; const int IN4 = 25; const int IN5 = 26; const int IN6 = 27; const int IN7 = 28; const int IN8 = 29; const int IN9 = 30; const int IN10 = 31; const int IN11 = 32; const int IN12 = 33; const int IN13 = 34; const int IN14 = 35; const int IN15 = 36; const int IN16 = 37; const int IN17 = 38; const int IN18 = 39; const int IN19 = 40; const int IN20 = 41; const int IN21 = 42; const int IN22 = 60; const int IN23 = 61; //MOSFET'S OUTPUTS int Q0 = 3; int Q1 = 4; int Q2 = 5; int Q3 = 6; int Q4 = 7; int Q5 = 8; int Q6 = 9; int Q7 = 10; //RELAY OUTPUTS int O0 = 13; int O1 = 43; int O2 = 44; int O3 = 45; int O4 = 46; int O5 = 47; int O6 = 48; int O7 = 49; void setup() { // ENABLER delay(3000); pinMode(E_IN, OUTPUT); digitalWrite(E_IN, 1);// Con bajo se habilita. Con alto se desabilita pinMode(E_OT, OUTPUT); digitalWrite(E_OT, 1);// Con bajo se habilita. Con alto se desabilita pinMode(L_green, OUTPUT); // program RUN, testing digitalWrite(L_green, 1); //DIGITAL INPUTS pinMode(IN0, INPUT); pinMode(IN1, INPUT); pinMode(IN2, INPUT); pinMode(IN3, INPUT); pinMode(IN4, INPUT); pinMode(IN5, INPUT); pinMode(IN6, INPUT); pinMode(IN7, INPUT); pinMode(IN8, INPUT); pinMode(IN9, INPUT); pinMode(IN10, INPUT); pinMode(IN11, INPUT); pinMode(IN12, INPUT); pinMode(IN13, INPUT); pinMode(IN14, INPUT); pinMode(IN15, INPUT); pinMode(IN16, INPUT); pinMode(IN17, INPUT); pinMode(IN18, INPUT); pinMode(IN19, INPUT); pinMode(IN20, INPUT); pinMode(IN21, INPUT); pinMode(IN22, INPUT); pinMode(IN23, INPUT); //IGBT'S OUTPUTS pinMode(Q0, OUTPUT); pinMode(Q1, OUTPUT); pinMode(Q2, OUTPUT); pinMode(Q3, OUTPUT); pinMode(Q4, OUTPUT); pinMode(Q5, OUTPUT); pinMode(Q6, OUTPUT); pinMode(Q7, OUTPUT); //RELAY OUTPUTS pinMode(O0, OUTPUT); pinMode(O1, OUTPUT); pinMode(O2, OUTPUT); pinMode(O3, OUTPUT); pinMode(O4, OUTPUT); pinMode(O5, OUTPUT); pinMode(O6, OUTPUT); pinMode(O7, OUTPUT); } void loop() { if (digitalRead(IN0) == 1)digitalWrite(Q0, 1); else digitalWrite(Q0, 0); if (digitalRead(IN1) == 1)digitalWrite(Q1, 1); else digitalWrite(Q1, 0); if (digitalRead(IN2) == 1)digitalWrite(Q2, 1); else digitalWrite(Q2, 0); if (digitalRead(IN3) == 1)digitalWrite(Q3, 1); else digitalWrite(Q3, 0); if (digitalRead(IN4) == 1)digitalWrite(Q4, 1); else digitalWrite(Q4, 0); if (digitalRead(IN5) == 1)digitalWrite(Q5, 1); else digitalWrite(Q5, 0); if (digitalRead(IN6) == 1)digitalWrite(Q6, 1); else digitalWrite(Q6, 0); if (digitalRead(IN7) == 1)digitalWrite(Q7, 1); else digitalWrite(Q7, 0); if (digitalRead(IN8) == 1)digitalWrite(O0, 1); else digitalWrite(O0, 0); if (digitalRead(IN9) == 1)digitalWrite(O1, 1); else digitalWrite(O1, 0); if (digitalRead(IN10) == 1)digitalWrite(O2, 1); else digitalWrite(O2, 0); if (digitalRead(IN11) == 1)digitalWrite(O3, 1); else digitalWrite(O3, 0); if (digitalRead(IN12) == 1)digitalWrite(O4, 1); else digitalWrite(O4, 0); if (digitalRead(IN13) == 1)digitalWrite(O5, 1); else digitalWrite(O5, 0); if (digitalRead(IN14) == 1)digitalWrite(O6, 1); else digitalWrite(O6, 0); if (digitalRead(IN15) == 1)digitalWrite(O7, 1); else digitalWrite(O7, 0); if (digitalRead(IN16) == 1)digitalWrite(Q0, 1); else digitalWrite(Q0, 0); if (digitalRead(IN17) == 1)digitalWrite(Q1, 1); else digitalWrite(Q1, 0); if (digitalRead(IN18) == 1)digitalWrite(Q2, 1); else digitalWrite(Q2, 0); if (digitalRead(IN19) == 1)digitalWrite(Q3, 1); else digitalWrite(Q3, 0); if (digitalRead(IN20) == 1)digitalWrite(Q4, 1); else digitalWrite(Q4, 0); if (digitalRead(IN21) == 1)digitalWrite(Q5, 1); else digitalWrite(Q5, 0); if (digitalRead(IN22) == 1)digitalWrite(Q6, 1); else digitalWrite(Q6, 0); if (digitalRead(IN23) == 1)digitalWrite(Q7, 1); else digitalWrite(Q7, 0); }
ANALOG VOLTAGE INPUT(0-10V)
//MOSFET'S OUTPUTS const int Q0 = 12; const int Q1 = 4; const int Q2 = 5; const int Q3 = 6; void setup() { Serial.begin(9600); //IGBT'S OUTPUTS pinMode(Q0, OUTPUT); pinMode(Q1, OUTPUT); pinMode(Q2, OUTPUT); pinMode(Q3, OUTPUT); } void loop() { //ANALOG INPUT (0 - 10V) int analog0 = analogRead(A2);// declarar los puertos de entradas analógicos solo cuando sea necesario int v_analog0 = map(analog0, 0, 1023, 0, 255); analogWrite(Q0, v_analog0); Serial.println(v_analog0); delay(500); /*int analog1 = analogRead(A3); int v_analog1 = map(analog1, 0, 1023, 0, 255); analogWrite(Q1, v_analog1); int analog2 = analogRead(A4); int v_analog2 = map(analog2, 0, 1023, 0, 255); analogWrite(Q2, v_analog2); int analog3 = analogRead(A5); int v_analog3 = map(analog3, 0, 1023, 0, 255); analogWrite(Q3, v_analog3); */ }
ANALOG CURRENT INPUT (4-20mA)
//MOSFET'S OUTPUTS const int Q0 = 3; const int Q1 = 4; void setup() { Serial.begin(9600); //IGBT'S OUTPUTS pinMode (Q0, OUTPUT); pinMode (Q1, OUTPUT); } void loop() { //CURRENT INPUT (4-20mA) // VOLTAGE VALUE int analog0 = analogRead(A1); float voltage0 = analog0 * 0.004887585532746823069403714565;// Serial.print("voltage0 = " ); Serial.print (voltage0); Serial.println ("V"); int pwm_out = voltage0*98.076923076923076923076923076923; analogWrite(Q0, pwm_out); //CURRENT VALUE float current0 = voltage0 * 7.6923076923076923076923076923077; //*2.60V = 20mA Serial.print("current0 = " ); Serial.print (current0); Serial.println ("mA"); Serial.println (" "); // delay(1000); /* int analog1 = analogRead(A0); float voltage1 = analog1 * 0.004887585532746823069403714565; Serial.print("voltage1 = " ); Serial.print (voltage1); Serial.println ("V"); int pwm_out = voltage1*98.076923076923076923076923076923; analogWrite(Q1, pwm_out); float current1 = voltage1 * 7.6923076923076923076923076923077; //*2.60V = 20mA Serial.print("current1 = " ); Serial.print (current1); Serial.println ("mA"); delay(500); Serial.println (" "); */ }
DIP SWITCH CONFIG & PWM OUTPUT(AI0)
const int L_green = 64; //LED RUN //AI0 PMW (0-10V) int AI0 = 11; //DIP SWITCH INPUTS const int IN24 = 66; const int IN25 = 67; const int IN26 = 68; const int IN27 = 69; // void setup() { delay(2000); pinMode(L_green, OUTPUT); digitalWrite(L_green, 1); //SALIDA PWM(0-10V) pinMode(AI0, OUTPUT); Serial.begin(9600); //DIP SWITCH INPUTS pinMode(IN24, INPUT);//DIP 0 pinMode(IN25, INPUT);//DIP 1 pinMode(IN26, INPUT);//DIP 2 pinMode(IN27, INPUT);//DIP 3 } void loop() { if (digitalRead(IN24))analogWrite(AI0, 0); // STOP if (digitalRead(IN25))analogWrite(AI0, 50); // 25% SPEED if (digitalRead(IN26))analogWrite(AI0, 150);//60% SPEED if (digitalRead(IN27))analogWrite(AI0, 255);//100% SPEED }
ANALOG VOLTAGE INPUT & PWM OUTPUT (0-10V)
//PWM_OUTPUTS (0-10V) int AO0 = 11; int AO1 = 12; void setup() { //PWM_OUTPUTS pinMode (AO0, OUTPUT); pinMode (AO1, OUTPUT); } void loop() { //ANALOG VOLTAGE INPUT (0-10V) int analog0 = analogRead(A2); int pwm_out = map(analog0, 0, 1023, 0, 255); analogWrite(AO1, pwm_out); }
CLOCK REAL TIME (RTC)
/* CREADO POR :{==[=======>>>> ELECTROALL <<<<<=======]==} INSTAGRAM : https://www.instagram.com/electroall_/ ó @electroall_ FACEBOOK : https://web.facebook.com/ELECTROALL.ELECTRONICA/?_rdc=1&_rdr PÁGINA WEB : https://www.electroallweb.com/ YOUTUBE : https://www.youtube.com/c/ELECTROALL ________________________________________________________ {==[=======> (Testing CLOCK REAL TIME ) <=======]==} ________________________________________________________ */ #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 Q1 = 3 ; // salida alarma // 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, 11, 20, 15, 28, 0, 5); 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(Q1, OUTPUT); } void loop () { DateTime now = rtc.now(); Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.date(), DEC); Serial.print(' '); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.print(now.second(), DEC); Serial.print(' '); Serial.print(DiaSemana[now.dayOfWeek()]); Serial.println(); lcd.setCursor(0, 0); lcd.print(now.year(), DEC); lcd.print('/'); lcd.print(now.month(), DEC); lcd.print('/'); lcd.print(now.date(), DEC); lcd.setCursor(0, 1); 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()]); //delay(1000); // Se actualiza cada segundo //lcd.clear(); if ((now.dayOfWeek()) == 5 && now.hour() == 15 && now.minute() == 38) { // MONDAY digitalWrite(Q1, 1); } else { digitalWrite(Q1, 0); } }
MODBUS RTU (RS485)
#include <Modbusino.h> ModbusinoSlave modbusino_slave(1); /* Allocate a mapping of 10 values */ uint16_t tab_reg[10]; int i; int sensorPin = A2; int sensorValue = 0; void setup() { modbusino_slave.setup(115200); pinMode(relay, OUTPUT); } void loop() { sensorValue = analogRead(sensorPin); tab_reg[4] = sensorValue; modbusino_slave.loop(tab_reg, 10); i = i++; }
11 comentarios. Dejar nuevo
Hola!!
Vendes directamente esta placas ? Puedes realizar envios a españa y cual es el valor de 2 o 3 placas de este PLC? Gracias por todo.
Otimos projeto tenho interesse em fazer seus projetos ,poderia usar essa placa para impressora 3d e cnc. E leser tudo numa mesma mquina
buenas , saludos desde Cúcuta Colombia, excelente trabajo y muy seguro un eslabón para lo viene adelante en el campo de proyectos de automatización industrial , IoT ; en el campo de la automatización industrial aparte de control de motores , hay bastante control de temperaturas de múltiples zonas de una maquina o un proyecto ;se que su video inicial era demostrativo de las cualidades y características del PLC V6 , si fuera posible hacer un video ejemplo de integración del PLc al control de servo-motores , electroválvulas, temporizadores y controles de varias zonas de temperatura ,(max 6675 por ejemplo), con un display touch (Nextion u otros); se que es bastante pedir , pero trabajo en maquinas para la transformación de plástico de las que vienen con lógica cableada y me gustaría ofrecer esta transformación. gracias por su atención.
Hola si es para el control de estrusoras, podrías usar módulos como el máx 31865 para leer los sensores de temperatura PT100 o Max 31855 para Termocuplas tipo K
https://www.adafruit.com/product/269 allí una opción, en aliexpress están más baratos.
Pará el HMI Puedes usar una tablet con windows que sea táctil o una Raspberry Pi con pantalla tactil. Con Linux., En lo personal prefiero Windows 10 funciona mejor con lo táctil.
Como software sacada tienes el Rapidscada que funciona muy bien.
Gracias Fernando; lo tenemos en cuenta 🙂
Muchas gracias por la sugerencia:)
Buenas noches. Cual es el precio de PLC V6 puesto en Medellín Colombia
Estimado necesito comprar
Excelente
Por favor, hacerme llegar este contenido en Word o PDF si fuera posible. Gracias.
Estamos trabajando en ello; gracias.