|
Comando automatico per una serranda motorizzata |
|
|
|
|
|
|
|
|
|
|
|
|
|
Descrizione generale |
|
|
|
|
La scheda di controllo consente di alzare o abbassare una serranda senza dover mantenere l'interruttore premuto, finché la serranda si alza o si abbassa completamente. |
|
|
|
Funzionamneto: |
|
|
|
- Modalità "Tasto stabile" Per alzare la serranda è sufficiente premere il tasto "Up" per un breve periodo. Il motore è azionato in direzione UP per 30 secondi.
Se è premuto qualsiasi tasto in questo periodo, il motore viene fermato, fermando così la serranda nella posizione desiderata.
|
|
|
|
- Modalità "Tasto momentaneo"
Per alzare la serranda fino a un certo livello, si deve premere il tasto "UP" per almeno 2 secondi e il motore continuerà ad alzare la serranda finché il tasto è rilasciato. |
|
|
|
E' prevista anche la possibilità di azionare in contemporanea più schede con un comando remoto (Central Unit), senza influire sul controllo individuale con i tasti locali. |
|
Schema connessioni
|
|
|
Caratteristiche circuito |
|
|
|
- Tensione di alimentazione: 12V cc (minimo 10V, massimo 15V);
- Corrente: min. = 6mA, massimo 85mA;
L'assorbimento è di: 6mA nella fase di riposo, 32mA con un relè attivo, 85mA con entrambi i relè attivi. Per il dimensionamento dell'alimentatore si deve considerare che ogni scheda assorbe 0,1A.
- Dimensioni: LxWxH (mm) = 74x49x25; |
|
|
|
Attenzione: il circuito deve essere costruito rispettando le norme di sicurezza elettrica, in quanto utilizza tensioni alte! |
|
|
|
Schemi |
|
|
|
|
Il circuito usa due relè per commutare l'alimentazione del motore: un relè (K1) stabilisce la direzione e l'altro (K2) accende il motore. Il relè K2 è azionato con un ritardo di 20ms dopo il relè K1, in modo che il carico della commutazione (inrush current ) sia sostenuto solo dal relè K2.
Il microcontrollore Microchip PIC12F1822 è alimentato ad una tensione di 5V regolata con il chip IC2 - 78L05. |
click on image to open the pdf file in new tab |
|
|
|
I diodi D2, D4 consentono il comando di più schede, per azionare ad esempio le serrande di una stanza (zona) in contemporanea, ma permettendo anche l'uso individuale.
Il circuito di reset R100/C100 non è usato in quanto la porta MCLR è impostata come porta IO (GP3).
I segnali provenienti dai tasti sono filtrati con un filtro RC passa basso - frequenza di taglio di 3.4Khz.
Il circuito è costruito su una scheda di vetronite mono faccia, permettendo la realizzazione anche in casa. |
|
|
|
|
BOM (Distinta base) |
|
|
|
|
Qty |
Value |
Device |
Parts |
Code |
1 |
0.01uF (NP) |
C-EUC0805 SMD |
C100 |
|
2 |
10n/16v |
C-EU025-024X044 |
C2, C3 |
RS 699-5077 |
1 |
1000u/25v |
CPOL-EUE5-10.5 |
C4 |
RS 571-981 |
2 |
0.1u/16V |
C-EU025-024X044 |
C1, C5 |
RS 537-3909 |
2 |
1N4007 |
1N4007-DO35-7 |
D1, D3 |
|
2 |
1N4148 |
DIODE-D-7.5 |
D2, D4 |
|
1 |
FUSE 4A T 250Vac |
FUSETR5 |
F1 |
|
1 |
PIC12F1822 |
PIC |
IC1 |
RS 703-7888 |
1 |
UA78L05AI |
78L05 |
IC2 |
Farnell 1236591 |
1 |
OMI-SH-112 |
RELAY SPDT |
K1 |
Farnell 1891719 |
1 |
SDT-S-112LMR |
RELAY SPST |
K2 |
Farnell 1892001 |
1 |
Led Green(NP) |
LED3MM |
LED1 |
|
2 |
4k7 |
R-EU_0207/10 |
R1, R2 |
RS 707-7726 |
1 |
10k(NP) |
R-EU_R0805 SMD |
R100 |
|
1 |
680R(NP) |
R-EU_R0805 SMD |
R101 |
|
2 |
10k |
R-EU_0207/10 |
R3, R4 |
RS 707-7745 |
1 |
2R2 |
R_0204/7 |
R5 |
|
2 |
PDTD113ZT |
Transistor digitale SMD |
T100, T101 |
RS 508-541 |
2 |
Morsettiera /3-7,62 |
MKDS_5/3-7,62 |
X1, X3 |
Farnell 3882603 |
2 |
Morsettiera /3-5,08 |
AK500/3 morsettiere |
X2, X4 |
RS 425-8736 |
1 |
SOCKET DIP8 |
SOCKET DIP8 |
IC1a |
Farnell 2445620 |
|
NP = Not Populated |
|
|
|
|
|
Firmware |
|
|
|
|
Il firmware è scritto in C e compilato con il compilatore XC8 V1.2 PRO.
|
|
|
|
Il file user.h contiene i valore impostati per :
- tempo di debounce tasti = 100ms;
- tempo per passare da modalità "Tasto Stabile" a modalità "Tasto Momentaneo" =2s;
- tempo massimo per motore attivo (in modalità Tasto Stabile) = 30s.
Nel file system.c si trova la funzione "void ConfigureOscillator(void)" che imposta la velocità del microcontrollore; è utilizzato l'oscillatore interno impostato a 16MHz.
Il file user.c contiene la funzione "void InitApp(void)" che ha il compito di inizializzare il microcontrollore.
Il file intterrupts.c contiene la funzione "interrupt" per la gestione del intterupt generato da Timer (ogni 10ms). Questa funzione si occupa della lettura dei tasti e della gestione dei vari time out. Quando la funzione ha rilevato un comando, setta il flag "keyChange".
Il file main.c contiene un ciclo while infinito che legge il flag "keyChange" e di conseguenza aziona i relè, in funzione dello stato del programma. Il ciclo while contiene anche una porzione di codice (" if (ms10_flag)....") usato nella fase di debug per far blinkare il led con un periodo di 100ms (1s ). |
|
|
|
Progetto MPLABX <- download zip file |
|
|
|
|
Hex file <- download hex file |
|
|
|