ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Control PID Sobre Motor Universal


Enviado por   •  21 de Octubre de 2013  •  585 Palabras (3 Páginas)  •  988 Visitas

Página 1 de 3

proyecto de instrumentación

Jesús Ricardo Bahamón Quimbaya

Paul Sahagun Landa

Introducción

Objetivo

Desarrollar una aplicación en la cual se empleen sensores, se utilice Labview para procesar los datos y realizar un control PID sobre alguna de las variables

Aplicación

Control de velocidad de un motor de corriente alterna, conectando labview a través de arduino con los sensores.

Se conecta un encoder a l motor para sensar la velocidad del motor, el encoder envía un tren de pulsos que se hace pasar por un comparador para poder obtener voltajes positivos y negativos, y luego se hace pasar por el conversor de frecuencia a voltaje, así, este valor de voltaje se hace pasar por el un ADC del arduino (pin A_0) y este dato es enviado por bluetooth a Labview; del mismo modo, desde labview se puede enviar por bluetooth el valor de velocidad deseado con el correspondiente valor PID.

Elementos

Resistencias varias

Capacitores varios

Arduino UNO

TRIAC

Optoacoplador

Conversor de frecuencia a voltaje lm2907

Amplificador Operacional LM741

Módulo Bluetooth JY-MCU

Fuente de alimentación +/- 12 volts

Encoder

Diagramas eléctricos

Detector de cruce por cero

Triac

Código

Arduino

#include <SoftwareSerial.h>

#include <TimerOne.h>

//SoftwareSerial bt(8,12);

//Recepcion y envio de datos

String inputString = "";

String cadena="";

boolean stringComplete = false;

int sensor1=0;

int tamano=0;

int i=0;

int verifica=0;

int tiempo=0;

int power=50;

int conectado=0;

int espera=10000;

//----------------------------------

//Control TRIAC

//Se conecta al pin 2 el opto para el cruce por cero

#define triacApin 5

int frequencia = 60;

int stateTriacA = 0;

//----------------------

void setup() {

 // put your setup code here, to run once:

  Serial.begin(9600);

 // bt.begin(9600);

  inputString.reserve(100);

  cadena.reserve(100);

  

  

  //Control TRIAC

  pinMode(triacApin, OUTPUT);

  digitalWrite(triacApin, LOW);

  Timer1.initialize();

 attachInterrupt(0, zero_cross_detect, RISING);

 //Serial.println("yu");

  //Se conecta al pin 2 el opto para el cruce por cero, la interrupción 0 está en pin 2

  

  //--------------------------------

  

 

  

}

void loop() {

 // put your main code here, to run repeatedly:

   do

  {

    escuchar();

         

  }

  while(cadena!="Cntc");

  

  //Serial.println("conectado");

  while(i==0)

  {

    //Serial.println("Otro");

    verifica=0;

    tiempo=0;

    sensor1=analogRead(A0);

    inputString="";

    cadena="";

    Serial.println(sensor1);

    delay(20);

   

    while(i==0)

    {

     

    escuchar();

    tiempo++;

   // Serial.println(cadena);

    if(cadena=="Ok")

    {

      

      verifica=2;

     

      break;

      

      

    }

    else{

...

Descargar como (para miembros actualizados) txt (6 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com