Pages: [1] 2 3 4   Go Down
Author Topic: En construcción: Automatización de persiana  (Read 13997 times)
0 Members and 1 Guest are viewing this topic.
Valladolid, España
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola, Se que mi problema estará documentado pero no lo encuentro. Estoy automatizando una persiana eléctrica para que se mueva según la luz y temperatura. Quiero que la persiana funcione como si fuera un servo, que yo indique una posición y la persiana se mueva hasta donde quiero. La persiana tiene un motor que controlo con dos reles: uno para marcha/paro y otro para subir/bajar.

¿Como puedo hacer lo de que se mueva a una posición como si fuese un servo?

Muchas gracias por vuestra ayuda y si me he olvidado alguna información importante avisarme.
« Last Edit: May 12, 2012, 01:08:06 pm by adrian_gn » Logged

Mi proyecto de domotica basado en arduino.
http://www.domoticarduino.com

Ciudad Real
Offline Offline
God Member
*****
Karma: 1
Posts: 751
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

no puedes hacerlo puesto que no tienes un sensor en la persiana para saber en qué posicion está, de manera que no lo puede usar como un servo.

lo que puedes es usar el sensor de luz para controlar la apertura de la persiana

si hay mucha luz --> cierra la persiana hasta que el sensor entregue un 30%
si hay poca luz -- > abre la persiana hasta que el sensor entregue 50%


por ejemplo .... ya dependerá de lo que quieras hacer

un saludo
Logged

Valladolid, España
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias por tu ayuda, pero el sensor de luz es para la calle, que regule la persiana segun la luz y la temperatura exteriores. aunque creo que tiene que ser posible hacer algo similar. ¿No se podría medir el tiempo de bajado y de subido de la persiana para saber donde esta? Al encender se cerraría entera para calibrar y según el tiempo de movimiento saber donde esta. No busco que sea exactamente como un servo.

Sabéis alguna forma de que pudiese funcionar
Logged

Mi proyecto de domotica basado en arduino.
http://www.domoticarduino.com

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sin un sensor no puedes medir nada
Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Offline Offline
God Member
*****
Karma: 7
Posts: 635
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pues la forma que veo es tal y como dices. Se controla el tiempo de subida y bajada de la persiana. Partes de estar la persiana arriba del todo o abajo del todo. A partir de ahí la mueves por tiempo. En tu algoritmo de posición de persiana segú iluminación y temperatura tienes que implementar unas condiciones o situaciones que cierren o abran la persiana al máximo. Cuando se dé este caso en lugar de moner en marcha el motor el tiempo calculado lo haces unos segundos más para asegurar el posicionamiento y así siempre tendrás una "calibración" de la posición.
Logged


Ciudad Real
Offline Offline
God Member
*****
Karma: 1
Posts: 751
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

lo que no tiene sentido es monitorizar la temperatura externa y luz externa, abriendo y cerrando la persiana lo que se quiere es variar las condiciones interiores, es por tanto en el interior donde debes poner los sensores.

Logged

Valladolid, España
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Muchas gracias por vuestra ayuda. Si que tiene sensores de temperatura e iluminación en la calle. Mi intención es que si hay luz en la calle se abra la persiana pero no lo haga si es verano y la temperatura es demasiado alta. Cheyenne ha entendido que intento hacer, pero el problema es que no se como hacerlo. ¿ Sabéis de algún proyecto que hayan hecho algo similar para mover algo con los tiempos de movimiento?
Logged

Mi proyecto de domotica basado en arduino.
http://www.domoticarduino.com

Offline Offline
God Member
*****
Karma: 7
Posts: 635
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

No conozco ningún proyecto así. Vamos, que tampoco he buscado. Pero el código no es complicado. Explicado sería algo así:

Definir variable posición persiana
Definir variable posición requerida persiana

Según datos sensores establecer posición requerida para persiana

Calcular tiempo funcionamiento persiana según diferencia "posición requerida persiana" y "posición persiana"

Mover motor:

Si "posición requerida persiana" es distinto de totalmente abierta o cerrada entonces mover motor el tiempo calculado
Si "posición requerida persiana" es igual a totalmente abierta o cerrada entonces mover motor el tiempo calculado + X segundos más.
Logged


Spain
Offline Offline
Full Member
***
Karma: 0
Posts: 191
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

El método que queréis utilizar para regular la persiana, calculando el tiempo de subida y bajada no es lo más adecuado como ya os ha dicho SrDonGato.

Primero, el tiempo que tarda en girar un angulo no es siempre el mismo (hay variaciones, pequeñas pero las hay) y cuando subas la persiana del todo llegará un momento en el que forzarás el motor intentando recoger la persiana que ya está recogida (Lo mismo si la bajas del todo).

Segundo, los arranques y paradas también son distintos cada vez, con lo que poco a poco también van a añadir una descompensación en la posición real de la persiana con respecto a la que tú has calculado.

Como ya te han dicho, la forma de realizar el proyecto es sensando la posición de la persiana...o utilizando un motor donde controlas la posición del eje y al que le puedes pedir que gire un angulo en concreto.
Logged

Offline Offline
God Member
*****
Karma: 7
Posts: 635
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Claro que no es lo más adecuado. Pero entiendo que para esta aplicación no se necesita una posición muy exacta, probablemente no se necesiten más de 2 ó 3 posiciones además de las extremas.
Por otro lado por supuesto que nunca se va a forzar el motor, todos los motores de persiana tienen sus finales de carrera, el asegurarnos que la persiana llegará hasta ese punto es lo que hace que tengamos esa "calibración" de la posición para que no se vaya sumando esa descompensación.
Logged


Torremolinos (Málaga)
Offline Offline
Jr. Member
**
Karma: 0
Posts: 90
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La solución que se aplica en las rejillas motorizadas para la climatización por zonas es llevar la rejilla a un tope, abierto o cerrado, y después llevar la apertura hasta el valor deseado controlando el tiempo. Para ello deben estar preprogramados los estados. En cuanto al sobrecalentamiento del motor, en teoría no bede afectar pues se supone que los motores de persianas van con topes eléctricos, de forma que al llegar a ellos cortan la corriente.

El problema que hay con las persianas es que sin sensores de presencia, esta técnica puede ocasionar accidentes si alguien pasa por la persiana cuando se está moviendo.

Para mayor precisión toca la instalación de un potenciómetro, pero esto requiere más trabajos manuales...
Logged

José Antonio Castillo Rodríguez
Responsable de diseño de producto
Functio & Ars S.L.
www.functionars.com

Valladolid, España
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias por la ayuda.


El método que queréis utilizar para regular la persiana, calculando el tiempo de subida y bajada no es lo más adecuado como ya os ha dicho SrDonGato.

Primero, el tiempo que tarda en girar un angulo no es siempre el mismo (hay variaciones, pequeñas pero las hay) y cuando subas la persiana del todo llegará un momento en el que forzarás el motor intentando recoger la persiana que ya está recogida (Lo mismo si la bajas del todo).

Segundo, los arranques y paradas también son distintos cada vez, con lo que poco a poco también van a añadir una descompensación en la posición real de la persiana con respecto a la que tú has calculado.

Si que es cierto pero en mi caso no afecta debido a que el motor se detiene el solo al llegar al final y no me importa si al cabo de una semana se sube 5 centímetros de mas o de menos recalibro y ya esta.


Cheyenne ha vuelto a acertar.  Con 3 posiciones me sobra y la idea de como hacer el código es justo lo que necesito. Voy a intentar hacerlo y ver si soy capaz. Gracias
Logged

Mi proyecto de domotica basado en arduino.
http://www.domoticarduino.com

0
Offline Offline
Newbie
*
Karma: 0
Posts: 46
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola

Yo estoy realizando un programa para controlar las persianas y el problema de posicionar la persiana lo he resuelto creando una variable que me guarda la posición de la persiana, el valor va de 0 a 20 que son los segundos aproximados que tarda en subir y bajar, aunque suba la persiana durante 25 segundos al llegar arriba el propio motor de la persiana corta y el valor de la variable si supera el valor 20, se pone a 20 y hacia abajo igual si la bajo más tiempo del debido la variable nunca baja de 0, con lo si me paso se auto regulan los valores de la variable.
Lo hice así ya que si la subes 10 segundos y luego la bajas otros 10 no coincide en la misma posición ya que le cuesta más subir que bajar, la diferencia es poca pero día tras día se acumula el error, pero un día que la lleves a uno de los topes ya queda la variable con el valor que le corresponde a su posición.

Yo tenía pensado poner sensores para determinar cuando subirla y bajarla, pero al final vi más práctico hacerlo por medio de un reloj y programar alarmas, según la estación del año cambio las alarmas.

Espero que te ayude en algo.

Saludos.
Logged

Valladolid, España
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Vic20 ¿Tienes por ahí el código? Me harías un gran favor si me lo enviases.
Gracias
Logged

Mi proyecto de domotica basado en arduino.
http://www.domoticarduino.com

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La opción por tiempo esta bien pensada, pero tiene varias pegas.
1- nunca para en el mismo sitio y como bien decís cada día se incrementa el error.
2- si se pilla alguien o se atasca una lama, el motor no parara hasta que se active la seguridad que en muchos motores baratos directamente no existe.

Lo que probé en su día fue a usar un potenciometro en el eje de la persiana, eso si de precisión y con reductor, pero lo que vale el potenciometro desistí
Al final lo mejor que probé es usar un encoder efecto hall que me mandaron de sample, colocas un imán en el eje y el sensor enfrente.
Luego cuando sube la persiana arriba y para el motor por el limite hace el cero.

Aun no tengo montados los motores en casa porque me he quedado sin pasta pero lo probé en el piso que estaba y funciono genial,
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

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