Dispenser Automatico per Cani e Gatti con Arduino

Descrizione del Progetto

Questo progetto realizza un dispenser automatico di cibo per cani e gatti basato su Arduino Uno. Il sistema consente di programmare più erogazioni giornaliere, stabilendo per ciascun evento l’orario di attivazione e la durata di apertura dell’elettrovalvola.

L’orario viene gestito da un modulo RTC DS3231 che garantisce precisione e continuità anche in caso di spegnimento dell’alimentazione grazie alla batteria tampone integrata.

La programmazione viene effettuata tramite una tastiera matriciale 4×4 e tutte le impostazioni vengono memorizzate nella memoria EEPROM di Arduino, mantenendo i dati anche dopo lo spegnimento del dispositivo.

Un display LCD I2C 16×2 permette di visualizzare l’orario corrente, i menu di programmazione e lo stato del sistema.


Caratteristiche Principali

  • Programmazione fino a 10 eventi giornalieri.
  • Impostazione di:
    • Ora di erogazione.
    • Minuti di erogazione.
    • Durata apertura elettrovalvola.
  • Memorizzazione permanente in EEPROM.
  • Visualizzazione eventi memorizzati.
  • Cancellazione completa degli eventi.
  • Reset rapido del sistema.
  • Orologio RTC DS3231 ad alta precisione.
  • Display LCD I2C 16×2.
  • Tastiera 4×4 per configurazione.
  • Relè per pilotaggio elettrovalvola.
  • LED di stato sistema.
  • LED di segnalazione erogazione in corso.

Componenti Utilizzati

QuantitàComponente
1Arduino Uno
1RTC DS3231
1Display LCD 16×2 I2C
1Keypad 4×4
1Modulo Relè 5V
1Elettrovalvola
1LED Verde (Sistema Attivo)
1LED Rosso (Erogazione)
2Resistenze 220Ω
1Alimentatore adeguato

Collegamenti

LCD I2C

LCDArduino Uno
SDAA4
SCLA5
VCC5V
GNDGND

RTC DS3231

RTCArduino Uno
SDAA4
SCLA5
VCC5V
GNDGND

LCD e RTC condividono lo stesso bus I2C.

Keypad 4×4

Righe

RigaPin Arduino
R12
R23
R34
R45

Colonne

ColonnaPin Arduino
C16
C27
C38
C49

Relè

RelèArduino
IN10
VCC5V
GNDGND

LED Stato Sistema

LED VerdeArduino
AnodoPin 11
CatodoResistenza 220Ω → GND

Sempre acceso quando il sistema è operativo.

LED Erogazione

LED RossoArduino
AnodoPin 12
CatodoResistenza 220Ω → GND

Si accende durante l’apertura dell’elettrovalvola.


Utilizzo

Schermata Principale

Il display mostra continuamente:

HH:MM:SS

ad esempio:

14:35:27


Programmazione Eventi

Premere il tasto:

A

per entrare nel menu Programmazione.

Procedura

  1. Inserire il numero di eventi giornalieri.
  2. Premere # per confermare.
  3. Inserire l’ora del primo evento.
  4. Premere #.
  5. Inserire i minuti.
  6. Premere #.
  7. Inserire la durata dell’elettrovalvola in minuti.
  8. Premere #.

La procedura verrà ripetuta automaticamente per tutti gli eventi programmati.

Al termine:

  • gli eventi vengono salvati in EEPROM;
  • il sistema torna automaticamente alla schermata principale.

Visualizzazione Eventi

Premere:

B

per entrare nel menu Configurazione.

Successivamente:

1 = Visualizza eventi

Il primo evento verrà mostrato sul display.

Premendo:

si passa all’evento successivo.

Il display mostrerà:

Evento 1
08:30 D=2

dove:

  • 08:30 = orario evento
  • D=2 = durata 2 minuti

Cancellazione Eventi

Dal menu Configurazione premere:

2

Tutti gli eventi memorizzati verranno cancellati dalla EEPROM.


Reset Completo

Dal menu Configurazione premere:

C

Il sistema:

  • cancella la EEPROM;
  • riavvia Arduino;
  • ritorna alle impostazioni iniziali.

Funzionamento Automatico

Quando l’orologio RTC raggiunge l’orario programmato:

  1. Si accende il LED rosso.
  2. Il relè attiva l’elettrovalvola.
  3. Sul display compare:

EROGAZIONE

  1. Trascorso il tempo programmato:
    • il relè si disattiva;
    • il LED rosso si spegne;
    • il display visualizza:

FINE EROG.

  1. Dopo pochi secondi il display torna automaticamente a mostrare:

HH:MM:SS


Stato dei LED

LED Verde (Pin 11)

Indica che il sistema è acceso e funzionante.

Stato:

  • Sempre acceso.

LED Rosso (Pin 12)

Indica che è in corso un’erogazione.

Stato:

  • Acceso durante l’apertura dell’elettrovalvola.
  • Spento a fine erogazione.

Applicazioni

Il progetto può essere utilizzato per:

  • distributori automatici di crocchette;
  • distributori di mangime per allevamenti;
  • sistemi di irrigazione temporizzati;
  • dosatori automatici di liquidi;
  • distributori di alimenti per animali domestici.

Sorgente

Firmware sviluppato per:

  • Arduino Uno
  • RTC DS3231
  • LCD I2C 16×2
  • Keypad 4×4
  • Relè per elettrovalvola

L’intero sistema è completamente autonomo e non richiede collegamento a PC durante il funzionamento.