Buonasera a tutti,
sono un novellino e sicuramente avrò commesso innumerevoli errori, volevo chiedervi gentilmente un aiuto per la programmazione di un cancello scorrevole che sto automatizzando. La parte Hardware l'ho realizzata, ora manca il software. Ho motorizzato il tutto con um motore 24VDC che piloterò con un modulo L298N connesso ad Arduino Uno R3.
I comandi vengono dati da:
Selettore a chiave che praticamente sono due microswitch momentary per apertura e chiusura, relè telecomandato settabile in diversi modi, ora ho preso in considerazione di farlo condurre con un click e staccarlo con un altro click, ma può anche essere momentary o collegato come deviatore.
Inoltre ci sono due switch di finecorsa aperto/chiuso, una fotocellula e un lampeggiante da azionare quando il cancello si muove.
A complicare il tutto c'è il fatto che volevo far partire e fermare il motore con una rampa, in modo da non dargli una mazzata tutte le volte.
Lo schema logico che ho pensato è il seguente, che provo ad illustrare ora:
Pensavo di realizzare una macchina a stati.
Partendo dalla situazione di cancello chiuso, se viene dato il comando di apertura tramite il relè o il selettore a chiave, il motore parte in senso antiorario e accelera in circa 2s fino alla velocità massima, che mantiene per un tempo di marcia da tarare, ipotizziamo 15s. Dopodiché decelera fino a una velocità ridotta e la mantiene fino a che tocca il finecorsa di cancello aperto, e si ferma. Se viene dato il comando di chiusura mentre si sta aprendo, rallenta, cambia senso di rotazione, accelera fino a una velocità ridotta e torna a chiudersi. (Questo usando dei delay per produrre le accelerazioni, per semplificare il tutto e sapere che deve decelerare a partire dalla velocità massima e non da una velocità ignota che si avrebbe in caso il comando sia possibile in fase di accelerazione).
Ora siamo nella situazione di cancello aperto.
Se viene dato, tramite il relè telecomandato o il selettore a chiave, un comando di chiusura, il motore accelera in senso orario fino alla velocità massima, la mantiene per il tempo di marcia sopra citato e poi decelera fino a una velocità ridotta che mantiene fino a contatto col finecorsa di cancello chiuso.
Se in fase di chiusura viene dato comando di apertura da relè o selettore, si ha una situazione specchiata rispetto alla chiusura in fase di apertura sopra definita, con il motore che decelera, cambia senso di marcia e accelera fino a una velocità ridotta fino ad apertura completa.
In caso di intervento della fotocellula, si ha lo stesso comportamento qui descritto tranne che per la decelerazione che sarà più fulminea.
In tutte le fasi tranne chiuso e aperto deve essere attivo il lampeggiante, che ha un suo circuito interno quindi basta mandare high il suo pin che controllerà un mosfet dedicato.