Índice:

Comedouro automático para cães: 6 etapas
Comedouro automático para cães: 6 etapas

Vídeo: Comedouro automático para cães: 6 etapas

Vídeo: Comedouro automático para cães: 6 etapas
Vídeo: Faça um alimentador automático para cachorros #ManualMaker Aula 12, Vídeo 2 2024, Novembro
Anonim
Comedouro automático para cães
Comedouro automático para cães

Este é o meu projeto de Alimentador Automóvel para Animais de Estimação. Meu nome é Parker, estou na 11ª série e fiz este projeto em 11 de novembro de 2020 como CCA (atividade culminante do curso). Nesse projeto irei mostrar a vocês como fazer um comedouro automático para animais de estimação com o Arduino UNO. Você pode escolher um horário que pode alterar. A comida será distribuída através de uma broca e alimentará seus animais de estimação!

Suprimentos

Eletrônicos:

  • Arduino UNO
  • L298N - 10 $ - Controla o Nema 17
  • NEMA 17 - 10 $ - Roda o sem-fim para que a comida seja distribuída
  • RTC (DS1307) - 10 $ - Dá a hora
  • Fonte de alimentação 12V - 5 $ - alimenta tudo
  • Mini breadboard - para espaço de fiação extra
  • Jumper Wires - conecta tudo
  • Fios fêmea para macho - conecta tudo

Hardware:

  • Filamento de impressão 3D - para impressora 3D
  • 2 parafusos M4 - Segure a placa de base no lugar
  • 4 parafusos Nema 17 - Segure o nema
  • PVC T 48mm dentro da dimensão 66mm fora da dimensão - 3 $

Ferramentas:

  • impressora 3d
  • Furar
  • Arma de solda

Etapa 1: Visão geral do design

Visão geral do design
Visão geral do design
Visão geral do design
Visão geral do design
Visão geral do design
Visão geral do design
Visão geral do design
Visão geral do design

O design do comedouro para animais de estimação é muito simples. Uma tremonha vai para o topo do PVC T. Em seguida, uma tampa é colocada na parte traseira do PVC T (como mostrado na foto) com o Nema 17 preso a ela. Em seguida, o Nema 17 será empurrado para a parte de trás do trado, que pode ser visto acima, e um parafuso será inserido na lateral para prendê-lo no lugar, de forma que não deforme o orifício que pode ser visto acima!

Em seguida, a broca simplesmente empurra o alimento para fora do tubo e para uma tigela!

Etapa 2: Visão geral do código

Visão geral do código
Visão geral do código
Visão geral do código
Visão geral do código
Visão geral do código
Visão geral do código

O RTC e o stepper têm uma biblioteca chamada RTClib.he Stepper.h que adiciona código simplificado para o RTC e o Stepper. As declarações if são muito simples, pois diz que se a hora e os minutos são iguais ao tempo mencionado, ele girará o nema que dispensará a comida. O resto do código é muito fácil de entender, mesmo para alguém com um dia de experiência.

Etapa 3: anexando o Nema 17 à placa de base e à broca

Anexando Nema 17 à placa de base e broca
Anexando Nema 17 à placa de base e broca
Anexando Nema 17 à placa de base e broca
Anexando Nema 17 à placa de base e broca
Anexando Nema 17 à placa de base e broca
Anexando Nema 17 à placa de base e broca

Primeiro você deseja pegar sua placa de base e fixá-la em seu Nema 17 usando os orifícios pré-feitos na placa de base. Uma vez feito isso, você deseja anexar a broca ao Nema usando o orifício traseiro nele. Em seguida, conecte a placa de base com o sem-fim e Nema anexados e, em seguida, aparafuse os parafusos M2 em cada lado.

Etapa 4: Fiação L298N e RTC

Fiação L298N e RTC
Fiação L298N e RTC
Fiação L298N e RTC
Fiação L298N e RTC

Esta etapa irá lhe dizer como conectar o L298N e RTC

Estaremos começando com os pinos 8, 9, 10, 11 para o L298N

  • Pino 8 (branco) para IN1
  • Pino 9 (roxo) para IN2
  • Pino 10 (rosa) para IN3
  • PIN 11 (amarelo) para IN4

Em seguida, estaremos conectando o Nema 17 ao L298N

  • OUT1 a 1 em NEMA
  • OUT2 a 2 em NEMA
  • OUT3 a 3 no NEMA
  • OUT4 a 4 em NEMA

Conectando 12v e Arduino ao L298N (não foi possível encontrar 12V, então imagine uma bateria de 9V como energia)

  • Volts para 12V
  • Terra para GND
  • 5V a 5V na placa de ensaio

Conectando RTC ao Arduino

  • GND para GND
  • 5V a 5V na placa de ensaio
  • SDA para A5
  • SCL para A4

Pinos de jumper

Todos os pinos do jumper devem estar no L298N

Etapa 5: codificação com comentários

Codificação com comentários
Codificação com comentários
Codificação com comentários
Codificação com comentários
Codificação com comentários
Codificação com comentários

O código mais claro nas imagens acima

// Nome: Parker Frederick

// Nome do projeto: Alimentador de animais de estimação // Data: Terça-feira, 10 de novembro de 2020 // Professor: M. Bonisteel // Desc: Alimente seus animais de estimação na hora certa!

// Bibliotecas para as coisas que usei #include #include #include "RTClib.h"

RTC_DS1307 rtc; // Diz o que RTC estou usando

// É aqui que você define a hora da comida

// Horas int mornFeedTime = 12; int nightFeedTime = 7; // Minutos int mornFeedTimeM = 29; int nightFeedTimeM = 00; // Segundos int mornFeedTimeS = 20; int nightFeedTimeS = 00;

char daysOfTheWeek [7] [12] = {"Sunday", "Monday", "Tuesday", "Wedsneday", "Thursday", "Friday", "Saturday"}; // Faz com que os dias normais se transformem em dias da semana

const int feed = 200; // Estes são os seus passos, quantas vezes você quer que ele gire

Stepper myStepper (feed, 8, 9, 10, 11); // Seus pins para o Nema 17 e a maioria dos outros steppers

void setup () {Serial.begin (9600);

while (! Serial); // Se o RTC não estiver funcionando, ele será exibido na tela serial if (! Rtc.begin ()) {Serial.println ("Não foi possível encontrar RTC"); enquanto (1); }

// Isso irá dizer se o Real Time Clock está ou não rodando e irá exibi-lo na tela serial if (! Rtc.isrunning ()) {Serial.println ("RTC is running!");

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Isso levará o tempo do seu computador e o usará no RTC

// Se você deseja definir um horário em vez do horário do computador, pode fazê-lo aqui //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Ano / Mês / Dia / Hora / Minuto / Segundos} myStepper.setSpeed (200); // Velocidade que você deseja que ele gire}

void loop () {DateTime now = rtc.now ();

// Isso fará com que essas variáveis sejam a hora em que são agora etc int hr = now.hour (); int mi = agora.minuto (); int se = agora.segundo ();

// Codifique para que na hora definida ele dispense a comida e gire 5 vezes, isso se for para a ração matinal

if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) {Serial.println ("Café da manhã!"); myStepper.step (-feed); atraso (700);

myStepper.step (-feed); atraso (700);

myStepper.step (-feed); atraso (700);

myStepper.step (-feed); atraso (700);

myStepper.step (-feed); atraso (700);

myStepper.step (-feed); atraso (700);

myStepper.step (-feed); atraso (700);

}

// Codifique para que na hora definida ele dispense a comida e gire 5 vezes, isso é para a alimentação noturna

if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) {Serial.println ("Jantar!"); myStepper.step (-feed); atraso (700);

myStepper.step (-feed); atraso (700);

myStepper.step (-feed); atraso (700);

myStepper.step (-feed); atraso (700);

myStepper.step (-feed); atraso (700);

myStepper.step (-feed); atraso (700);

myStepper.step (-feed); atraso (700); }

// Isso exibirá o ANO, MÊS, DIA, HORA, MINUTO, SEGUNDO na série

Serial.print (now.year (), DEC); Serial.print ('/'); Serial.print (now.month (), DEC); Serial.print ('/'); Serial.print (now.day (), DEC); Serial.print ("("); Serial.print (daysOfTheWeek [now.dayOfTheWeek ()]); Serial.print (")"); Serial.print (now.hour (), DEC); Serial.print (':'); Serial.print (now.minute (), DEC); Serial.print (':'); Serial.print (now.second (), DEC); Serial.println (); }

Site que usei para o RTC, excluí a maioria das coisas, exceto as declarações if que dizem se o RTC está ativado ou desativado. Usei este site principalmente para aprender como programar o RTC

O site que usei para o motor de passo me ajudou a entender como programar o motor de passo para funcionar. Na verdade, não escondi nada dele. Isso apenas me ajudou a entender como codificá-lo

Etapa 6: Problemas e como corrigi-los

Problemas e como corrigi-los!
Problemas e como corrigi-los!

Alguns problemas que tive

  • Eu precisava de fonte de alimentação de 12v, só tinha bateria de 9v, encontrei uma e resolvi rápido.
  • Ao conectar o L298N com o NEMA 17, eu tinha os fios errados em A e A- o que o fez tremer um pouco. Eu simplesmente consertei trocando os fios de outra maneira.
  • Tentei tornar o código mais simples porque na instrução if myStepper.step (-feed); repetidamente parecia confuso. Então eu tive que mudar de volta.
  • Eu tinha a placa de base do tamanho errado, como pode ser visto na imagem, então tive que imprimir um pouco em 3D uma nova e ela se encaixou perfeitamente!
  • O problema que eu tenho é que ele emperra, pois a broca é muito pequena, então ela emperra uma maneira simples que posso consertar é aumentar a broca um pouco!

Recomendado: