Ir al contenido principal

PLC con ARDUINO NANO

 

PLC con  ARDUINO (NANO) V1.0  CON 6 ENTRADAS DIGITALES, 2 ENTRADAS ANALOGICAS,4 SALIDAS RELE.


 INTRODUCCION

PLC basado en Arduino "NANO", todo comenzó con el afán de tener un PLC de código abierto, que me permitiera programar un sistema de presión constante de bombas de agua, así comenzó todo, la idea era simple alimentar con 24 VDC o 220 VAC, que tenga entradas digitales y salidas de contacto seco. 

Esto en gran medida se logro, ya que se puede alimentar desde (12 a 24 VDC), tiene 6 entradas digitales 24VDC, 2 Analógicas (0 a 10 VDC), 4 Salidas relé NA, se puede programar directamente en placa, con conexión. USB tipo B. tiene una pantalla LCD donde se puede visualizar los estados.

 ESPECIFICACIONES TECNICAS

1. Tensión de alimentación.............................12 a 24 VDC
2. Entradas digitales.......................................#6
3. Entradas analógicas (Voltaje) 0-10 V........#2
4. Salidas Rele...............................................#4
5. Puerto de comunicación............................#1
6. Comunicación ISP.....................................#1
7. Comunicación I2C....................................#1
8. Reloj de tiempo real..................................Si
9. Programación directa................................Si
10.Entorno de programación.........................Arduino IDE.
11.Para Riel Din...........................................Si

 DISEÑO DE pcb


 Lista de componetes

1. Chip HEF4050BT...............................................#1
2. Regulador SMD AMS1117 5.0 V.......................#1
3. Comunicación CH340G.....................................#1 
4. SMD LM358......................................................#2 
5. Regulador de Voltaje MP1584...........................#1
6. Resistencia 1206 SMD 3.6 KΩ..........................#6 
7. Resistencia 1206 SMD 270 KΩ.........................#2 
8. Resistencia 0603 SMD 270 KΩ.........................#4 
9. Resistencia 0603 SMD 2.2 KΩ..........................#6 
10. Resistencia 0603 SMD 2 MΩ..........................#6 
11. Resistencia 1206 SMD 0 Ω..............................#5 
12. Resistencia 0603 SMD 1 KΩ...........................#20 
13. Condensadores 0603 SMD 0,1 nf....................#22 
14. Condensadores 0603 SMD 22 pf.....................#2
15. Condensadores 1206 SMD 22 pf.....................#2
16. Condensadores tantalio  0603 SMD 10 uf.......#1
17. Condensadores tantalio  0603 SMD 4.7 uf......#1
18. Transistor SMD BC817-40 6C NPN ..............#5
19. SOD-123 diodos Schottky SMD......................#1 
20. Cristal Cuarzo 12 MHZ...................................#1
21. Cristal Cuarzo 16 MHZ...................................#1
22. Resistencia 0603 SMD 18 KΩ........................#16
23. Condensadores 0603 SMD 0,1 nf...................#20
24. Resistencia 1206 SMD 1 KΩ..........................#1 
25. Relé RB104-DC 4.5V fuji electric..................#4
26. Bornera Enchufable de 12 (2.54) ...................#1
27. Bornera Enchufable de 8 (2.54) .....................#1
28. Conector USB Hembra Tipo B.......................#1
29. Pines Macho (2.54) 19mm ............................#2
30. Pines Hembra SMD  2x20(2.54) ...................#1
31. Pines Hembra  2x20(2.54) .............................#1
32. Expansor de E/S, PCF8574AT SMD..............#1
33. Resistencia 1206 SMD 4.7 KΩ......................#2 
34. Micro ATMEGA 328P ...................................#1 
35. Reloj DS1307Z SMD   ..................................#1
36. Cristal 32.768 KHZ   .....................................#1
37. Potenciómetro Ajustable SMD (3362)   ........#1
38. LCD 2x8   ......................................................#1 
39. Caja de Plástico .............................................#1

 subir programa

Para subir el programa es necesario subir un un gestor de arranque como también llamado “BOOTLOADER”. 
Finalmente se puede quemar el gestor de arranque mediante el ICSP. (VCC, GND, MISO, MOSI, RST, SCK).

 relacion de borneras

Digital Input    Nano        Relé Output    Nano     Anal. Input      Nano
X0-------------D11          Y0------------D6         A0-------------------A2
X1-------------D12          Y1------------D7         A1-------------------A3               
X2-------------D5            Y2------------D8         A2-------------------A7
X3-------------D10          Y3------------D9         A3-------------------A6
X4-------------A0
X5-------------A1

 partes y conexiones externas


 CODIGO  DE PRUEBAS C++ (IDE ARDUINO)

 ENTRADAS DIGITALES Y SALIDAS RELE.

 //Probando entradas y Salidas Rele.
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,8,2);

// ENTRADAS DIGITALES DE 12 a 24V
const int X0 = 11;  
const int X1 = 12;    
const int X2 = 5;
const int X3 = 10;
const int X4 = A0;
const int X5 = A1;

//SALIDAS CON RELES CONTACTO SECO NA.
const int Y0 = 6;
const int Y1 = 7;
const int Y2 = 8;
const int Y3 = 9;
// PRENDER LED LCD.
const int led = 13;

void setup() {
// Inicializar el LCD
  lcd.init();
// MENSAJE DE BIENVENIDA. 
  lcd.print("PLC NANO");
  
    //ENTRADAS DIGITALES
    pinMode (X0, INPUT);
    pinMode (X1, INPUT);
    pinMode (X2, INPUT);
    pinMode (X3, INPUT);
    pinMode (X4, INPUT);
    pinMode (X5, INPUT);
    //SALIDAS RELE
    pinMode(Y0, OUTPUT);
    pinMode(Y1, OUTPUT);
    pinMode(Y2, OUTPUT);
    pinMode(Y3, OUTPUT);
    pinMode(led, OUTPUT);
}
void loop() {
  // Cursor para LCD.
  lcd.setCursor(0, 1);
  lcd.print("Probando");
  delay(100);
  
  digitalWrite (led,1); //Prendemos la iluminacion del LCD.
   
  if (digitalRead(X0) == 1)digitalWrite(Y0, 1);
  else digitalWrite(Y0, 0);
  if (digitalRead(X1) == 1)digitalWrite(Y1, 1);
  else digitalWrite(Y1, 0);
  if (digitalRead(X2) == 1)digitalWrite(Y2, 1);
  else digitalWrite(Y2, 0);
  if (digitalRead(X3) == 1)digitalWrite(Y3, 1);
  else digitalWrite(Y3, 0);
  
}


 VIDEO




Comentarios

Publicar un comentario