viernes, 8 de julio de 2016

TRIAC Y RELÉ--JEISON


PLACA RELÉ Y TRIAC


Este proyecto es una unión entre dos placas, una ya elaborada anteriormente la cual constaba de un relé el cual conmutaba una bombilla por medio de Arduino y Processing. La otra era con un triac y tres moc3021.


PLANIFICACIÓN DEL PROYECTO:

el diagrama de Gantt es una útil herramienta gráfica cuyo objetivo es exponer el tiempo de dedicación previsto para diferentes tareas o actividades a lo largo de un tiempo total determinado.
A pesar de esto, el diagrama de Gantt no indica las relaciones existentes entre actividades.
Para hacernos una idea de saber que días se tienen disponibles para entregar el proyecto lo que hacemos es un diagrama de Gantt, el cual nos divide la tarea principal en tareas y sub-tareas para llevar un control especifico de lo que se tiene que hacer y cuando terminarlo.


DIAGRAMA DE GANTT:



Una vez hecha la planificación empezamos con el desarrollo del proyecto.



PLACA RELÉ:



COMPONENTES:


1 RELÉ 12V 10A
2 BC549
1 RESISTENCIA DE 2K2
1 RESISTENCIA DE 4K7
1 DIODO 1N4007
TIRA DE PINES MACHO


CONSTRUCCIÓN:




PCB:



VÍDEO DE FUNCIONAMIENTO:






PLACA TRIAC:


Para el desarrollo de esta placa me base en información ya definida, y probada, recurrí a un blog y de ahí saqué la mayoría de la información, exceptuando que lo único que cambia en el circuito son las resistencias que van después de los pines del Arduino, se utilizan resistencias de 1K2 y en el poryecto original de 1K.
Adjunto la página del blog:
http://txapuzas.blogspot.com.es/2010/06/regulador-de-potencia-por-triac-para.html



En este circuito sustituimos el potenciómetro de 470K con tres resistencias fijas que puentearemos según nos convenga. Si los valores de las resistencias son 64K, 120K y 270K obtenemos hasta 8 niveles diferentes en función de las resistencias que activemos en cada momento tal y como se indica en la siguiente tabla:




Esto lo hacemos mediante tres opto-acopladores que a la vez de aislar la parte del micro de la parte de potencia, puentean las resistencias que están situadas en paralelo con el "foto interruptor bidireccional".

NOTA: Este circuito solo funciona con motores de tipo universal (con escobillas), para regular la velocidad de motores de inducción (sin escobillas) es necesario realizar un variador de frecuencia.

  • La intensidad máxima de salida: 8A
  • Entrada: Compatible con TTL
  • Tensión máxima de carga: Picos de hasta 600V o 800V en función del TRIAC elegido
  • Niveles de tensión en carga: 8 niveles
  • Aislamiento entrada/salida: 7500V


COMPONENTES:

3 RESISTENCIAS DE 1K2 1/4W
1 RESISTENCIA DE 56K 1/2W
1 RESISTENCIA DE 120K 1/2W
1 RESISTENCIA DE 270K 1/2W
1 RESISTENCIA DE 5K6 1/2W
1 RESISTENCIA DE 39 1/2W
1 TRIAC BT137
1 DIAC
3 MOC3021
3 ZÓCALOS DE 6 PATILLAS
2 CONDENSADORES DE 100nF / 400V
TIRA DE PINES MACHO


CONSTRUCCIÓN:




Es necesario comentar que la lógica es invertida, es decir si activamos con 5 voltios cada una de las patillas del opto-acoplador en medida de la tabla de la verdad se irá activará el fototriac correspondiente, y irá puenteando las resistencias que cada uno lleva en paralelo.

Es decir:
  • Si led1 = led2 = led3 = 0V, R = 5K6 + 56K + 120K + 270K
  • Si led1 = 1; led2 = led3 = 5V, R = 5K6 + 0 + 120K + 270K
  • Si led1 = led2 = led3 = 5V, R = 5K6 + 0 + 0 + 0

Utilizando 3 salidas de Arduino conectadas a las entradas led1, led2 y led3 conseguiremos graduar la potencia en 8 niveles.


PLACA POR LADO DE LOS COMPONENTES:



PCB:


Esta fue la elaboración de la placa del triac utilizando 3 moc3021, y ahora por medio de una modificación del programa de Arduino y Processing, funcionaran los dos con el mismo programa.



PROGRAMA DE ARDUINO:


Este programa solo se encarga de recibir los datos que el processing le envía por el puerto serie, este solo interpretara y procesara los datos mandados.

 int val; 
 int In1 = 2;
 int In2 = 3;
 int In3 = 4;
 int ledPin = 13;


 void setup() {
 pinMode(In1, OUTPUT);
 pinMode(In2, OUTPUT);
 pinMode(In3, OUTPUT);
 pinMode(ledPin, OUTPUT);
 Serial.begin(9600); 
 }

 void loop() {
 if (Serial.available() >= 0) { 
 val = Serial.read(); 
 }
 if(val == 'b'){
   Serial.println("OFF");
   digitalWrite(In1, LOW);
   digitalWrite(In2, LOW);
   digitalWrite(In3, LOW);
   delay(10);
 }
else if(val == 'a') {
  Serial.println("ON");
  digitalWrite(In1, LOW);
  digitalWrite(In2, LOW);
  digitalWrite(In3, HIGH);
delay(2000);
   
   digitalWrite(In1, LOW);
   digitalWrite(In2, HIGH);
   digitalWrite(In3, LOW);   
delay(2000);   

  digitalWrite(In1, LOW);
  digitalWrite(In2, HIGH);
  digitalWrite(In3, HIGH);
delay(2000); 

  digitalWrite(In1, HIGH);
  digitalWrite(In2, LOW);
  digitalWrite(In3, LOW);
 delay(2000); 

  digitalWrite(In1, HIGH);
  digitalWrite(In2, LOW);
  digitalWrite(In3, HIGH);
 delay(2000); 
  
  digitalWrite(In1, HIGH);
  digitalWrite(In2, HIGH);
  digitalWrite(In3, LOW);
 delay(2000);  

  digitalWrite(In1, HIGH);
  digitalWrite(In2, HIGH);
  digitalWrite(In3, HIGH);
   delay(2000);
}
   else if(val == '1'){
   Serial.println("ON");
   digitalWrite(ledPin, HIGH);
   delay(500);
}
   else if(val == '0'){
   Serial.println("OFF");
   digitalWrite(ledPin, LOW);
   delay(500);
 }
 delay(100); 
}

PROGRAMA DE PROCESSING:


Este programa tiene una interfaz bastante simple, consta de 4 botones y funciona con las coordenadas en las cuales se desplace el ratón, el cual mandara los datos ya establecidos al Arduino para que este simplemente los ejecute.


import cc.arduino.*;
import processing.serial.*;

Serial myPort;

int ledPin = 13;
int led1 = 2;
int led2 = 3;
int led3 = 4;


Arduino arduino;
void setup ()
{
 size(400, 200);
 background(0);
println(Serial.list());
 String portName = Serial.list()[0];
 myPort=new Serial(this, portName,9600);
 myPort.buffer(1);
 //aduino = new Arduino ( this, Arduino.list()[0], 9600);
 // arduino.pinMode (ledPin, Arduino.OUTPUT);
}

void draw ()
{
  
  fill(213,245,12);
  rect(0,30,100,150);
  
  fill(255,13,223);
  rect(100,30,100,150);
  
  fill(17,188,247);
  rect(200,30,100,150);
  
  fill(28,247,17);
  rect(300,30,100,150);
  fill(255);
  textSize(25);
  text("RELÉ", 80,5,100,100);
  text("OFF", 130,100,100,100);
  text("ON", 30,100,100,100);
  text("TRIAC", 270,5,100,100);
  text("OFF", 230,100,100,100);
  text("ON", 330,100,100,100);
}
void mousePressed(){
  if(mouseX > 0 && mouseX < 100 && mouseY > 0 && mouseY < 150)myPort.write('1');
  if(mouseX > 100 && mouseX < 200 && mouseY > 0 && mouseY < 150)myPort.write('0');
  if(mouseX > 200 && mouseX < 300 && mouseY > 0 && mouseY < 150)myPort.write('b');
  if(mouseX > 300 && mouseX < 400 && mouseY > 0 && mouseY < 150)myPort.write('a');
}


VÍDEO DE FUNCIONAMIENTO:




En el vídeo se puede apreciar el funcionamiento de las dos placas juntas, la placa del triac se encarga de hacer una rampa para poco a poco encender el motor, no se nota mucho los 8 niveles porque el retardo entre cada nivel es muy bajo, con la placa de relé se enciende y se apaga una bombilla, todo esto a través de processing ya una vez teniendo la placa de Arduino cargada con el programa.


MUCHAS GRACIAS!!

No hay comentarios:

Publicar un comentario