Kitty Caddy Cat Feeder
For my Real World Microcontrollers course, I created an automated cat feeder using an ATmega IC, a stepper motor, an OLED display and three input buttons. Click below to access the hardware files and create your own Kitty Caddy!
Kitty Caddy Schematic
The schematic for Kitty Caddy was designed in KiCAD EEschema. The ATmega328P microcontroller is powered by a TPS5430DDA buck converter that takes in 12V from a barrel jack connector and outputs 5V. The ATmega can be programmed using an ICSP connector and also using a standard Serial connector. The DS3231 Real-Time Clock is used to track current time even when the PCB is powered off. The UI consists of the OLED display and three input buttons, UP, MODE, and DOWN. The buttons are used to control the movement of feeder tray and are hooked up to a 74HC14D Schmitt trigger inverter for hardware implemented debouncing; the debounced signal is connected to the ATmega. The DRV8825 module is used to control the bipolar stepper motor that revolves the feeder tray. An optocoupler is used to track the feeder tray position.
Kitty Caddy PCB Design
The PCB layout was performed in KiCAD PCBnew. The top layer was PCB GND and was used for routing a few tracks. The first inner layer was filled with 5V plane and was the primary routing layer. The second inner layer was filled with 12V plane and was used primarily for routing tracks to the stepper motor connector. The bottom layer was another GND plane. The PCBs were manufactured and assembled by JLCPCB, a Chinese PCB manufacturer that specializes in low cost PCBs with a fast turnaround.
Top Layer - GND
Inner Layer 2 - 12V
Inner Layer 1 - 5V
Bottom Layer - GND
3D Model of Kitty Caddy PCB
PCB Front
This side of PCB is visible to the user after disassembling the housing. The front side of the PCB consists of the OLED display and three input buttons. PCB front corresponds to the bottom GND layer.
PCB Back
This side of PCB houses almost all the components. PCB back corresponds to the top GND layer.