Pages: 1 2 [3] 4   Go Down
Author Topic: medir RPM de un motor AC  (Read 12291 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

xDD, Jacinto54 mira lo del atmega y el ejemplo de la primera pagina, ahi efectivamente Igor R explica  como hacerlo, te lo pongo aqui
http://www.atmel.com/dyn/resources/prod_documents/doc2508.pdf
http://arduino.cc/forum/index.php/topic,68353.0.html
Yo esque no saco tiempo, esta semana llego a casa a las 22:00 y no es plan de meter ruido, a ver si el domingo lo pruebo q por voltaje lo veo chungo, sino me equivoco es conectar cada cable del tacometro a una resistencia de un mega y uno al pin 2 y el otro a masa del arduino.
Voy a probar el phytonXY a ver si hay mas suerte. Nuevamente gracias Igor R
Logged

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

Hola

  Yo estoy con dificultados para detectar el paso por cero y no veo el problema, eso es lo peor.

  Estoy utilizando un H11AA1 pero no ligo nada, ni con mi montaje ni, aún menos, con otros varios que tengo pero que a fin de cuentas son identicos.

  Referente a tu intento de conexion de la taco, si quieres medir el voltaje primero tienes que rectificar la corriente, si pones tal como dices dos resistencias de 1Megano haras nada, por un lado tendras un factor de división de 2 que no creo que sea suficiente, deberiamos de saber el volatje maximo que te genera la taco, por otro no tendras corriente y no te detectara nada.

  Luego yo comprobaria los voltajes a la salida del divisor de tensión, conectando algo de carga, un leed o algo asi, luego ya lo conectaria al Arduino.

  Me parece por lo que veo en mi lavadora que el factor de división bien podria ser de 10 y entonces las resistencias serian aproximadamente de 4K y 40K, estando la de 4K conectada a masa.

  Quizas te sean de ayuda estos programas http://www.ledsinternational.com/espanol/descargas.htm


Logged

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

Igor R estoy probando el ejemplo que pones para medir la frecuencia pero solo compilandolo ya me salen signos raros en la consola sin enchufar nada, como si se desbordase la ram no se.

Code:
Code:
volatile unsigned long tanterior;
volatile unsigned long tnuevo;
volatile float frec;

void setup()
{
  Serial.begin(19200);
  pinMode(2,INPUT);
  pinMode(13,OUTPUT);  //Led
  attachInterrupt(0,myfunc,CHANGE);
}

void loop()
{
  Serial.println(frec);
}

void myfunc()
{
  if (digitalRead(2))
  {
    tanterior=tnuevo;
    tnuevo=micros();
    frec=1000000.0/(tnuevo-tanterior);
  }
  digitalWrite(13,!digitalRead(13));  //Led
}

sale algo como esto:
ä„bä„b*„bäLbä„ä„bd„b䄠  ä„b*„bäJbä„bä„bä„bäJb䄠  ä„b*„bä„bäbä„"ä„b$„bäDbä„ä„bd„bäbä„bä„bä„bä„b(„bäDbä„"ä„bä„bä„bä„b$„b䄠  ä„b*„bäDbä„bä„bäHbä„ä„bä„bä„ä„bd„bä„ä„b(„bäDbä„bä„bäDbä„b(„bä„bä„b*„bäJbä„
ä„bd„bäbä„b*„bäJbä„bä„bä„bä„bä„ä„b*„bäJbä„
ä„b$„bä„bä„"ä„b$„bäDbä„
Logged

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


  Pues a mi me compila con total naturalidad:



Binary sketch size: 4308 bytes (of a 30720 byte maximum)
Logged

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

tienes en la consola seleccionados 19200 baudios?
Logged


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

Vaya fallo, no me habia dado cuenta, esque siempre trabajo con 9600,ahora si que va pero me salen datos muy aleatorios a altas revoluciones, en cuanto le doy a apagar y empieza a bajar la frecuencia, de 1800 a 400 baja perfecta la frecuencia.

Jaciento54, he encontrado este esquema para medir los pasos por 0 tb.
http://www.flickr.com/photos/spiffed/3566758743/in/photostream/

Yo ahora lo estoy probando como te dije 1 resistencia de un mega en el pin 2 y otra a tierra, el tacometro me da 14,85v ac igual es mucha resistencia y por eso me falla no se.   
Logged

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



  Si, es un circuito detector de cero, que no de paso por cero, porque al estar rectificada la corriente no cambia de polaridadd, solo es pulsante.

  Por otra parte no me convence esa forma de leer la frecuencia, (aunque teoricamente sea mas exacta, quizas pienso asi por falta de experiencia en estos circuitos), te razono:
    El eje del motor puede aproximarse a las 14000RPM en centrifugacion que corresponerian a 233 interrupciones del procesador para enterarse de como daba vueltas, por otra parte, si ese generador tacometrico tiene 6 u 8 polos, ya estariamos hablando de 700 ó 933 impulsos a medir por segundo, lo cual me parece algo elevado.

  Una vez conectado el tacometro al Arduino, la tension de entrada, (entre resistencias y pin de entrada), deberia de estar entre el margen 0-4V, o al menos es lo que me gustaria a mi, de todas formas si le llegan mas de 5V igual se cabrea el Arduino.
Logged

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

Medir 1 kHz no es muy elevado.

La conexión no entiendo muy bien lo que dices.... Despues de la resistencia, debería estar entre 0 a 5V.

Es decir cable del tacometro --------> resistencia de 1 M Ohm -------> Pin 2 Arduino
Y las masas unidas.

Cuando dices que falla.... a que te refieres? 
Logged


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


  Antes de unir masas asegurate de que esta rectificada la que viene de la taco
Logged

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

Jacinto54, los diodos de clamping del micro harán su trabajo. Por favor, lee mis post anteriores.... (entre ellos la nota técnica de Atmel).


Otro código básico de tacómetro (lo he copiado de otro sitio que hay más código, espero no haberme dejado nada, pero asi coges la idea):
Code:
volatile unsigned long cont_rpm;

void setup()                    
{
  pinMode(2,INPUT);  
  attachInterrupt(0, rpm, RISING);
  Serial.begin(9600);
}

void rpm()
{
  cont_rpm++;

}

void loop()                    
{
  static unsigned long rpm_ant;
  static unsigned long t_anterior;
  static float rpm_actuales;
  
  rpm_ant=cont_rpm;
  t_anterior=millis();
  
  delay(100);    
  
  rpm_actuales=(cont_rpm-rpm_ant)/((millis()-t_anterior)/60000);
  Serial.print("rpm=");
  Serial.println(rpm_actuales);


  
}


La velocidad serie, pon la que quieras... Aquí es 9600.
Lo que hace es calcular la diferencia de pulsos que hay entre un tiempo fijo (el delay). Ya que aunque el programa se quede parado, sigue entrando a la rutina de interrupción.
Falta ajustarle el número de pulsos por vuelta (polos).


« Last Edit: November 06, 2011, 11:59:41 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

Me fallaba la resistencia que habia puesto entre masa de unos de los cables del tacometro y la masa de arduino , que era como pone en el esquema de atmel, pero sin ella ya me da datos legibles, eso si me da por ejemplo 1800 y me da que 1800Hz es imposible, como hablas de los polos eso habria que dividirlo entre el numero de polos que no los se exactamente, he desmontado el taco y parece que hay 5 laminas entre 0º y 180º del circulo y otras 2 mas anchas y no tan alargadas entre los 270º y 360º, asique podrian ser7 polos, ya voy a sacar una foto para que veais.
de esa forma haciendo calculos serian.
1800/7=257.14Hz   w=2*pi*F  2*pi*257.14=1615.68rad/s    1615.68*30/pi=15424rpm que me parecen demasiadas no estando el motor a tope.

Igor no he probado todavía el código que has puesto, mañana hago pruebas con el a ver, pero vamos avanzando, jeje, desde luego que cuando me hice con este motor no tenia pensado poder llegar a manejarlo asi y si luego lo controlamos con el triac seria excelente.
« Last Edit: November 07, 2011, 01:03:54 am by riscking » Logged

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


  Los polos siempre son pares, nunca seran 7.

  Esta tarde empezare yo a pelearme con la taco, el circuito de control de motor aparentemente esta listo, me falta la parte 'soft'.

  Yo intentaria minimizar los calculos de las revoluciones en la interrupción, me limitaria a trabajar con el valor leido, no calcularia las revoluciones, en realidad el valor leido es relación directa con las RPM, pues trabajemos con ese valor y nos ahorramos el calculo!
Logged

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

Pongo un video sacado con el movil del tacómetro,

Los calculos los estoy haciendo fuera pero es que me da entre 1400Hz y 2400hz variando el potenciometro del circuito de la aspiradora.
Logged

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


  Tiene pinta de dos polos, pero como no soy del oficio no te lo puedo confirmar.

  Pon el motor a unas 30RPM, que es lo razonables para lavado, y mira los pulsos que te da, con una relacion que parece habitual, de 15 a 1, deberias de tener unos 900 impulsos.

  Y 30RPM son faciles de centrar aproximadamente a ojo.
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 el circuito q tengo yo no puedo arracar el motor desde 0 e ir subiendo solo puedo variar la velocidad en regimenes altos,  en tu esquema cuales son el valor de los condensadores? ? 
Por otro lado si ahora segun el programa de igor de la frecuencia primero me da 1800, eso serian hz, pero si el tacometro tiene 2 o 4 polos habria q dividirlo entre los polos? ? no se si estara bien interpretado.
Saludos
Logged

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