nikitta91,innanzi tutto ciao.
Come già scritto nei regolamenti non siamo soliti aiutare in modo plateale chi deve dare degli esami; il motivo è che è bene sbattere la testa sui problemi piuttosto che aggirarli e farli risolvere a qualcun altro.
Meglio un'insufficienza ammettendo di avere delle lacune piuttosto che fare finta di non averle e trascinarsele fino a quando qualcuno, nel posto di lavoro, ti farà fare una cosa che dà per scontata ma che invece non sai fare per colpa di quelle remote lacune.
Visto che sei nuova (a proposito,spero che tu dopo non fugga da qualche altra parte
) e che sei pure in preda al panico (e in queste condizioni è tutt'altro che facile ragionare a mente lucida) vedrò di darti qualche dritta.
Innanzi tutto una precisazione: io i PIC li programmo in assembler e in C, non in basic, quindi verifica la sintassi di quello che scriverò e non prenderlo per oro colato.
Cerca piuttosto di capire tutto a fondo per potere eventualmente migliorare quanto ho scritto.
Listato:
attesa_richiesta_apertura:
if ((pulsante=1) or (telecomando=1)) then 'Se attivato pulsante o telecomando
motore_apertura=1 'avvia motore in direzione di apertura
lampeggiante=1 'accende lampeggiante
else 'Se non effettuate richieste di apertura
goto attesa_richiesta_apertura 'resta in attesa di richiesta apertura
end if
attesa_finecorsa_apertura:
if (protezione_termica=1) then goto allarme_termico
if (FCA=1) then 'Se giunto a fine corsa apertura
motore_apertura=0 'spegne motore in direzione di apertura
lampeggiante=0 'spegne lampeggiante
else 'Se non raggiunto finecorsa
goto attesa_finecorsa_apertura 'attende finecorsa apertura
end if
pause 10000 'Attende 10" prima della richiusura
motore_chiusura=1 'avvia motore in direzione di chiusura
lampeggiante=1 'accende lampeggiante
fase_chiusura:
if (protezione_termica=1) then goto allarme_termico
if (fotocellula=1) then 'Se attivata fotocellula
motore_apertura=0 'spegne motore in direzione di apertura
lampeggiante=0 'spegne lampeggiante
pause 3000 'attende 3"
motore_apertura=1 'avvia motore in direzione di apertura
lampeggiante=1 'accende lampeggiante
goto attesa_finecorsa_apertura 'attende finecorsa apertura
end if
if (FCC=1) then 'Se giunto a fine corsa chiusura
motore_chiusura=0 'spegne motore in direzione di chiusura
lampeggiante=0 'spegne lampeggiante
else 'Se non raggiunto finecorsa
goto fase_chiusura 'attende fine ciclo chiusura
end if
goto attesa_richiesta_apertura 'torna in attesa di richiesta apertura
allarme_termico: 'Se avvenuto allarme protezione termica motore
motore_apertura=0 'spegne motore in direzione di apertura
motore_chiusura=0 'spegne motore in direzione di chiusura
lampeggiante=0 'spegne lampeggiante
lampada_intervento_termico=1 'accende lampada segnalazione protezione termica
goto allarme_termico
Il programma è estremamente grezzo e inefficiente dal punto di vista della velocità, ma visto che l'apricancello è un oggetto lento e visto anche il poco tempo a disposizione è meglio tapparsi il naso e fare finta che sia fatto bene.
Salvo sviste direi che debba funzionare come richiesto..
Ciao e fammi sapere