Construa Seu Próprio Alimentador Inteligente para Pets com Arduino Nano
Componentes e Materiais
| Quant. | Item | Observações |
|---|---|---|
| 1 | Arduino Nano R3 | Ideal para gabinete compacto |
| 1 | Relógio de Tempo Real (RTC) DS3231 (Adafruit) | Chip DS3231 genuíno para precisão extrema |
| 1 | Servo de Rotação Contínua | Compre um de qualidade (ex.: HSR-2645CRH) |
| 1 | Dispensador de Cereais | Barato no eBay; usei modelo duplo por €15 c/ frete |
| 1 | Sensor Hall Unipolar (Honeywell SS443R) | Detecta ímãs para controle preciso de porção |
| 6 | Ímãs Cilíndricos 3mm x 5mm | Fixados no disco do eixo do dispensador |
| 1 | LCD RGB 16x2 com Backlight (Adafruit) | |
| 1 | Mochila I2C para LCD | |
| 1 | Botão Momentâneo IP67 (Apem) | |
| 1 | Botões Momentâneos Pequenos | |
| 6 | LEDs (2 vermelhos, 3 verdes, 1 amarelo) | |
| 1 | Gabinete ABS com Flange (Hammond) 120x65x40mm | |
| 1 | Fonte Externa 12V/1A | |
| 2 | Resistores 1kΩ (LEDs vermelhos) | |
| 4 | Resistores 560Ω (LEDs verde/amarelo) | |
| - | Conectores fêmea de precisão, fios, muita cola quente |
Opcional: Alimentação do Servo em 7,4V (mais torque)
- Placa perfurada
- Regulador LM317T
- Resistores 1kΩ, 150kΩ, 4,7kΩ para ajuste de tensão
- Capacitores 220µF e 10µF
- Dissipador não necessário (servo gira apenas 1-2 seg/dia)
Use calculadoras online de LM317 para definir os resistores.
Aplicativos e Serviços Online
- Gerador de Caracteres LCD – para criar símbolos personalizados
Sobre o Projeto
Atualização 2018-09-06
Meus dois alimentadores funcionam perfeitamente há 7 meses. Os pets recebem ração em horários regulares. Muito satisfeito com o sistema!
Por Que Mais Um Alimentador?
Baseado em Arduino, materiais baratos e fácil de construir. Não encontrei projeto completo com as funções que precisava, então criei do zero.
Funcionalidades
- Porções precisas a cada acionamento (sensor Hall)
- Dois horários de alimentação por dia
- RTC DS3231 extremamente preciso (apenas chip genuíno)
- Cancelamento individual de cada refeição programada (com indicação no display e LED; reset automático após o horário)
- Alimentação manual (uma porção por pressão do botão)
- Porções ajustáveis para cada horário (1 a 9)
- Visão geral de todos os parâmetros na tela principal
- Menu de navegação simples
- LED indicador de alimentação bem-sucedida
- Backlight do LCD apaga após 30s; acende com qualquer botão
- Configurações salvas em EEPROM
- Backup em caso de falha do sensor Hall
Vídeos Demonstrativos
- Vídeo principal
- Explicação detalhada
- Alimentador em câmera lenta
Fotos


O Recipiente de Ração
Dispensadores de cereais (comuns em lojas e eBay) são os mais baratos e fáceis. Comprei um duplo por €15. O desafio foi criar a fixação. Usei cedro de 3 cm de espessura para evitar vibrações. O furo deve ser justo (meu dispensador tem base de 86 mm); melhor furar menor e alargar com lixa.


(Outras fotos mostram detalhes da fixação, furação e acabamento.)
O Servo e a Fixação na Roda do Dispensador
Use servo de rotação contínua de qualidade. Tentei modificar um MG996R – falhou. O HSR-2645CRH funcionou perfeitamente.
Conexão servo-roda: Cortei disco de 6 cm em policarbonato 5 mm, furei centro (8 mm, eixo do dispensador) e 6 furos de 3 mm na borda para os ímãs (60° entre si). O sensor Hall detecta cada ímã, permitindo posicionamento exato. A variável FEEDER_STOP_DELAY ajusta o atraso de parada após a alimentação para que a roda pare na posição correta (evitando que ração fique presa).
Colei o eixo do dispensador no disco de policarbonato. A haste do servo (branca) foi parafusada no disco com 3 parafusos M3 e porcas como espaçadores.
Com o servo integrado, medi a altura necessária do bloco de madeira sob ele.
O Sensor Hall
Tipo unipolar: saída LOW quando ímã se aproxima; não precisa polaridade inversa para resetar. Requer resistor pull-up 10kΩ (soudei SMD 0805 direto no sensor). Usei corpo de caneta esferográfica como suporte do sensor.
Gabinete da Eletrônica
Gabinete Hammond ABS 120x65x40mm. Conexões externas com soquetes fêmea de precisão (evitam falhas por mau contato). Inclui conector FTDI externo para programação fácil.
Painel Frontal
Testei várias técnicas: Mod Podge (falhou), verniz poliuretano (não adere ao toner), laminação PVC (parcial), folha de alumínio para laser (boa, mas proteção falhou). Acabei usando impressão em folha de alumínio sem proteção – aceitável, embora marque digitais.
Código
Pet Feed-O-Matic v1.1 (20-02-2018)
Código completo (truncado aqui; baixe o arquivo para versão integral). Principais trechos:
// Bibliotecas
#include <LiquidCrystal_I2C.h>
#include <Button.h>
#include <DS3232RTC.h>
#include <Time.h>
#include <Wire.h>
#include <EEPROM.h>
// Pinos
#define HALL_SENSOR_PIN 3
#define BUTTON_BACK_PIN 4
#define BUTTON_UP_PIN 5
#define BUTTON_DOWN_PIN 6
#define BUTTON_SELECT_PIN 7
#define BUTTON_CANCEL1_PIN 8
#define BUTTON_CANCEL2_PIN 9
#define BUTTON_MANUAL_PIN 10
#define LED_CANCEL1_PIN A0
#define LED_CANCEL2_PIN A1
#define LED_SUCCESS1_PIN A2
#define LED_SUCCESS2_PIN A3
#define SERVO_OUTPUT_PIN 12
#define LED_HALL_SENSOR_PIN 13
// Constantes ajustáveis
#define HALL_SENSOR_BACKUP_VALUE 300
#define FEEDER_STOP_DELAY 100
#define LCD_BACKLIGHT_ON_TIME 30000
#define MENU_TIMEOUT_VALUE 7000
// Objetos
LiquidCrystal_I2C lcd(0x3F, 16, 2);
Button buttonSelect(BUTTON_SELECT_PIN, true, true, 20);
Button buttonUp(BUTTON_UP_PIN, true, true, 20);
Button buttonDown(BUTTON_DOWN_PIN, true, true, 20);
Button buttonBack(BUTTON_BACK_PIN, true, true, 20);
Button buttonCancel1(BUTTON_CANCEL1_PIN, true, true, 20);
Button buttonCancel2(BUTTON_CANCEL2_PIN, true, true, 20);
Button buttonManual(BUTTON_MANUAL_PIN, true, true, 20);
// Máquina de estados (FSM) para menu e operação
enum STATES { MAIN, MENU_EDIT_FEEDTIME1, MENU_EDIT_FEEDTIME2, MENU_EDIT_FEEDAMOUNT,
MENU_EDIT_TIME, MENU_EDIT_DATE, EDIT_FEED_TIME1_HOUR, EDIT_FEED_TIME1_MINUTE,
EDIT_FEED_TIME1_ON_OFF, EDIT_FEED_TIME2_HOUR, EDIT_FEED_TIME2_MINUTE,
EDIT_FEED_TIME2_ON_OFF, EDIT_FEED_AMOUNT1, EDIT_FEED_AMOUNT2,
EDIT_HOUR, EDIT_MINUTE, EDIT_DAY, EDIT_MONTH, EDIT_YEAR,
EDIT_SERVO_STOP_DELAY, EDIT_SERVO_BACKUP_DELAY };
// Interrupção do sensor Hall
volatile boolean hallSensorActivated = false;
void HallSensorIsr() {
hallSensorActivated = true;
digitalWrite(LED_HALL_SENSOR_PIN, HIGH);
}
void setup() {
lcd.begin(); lcd_backlight_ON();
Wire.begin();
pinMode(HALL_SENSOR_PIN, INPUT_PULLUP);
pinMode(LED_HALL_SENSOR_PIN, OUTPUT);
pinMode(SERVO_OUTPUT_PIN, OUTPUT);
// ... configuração LEDs, criação de caracteres customizados, servo desligado
Wire.begin();
setSyncProvider(RTC.get);
setSyncInterval(60);
RTC.squareWave(SQWAVE_NONE);
attachInterrupt(1, HallSensorIsr, FALLING);
ledsAndLcdDisplayStartup();
state = MAIN;
get_feed_time1(); get_feed_time2(); // lê EEPROM
}
void loop() {
change_states();
check_inputs();
check_alarm();
check_manual_feed();
midnight_reset();
check_RTC();
hallSensorCheck();
check_LcdBacklight();
}
// Funções de estado, leitura de botões, controle do servo, display, EEPROM, etc.
// (Código completo no arquivo anexo: arduino_pet_feeder_final_eng_v1_0-ino_hex_libraries_dsoo0HscCr.zip)
Esquemáticos
Esquemático do alimentador baseado em Arduino.

Use Arduino IDE 1.8.2. Evite ter duas versões da mesma biblioteca na pasta libraries!
Processo de manufatura
- Produção de Ração para Animais: Dos Ingredientes à Regulamentação — Guia Completo
- Console de Controle DIY para Photoshop com Arduino Nano RP2040
- Construa um Spybot Controlado por Bluetooth com Arduino
- Kit Arduino Nano: CrazyCircuits, Sensores DFRobot e Ferramentas – Crie Projetos com Confiança
- Construa um Jogo Tetris com Arduino Nano em Matriz LED 16×8 DIY
- Construa Seu Próprio Tamagotchi com Arduino: Projeto DIY de Pet Digital
- Controle Dois Motores de Passo com Arduino Nano e Joystick – Tutorial Simples
- Alimentador de Pets Controlado Remotamente com Arduino: Kit DIY e Guia de Construção
- Contador Geiger Portátil com Arduino Nano: Construa o Seu
- Shield TFT 2,8" para Arduino Nano – Display SPI 320×240 de Alto Desempenho