desktop

PWM y motor lavadora.

No confundir la amplitud de la señal con la señal misma, necesitas saber cuanos pulsos te genera por revolución y si no sabes hay que medirlos(contarlos)
Es algo demasiado simple y sencillo.
Es lo mismo que un encoder solo que no necesitas posicionamiento si no simplemente se utiliza para que las RPM sean estables en función de la carga, es una simple comparación.

Por ejemplo si el tacogenerador te da 10 pulsos por revolución y vos necesitas por ejemplo que el motor gire a 500 RPM
te quedan varios caminos para medir, o contas por minuto(o fracción) para el valor dado seran 5000 pulsos
Si mido en fracciones de de tiempo por ejemplo en un 1/5, entonces un 1/5 x60s seran 12s en esa fracción deberas leer 1000 pulsos cada 12s
La amplitud la acondicionas a tus necesidades.
Los tiempos y fracciones son arbitrarios los puse solo a modo de ejemplo
 
Buenas:

Aún me queda días para que me den el H11AA1. Mirando bien esquemas, no lo conectan de la misma manera.

7CxzfmI.png


arduino-zero-crossing-H11AA1-esquema.png

uJCArpj.png

Detecting%2BAC%2BVoltage%2BUsing%2BArduino.jpg


Tengo que elegir el más adecuado de todos antes de montar ciruito en la protoboard.

z3.png


Los pulsos por lo que se ve, son por cada 90º.

Es algo demasiado simple y sencillo.

Para mi no es sencilla, no lo hecho antes. Recuerdo, que el tacómetro suelta 35 Vac. Los que sepan código de Arduino o más bien un esquema de las ideas de como hacerlo, si sabes, puedes indicarlo para entenderte. ;)

Antes que me lleguen los materiales, necesito un guía, ;)

Mientras...

Hago pruebas de todo tipo en el Proteus, por ejemplo, hacer un circuito eléctrico mejor que se adapte a lo que busco. Cuando lo tenga, hacer pruebas de todo tipo si me detecta la entrada digital. Empezar hacer varios programas en Arduino de prueba. Tengo Arduino UNO r3 y el LCD, en shield key pad 16x2. Para ver los resultados si hace falta. ;)

Una vez que me detecte los pulsos, por ejemplo que me muestre resultados en pantalla, o en el monitor serie si lo desean, hay que ver resultados de lo que hace la entrada.

Quiero hacer pruebas de todo tipo, pequeños y grandes. Por ejemplo:

Programa 1:
Contador de pulsos.
Solo se muestra en el monitor serie o LCD o los dos a la vez, la cantidad de pulsos que está detectando en la entrada del optoacoplador. Este ejemplo puede servir, lo adaptaré a mi manera y lo pongo aquí cuando acabe.

C:
const int inputPin = 2;
 
int value = 0;
 
void setup() {
  Serial.begin(9600);
  pinMode(inputPin, INPUT);
}
 
void loop(){
  value = digitalRead(inputPin);  //lectura digital de pin
 
  //mandar mensaje a puerto serie en función del valor leido
  if (value == HIGH) {
      Serial.println("Encendido");
  }
  else {
      Serial.println("Apagado");
  }
  delay(1000);
}

Programa 2:
Lo que se nos ocurra. Iremos poco a poco.
Medir la frecuencia con interrupción
C:
// period of pulse accumulation and serial output, milliseconds
const int MainPeriod = 100;
long previousMillis = 0; // will store last time of the cycle end
 
volatile unsigned long previousMicros=0;
volatile unsigned long duration=0; // accumulates pulse width
volatile unsigned int pulsecount=0;
 
// interrupt handler
void freqCounterCallback()
{
  unsigned long currentMicros = micros();
  duration += currentMicros - previousMicros;
  previousMicros = currentMicros;
  pulsecount++;
}
 
void reportFrequency()
{
    float freq = 1e6 / float(duration) * (float)pulsecount;
    Serial.print("Frec:");
    Serial.print(freq);
    Serial.println(" Hz");
 
     // clear counters
    duration = 0;
    pulsecount = 0;
}
 
void setup()
{
  Serial.begin(19200);
  attachInterrupt(0, freqCounterCallback, RISING);
}
 
void loop()
{
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= MainPeriod)
  {
    previousMillis = currentMillis;   
    reportFrequency();
  }
}

Programa 3:
Al detectar los pulsos de entrada y sabiendo gracias arriba los resultados cuanto cuenta por cada cierto tiempo, pues haremos algo como esto.

C#:
int pulsos = 0;

if (pulsos => 0)
{
    // Mostrar mensaje:
    // Motor detenido.
}

if (pulsos => 200)
{
    // Motor en marcha.
}

if (pulsos =< 700)
{
    // Motor detenido.
}

if (pulsos => 1023)
{
    // Como sobre pasa el valor.
    // Motor trabajando en vacío porque
    // se rompió o se soltó la correa del
    // tambor.
    // Se detiene el motor.
}

Soy todo oidos.

Esto lo estoy haciendo en las tardes libres, ya que en el cuarso de electricidad, en estos momentos por la mañana, estoy dando automatismo, control de un motor monofásico con condensador, controlador con el Siemens Logo! 6. Ya vez lo que tengo ocupado. ;)
 
Última edición:
Si vos qures utilizar el opto ese para detectar los pulsos del tacogenerador, te estas complicando la vida inutilmente, eso es mucho más simple.
Para empezar tienes osciloscopio? o si tienes como conseguirlo hazlo, haz girar una vuelta el rotor y observa la pantalla, si puedes fotografiarlo mejor.
No se puede hacer ningún código sin saber primero cuantos pulsos por vuelta entrega
Conseguí eso y te digo como seguir para llegar a buen puerto
 
Hola de nuevo:

Hice algo con el Proteus 8.5 SP0. No tiene o incluye el H11AA1. Tuve que usar el 4N25 con el diodo rectificador 1N4007. Avisen si en las nuevas versiones de Proteus incluye el H11AA1.

captura-png.167084

Prácticamente sacado de este esquema de arriba que puse antes.
7CxzfmI.png


Ya que incluir la resistencia de 10K a la masa, garantiza el 0 si no hay nada en la entrada del optoacoplador.

Pueden opinar una mejor opción, antes de montar algo en la protoboar. Aquí un enlace que me olvidé poner antes.
Detector de cruce por cero con Arduino y optoacoplador H11AA1

No tengo osciloscopio. Lo compraré cuando tenga dinero, incluyendo un analizador lógico que también es muy útil. (Ojo, no hace lo mismo).

Muchos directamente, hacen pruebas con las RPM que se ve en el LCD, otros afirman que si no tienes osciloscopio, el tacómetro te da valores, como 35 Vac como máximo. En Arduino, indica los contadores, por eso quiero hacerlo, contar los pulsos. me complñico porque no tengo idea de como funciona esto al 100 % y quiero aprenderlo si o si. ;)

Gracias por su tiempo en leer hasta aquí. ;)

PD: A ver si de una vez por todas soy capaz de controlar la velocidad del motor gracias al tacómetro de una vez por todas.
 

Adjuntos

  • Captura.PNG
    Captura.PNG
    26.8 KB · Visitas: 254
Última edición:
Es muy simple, si tienes el motor lo haces girar y ves cuantos pulsos entrega, solo eso tienes que hacer si no no puedes ni empezar, no importa si da 30, 40 o 50Vac, lo que importa es saber la cantidad de pulsos que entrega
 
Quizás puedas hacerlo midiendo el voltaje de salida que sin duda será mayor a mayores revoluciones , pero será empírico y distinto para cada motor. Además no podrás fijar en el programa el número de revoluciones que quieras.

Con un tester analógico en miliAmperespuedes con la mano giras media vuelta y cuentas los agujazos , son 8 pulsos alternos por vuelta , o sea 8 pulsos rectificando con un solo díodo y 16 pulsos rectificando con puente de 4 díodos.

29246-large_default.jpg
 
Por eso comenté arriba hacer un programa que me cuente los pulsos al girar el motor de poca velociad a mucho, ya que el tacómetro es independiente.

Con Arduino, sabes la cantidad de pulsos que entra y lo muestra en el LCD o el monitor serie.

Un diodo un pulso, dos diodos dos pulsos, lo mismo con cuatro diodos. Se suele usar por lo que veo, dos diodazos.
 
Hola:

Haciendo simulaciones de motor de lavadoras.

Rango de valores que debe ir un motor controlado por su tacómetro. Los números de pulsos son ficticios en este ejemplo.
captura-1881516.PNG


Simulador de lavadora. (En el futuro se controlará elmotor desde aquí, aún estoy en pruebas).
lavadora-1785513.PNG


Dejo en descarga los programas, los pruebas y sacan sus propias conclusiones.

Por cierto, como dije más atrás, el tacómetro cambia de tensión dependiendo la velocidad del motor, cosa que en este caso no mediremos pero si la frecuencia a pulsos, un esquema que lo deja claro como se comporta en un osciloscopio.

dinamo-motor.png


Un cordial saludos.
 

Adjuntos

  • Simulador_motor.zip
    10.2 KB · Visitas: 15
Última edición:
Como no entiendo sobre programación de micro controladores y meta se está demorando con el proyecto, me puse a "diseñar" mi propio programador, va con el tda1085C . Subo la simulación, la entrada de 50 hz proviene de la fuente de alimentación, antes del filtrado. R3 es el campo del motor que va en serie con los carbones. Se puede programar como uno quiera, lo que me falta es el pare o fin de ciclo, veo que se me ocurre.
 

Adjuntos

  • 4017 4082.rar
    26.5 KB · Visitas: 19
1527804330616.png
1527804476553.png
Mensaje automáticamente combinado:

Voy a tratar de describirlo: la frecuencia patrón se toma del transformador 50hz, le siguen dos divisores por 10 lo que me da una frecuencia de 2 segundos, el siguiente divisor comanda la inversión de giro del motor, 8 segundos a la derecha, para 2 segundos, 8 segundos a la izquierda para 2 segundos. El cuarto 4017 es un divisor por 6 lo que me da una frecuencia de 2 minutos. El quinto 4017 es un divisor por 5 lo que me da una frecuencia de 10 minutos. El ultimo por 10, con 1 hora 40 minutos. La pata 3 del sexto 4017 está en alto, activa el relay 4 en serie con el presostato, carga agua, cuando se llena arranca el motor. Esto dura 30 minutos porque las patas 3,2 y 4 comandan el relay 4 a través de 3 diodos. Cuando termina la pata 7 pasa a estado alto, comandando una de las entradas del 4081 la otra va a la pata 3 del 4017 anterior con una frecuencia de 2 minutos, tiempo suficiente para la bomba de agua, luego se repite el ciclo de carga de agua y arranque del motor pero por 10 minutos, lo que seria el enjuague , para tira el agua, vuelve a cargar, arranca por 10 minutos mas y luego solamente tira el agua ya que el 4081 U9B va conectado a la pata 3 del quinto 4017 y a la pata 6 del sexto 4017. Queda el centrifugado de 2 minutos comandado por el relay Q7. El lavarropas que tengo tiene la plaqueta con el tda1085c. Tengo uno lavarropas nuevo y el que te menciono se jodió el timmer mecánico. Estoy esperando a que termines el proyecto para copiarte pero no tengo suerte :ROFLMAO:.
 
Última edición:
Como va el proyecto Meta?, parece que esta trancado. Te comento, hay una persona que se dedica a hacer placas para motores universales de maquinas herramientas (tornos fresadoras, etc). El usa un sensor de corriente de efecto hall
modulo-sensor-corriente-acs712-30a-efecto-hall-arduino-ptec-D_NQ_NP_511301-MLA20292879011_052015-F.jpg

Te paso la explicación: la velocidad de un motor de continua es linealmente dependiente de la corriente consumida, por lo que conocida ésta, y realizando algunos ensayos a los motores (Ensayo de Vacío y de Cortocircuito), se puede determinar un Circuito Equivalente, a partir cual programar una pieza software con la que poder determinar la velocidad del motor, conociendo la corriente consumida. Esto es muy útil, ya que evita tener que usar un tacómetro tradicional.
Paso el link con mas información. Proyecto II. Placa de control para motores de C.C. - Control Of Machines
Diseño Detallado (II) - Control Of Machines
 
El motor de las lavadoras trabajan en CA, utilzan un triac para controlar su velocidad que esta realimentado por el generador de pulsos son dos velocidades, la de lavado y la de centrifugado.
Por otro lado invierte los campos para cambiar el sentido de giro, no es nada complicado.
No es como en una máquina herramienta los requirimientos para esto son mínimos relmente
 
Panda, estamos buscando soluciones, creo que sabes mucho, pero tendrías que utilizar ese conocimiento en ayudar a quienes lo necesiten, con todo respeto te lo digo, un maestro enseña, muestra el camino. Los motores universales trabajan con corriente continua como con corriente alterna siempre y cuando estén construidos con chapas de hierro al silicio aisladas y apiladas para reducir las pérdidas de energía por corrientes parásitas que se producen a causa de las variaciones del flujo macnetico como es el caso del motor de lavarropas. Al hacerlo trabajar con CC. aumentamos el par, el rendimiento, disminuimos el chisporroteo de los carbones y disminuimos el ruido del motor. No quiero enfrascarme en discusiones estériles que no conducen a nada, tomemos todas las posibilidades y busquemos la mejor para resolver el problema.
 
Ya le he dado varias soluciones, por ejemplo le pedí que verificara cuantos pulsos por giro entrega el generador de pulsos, no se si hizo la prueba o no, no hubo respuesta.
Todo eso ya lo se, le hago mantenimiento de ese tipo de motores hasta unos de unos 100hp
Allí hay motores que cambian el angulo de conducción mecanicamente con un mecanismo de relojería y unos 48 carbones en el más grande.
En el caso de la lavadora si lo haces trabajar en CC se encarece, en cambio el motor fue pensado para utilizarse con línea de 220-240VAC y control mediante desfasaje por triac que es lo más simple económico y eficiente.
De echo los lavarropas que llevan esos motores la placa son un poco más grande que dos tarjetas de crédito a la par, la inversión la hacen en el reloj o aparte también con triac y tiene el sistema de realimentación mencionado.
 
Hola:

Estoy en el curso sando transformadores de torres eléctricas, es decir, muy ocupado. DAremos otra vez motores pero no se que incluirá, exceptuando que dimos diferencias que es condensador de arranque, condensador de fuerza y interriptor centrífugo.

El motor que tengo, tiene 4 velocidades, el de lavado, luego tres velocidades más del centrifugado que por cada cierto tiempeo, amplía su velocidad., por ejemplo, de 400 rpm el tambor, luego pasa a 800 y al final a 1000 en mi caso.

Para mantener la velocidad normal de lavado, por lo que tengo entendido, se necesita del tacómetro y se mira la frecuencia generada, comprar y ajusta con el microcontrolador al TRIAC para mantener dicha velocidad, ya que con agua y ropa, sin ese control, no se puede hacer.

En cuanto al.
PCB_Potencia_TAM80_01.png


¿Para qué dos microcontroladores?

Hubiera diseñado uno solo con uno de 40 pines o poner expansiones de bus.

Para ampliar conocimientos, me informaré bien esta placa que haz puesto.
modulo-sensor-corriente-acs712-30a-efecto-hall-arduino-ptec-D_NQ_NP_511301-MLA20292879011_052015-F.jpg


Saludos.
 
Atrás
Arriba