Índice:
- Suprimentos
- Etapa 1: Visão geral do design
- Etapa 2: Visão geral do código
- Etapa 3: anexando o Nema 17 à placa de base e à broca
- Etapa 4: Fiação L298N e RTC
- Etapa 5: codificação com comentários
- Etapa 6: Problemas e como corrigi-los
Vídeo: Comedouro automático para cães: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
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
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
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
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
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
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
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:
Alimentador automático de cães !!: 4 etapas
Feederrr automático para cães !!: Fácil, útil e saudável
Comedouro automático para animais de estimação usando AtTiny85: 6 etapas
Alimentador automático de animais de estimação usando AtTiny85: O trabalho Alimentador automático de animais de estimação usando AtTiny85 de PET Engenharia de Computação está licenciado com uma Licença Creative Commons - Atribuição 4.0 Internacional
Dispensador automático para cães: 10 etapas
Dispensador Automático para Cachorro: Com o meu projeto, certifico-me de que quando você deixa seu cachorro sozinho em casa, ele nunca fica sem comida. O alimentador automático será " hackeado " de um distribuidor de cereais. O dispensador é o reservatório para comida de cachorro, a roda na parte inferior
Lançador automático de bolas para cães: 6 etapas
Lançador automático de bolas para cães: Ambos temos cães e, como todos sabem, os cães podem passar o dia todo jogando bola. É por isso que pensamos em uma maneira de construir um lançador automático de bolas
Comedouro automático para cães: 5 etapas
Comedouro automático para cães: Este é um tutorial passo a passo sobre como fazer um comedouro automático para cães usando o Arduino. É perfeito se você fica fora de casa a maior parte do dia. Em vez de seu cachorro ter que esperar o dia todo pela comida, ou fazer você se enfiar em casa para alimentá-lo, este dispositivo