Quarto Michelangelo – 5ª AMS

MICHELANGELO SMART GATE

Cancello automatico con Arduino UNO R4 WiFi

Prototipo didattico di cancello scorrevole automatico controllato da Arduino UNO R4 WiFi, con gestione da Arduino Cloud, finecorsa, doppia fotocellula di sicurezza e chiusura automatica.

Arduino UNO R4 WiFi IoT Doppia Fotocellula Autochiusura 30 s
FC A
FC C
Arduino UNO R4 WiFi
BTS7960
12V

WiFi

Arduino Cloud consente apertura, chiusura, stop, reset e monitoraggio remoto.

Sicurezza

Due finecorsa e due fotocellule analogiche controllano i limiti di corsa e la presenza di ostacoli durante la chiusura.

Automazione

Dopo 30 secondi dall'apertura completa, il sistema esegue la chiusura automatica solo in assenza di ostacoli.

Arduino Cloud

Dashboard con comandi APRI, CHIUDI, STOP, RESET e stato del cancello.

Panoramica del progetto

Il prototipo utilizza un cancello scorrevole azionato da un motore DC a 12V. Arduino UNO R4 WiFi riceve comandi da Arduino Cloud, legge finecorsa e fotocellule analogiche e invia segnali al driver BTS7960 IBT-2.

Il lavoro ha finalità didattiche e non sostituisce un cancello automatico certificato, installato secondo le norme vigenti.

Obiettivo del sistema

Mostrare come un microcontrollore possa coordinare apertura, chiusura, stop, reset, sicurezza tramite fotocellule e chiusura automatica dopo 30 secondi.

Il lavoro mette in evidenza il flusso logico: comando, controllo preventivo, attuazione, sicurezza e aggiornamento dello stato.

DashboardComando utente
Arduino CloudVariabili IoT
ArduinoLogica
BTS7960Potenza
MotoreMovimento

Struttura generale

Il sistema è composto da controllo logico, driver di potenza, motore DC, finecorsa, doppia fotocellula analogica, LED e interfaccia Cloud.

Scelte progettuali

Arduino UNO R4 WiFi integra la connessione alla rete; il BTS7960 è adatto a pilotare motori DC in modo bidirezionale.

Tecnologie utilizzate

Microcontrollore, PWM, driver H-bridge, ingressi digitali, letture analogiche, alimentazione separata e Arduino Cloud.

Nota didattica per Esame di Stato

Il progetto ha scopo didattico: serve a dimostrare la capacità di integrare meccanica, automazione, elettronica, programmazione e IoT in un unico sistema.

Arduino UNO R4 WiFi

Ruolo: unità centrale di controllo.

Funzione: legge comandi Cloud, controlla driver, finecorsa, fotocellule e LED.

Scelta: integra connettività Wi-Fi e mantiene la semplicità dell'ambiente Arduino.

Driver BTS7960 IBT-2

Ruolo: ponte di potenza per il motore DC.

Funzione: consente rotazione avanti e indietro tramite RPWM e LPWM.

Scelta: supporta correnti maggiori rispetto ai piccoli driver didattici.

Motore DC 12V con riduttore

Ruolo: attuatore del cancello.

Funzione: trasforma energia elettrica in movimento lineare tramite pignone e cremagliera.

Scelta: il riduttore rende il movimento più controllabile e adatto al prototipo.

Batteria o alimentatore 12V

Ruolo: alimentazione della parte di potenza.

Funzione: fornisce energia al motore attraverso il BTS7960.

Scelta: separa la corrente motore dalla scheda Arduino.

Finecorsa apertura

Ruolo: sensore di limite in apertura.

Funzione: segnala ad Arduino che il cancello è aperto.

Scelta: evita che il motore continui oltre il limite.

Finecorsa chiusura

Ruolo: sensore di limite in chiusura.

Funzione: interrompe il movimento quando il cancello è chiuso.

Scelta: protegge struttura, motore e driver.

Fotocellula analogica 1

Ruolo: rilevamento ostacoli.

Funzione: controlla l'area di passaggio durante la chiusura.

Logica: se la lettura supera la soglia impostata, Arduino ferma il motore e avvia la riapertura.

Scelta: doppio controllo per aumentare l'affidabilità del prototipo.

Fotocellula analogica 2

Ruolo: rilevamento ostacoli.

Funzione: controlla l'area di passaggio durante la chiusura.

Logica: se la lettura supera la soglia impostata, Arduino ferma il motore e avvia la riapertura.

Scelta: doppio controllo per aumentare l'affidabilità del prototipo.

LED lampeggiante

Ruolo: segnalazione visiva.

Funzione: lampeggia durante apertura o chiusura.

Scelta: rende lo stato del sistema immediatamente comprensibile.

Ponticelli e cavi

Ruolo: connessione elettrica tra moduli.

Funzione: portano segnali, alimentazione e riferimento GND comune.

Scelta: permettono cablaggi rapidi e modificabili.

Arduino Cloud

Ruolo: interfaccia IoT.

Funzione: ospita variabili condivise e dashboard.

Scelta: semplifica controllo remoto e monitoraggio.

Arduino UNO R4 WiFiD5 / D6Comando PWM
Driver BTS7960 IBT-2RPWM / LPWMPonte di potenza
Motore DC 12VM+ / M-Pignone e cremagliera
Fotocellule analogicheA1 / A2Sicurezza in chiusura
FinecorsaD8 / D9Limiti apertura e chiusura
LED lampeggianteD10Segnalazione movimento
Schema aggiornato del prototipo didattico

Tabella collegamenti

GruppoCollegamentoDestinazione
Arduino UNO R4 WiFi → BTS7960D5RPWM
Arduino UNO R4 WiFi → BTS7960D6LPWM
Arduino UNO R4 WiFi → BTS79605VVCC, R_EN e L_EN
Arduino UNO R4 WiFi → BTS7960GNDGND
Batteria/alimentatore 12V → BTS7960Positivo 12VB+
Batteria/alimentatore 12V → BTS7960Negativo 12VB-
Motore DC 12V → BTS7960MotoreM+ e M-
Fotocellula analogica 1SegnaleA1
Fotocellula analogica 2SegnaleA2
FinecorsaFinecorsa aperturaD8 + GND
FinecorsaFinecorsa chiusuraD9 + GND
LED lampeggianteD10Resistenza 220/330Ω → LED → GND
⚠ Tutte le masse GND devono essere collegate in comune: Arduino, BTS7960 e negativo dell'alimentazione 12V.
01

Comando da Arduino Cloud

L'utente preme APRI, CHIUDI, STOP oppure RESET dalla dashboard.

02

Comando via Wi-Fi

Arduino UNO R4 WiFi riceve il comando e aggiorna le variabili Cloud.

03

Controllo preventivo

La scheda verifica finecorsa e fotocellule prima di avviare il movimento.

04

Attivazione RPWM o LPWM

Arduino pilota D5 o D6 per scegliere la direzione del motore.

05

Driver BTS7960

Il driver alimenta il motore DC con la potenza fornita dalla batteria a 12V.

06

LED e sicurezza

Il LED lampeggia durante il movimento e le fotocellule controllano il passaggio in chiusura.

01

Comando da Arduino Cloud

L'utente invia APRI, CHIUDI, STOP o RESET dalla dashboard.

02

Arduino riceve il comando via Wi-Fi

Arduino UNO R4 WiFi sincronizza le variabili e riconosce la richiesta.

03

Controllo preventivo di finecorsa e fotocellule

Il prototipo verifica lo stato dei limiti e dell'area di passaggio.

04

Arduino attiva RPWM o LPWM

La scheda usa D5 o D6 per scegliere apertura o chiusura.

05

BTS7960 alimenta il motore

Il driver gestisce la potenza del motore DC mantenendo separata la logica Arduino.

06

LED lampeggia durante il movimento

La segnalazione luminosa rende visibile che il cancello è in movimento.

07

Finecorsa arresta il motore al limite

Il finecorsa di apertura o chiusura blocca il movimento quando viene raggiunto il punto finale.

08

Fotocellule controllano ostacoli durante la chiusura

Le letture analogiche su A1 e A2 monitorano l'area di passaggio.

09

Ostacolo rilevato: stop e riapertura

Se almeno una lettura supera la soglia, Arduino ferma il motore, attende brevemente e riapre.

10

Autochiusura dopo 30 secondi

Dopo l'apertura completa parte la chiusura automatica solo se il passaggio è libero.

Stato cancelloOK
CHIUSO

Stato operativo inviato alla dashboard.

Stato Wi-FiOK
Connesso

Arduino Cloud sincronizzato.

Fotocellula 1OK
Libera

Ingresso analogico A1.

Fotocellula 2OK
Libera

Ingresso analogico A2.

Finecorsa aperturaOK
Non premuto

Ingresso D8 in attesa del limite.

Finecorsa chiusuraOK
Premuto

Ingresso D9 in attesa del limite.

Chiusura automatica30 s
In attesa

Autochiusura: 30 s

Alimentazione 12VOK
12.3 V
Controllo cancello automatico

Cancello scorrevole con motore, pignone e cremagliera

Finecorsa apertura NON PREMUTO
Finecorsa chiusura PREMUTO
Verde = OK Giallo = Attenzione Rosso = Errore
Bozza tecnica del progetto Michelangelo Smart Gate
FASE 1

PROGETTAZIONE DEL SISTEMA

Studio dell'idea progettuale e definizione dell'architettura generale del sistema: controllo Arduino, motore DC, finecorsa di sicurezza, doppia fotocellula e dashboard di monitoraggio.

Componenti elettronici e meccanici disposti su banco tecnico
FASE 2

RICERCA DEL MATERIALE NECESSARIO

Analisi e selezione dei componenti necessari alla realizzazione del progetto: Arduino UNO R4 WiFi, driver BTS7960, motore DC 12V, finecorsa, fotocellule analogiche, batteria, cremagliera, pignone e materiale strutturale.

Modello Fusion 360 del cancello automatico
FASE 3

PROTOTIPAZIONE DELLA STRUTTURA 3D CON FUSION 360

Progettazione CAD della struttura del cancello tramite Fusion 360 per definire dimensioni, supporti e posizionamento dei componenti.

Stampante 3D in funzione per i componenti del progetto
FASE 4

STAMPA 3D DEI COMPONENTI

Produzione tramite stampa 3D dei componenti progettati: supporti motore, supporti finecorsa, parti strutturali ed elementi di fissaggio.

Assemblaggio meccanico di pignone cremagliera e parte mobile
FASE 5

CREAZIONE DEL PIGNONE, CREMAGLIERA E PARTE MOBILE

Realizzazione del sistema meccanico che permette il movimento del cancello tramite trasmissione del moto e assemblaggio della parte mobile.

Arduino IDE con codice del progetto Michelangelo Smart Gate
FASE 6

PROGRAMMAZIONE ARDUINO

Sviluppo del software di controllo per apertura, chiusura, stop, reset, gestione finecorsa, controllo fotocellule e monitoraggio dello stato del sistema.

Dashboard Arduino Cloud configurata per il controllo remoto
FASE 7

CONFIGURAZIONE ARDUINO CLOUD

Configurazione della connessione WiFi e della dashboard cloud per comandi remoti di apertura, chiusura, stop e monitoraggio dello stato.

Prototipo Michelangelo Smart Gate durante i test di funzionamento
FASE 8

TEST DI FUNZIONAMENTO

Durante i test sono state verificate la risposta dei finecorsa, il controllo tramite Arduino Cloud, il lampeggio del LED, la gestione delle due fotocellule e la chiusura automatica dopo 30 secondi.

Regolazioni finali del modello Michelangelo Smart Gate
FASE 9

REGOLAZIONI FINALI

Controllo finale dell'allineamento meccanico, della risposta dei finecorsa e della stabilità del movimento prima della versione conclusiva.

Versione finale del progetto Michelangelo Smart Gate
FASE 10

VERSIONE FINALE - PROTOTIPO COMPLETATO

Prototipo didattico composto da Arduino UNO R4 WiFi, driver BTS7960, motore DC 12V, finecorsa, due fotocellule analogiche, dashboard Arduino Cloud, monitoraggio remoto e sito tecnico Michelangelo Smart Gate.

✓ Funzioni implementate ✓ Verifiche sul prototipo ✓ Cloud connesso ✓ Controlli verificati ✓ Dashboard attiva
Logica principale

Controllo reale del prototipo

#include "thingProperties.h"

const int pinRPWM = 5;
const int pinLPWM = 6;
const int pinFotocellula1 = A1;
const int pinFotocellula2 = A2;
const int pinFinecorsaApertura = 8;
const int pinFinecorsaChiusura = 9;
const int pinLed = 10;

const int sogliaFotocellula = 600;
const unsigned long tempoAutochiusura = 30000;
unsigned long istanteAperturaCompleta = 0;
bool autochiusuraAttiva = false;

void setup() {
  pinMode(pinRPWM, OUTPUT);
  pinMode(pinLPWM, OUTPUT);
  pinMode(pinLed, OUTPUT);
  pinMode(pinFinecorsaApertura, INPUT_PULLUP);
  pinMode(pinFinecorsaChiusura, INPUT_PULLUP);
  initProperties();
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  fermaMotore();
}

void loop() {
  ArduinoCloud.update();

  if (stopMotore) {
    fermaMotore();
    autochiusuraAttiva = false;
    apri = false;
    chiudi = false;
    stopMotore = false;
  }

  if (resetCancello) {
    aggiornaStatoDaFinecorsa();
    resetCancello = false;
  }

  if (apri) apriCancello();
  if (chiudi) chiudiCancello();

  if (autochiusuraAttiva && millis() - istanteAperturaCompleta >= tempoAutochiusura) {
    if (!ostacoloPresente()) chiudiCancello();
  }

  aggiornaLampeggiante();
}

void apriCancello() {
  if (digitalRead(pinFinecorsaApertura) == LOW) {
    fermaMotore();
    statoCancello = "Aperto";
    istanteAperturaCompleta = millis();
    autochiusuraAttiva = true;
    apri = false;
    return;
  }
  analogWrite(pinRPWM, 180);
  analogWrite(pinLPWM, 0);
  statoCancello = "In apertura";
}

void chiudiCancello() {
  if (ostacoloPresente()) {
    fermaMotore();
    delay(500);
    apriCancello();
    return;
  }
  if (digitalRead(pinFinecorsaChiusura) == LOW) {
    fermaMotore();
    statoCancello = "Chiuso";
    chiudi = false;
    return;
  }
  analogWrite(pinRPWM, 0);
  analogWrite(pinLPWM, 180);
  statoCancello = "In chiusura";
}

bool ostacoloPresente() {
  return analogRead(pinFotocellula1) > sogliaFotocellula ||
         analogRead(pinFotocellula2) > sogliaFotocellula;
}

void fermaMotore() {
  analogWrite(pinRPWM, 0);
  analogWrite(pinLPWM, 0);
  digitalWrite(pinLed, LOW);
  statoCancello = "Fermo";
}

void aggiornaStatoDaFinecorsa() {
  if (digitalRead(pinFinecorsaApertura) == LOW) statoCancello = "Aperto";
  else if (digitalRead(pinFinecorsaChiusura) == LOW) statoCancello = "Chiuso";
  else statoCancello = "Fermo";
}

void aggiornaLampeggiante() {
  static unsigned long ultimoCambio = 0;
  static bool acceso = false;
  if (statoCancello == "In apertura" || statoCancello == "In chiusura") {
    if (millis() - ultimoCambio >= 400) {
      ultimoCambio = millis();
      acceso = !acceso;
      digitalWrite(pinLed, acceso);
    }
  }
}

La logica usa ArduinoCloud.update(), letture analogiche su A1 e A2, soglia fotocellule, finecorsa D8 e D9 con INPUT_PULLUP, driver BTS7960 su D5/D6, LED su D10, stop con riapertura in presenza di ostacolo e autochiusura dopo 30 secondi.

Pin principali

  • D5 RPWM
  • D6 LPWM
  • A1 Fotocellula 1
  • A2 Fotocellula 2
  • D8 Finecorsa apertura
  • D9 Finecorsa chiusura
  • D10 LED

Finecorsa apertura

Ferma il motore quando il cancello è completamente aperto.

Finecorsa chiusura

Interrompe la chiusura al punto finale.

Doppia fotocellula analogica

Durante la chiusura, le due fotocellule monitorano il passaggio. Se almeno una rileva un ostacolo oltre la soglia impostata, Arduino interrompe il movimento e riapre il cancello.

Chiusura automatica controllata

Dopo 30 secondi dall'apertura completa, il sistema avvia la chiusura soltanto quando le fotocellule rilevano un'area libera.

Stop di emergenza

Ha priorità e porta subito le uscite PWM a zero.

Blocco comandi simultanei

Evita apertura e chiusura contemporanee.

Alimentazione separata

Motore a 12V separato dalla logica Arduino.

GND comune

Le masse devono avere lo stesso riferimento elettrico.

Protezione da sovracorrente

Un sistema reale richiede protezioni dimensionate.

Avviso didattico

Il prototipo ha finalità didattiche e non sostituisce un cancello automatico certificato, installato secondo le norme vigenti.

Cos'è Arduino Cloud

Una piattaforma online per sincronizzare dati e comandi con una scheda compatibile.

Creazione di una Thing

Si associa Arduino UNO R4 WiFi, si configurano rete e credenziali, poi si aggiungono le variabili Cloud.

Variabili Cloud

VariabileTipoPermessoUso
apriBooleanRead & WriteComando di apertura
chiudiBooleanRead & WriteComando di chiusura
stopMotoreBooleanRead & WriteArresto immediato del motore
resetCancelloBooleanRead & WriteReimpostazione e lettura dello stato iniziale
statoCancelloStringRead OnlyStato operativo del sistema
Dashboard CloudstatoCancello: Fermo

Vantaggi

Controllo remoto, monitoraggio, aggiornamento dello stato e separazione tra interfaccia utente e logica embedded.

MICHELANGELO SMART GATE

Questo progetto dimostra come meccanica, sistemi automatici, elettronica e informatica possano integrarsi per creare un sistema intelligente controllabile da remoto.

Il cancello automatico con Arduino UNO R4 WiFi è un esempio concreto di sistema embedded: riceve input, elabora condizioni, attiva un attuatore, legge sensori e comunica con una piattaforma Cloud.

Durante lo sviluppo sono state applicate competenze di progettazione meccanica, modellazione 3D, stampa 3D, elettronica, programmazione e monitoraggio remoto, dimostrando come discipline diverse possano collaborare nella realizzazione di un unico sistema automatizzato.

Durante i test sono state verificate la risposta dei finecorsa, il controllo tramite Arduino Cloud, il lampeggio del LED, la gestione delle due fotocellule e la chiusura automatica dopo 30 secondi.

Il progetto Michelangelo Smart Gate rappresenta un modello didattico completo che unisce innovazione, automazione e tecnologie IoT, evidenziando le potenzialità dell'integrazione tra hardware, software e servizi Cloud.

Prototipo didattico Cancello automatico con Arduino UNO R4 WiFi

Quarto Michelangelo – 5ª AMS

Torna alla Home
Documentazione tecnica

Relazione finale del progetto

Scarica la relazione tecnica completa del progetto Michelangelo Smart Gate in formato PDF.

Sezione finale

Funzioni implementate e verificate nel prototipo

✓ Apertura e chiusura ✓ Controllo finecorsa ✓ Arduino Cloud connesso ✓ Fotocellule verificate ✓ Dashboard attiva

Progetto realizzato da:
Quarto Michelangelo – 5ª AMS

Anno scolastico 2025/2026