Pages: [1] 2 3 4   Go Down
Author Topic: medir RPM de un motor AC  (Read 11995 times)
0 Members and 1 Guest are viewing this topic.
Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 317
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola de nuevo,
Tengo un motor de AC monofasico de una lavadora vieja que tiene en la parte de atras dos cables que salen para afuera el cual me dan una resistencia de 158 ohmios los cuales se suponen q miden las rpm, cuando se pone a tope me da 15,3v en alterna, habria alguna manera de medirlo con el arduino???
UN saludo.
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 247
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola Risking
Con un puente de diodos puedes pasarlo a continua, y después con dos resistencias, hacer un divisor de tensión para que los valores estén comprendidos entre 0 y 5v.

Yo pondría también un condensador de filtrado a la salida del puente de diodos para que la lectura sea más homogénea, pero debes de tener en cuenta que cada vez que varíes la frecuencia, hasta que el condensador se estabilice, se ralentizará la medición.

Tal vez te sirva de ayuda:
De AC a DC:
http://txapuzas.blogspot.com/2009/12/paperdiodo-teoria-del-diodo-y-diseno-de.html
Divisor de tensión:
http://picmania.garcia-cuervo.net/electronica_basica_divisor_tension.htm

Saludos
Logged


Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 317
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias Inizul, el condensador de que capacidad mas o menos?? por otro lado segun un articulo de internet  dice así;  "Estos tacómetros se comportan como una especie de mini generadores que proporcionan una señal sinusoidal de unos 30v y una frecuencia que depende de las
revoluciones del tambor".

Por lo que entiendo , si yo convierto esos pulsos a onda cuandrada de 0 a 5v, con pulseIn(pin, HIGH); sabria la duracion entre pulso alto y pulso alto, pero como sacaria las rpm???
Tambien he encontrado un codigo de un tacometro con un sensos de efecto hall. el cual hace estas operaciones para hacer los calculos.

http://www.arduino.cc/playground/Main/ReadingRPM

Code:
volatile byte rpmcount;
 unsigned int rpm;
 unsigned long timeold;
 void setup()
 {
   Serial.begin(9600);
   attachInterrupt(0, rpm_fun, RISING);
   rpmcount = 0;
   rpm = 0;
   timeold = 0;
 }
 void loop()
 {
   if (rpmcount >= 20) {
     //Update RPM every 20 counts, increase this for better RPM resolution,
     //decrease for faster update
     rpm = 30*1000/(millis() - timeold)*rpmcount;
     timeold = millis();
     rpmcount = 0;
     Serial.println(rpm,DEC);
   }
 }
 void rpm_fun()
 {
   rpmcount++;
   //Each rotation, this interrupt function is run twice
 }

Cada 20 ciclos que se pasa de HIGH a LOW, calcula la velocidad, pero no entiendo la operacion que realiza rpm = 30*1000/(millis() - timeold)*rpmcount; me serviria a mi tb esta ecuación??
Un saludo y siento la parrafada.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 30
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Como te han comentado con un rectificador y un divisor de tension debes de conseguir un valor comprendido entre 0 y 5V, un motor de lavadora te puede llegar a 14000RPM

Eso equivale a unos 50V alternos, rectificados pueden ser 62V, a partir de hay, segun el factor del divisor que apliques, te quedaran 128 escalones de valor que se corresponderan a 128 niveles de revolución. 

Aproximadamente 110 vueltas X el valor que te de la lectura analogica del pin en cuestion.

Por cierto! como controlas el motor?, yo estoy con el problema de controlarle las revoluciones desde el Arduino y no me salgo!

Saludos


Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 247
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola risking
Quote
el condensador de que capacidad mas o menos??
Te vale cualquier condensador electrolótico de como mínimo 450uF (cuanto mayor sea menos rizado tendrá la señal, pero el tiempo de estabilización también aumentará) y 100v.

Quote
pero no entiendo la operacion que realiza rpm = 30*1000/(millis() - timeold)*rpmcount;
Si quieres medir la frecuencia en vez de la tensión, a bote pronto, la formula lo que hace es pasar a segundos los milisegundos (x1000), y pasar a minutos los segundos (x30, debería ser x60, pero como realiza un conteo cada 20 ...), a mi se me escapa un cero ya que como cuenta cada 20, debería multiplicar x3 y no por 30?????

saludos
Logged


0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,

Lo que te interesa para medir la frecuencia de una senoidal, es su "cruce por cero".  El circuito mas basico es poner una resistencia muy grande y dos diodos entre la senyal, Vcc y Gnd . Mira esta nota tecnica de atmel --> http://www.atmel.com/dyn/resources/prod_documents/doc2508.pdf  (Ahi usan los diodos internos del micro= "clamping").
Lo que te hace ese circuito es convertir la senoidal en una senyal cuadrada, ya que te restringe a que la senyal sea entre Vcc y GND (menos el voltage que cae en el diodo).

Acerca de como medir la frecuencia/velocidad, es algo que ha aparecido muchas veces en este foro. Por ejemplo: http://arduino.cc/forum/index.php/topic,68353.0.html
Recuerda que velocidad angular, w, es w=2*pi*f y que 1 rpm son 2*pi/60 rad/s.

En el codigo que has puesto arriba, si te fijas pone dentro de la interrupcion  "//Each rotation, this interrupt function is run twice". Esto puede ser porque en su montaje, tiene una rueda con 2 dientes para medir la velocidad, entonces por cada vuelta, tiene 2 pulsos.  Por ejemplo, es algo habitual medir la velocidad con una rueda dentada y un sensor inductivo o hall. Por eso puedes encontrarte codigos por la red, que por cada vuelta son x pulsos. Cuando pones un tacometro en la bici, le pones un iman que cada vuelta es un pulso, pero si quisieras mayor resolucion, pondias mas (a lo mejor este ejemplo es mas intuitivo).
Ejemplo:





Saludos



Igor R.



Nota.- estoy en ordenador ingles, ni acentos ni enyes.

« Last Edit: November 01, 2011, 04:56:23 am by Igor R » Logged


Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 317
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Lo del cruce por cero con este taómetro no me sirve, ya lo habia pensado ya q asi trabajan los coches y las bicis como dices.
Ahora estoy haciendo pruebas con un circuito que le quite a una aspiradora rota q tiene un triac y con un potenciometro varias las revoluciones, lo que no se es si se podria manejar ese potenciometro con un potenciometro digital por i2c, es algo q tengo q mirar, de todas formas el circuito de la aspiradora  controla un rango pero no desde 0 y es algo que me gustaria y me gustaria mirar a ver que componentes cambiar para podero hacer.
Voy a ver si puedo ir probando as cosas que me comentais, que yo la verdad alterna no he tocado para nada.
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

pero que tipo de senyal te dan esos dos cables del tacometro? No es una senyal que varia la frecuencia con la velocidad? Lo que te he dicho es para medir la frecuencia que va a ser proporcional a la velocidad...


« Last Edit: November 01, 2011, 10:49:11 am by Igor R » Logged


Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 317
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

El problema esque no hay ningun diente que marque el paso por cero, como comentaba antes "Estos tacómetros se comportan como una especie de mini generadores que proporcionan una señal sinusoidal de unos 30v y una frecuencia que depende de las revoluciones del tambor", voy a mirarlo mejor a ver si me estoy liado.

Por otro lado tengo este esquema con el cual puedo variar las revoluciones pero estando el potenciometro al minimo ya el motor va muy rápido y si pongo uno superior a 470k cuando supera los 500k es como si diese a apagar el motor, como podria modificarlo para que empiece con menos vueltas?? Si cambiaria la R1 de 500ohmios por una menos podría valer??

« Last Edit: November 01, 2011, 11:14:05 am by riscking » Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yo me he perdido un poco acerca de lo que estas preguntando.... Creia que preguntabas como medir la velocidad del tacometro con Arduino, la cual lo puedes medir como te he dicho... smiley-eek-blue
Logged


Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 317
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Perdona igor, esque quiero hacer dos cosas y creo q me estoy precipiando, me comentas con poner una resistencia muy grande y dos diodos entre la senyal, Vcc y Gnd  y segun el esquema de entre los diodos con otra resistencia de un mega medir atraves de un pin digital el paso por cero, no?? por lo que pone en el documento esto no tiene ninguna protecion galvanica para el micro, no creo q pase nada no??
Como diodos podrian valer unos 1n4007??
UN saludo y siento la liada.
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Otra cosa que tienes que mirar, es cuantos pulsos da por vuelta (por eso explique anteriormente el tema de entrar 2 veces a la interrupcion del codigo que habias puesto o las veces que sea en tu montaje). Tienes osciloscopio? Si no tienes, puedes usar el propio Arduino + KST.... http://real2electronics.blogspot.com/2011/09/arduino-adc-muestreo-alta-velocidad.html

Podrias usar los propios diodos del micro, que como maximo aguantan 1 mA, o le anyades fuera unos por si acaso:


O podrias hacer un montaje con un optoacoplador.
« Last Edit: November 01, 2011, 12:51:27 pm by Igor R » Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 30
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola

En el tema de control de revoluciones tengo un problema, por un lado mi circuito difiere levemente del tuyo, por otro, puedo regular las revoluciones con el potenciometro desde 5 RPM o casi hasta 16000RPM, pero solo con el potenciometro!!!.

El problema lo tengo en que quiero controlarlas desde una salida analogica del Arduino y ahi no me salgo, utilizo un optoacoplador, 4N25 pero no me va, otros como el MOC3021 no son validos porque conmutan al cruzar por cero, y como el PMW envia trenes de impulsos no es valido, me queda por explorar la opción de potenciometros digitales, pero por un lado no me convencen como solución y por otro creo que tiene que haber algun modo menos complicado.

Supongo que con un opto detector de cruce por cero, asociado a una interrupcion y una demora de microsegundos y un opto que conmute sin pasar por cero seria una opción, pero que continua resultandome algo compleja.

Si alguien pudiera orientarme me seria muy util, pues la electronica no es mi campo y no encuentro información suficientemente comprensible para mi en el tema de control de motores AC.

El circuito que uso es este:

   Problema, no se como poner la imagen :-(((



* Circuit.png (50.36 KB, 401x260 - viewed 84 times.)
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
El problema esque no hay ningun diente que marque el paso por cero

He leido otra vez lo que habias escrito, y creo que se donde viene la confusion. Lo de cruce por cero, es detectar cuando la senoidal generada del tacometro pasa por cero, nada que ver con que le falte un diente a una rueda fonica para detectar una posicion concreta...je,je,je

La entrada del micro, detecta un "1" logico cuando es mayor de 2.5v y un "0" logico cuando es menor. Entonces el micro "ve"  la senoidal como una onda cuadrada (que cambia de "1" a "0" a 2.5v) que usas para medir la frecuencia. Los diodos de "clamping" son para restringir que la senyal no sea mayor/menor que Vcc y Gnd (mas lo que cae en el diodo).


smiley-wink

« Last Edit: November 01, 2011, 02:20:22 pm by Igor R » Logged


Orduña- Bizkaia
Offline Offline
Sr. Member
****
Karma: 0
Posts: 317
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Igor por eso me habia liado si, lo del programa ese KST tiene una pinta tremenda para analizar cosas, tengo q estudiarlo, esto es un mundo.
Lo que no tengo claro del todo es lo de los diodos clamping q no se como son y en google no me queda claro, luego si se usa el atmega como realizo la conexion?? el de 30v o 15v ac o los q de el tacometro a VCC pero q vcc?? el atmega tiene 2 el de 5v o el AVcc q es el pin 20 que he mirado en el duevilanove y esta conectado con el Vcc, o esto es para usar solo un atmega para esto y medirlo con otro, o se puede hacer usando el 328 pero sin la placa duevilanove porque asi no estan unidos?? la salida sería en la PD2/EXT INT0 q supongo q sera el pin 2???, joer q lio demasiadas dudas.

Jacinto54 casi sin querer me he encontrado con un proyecto para controlar una bombilla o ventilador de 220 con un atmega 8, muy bien explicado con mando a distancia y todo, lo que no se es hasta q potencia aguantaria pero podria valer, en tu esquema los condensadores C1 y C2 pone 47k y 100k/400v que valores concretos son??? si lo puedes regular desde 5rpm menuda gozada, eso si manual.

http://extremeelectronics.co.in/avr-projects/avr-project-remote-controlled-fan-regulator/
Logged

Pages: [1] 2 3 4   Go Up
Jump to: