definire la posizione assoluta di una tapparella

salve a tutti, per un progetto di domotica, vorrei cercare di definire la posizione della tapparella motorizzata. In sostanza, avrei bisogno di un sistema di sensori, che mi permettano di definire senza grossa precisione, la posizione di apertura di una tapparella, ad esempio se è aperta al 10%, al 20% ecc. Che sensori usare ? Vorreri evitare l'encoder per difficoltà di installazione sull'asse dell'albero della tapparella.... Qualcuno ha già affrontato il caso ? Avete suggerimenti ?

Ciao, potresti inserire delle calamite all'interno della stecca della serranda e contarle man mano che sale. Necessiterebbe però di un azzeramento e memorizzazione ogni volta che la serranda è tutta su o tutta giù per non perdere il sincronismo......

Stefano

Prima o poi ci ritroviamo .... Io ti darei anche la soluzione, però non rispondi ai thread ... quindi nulla ... mi piacerebbe sapere come è finita la storia del ronzio :) ... il forum non è solo prendere, ma è anche dare (almeno una risposta) Art. 16 del regolamento che non esiste e praticato da molti ... troppi

pablos ha ragione, un po' di cortesia in più non farebbe male.

Quanto al tuo problema, potresti usare un sensore IR che misuri la distanza del rotolo delle tapparelle dal fondo del cassonetto.

Quando le tapparelle sono completamente abbassate la distanza è massima, mentre quando si arrotolano sull'albero la distanza decresce sino a diventare minima quando sono completamente alzate.

Un sensore potrebbe essere lo SHARP GP2Y0A51SK0F con la distanza rilevata tra 2 e 15cm.

Il segnale in uscita non ha un andamento lineare come si nota dal grafico sul datasheet, ma puoi determinare i valori di tensione raggiunti in alcune differenti aperture delle tapparelle (es. 0, 25, 50, 75 e 100%).

Si, ma il sensore avrebbe un problema ... le tapparelle sono in genere avvolte a strati sul rullo, e la variazione di distanza si avrebbe piu o meno ad ogni strato, non linearmente in base allo srotolamento ... ;)

Purtroppo l'unico sistema per avere un'indicazione assoluta di una posizione, anche in caso di perdita e ritorno di alimentazione, e' usare un'encoder assoluto (il che costringerebbe ad usare anche una coppia di ingranaggi, perche' l'indicazione assoluta di un'encoder puo andare solo per un singolo giro), oppure un potenziometro multigiri (ad esempio, se il rullo facesse meno di 10 giri in tutto, basterebbe uno di quei potenziometri multigiri da 10K da pochi euro calettato direttamente all'albero) ... un'altra soluzione se non e' possibile calettare il potenziometro direttamente all'albero, e' usarlo in una scatolina, con una carrucola, una molla di richiamo ed un cordino attaccato alla tapparella, ma poi ci sarebbe il cordino in vista che non sta molto bene ...

Etem, ti riferisci ai "pieni" ed ai "vuoti" tra le liste della tapparella?

E solo un problema software: si può risolvere mediante un valore di isteresi.

Le altre soluzioni richiedono un'adattamento meccanico, che si vorrebbe evitare.

io sono con @cyberhs, se si è bravi in matematica si riesce a raggiungere un discreto livello di precisione, è comunque complesso.

Ma no vb, è più semplice di quello che sembra.

Supponiamo di leggere nella fase di apprendimento questi valori ADC:

100 0%
250 25%
450 50%
700 75%
900 100%

Setteremo una isteresi “mobile” in modo da “filtrare” eventuali errori di lettura:

tra 0 e 179 0%
tra 180 e 374 25%
tra 375 e 595 50%
tra 596 e 800 75%
tra 801 e 1000 100%

Intendevo per avere più precisione, volendo si potrebbe usare la tapparella stessa come fosse un encoder, tra ogni stecca c’è una scalanatura e se il sensore riesce a rilevarla si potrà sapere quante stecche sono scese, e come riferimento si può prendere la misura massima e minima.

cyberhs: no, mi riferisco al fatto che lo spessore del rullo (e quindi la distanza dal sensore) cambiano solo una volta al giro, e non linearmente in modo proporzionale alla posizione del rullo ...

Cerco di spiegarmi: mettiamo di avere la tapparella spessa 1cm ... il primo strato sul rullo sara' alto 1cm in qualsiasi posizione sia la tapparella (all'interno dello spazio occupato sul rullo da un giro), il secondo sara' spesso 2cm per tutto il giro, e cosi via ... quindi la distanza della superfice della tapparella sul rullo, cambiera' solo una volta al giro (circa, poi dipende da come si dispone, ma il principio e' quello) ... quindi quel sistema ti potra' dare un'indicazione generica, del tipo, "primo valore da posizione zero a posizione 10%, (o 15%, o quanto ci sta sul rullo), secondo valore da 10% a 22% (aumentando il diametro successivo, anche la percentuale di tapparella alzata aumentera' per ogni giro), e cosi via ... ma non una posizione precisa di dove effettivamente si trova ...

l'unico sistema per evitarlo sarebbe avere il rullo con una sezione a spirale, ma fin'ora non ne ho mai visti ...

vbextreme: ... quante stecche sono scese ...

Si, ma anche cosi, se va via la luce e tu muovi a mano la tapparella, non hai piu la posizione corretta quando l'alimentazione torna ;)

Ringrazio tutti per i suggerimenti.
Stavo pensando di utilizzare la tapparella stessa come encoder a 3 bit utilizzando un sistema di fori sulla parte laterale della stecca. Mi spiego: supponiamo di dividere l’altezza della tapparella in 8 pezzi: al primo pezzo corrisponderanno 3 fori chiusi, al secondo 1 foro chiuso, 1 aperto, ed 1 chiuso e così via.
In sostanza avrei:
Pos1… 0 0 0…0%
Pos2… 0 1 0…12.5%
Pos3… 0 0 1… 25%
Pos4… 1 0 0… 37.5%
Ecc.
Questo codice binario (a 3 bit) lo potrei leggere con 3 led ed i rispettivi foto ricevitori messi prima e dopo lo spessore della tapparella. In sostanza conoscerei in maniera assoluta la posizione raggiunta. È come se realizzassi un encoder non rotativo forando in corrispondenza del foto ricevitore la tapparella, seguendo lo schema di sopra. Secondo voi è fattibile ?

Si, tieni solo presente lo sporco: alternativamente puoi sostituire i led con calamite incastrate nelle stecche e leggere con dei reed (lavoro di fino ;) ). In ogni caso per sincronizzare le letture in entrambi i casi ti va un sensore aggiuntivo di riferimento altrimenti quando la serranda gira quando puoi definire il momento in cui "fotografare" la lettura corretta?

Non male come problema :)

Stefano

@Etemenanki, io farei così: Funzione Taratura: Abbasso tutta la tapparella e misuro la distanza, alzo tutta la tapparella e misuro la distanza, le salvo in EEPROM.

Funzione Autoazzeramento: Al riavvio di Arduino viene eseguita tale funzione che non farà altro che riportare la tapparella tutta alta o tutta bassa tramite i valori salvati in EEPROM

Funzione movimentazione: Conto i buchi delle feritoie per determinare la mia posizione.

Semplice ed efficace

Puoi anche all'avvio alzarla o abbassarla tutta (avrai dei finecorsa o qualcosa del genere già installati) e poi posizionarla dove vuoi in base ai secondi di azionamento del motore, se vuoi evitare di aggiungere altri componenti.

paulus1969: Puoi anche all'avvio alzarla o abbassarla tutta (avrai dei finecorsa o qualcosa del genere già installati) e poi posizionarla dove vuoi in base ai secondi di azionamento del motore, se vuoi evitare di aggiungere altri componenti.

Soluzione efficace ma poco pratica in quanto ogni volta che si aziona la tapparella andrebbe preventivamente abbassata (o alzata)....

Beh no, in realtà puoi memorizzare quanti secondi impiega ad alzare la serranda in fase di taratura e memorizzi in flash. Poi ogni volta che tiri giù o su tutta la serranda, (non che gli fai fare ginnastica tutte le volte… quando ti serve) arduino si autotara lo “zero”.
Non serve neppure il finecorsa tanto la tapparella si ferma da sola (basta dargli che so 30 sec in più e sei sicuro che sia chiusa)

Stefano

E il ronzio?

zzzzzzzz.....

Quale ronzio?

solman: Soluzione efficace ma poco pratica in quanto ogni volta che si aziona la tapparella andrebbe preventivamente abbassata (o alzata)....

Solo quando il sistema si riavvia dopo un black out o dopo un intervento di manutenzione...