MICHELANGELO SMART GATE Quarto Michelangelo - 5ª AMS

Quarto Michelangelo - 5ª AMS

MICHELANGELO SMART GATE

Cancello automatico con Arduino UNO R4 WiFi

Studio teorico di un sistema di automazione per l'apertura e la chiusura di un cancello scorrevole controllato da Arduino e gestibile tramite rete WiFi con Arduino Cloud.

FC A
FC C
Arduino UNO R4 WiFi
BTS7960
12V

WiFi

La scheda comunica con Arduino Cloud attraverso la rete, rendendo possibile una dashboard teorica di comando e monitoraggio.

Sicurezza

Finecorsa, stop di emergenza e blocco dei comandi simultanei evitano movimenti incoerenti nel modello didattico.

Automazione

Il motore DC viene pilotato da un driver di potenza che separa la logica di controllo dalla parte di alimentazione.

Arduino Cloud

Variabili condivise e dashboard permettono di simulare apertura, chiusura, stop e stato del cancello.

Panoramica del progetto

Il progetto immagina un cancello scorrevole azionato da un motore DC a 12V. Arduino UNO R4 WiFi riceve comandi da Arduino Cloud, interpreta sensori e finecorsa e invia segnali al driver BTS7960 IBT-2.

Non si tratta di un impianto reale certificato, ma di un modello espositivo utile per comprendere il funzionamento di un sistema automatico.

Obiettivo del sistema

Descrivere come un microcontrollore possa coordinare apertura e chiusura di un cancello, controllando direzione del motore, finecorsa, encoder e segnalazione luminosa.

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

DashboardComando utente
Arduino CloudVariabili IoT
ArduinoLogica
BTS7960Potenza
MotoreMovimento

Struttura generale

Il sistema e composto da controllo logico, driver di potenza, motore DC, finecorsa, encoder, LED e interfaccia Cloud.

Scelte progettuali

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

Tecnologie utilizzate

Microcontrollore, PWM, driver H-bridge, ingressi digitali, encoder incrementale, alimentazione separata e Arduino Cloud.

Nota didattica per Esame di Stato

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

Arduino UNO R4 WiFi

Ruolo: unita centrale di controllo.

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

Scelta: integra connettivita WiFi e mantiene la semplicita 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 encoder magnetico

Ruolo: attuatore del cancello.

Funzione: trasforma energia elettrica in movimento.

Scelta: l'encoder permette una lettura teorica di velocita e posizione.

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 e 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 e chiuso.

Scelta: protegge struttura, motore e driver.

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.

Schema collegamenti Arduino UNO R4 WiFi BTS7960 motore encoder
Apri schema a schermo intero

Tabella collegamenti

GruppoCollegamentoDestinazione
Arduino UNO R4 WiFi → BTS7960D5RPWM
Arduino UNO R4 WiFi → BTS7960D6LPWM
Arduino UNO R4 WiFi → BTS79605VVCC
Arduino UNO R4 WiFi → BTS7960GNDGND
Batteria 12V → BTS7960+12VB+
Batteria 12V → BTS7960GNDB-
Motore DC 12V → BTS7960Filo motore 1M+
Motore DC 12V → BTS7960Filo motore 2M-
Encoder motore → ArduinoVCC5V
Encoder motore → ArduinoGNDGND
Encoder motore → ArduinoEncoder AD2
Encoder motore → ArduinoEncoder BD3
FinecorsaFinecorsa aperturaD8 + GND
FinecorsaFinecorsa chiusuraD9 + GND
LED lampeggianteD10Resistenza 220Ω → LED → GND
⚠ Tutte le masse GND devono essere in comune.
01

Comando dalla dashboard

L'utente preme APRI, CHIUDI oppure STOP.

02

Ricezione tramite Cloud

Arduino sincronizza le variabili Cloud e rileva il comando.

03

Controllo del BTS7960

Arduino invia PWM su RPWM o LPWM.

04

Alimentazione del motore

Il driver fornisce energia al motore DC nella direzione richiesta.

05

Finecorsa

Il finecorsa apertura o chiusura ferma il motore.

06

Encoder e LED

L'encoder legge impulsi e il LED lampeggia durante il movimento.

01

L'utente preme APRI sulla Dashboard Arduino Cloud

Il comando viene inviato dalla dashboard teorica tramite una variabile Cloud di tipo booleano.

02

Arduino riceve il comando tramite WiFi

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

03

Arduino attiva il driver BTS7960

La scheda invia il segnale PWM al pin RPWM o LPWM in base alla direzione richiesta.

04

Il BTS7960 alimenta il motore DC

Il driver gestisce la corrente del motore separando la parte di potenza dalla logica Arduino.

05

Il motore muove la cremagliera

La rotazione del motore viene trasformata nel movimento lineare del cancello scorrevole.

06

L'encoder legge velocita e posizione

Gli impulsi dell'encoder permettono di stimare lo spostamento e controllare il movimento.

07

Il LED lampeggia durante il movimento

La segnalazione luminosa rende visibile che il sistema e in apertura o chiusura.

08

Il finecorsa rileva la posizione finale

Quando viene premuto, il finecorsa porta il segnale a LOW e informa Arduino del limite raggiunto.

09

Arduino arresta il motore

Le uscite PWM vengono portate a zero e il driver interrompe l'alimentazione del motore.

10

Lo stato viene aggiornato sul Cloud

La variabile statoCancello comunica alla dashboard se il cancello e aperto, chiuso o fermo.

Stato cancelloOK
CHIUSO

Stato operativo inviato alla dashboard.

Posizione cancelloOK
0%
RPM motoreATTESA
0 RPM
Stato WiFiOK
Connesso

Arduino Cloud sincronizzato.

Stato encoderOK
Impulsi attivi

Lettura teorica di velocita e posizione.

Finecorsa aperturaOK
Non premuto

Ingresso D8 in attesa del limite.

Finecorsa chiusuraOK
Premuto

Ingresso D9 in attesa del limite.

Tensione alimentazioneOK
12.3 V
Simulazione 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 con encoder, finecorsa di sicurezza 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 con encoder, finecorsa, 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, gestione encoder, gestione finecorsa 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

Verifica completa di apertura, chiusura, encoder, finecorsa, dashboard cloud e logiche di sicurezza.

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 - PROGETTO COMPLETATO

Sistema teorico completo composto da Arduino UNO R4 WiFi, driver BTS7960, motore DC con encoder, finecorsa, dashboard Arduino Cloud, monitoraggio remoto e sito tecnico Michelangelo Smart Gate.

✓ Progetto completato ✓ Sistema operativo ✓ Cloud connesso ✓ Test superati ✓ Dashboard attiva
Sketch completo

Esempio teorico integrato

#include "thingProperties.h"

const int pinRPWM = 5;
const int pinLPWM = 6;
const int pinEncoderA = 2;
const int pinEncoderB = 3;
const int pinFinecorsaApertura = 8;
const int pinFinecorsaChiusura = 9;
const int pinLed = 10;

volatile long encoderCount = 0;
int velocitaMotore = 180;

void setup() {
  pinMode(pinRPWM, OUTPUT);
  pinMode(pinLPWM, OUTPUT);
  pinMode(pinLed, OUTPUT);
  pinMode(pinFinecorsaApertura, INPUT_PULLUP);
  pinMode(pinFinecorsaChiusura, INPUT_PULLUP);
  pinMode(pinEncoderA, INPUT_PULLUP);
  pinMode(pinEncoderB, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(pinEncoderA), leggiEncoder, CHANGE);
  initProperties();
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  fermaMotore();
}

void loop() {
  ArduinoCloud.update();
  if (stopMotore) {
    fermaMotore();
    apri = false;
    chiudi = false;
    stopMotore = false;
  }
  if (apri && !chiudi) apriCancello();
  if (chiudi && !apri) chiudiCancello();
  if (apri && chiudi) fermaMotore();
  aggiornaLampeggiante();
}

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

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

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

void leggiEncoder() {
  bool a = digitalRead(pinEncoderA);
  bool b = digitalRead(pinEncoderB);
  if (a == b) encoderCount++;
  else encoderCount--;
}

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);
    }
  }
}

Lo sketch mostra la struttura teorica: controllo motore, finecorsa, encoder, LED e variabili Arduino Cloud.

Finecorsa apertura

Ferma il motore quando il cancello e completamente aperto.

Finecorsa chiusura

Interrompe la chiusura al punto finale.

Stop di emergenza

Ha priorita 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

Questo progetto non sostituisce un impianto certificato.

Cos'e 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
apriboolRead & WriteComando apertura
chiudiboolRead & WriteComando chiusura
stopMotoreboolRead & WriteArresto immediato
statoCancelloStringRead OnlyVisualizzazione stato
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.

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.

Progetto teorico 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

Progetto completato

✓ Progetto completato ✓ Sistema operativo ✓ Arduino Cloud connesso ✓ Test superati ✓ Dashboard attiva

Progetto realizzato da:
Quarto Michelangelo - 5ª AMS

Anno scolastico 2025/2026