| ;Aquest 
                  programa controla el plegat i desplegat d'un tendall basant-se 
                  en el nivell de llum i la velocitat del vent. ;El procés pot fer-se automàtic o manual.
 ;Al SADEX connectem els mòduls a les sortides de la següent 
                  manera:
 ; A: luxòmetre
 ; B: tacòmetre
 ; C: entrades digitals (entrades 1 i 2, sensors de final de 
                  cursa)
 ; D: motors (motor 1)
 ;TOLDO. 
                    Inici del procés general. Qualsevol tecla premuda desactiva 
                    el control automàtic. Procediment 
                    toldo Escriu [esborra.text Per a control manual, prem qualsevol 
                    tecla]
 Mentre [tecleig = "fals] [executa [tacom]] [executa [manual]]
 fi
 ;TACOM. 
                    Es fa la mesura de la velocitat del vent. Si és major 
                    a 4 rps de l'anemòmetre, el tendall no s'estén 
                    per a evitar que es trenqui. Procediment 
                    tacom(escriu [Velocitat de l'anemòmetre (rps) = ] tacòmetre.llegit 
                    "b)
 Mentre [tacòmetre.llegit "b < 4] [executa [luxom]] 
                    [executa [plega]]
 executa [toldo]
 Fi
 ;LUXOM. 
                    Es mesura l'intensitat luminosa. Si és major a 200 
                    lux, es desplega el tendall. Si és inferior a 100 lux 
                    es replega. A valors intermitjos no hi ha acció. Procediment 
                    luxom (escriu [Nivell de llum (lux) = ] luxòmetre.llegit 
                    "a)
 Mentre [luxòmetre.llegit "a > 200] [esborra.text 
                    escriu [Desplegant el tendall] executa [desplega]]
 Mentre [luxòmetre.llegit "a < 100] [esborra.text 
                    escriu [Plegant el tendall] executa [plega]]
 Executa [toldo]
 Fi
 ;DESPLEGA. 
                    Accionament del motor i encesa del LED de la sortida 1 com 
                    a indicació. L'entrada 2 (del sensor de final de cursa) 
                    desconnecta el motor i atura el procés. Procediment 
                    desplegamentre estat.entrada? "c 2 [activa.sortida "e 1 
                    esquerra.motor "d 1] [desactiva.sortida "e 1 atura.motor 
                    "d 1]
 Executa [luxom]
 fi
 ;PLEGA. 
                    Accionament del motor en sentit de gir invertit i encesa del 
                    LED de la sortida 2 com a indicació. L'entrada 1 (del 
                    sensor de final de cursa) desconnecta el motor i atura el 
                    procés. Procediment 
                    plegamentre estat.entrada? "c 1 [activa.sortida "e 2 
                    dreta.motor "d 1] [desactiva.sortida "e 2 atura.motor 
                    "d 1]
 Executa [luxom]
 fi
 ;MANUAL. 
                    Indicació dels controls del teclat per a accionar manualment 
                    el tendall. procediment 
                    manualesborra.text
 Escriu [Control manual]
 Escriu [Tecla B: Baixar el tendall]
 Escriu [Tecla P: Pujar el tendall]
 Escriu [Tecla S: Aturar el motor]
 Escriu [Tecla A: Tornar a control automàtic]
 executa [cmanual :tecla]
 fi
 ;CMANUAL. 
                    Accionament manual del tendall. procediment 
                    cmanual :teclaposa.a "tecla caràcter.llegit
 si :tecla = "a [escriu [Tornat a control automàtic] 
                    executa [toldo]]
 si :tecla = "b [escriu [Desplegant el tendall] esquerra.motor 
                    "d 1]
 si :tecla = "p [escriu [Plegant el tendall] dreta.motor 
                    "d 1]
 si :tecla = "s [escriu [Motor aturatl] atura.motor "d 
                    1]
 cmanual :tecla
 fi
 |