Go Down

Topic: multitarea (Read 3471 times) previous topic - next topic

AGU88

Mi idea de multitarea...era hacer cosas simultáneas en el void loop,a la vez que se hacían otras en los void *aaa*...cuando no,en los void *aaa*debe de ejecutar eso que quería hacer en el loop. Error total de concepto de programación.

También me pasaba,que al ejecutar una opción del menú backend...realizaba el void y volvía al principal,solución,dejar a 1 una variable al arrancar el void *aaa* para que mientras sea =1 permanezca en ese void.

Ya soy capaz de hacer uso de los botones fuera de librería menubackend,y así meterme en el set del ventilador,por ejemplo,y aumentar y disminuir la velocidad.

Ahora viene la nueva duda...mis valores de analogwrite del pwm del ventilador,no pueden ir de 0 a 255,puesto que no es capaz a arrancar el ventilador,por lo que debo de hacerlo de 170 a 255.

Hasta ahí bien,ahora,si mapeo el valor para mostrarlo en la lcd de 0-255 a valor de 0 a 100%,lo hace perfecto..pero si lo hago de 170-255,lo valores no son correctos,añadiendo dígitos de más...

Comentaros que las variables tanto de valor de pwm como la variable a la que mapeo en tanto%, son de tipo int.

Seguiré en experimento!!!

surbyte

Empecemos por esto que no es común.

Quote
Ahora viene la nueva duda...mis valores de analogwrite del pwm del ventilador,no pueden ir de 0 a 255,puesto que no es capaz a arrancar el ventilador,por lo que debo de hacerlo de 170 a 255.
Porque no puedes ir de 0 a 255. Algo esta mal en tu electrónica.
Porque no muestras como controlas el ventilador.
Creo haber leído que usabas un transistor. El tema es con cuanto alimentas el circuito de ventilador y transistor? Y cual es el valor de la resistencia de base que conectas al pin del Arduino?

AGU88

El circuito lo a diseñado un compañero de curro,basado en un octoacoplador para la señal y un triac para la potencia. Así como resistencia condiciones nsadores...etc
Mañana cuelgo foto,que no la tengo a mano.

No puedo ponerlo a un valor muy bajo (menor de un 70%) por que me movería muy poco o nada de aire y porque los ventiladores al casi no moverse,se calientan como tarteras

No obstante,no se puede mapear valores medios?siempre han de ir desde 0?

Si quisiera trabajar con dos válvulas con posicionado, a gama partida de señal lo tendría que hacer así...

surbyte

Bueno entonces partamos de que usas un ventilador de 220VAC y no de DC como yo suponía. 
Entonces no entiendo para que usas PWM para controlar su funcionamiento eso esta mal.
Necesitas un control de fase, necesitas sincronizarte con el cruce por cero de la tensión alterna y entonces disparar el triac y entonces podras tener mejor control sobre el ventilador.
Mira este enlace AC Phase Control que te mejorará notablemente el control.   
Este tmb sirve triac power control
para terminar esta tmb es muy recomendable 

AGU88

Algo había visto de esto,pero como a mi me funciono así,continúe .

No obstante,usando el circuito de detección de paso por 0,a bajas vueltas el motor también se calentara no?

Entiendo que al ser un ventilador,ya estoy haciendo poco bien en no llevarlo a todas las rpm para las que fue constituido,puesto que no refrigera.


surbyte

El motor no debe calentarse de ningún modo, porque ese circuito de control de fase, lo que haces es hacer conducir parcialmente la señal alterna. Como el triac deja de conducir cuando la tensión pasa por cero, cuando tu disparas conduce hasta el próximo cruce por cero.. de modo que hay que sincronizar los disparos para que sean continuos.
Si disparas cerca de 0 grado, tendras conducción total y si disparas cerca de 180 tendras casi 0 o sea motor parado.
Tu motor es 220VAC asi que si no calienta el motor en condiciones normales,(simplemente conectado a AC) no tiene porque calentar con el triac.
Ahora el triac puede calentar y ese es otro tema. Debes montarlo con un disipador y ten cuidado de operar sobre el con todo desconectado porque el terminal central esta unido a la parte metálica que apoya contra el disipador. 
Puedes aislarlo con una mica y usando grasa siliconada para mejorar la conductivdad térmica.
También deberás usar arandelas plásticas y tornillos de díametro tal que no toque el disipador, para que si luego lo tocas, nada ocurra.
Todo debe verificarse con el multímetro en modo continuidad.
El control de fase no será lineal porque la potencia no es lineal con el ángulo de conducción pero si podrás pasar de apagado a régimen total sin problemas.

AGU88

Oído cocina!pues manos a la obra,di por hecho que el ventilador se calentaría igualmente,por eso no hice mucho caso en su día,cuando vi el control por fase,pensando que unicamente lo que conseguiría sería un control más fino del ventilador.

Agradezco mucho tu ayuda y explicaciones surbyte

AGU88

Muy buenas de nuevo!!Lo primero muchas gracias por la ayuda, he conseguido avanzar muchisimo mi proyecto.

Os cuento, he realizado el programa en partes, siempre contando con una comun, menu lcd, por lo tanto, he realizado por separado el funcionamiento que quiero, de:

- menu lcd con la temperatura de los termopares
- menu lcd con los ventiladores
- menu lcd con los motores paso a paso
- menu lcd con termistores

Hasta ahi, mas menos todo correcto, es decir, el menu del ventilador esta "a medias" en cuanto a funcionamiento para motores de corriente alterna de 220v, pero lo estoy realizando mientras tanto con motores de corriente continua de 12v, suficiente para probar que consigo llevar mis ideas a cabo.

Y por otro lado, el lcd con motores paso a paso, en el cual no consigo entender muy bien la libreria accelstepper.h, y no soy capaz a posicionar de 0 a 90º el motor, pero bueno, sigo en su estudio...

La historia por la cual contacto con vosotros, es por problemas al unir lo que ya funciona.

He unido ya el lcd+ventilador, termistor y termopar. Funciona todo bien, menos la lectura de los termopares, solamente cuando los uno, recuerdo que estoy utilizando max6675 para la lectura.

Que ocurre, que la lectura de temperatura por separado la hace correcta, cuando la compongo, da valores errones (1000...y pico grados) asi como una lectura no estable.

adjunto ambos programas para que les hecheis un vistazo.

Gracias

Go Up