Vous êtes sur la page 1sur 30

PROYECTO DE SISTEMA DE CONTROL

PARA LA FERIA

En la figura se muestra el circuito eléctrico equivalente a un motor DC de excitación separada.

Suponiendo que la corriente de campo es constante (equivalente a decir que el campo es


constante) y la entrada manipulada a los fines de ejercer control (puede ser de velocidad o
posición angular) es la tensión de armadura, las ecuaciones son las siguientes:

dia
Va (t )  Ra ia (t )  La Vb (t )
dt
donde : Vb (t )  K b w(t ) w(t )  velocidad angular del eje
Tm (t )  K i ia Tm (t )  Torque del motor
dw(t )
Tm (t )  J T  BT w(t )
dt
J T  inercia total de la carga mecanica=J L  J M
BT  coeficiente de fricción viscosa total=BL  BM
Se desea que ustedes monten un modelo simulink del motor en cadena abierta (sin control) y
obtengan la respuesta del motor para una tensión de armadura constante de 18 volts aplicada
en t=0. Consideren como salida: la velocidad angular en el eje del motor. Pero también nos
interesa ver cómo es el comportamiento de la corriente de armadura durante el arranque del
motor.

Los parámetros del motor (Honeywell 22VM51-020-5) son los siguientes:

Back EMF Constant=K b  0.0374 voltsx sec/ rad


Torque Constant  Ki  0.0374 ntxmt / amp
Ra  3.8 ohms La  6.0e  4 henrys
BM  6.74e  6 Ntxmtxsec/rad
J M  3.18e  6 kgmxmt 2
BL  3.875e  4 Ntxmtxsec/rad
J L  3.18e  4 kgmxmt 2
No hay engranajes

¿De qué se trata en esta cuarta asignación?

1. Calcular la función de transferencia en cadena abierta del motor.


2. Obtener la función de transferencia en el espacio de trabajo de matlab. A este respecto
se recomienda ver el help de comandos como tf y zpk.
3. Obtener los polos del motor. ¿Cuál cree usted es la razón para que el motor tenga un
polo mucho más rápido que el otro?
4. Estimar la duración de la respuesta transitoria del motor en cadena abierta. ¿Coincide
esto con lo obtenido en la asignación dos?
5. Calcular la ganancia estática del motor tanto mediante ecuaciones como en Matlab.
Volvemos a trabajar con el motor DC de la tercera asignación, repetimos la presentación de sus ecuaciones y
parámetros:

En la figura se muestra el circuito eléctrico equivalente a un motor DC de excitación separada.

Suponiendo que la corriente de campo es constante (equivalente a decir que el campo es


constante) y la entrada manipulada a los fines de ejercer control (puede ser de velocidad o
posición angular) es la tensión de armadura, las ecuaciones son las siguientes:

dia
Va (t )  Ra ia (t )  La Vb (t )
dt
donde : Vb (t )  K b w(t ) w(t )  velocidad angular del eje
Tm (t )  K i ia Tm (t )  Torque del motor
dw(t )
Tm (t )  J T  BT w(t )
dt
J T  inercia total de la carga mecanica=J L  J M
BT  coeficiente de fricción viscosa total=BL  BM

Los parámetros del motor (Honeywell 22VM51-020-5) son los siguientes:


Back EMF Constant=K b  0.0374 voltsx sec/ rad
Torque Constant  Ki  0.0374 ntxmt / amp
Ra  3.8 ohms La  6.0e  4 henrys
BM  6.74e  6 Ntxmtxsec/rad
J M  3.18e  6 kgmxmt 2
BL  3.875e  4 Ntxmtxsec/rad
J L  3.18e  4 kgmxmt 2
No hay engranajes

¿De qué se trata en esta cuarta asignación?

1. Calcular la función de transferencia en cadena abierta del motor partiendo del diagrama
de bloques representativo de sus ecuaciones dinámicas. 3 ptos
2. Obtener la función de transferencia en el espacio de trabajo de matlab. A este respecto
se recomienda ver el help de comandos como tf y zpk. 3 ptos
3. Obtener los polos del motor. ¿Cuál cree usted es la razón para que el motor tenga un polo
mucho más rápido que el otro? 3 ptos
4. Estimar la duración de la respuesta transitoria del motor en cadena abierta. ¿Coincide
esto con lo obtenido en la asignación tres? 3 ptos
5. Calcular la ganancia estática del motor tanto mediante ecuaciones como en Matlab. 3
ptos
6. Mostrar el diagrama de bloques en cadena cerrada que utilizaría para analizar el
comportamiento regulatorio del lazo de control de la asignación cuatro para una
perturbación modelada como torque frenante. 4 ptos
En esta asignación van a trabajar con el servo de posición que discutimos en clase. Recuerden que estamos utilizando el
mismo motor DC, pero ahora la variable controlada es la posición angular en un eje cuya velocidad está reducida veinte
veces debido a la utilización de un engranaje reductor de velocidad. El diagrama simulink del sistema se muestra en la
siguiente figura:

Este modelo se encuentra disponible en el site del curso bajo la denominación: “servoposicionPID.mdl”. Ustedes lo van a
utilizar para efectuar la prueba final de su diseño para el cual: aplicarán la técnica de ubicación de polos en cadena cerrada.

Comentarios:

1. El controlador PID del modelo tiene una salida limitada entre -5 y +5 voltios.
2. Se supone que el motor esta inicialmente parado y se está aplicando una referencia tipo escalón de
magnitud 1 radian.
3. A los efectos de aplicar la técnica sigue siendo válida la aproximación de despreciar la inductancia de
armadura. Es decir, la función de transferencia del motor velocidad vs tensión de armadura es de primer
orden.

Las especificaciones de diseño están individualizas conforme lo indica la siguiente tabla:

Nombre Tiempo de reposo (2%) Porcentaje de sobrepico

Briceño 0.8 15

Cumare 0.7 10

Marin 1 5

Martinez 1.5 10

Olivo 2 5

Padron 0.8 10

Silva 1.2 8

Velasco 1.6 5

Veloz 1 10
Viloria 1.5 15

Ruiz 2 10

A los efectos de proceder al diseño podrán utilizar el archivo .m disponible en el site bajo la denominación:
“DisenoPIDServoPosicion.m”. Ustedes deben intervenir este archivo en las líneas 28 y 29 a fin de colocar las
especificaciones de diseño que les corresponden según la tabla. Como se dijo en clase: este programa parte de
las especificaciones de diseño para calcular la posición deseada para los polos dominantes del sistema.
Internamente, él calcula la posición de los dos ceros del controlador PID de manera tal de forzar a que el LGR del
sistema pase por esos puntos de diseño (haciendo cumplir la condición de fase) y luego calcula la ganancia para
que los polos se ubiquen allí aplicando condición de magnitud. Luego, ustedes deben verificar en sisotool donde
quedaron ubicados los otros polos del sistema y si los polos supuestamente dominantes realmente lo son. Se
pide entonces:

A. Obtener el diseño y verificarlo en el sisotool que los polos “supuestamente” dominantes están ubicados
en la posición que ustedes obtuvieron a partir de las especificaciones de diseño. Mostrar la gráfica de
verificación. (7 ptos)
B. Obtener la respuesta lineal del sistema y compararla con lo especificado. Explicar a qué pueden deberse
las diferencias sobre la base del cumplimiento o no de la Hipótesis de Dominancia. (7 ptos)
C. Con los parámetros Kc, Tr y Td obtenidos (ver anexo) obtengan la respuesta del modelo simulink. Si hay
diferencias con respecto a la respuesta obtenida del análisis lineal, comentar a qué pueden deberse estas
diferencias. Mostrar las respuestas obtenidas. (6 ptos)
Anexo :
1 TrTd s 2  Tr s  1
PID( s )  K C (1   Td s )  K C
Tr s Tr s
s 2  (1/ Td ) s  (1/ TrTd )
PID( s )  K CTd
s
Las raíces del numerador se obtienen de la expresión:
1 1
s1 , s2    (1/ Td ) 2  4(1/ TrTd )
2Td 2
Si : Tr  4Td
el controlador aportará dos ceros reales e iguales y:
( s  1/ 2Td ) 2
PID( s )  K CTd
s

Control de motor DC con Arduino - MATLAB


Como realizar un control de un motor de corriente continua a través de una placa Arduino y MATLAB.

Material utilizado:

 Arduino UNO.
 Driver l298d.
 Motoreductor 12V.
 Fuente de alimentación externa de 12V a 1amp.
Motor DC utilizado

Diagrama de conexión
Diagrama de conexión con integrado L298d.

Si no cuentas con el integrado L298d, puedes utilizar el L293D para un motor DC de menor potencia te funcionara
muy bien.

Diagrama de conexión con integrado L293D.

Una vez realizado las conexiones del circuito, conectamos la placa arduino a nuestra computadora y abrimos
MATLAB.

Creamos un nuevo script y comenzamos a escribir el siguiente código. Únicamente tendremos que modificar el
numero de puerto de comunicación y el modelo en caso de ser necesario, de la placa Arduino.

Script en MATLAB.

clear all port;


a = arduino('com3','uno');

for x = 0:4
writeDigitalPin(a,'D3',1);
writeDigitalPin(a,'D5',0);
pause(2);
writeDigitalPin(a,'D3',0);
writeDigitalPin(a,'D5',1);
pause(2);
end

writeDigitalPin(a,'D3',0);
writeDigitalPin(a,'D5',0);

for d = 1:-0.1:0
writePWMDutyCycle(a,'D3',d);
writeDigitalPin(a,'D5',0);
pause(2);
end

for s = 0:+0.1:1
writeDigitalPin(a,'D3',0);
writePWMDutyCycle(a,'D5',s);
pause(2);
end
writeDigitalPin(a,'D3',0);
writeDigitalPin(a,'D5',0);

Bibliografia

https://create.arduino.cc/editor/ProfeGarcia/ec7844e0-f33e-4a09-b636-910d9fadd8c2/preview

https://sites.google.com/site/arcontrolmecatronica/archivos-matlab-descargables

https://www.dropbox.com/sh/mb4dkc5c1bymenr/AACA9gWaIsx8edNvnGKHiex8a?dl=0

https://www.youtube.com/watch?v=yTc9xq_jmAE

https://www.biwy-mecatronica.com/2017/11/mpp-encoder-arduino.html

https://www.youtube.com/watch?v=HZE7fVpdQxw
1. Objetivos
2. Introducción
3. Materiales
4. Modelamiento matemático del motor DC
5. Diseño y características de la planta
6. Conclusiones
7. Recomendaciones
8. Bibliografía
9. Anexos

Objetivos
Objetivo General
 Diseñar e implementar un sistema de control de velocidad de un motor DC.
Objetivos Específicos
 Determinar las especificaciones requeridas para una planta devanadora, utilizada para enrollar cable o alambre.
 Medir la velocidad a la que gira el eje de un motor DC mediante un opto-acoplador que es el fundamento de un
tacómetro digital.
 Obtener un muestreo de datos mediante un protocolo de comunicación hacia MATLAB.
 Utilizar el comando IDENT para identificar el tipo de sistema y sus diversas aplicaciones.

Introducción
Los sistemas de control son aquellos dedicados a obtener la salida deseada de un sistema o proceso. En un sistema
general se tienen una serie de entradas que provienen del sistema a controlar, llamado planta, y se diseña un sistema
para que, a partir de estas entradas, modifique ciertos parámetros en el sistema planta, con lo que
las señales anteriores volverán a su estado normal ante cualquier variación.
JUSTIFICACIÓN
Para lograr una alta prestación de los accionamientos llevados a cabo por un motor que forma parte de un sistema
de control, es necesario estudiar las características dinámicas de estos y desarrollar estrategias de control acorde con
las mismas.
Es por esta razón que la presente actividad pretende tener un acercamiento al control en una planta real, donde se
diseñará un control de velocidad del motor DC y se lo manejará de manera adecuada a la aplicación elegida.

Materiales
Motor DC
El motor de corriente continua es una máquina que convierte la energía eléctrica en mecánica, principalmente
mediante el movimiento rotativo. Esta máquina de corriente continua es una de las más versátiles en la industria. Su
fácil control de posición, par y velocidad la han convertido en una de las mejores opciones en aplicaciones de control
y automatización de procesos.

Carrete
Cilindro generalmente con el eje hueco, con rebordes o discos en sus bases, en el que se enrollan hilos, cables u otro
material flexible. En nuestro caso nuestro carrete es de madera y tiene un diseño especial para simular el enrollado
de alambre

Ilustración 2 CARRETE
Sensor
La etapa de medición se realiza mediante el uso de un opto-acoplador H21A1, siguiendo el principio de
funcionamiento de un tacómetro digital, a través del cual se hace pasar un disco de ranurado codificado colocado en
la parte posterior del eje del motor. El disco codificado de 30 pulsos/rev. Los pulsos emitidos son realimentados al
microcontrolador para así calcular la velocidad de rotación del motor.

Ilustración 3 DISCO RANURADO


Microcontrolador

Para la etapa de procesamiento de datos, utilizamos el microcontrolador PIC 16F877A de 40 pines el cual nos
permitió conectar el display LCD para desplegar los datos obtenidos, el sensor y la conexión Serial hacia la PC.
Ilustración 4 PIC 16F877A
DIAGRAMA DE BLOQUES
Ilustración 5 DIAGRAMA DEL SISTEMA
Etapa de Potencia
Mediante un integrado 555 generamos un PWM para hacer girar el motor, esta etapa se la acopló a la etapa
de potencia, en la cual se utilizó un transistor IRFZ44N que permite soportar corrientes altas y darle mayor potencia
al motor.

Ilustración 6 DIAGRAMA CIRCUITAL ETAPA DE POTENCIA


Etapa de Sensado

Ilustración 7 CIRCUITO IMPLEMENTADO ETAPA DE SENSADO Y POTENCIA


Etapa del Microcontrolador
Ilustración 8 DIAGRAMA CIRCUITAL MICROCONTROLADOR

Ilustración 9 CIRCUITO IMPLEMENTADO CIRCUITO MICROCONTROLADOR

Modelamiento matemático del motor DC


Se debe contar, para realizar el diseño del sistema de control, con el modelo fenomenológico de la dinámica del
motor de CC. Se cuenta con un motor de CC de excitación independiente, el que puede modelarse mediante un
circuito equivalente, el que se muestra en la figura

Ilustración 10 MODELO CIRCUITAL DEL MOTOR DC


Circuito del motor de CC. La parte izquierda modela el estator y, la derecha, el rotor
Las ecuaciones que describen el comportamiento del motor son:

Por lo tanto, la función de transferencia que caracteriza al motor y que relaciona la frecuencia (en RPM) a la que gira
el motor con el voltaje de armadura está dada por:

Diseño y características de la planta


Como primer paso se realizó el modelamiento matemático del motor DC, para simplificar el análisis y la
implementación, se considerara un motor universal de corriente continua.
En nuestro diseño se utilizó un motor DC de hasta 12V el cual esta acoplado a una
pequeña estructura de madera que hace la parte de estabilizar toda la planta.
Detalle de parámetros de desempeño del sistema
Modelo Real

Ilustración 11 DIAGRAMA PLANTA REAL


Pesos máximo bobinas: Desde 1.000 hasta 15.000 Kgs
Anchos máximo bobinas: Desde 450 hasta 1.500 mm.
Diámetro exterior máximo bobina: 1.600 mm.
Diámetro de expansión mandrino: De 470 a 520 mm.
Velocidad de desenrollado: 700 R.P.M.
Potencia motor: 3 Kw.
Tensión de alimentación: 380 V 50 Hz.
Sentido de trabajo: A definir
Sistema implementado
Ilustración 12 PLANTA IMPLEMENTADA
ANÁLISIS DE LA PLANTA
Mediciones obtenidas
Para comprobar el correcto funcionamiento de nuestro sistema de medición se comprobó con un tacómetro digital
de fábrica obteniendo valoressimilares:

Sin Carga
La razón fue determinada a través de los siguientes datos presentados en la tabla

Linealidad y Rango de Operación


volt=[4 4.2 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10.1 10.6 10.9 11.6 11.9 12.17];
rpm=[330 359 402 475 548 621 693 766 839 911 984 1057 1130 1217 1290 1333 1435 1479 1518]
plot(rpm,volt)
Ilustración 13 LINEALIDAD
Rango de velocidad a controlar

Sustituyendo con los valores obtenidos en el muestreo tenemos:


1518=12,17m+b
Ecuación 1
330= 4m+b
Ecuación 2
Realizando el sistema de ecuaciones:
m= 145,41
b= -251,64
RPM= 145,41 Volt + (- 251,64)
Identificación del sistema en MATLAB
Matlab dispone de una amplia colección de funciones aplicables al campo de la identificación de sistemas, agrupadas
en el System Identification Toolbox, que constituyen una herramienta de gran utilidad para la identificación y
modelado de sistemas dinámicos.
Funcionamiento comando IDENT
Estructura de la ventana principal
Ilustración 14 IDENT
La ventana principal se divide en las siguientes partes:
a) Los tableros de datos y de modelos.
Como se observa en la figura, la ventana dispone de dos zonas con varios recuadros cada una:
 El tablero de datos está situado en la zona izquierda de la pantalla, y permite incluir en cada uno de los recuadros
un conjunto distinto de datos de entrada salida, representados por un icono.
 El tablero de modelos está en la zona derecha de la pantalla, y puede contener en cada uno de sus recuadros
diferentes modelos obtenidos a partir de la identificación realizada con datos del tablero de datos.
Cada modelo quedará representado también por un icono distinto.
Los datos del tablero de datos pueden provenir de las siguientes fuentes:
1. De otras sesiones anteriores con el GUI.
2. Del Workspace de Matlab.
3. Del tratamiento de otro conjunto de datos contenido en el tablero de datos.
Por su parte, los modelos pueden provenir de las siguientes fuentes:
1. De sesiones anteriores con el GUI.
2. Del Workspace de Matlab.
3. De la identificación a partir de los datos contenidos en el tablero de datos.
b) Los datos de trabajo.
Todos los procesos realizados mediante el GUI actúan sobre los llamados "Datos de Trabajo", contenidos en el
recuadro central de la ventana ("working data").
Para modificar los datos de trabajo basta con arrastrar con el ratón el icono con los nuevos datos de trabajo desde el
tablero de datos hasta el recuadro "working data".
c) Los datos de validación.
Del mismo modo, todos los procesos del GUI que necesiten datos para validación los tomarán del recuadro
("validation data") situado debajo del tablero de modelos.
d) Las representaciones ("Views")
Tanto los datos de entrada-salida como los modelos pueden representarse en pantalla de diversas formas.
Para representar en pantalla un conjunto de datos del tablero de datos, en primer lugar hay que hacer "clic" con el
ratón sobre su icono, quedando éste resaltado mediante una línea más gruesa. Pueden seleccionarse
varios conjuntos de datos simultáneamente. Para desactivar un conjunto de datos, se vuelve a hacer "clic" con el
ratón sobre su icono. A continuación se selecciona en el menú de Data Views el tipo de representación que se desea:
representación temporal de las señales ("Time plot") o del espectro de las mismas ("Data espectral").
Con los modelos se procede de igual manera, seleccionando con el ratón aquéllos que se quieren representar, y
escogiendo el tipo de representación entre salida del modelo ("Model output"), residuos del modelo ("Model
resids"), respuesta transitoria ("Transient resp"), respuesta frecuencial ("Frecuency resp"), ceros y polos ("Zeros and
poles") y espectro del ruido ("Noise spectrum").
e) Variables del Workspace
Los conjuntos de datos o los modelos creados mediante el interfaz gráfico generalmente no están visibles desde el
Workspace. Sin embargo, esta información puede ser exportada en cualquier momento al Workspace sin más que
arrastrar con el ratón el icono de los datos o el modelo correspondiente. El nombre de la matriz con la información
del modelo o de los datos coincidirá con el del icono dentro del interfaz gráfico.

Adquisición de datos MATLAB Sin Carga


Ilustración 15 GRAFICA OBTENIDA CON LOS DATOS ADQUIRIDOS
Ilustración 16 INTERPOLACIÓN DE LOS DATOS

Ilustración 17 MODELO MATEMÁTICO

Respuesta al escalón del sistema:


Ilustración 18 RESPUESTA ESCALÓN
Polos y Ceros del sistema:

Ilustración 19 POLOS Y CERO


Con Carga
Ilustración 20 GRAFICA OBTENIDA CON LOS DATOS ADQUIRIDOS

Ilustración 21 INTERPOLACIÓN
Ilustración 22 MODELO MATEMÁTICO
Ilustración 23 RESPUESTA ESCALÓN

Ilustración 24 POLOS Y CEROS

Conclusiones
 El primer punto que se trató en este trabajo fue la descripción del funcionamiento de un motor de corriente
continua, donde se analizaron los diferentes aspectos relacionados con su funcionamiento, y los parámetros que
influyen en el control de la velocidad de los mismos. A partir de esto se obtuvo un modelo matemático, donde,
están contemplados dichos parámetros. Dicho modelo matemático es una aproximación bastante exacta
del comportamiento real del sistema.
 Un mayor número de orificios en la rueda utilizada en la etapa de sensado da una mayor fidelidad en la medición
 Se deben tomar un mayor número de muestras para conseguir una mejor aproximación en
el dominio del tiempo e implementando el comando IDENT con el vector de datos, se tendrá una mejor
aproximación en el dominio de la frecuencia
 Podemos concluir que nuestra planta no es tan fidedigna dado que carece de un compensador.

Recomendaciones
 Es necesario tener cuidado al momento de realizar las conexiones, especialmente en lo que se refiere a la etapa
del microcontrolador y la PC ya que si el circuito genera alguna corriente de fuga, el puerto de la computadora se
puede dañar permanentemente.
 La superficie sobre la que se coloca el motor debe ser fija para no tener variaciones externas en la medición de las
rpm.
 Para realizar la adquisición de datos mediante el puerto serial un buen procedimiento es comprobar que el puerto
COM utilizado es el correcto mediante el hiperterminal.
 Se debe tener cuidando en las alimentaciones, ya que se están utilizando voltajes de 5 voltios para alimentar al
PIC y de 12 voltios para alimentar el motor.

Bibliografía
 http://bibdigital.epn.edu.ec/bitstream/15000/420/1/CD-0400.pdf
 http://www.iesmarenostrum.com/departamentos/tecnologia/mecaneso/mecanica_basica/operadores/ope_rue
da.htm
 http://isa.umh.es/asignaturas/ai/practicas/p09.pdf
 Sistema-motor-ident.pdf
 Control_de_un_motor_de_velocidad.pdf

Anexos

Programa en MATLAB

clear all;

close all;

clc;

PS=serial('COM4'); % puerto serial utilizado

puerto serial

set(PS,'Baudrate',9600); % se configura la velocidad a 9600 Baudios

set(PS,'StopBits',1); % se configura bit de parada a uno

set(PS,'DataBits',8); % se configura que el dato es de 8 bits, debe estar entre 5 y 8

set(PS,'Parity','none'); % se configura sin paridad

set(PS,'Terminator','CR/LF'); % "c" caracter con que finaliza el envío

set(PS,'OutputBufferSize',1); % "n" es el número de bytes a enviar

set(PS,'InputBufferSize' ,1); % "n" es el número de bytes a recibir


set(PS,'Timeout',5); % 5 segundos de tiempo de espera

fopen(PS);

K1= 0;

K= [];

for i=1:200 % numero de repeticiones

K1 = fread(PS,1, 'char') % datos leidos

pause(0.01)

K(i)=K1; %datos almacenados

aux2=(K(i)*1000)/256; %conversion de resolucion de 8 bits

K(i)=aux2; %datos almacenados nuevamente

K1=0;

end;

K=K*2;

disp('Numero de datos leidos:')

length(K)

fclose(PS);

delete(PS);

clear PS;

plot(K) % dibuja el vector de salida

w=length(K);

o=1:1:w;

n=4; % número

syms x; % define la variable simbólica para crear el polinomio

xn=o; % abscisas de los puntos a interpolar

yn=K; % ordenadas de estas abscisas

figure(2)

plot(xn,yn,'*r')% dibuja los puntos a interpolar

p=0; % inicializa el polinomio de interpolación que empezará a calcular


for i=1:n

L=1;

for j=1:n

if j~=i

L=L*(x-xn(j))/(xn(i)-xn(j));

end

end

p=p+L*yn(i); % forma de Lagrange

end

p=simplify(p);

pretty(p) % muestra el polinomio en pantalla

Programa PIC 16F877A

#include "C:\ESPE\septimo\control\planta\control de velocidad\nuevo1.h"

#fuses HS,NOWDT,NOLVP

#define LCD_DATA_PORT getenv("SFR:PORTD")

#include

#use delay(clock=20000000)

#use rs232(baud=9600, xmit=PIN_c6, rcv=PIN_c7)

#bit t1_overflow=0x0C.0

float volt=0;

void main() {

int cycles8, cycles;

int32 freq,rpm;

long freqc_high;

long freqc_low;

lcd_init();

while (TRUE) {

cycles8=0;
cycles=0;

freqc_high=0;

t1_overflow=0;

set_timer1(0);

setup_timer_1(T1_EXTERNAL|T1_DIV_BY_1);

//PARA EL CONVERSOR AD

setup_adc_ports(AN0_AN1_AN3);

setup_adc(ADC_CLOCK_DIV_2);

set_adc_channel(0);

volt=read_adc();

while (cycles!=0xFF) {

cycles8=0;

while (cycles8!=0xFF) {

if (t1_overflow)

{t1_overflow=0;freqc_high++;}

else

{delay_cycles(5);}

delay_cycles(62);

cycles8++;

delay_cycles(216);

cycles++;

delay_cycles(211);

setup_timer_1(T1_DISABLED);

if (t1_overflow)

freqc_high++;

freqc_low=get_timer1();
freq=make32(freqc_high,freqc_low);

rpm=freq*2;

printf("%Lu ",rpm);

Lcd_putc ("\f");

lcd_gotoxy(1,1);

printf(lcd_putc,"Freq = %LU Hz",freq);

lcd_gotoxy(1,2);

printf(lcd_putc,"%LU RPM",rpm);

delay_ms(10);

Tacómetro Digital
Dispositivo para comprobar el correcto funcionamiento del sensor.

Ilustración 25 DISPOSITIVO DT2234C


Características Técnicas
 Tacómetro Láser
 Presentación: Pantalla LCD de 18 mm. y 5 dígitos
 Rango: Autorango
 Resolución: 0,1 rpm (2,5 - 99,999 rpm) y 1,0 rpm (> 1.000 rpm)
 Precisión: 0,05%
 Tiempo de muestreo: 0,5 segundos
 Memoria: Valor máx, valor mín y último valor
 Rango de prueba: 2,5 - 99,999 rpm.
 Distancia de detección: 50 - 500 mm.
 Alimentación: Pilas 4 x 1,5v tipo AAA
 Dimensiones: 184 x 76 x 30 mm.

Link de descarga

https://www.monografias.com/trabajos82/control-velocidad-motor-dc/control-velocidad-motor-
dc2.shtml#Relacionados

Vous aimerez peut-être aussi