Analisando propostas

Alimentador automatico para cães

Publicado em 07 de Novembro de 2021 dias na TI e Programação

Sobre este projeto

Aberto

Olá!
Eu tenho um projeto de um alimentador automático para cães que funciona a base de um arduino mega 2560 e modulo rtc, eu já tenho a maior e mais importante parte do código( a parte do rtc)
e eu preciso adicionar na programação uma forma da pessoa que vai utilizar tenha opção de definir a quantidade de comida ira cair no pote usando uma celula de carta, um display lcd e um teclado matricial.
Aceito contato para melhor entendimento do projeto, Desde já agradeço.
Segue abaixo lista de materias e parte do código que ja possuo.

– Placa arduino mega 2560
– Módulo Relógio Tempo Real RTC – DS1307;
– Driver Duplo Ponte H de motor DC ou Passo L9110s;
– Motor DC 3-6V 80RPM com Caixa de Redução 120:1;
– Extensor de Portas 0 a 6V 10 Saídas com Jack P4 – EPX10;
– Fonte de Alimentação: bateria
- Display lcd
- teclado matricial
-celula de carga


#include <RTClib.h>              // Inclui a Biblioteca

// Define os pinos de utilização do Driver L298.
Const int motorB1  = 5;      // Pino 5 no B1 do L293.
Const int motorB2  = 6;      // Pino 3 no B2 do L293.


RTC_DS1307 rtc;      // Inicia variáveis do RTC

int Hor;              // Define variável Hora
int Min;              // Define variável Minuto
int Sec;              // Define variável Segundo
int Data;            // Define variável Data

void setup()  {
  rtc.begin();        // Inicia o módulo RTC

  pinMode(motorB1, OUTPUT);  // Pino 5 é um pino de saída de sinal
  pinMode(motorB2, OUTPUT);  // Pino 6 é um pino de saída de sinal

  rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));    // Ajuste Automático da hora e data
  //rtc.adjust(DateTime(2020, 04, 16, 10, 00, 00));  // Ajuste Manual (Ano, Mês, Dia, Hora, Min, Seg)
}

void loop()  {
  Hor = rtc.now().hour();      // Verifica a Hora
  Min = rtc.now().minute();    // Verifica os Minutos
  Sec = rtc.now().second();    // Verifica os Segundos
  Data = rtc.now().day();      // Verifica o Dia

  // Verifica o horário e se o mesmo for igual à 12:00:00
  if ( Hor == 12 &&  Min == 00 && Sec == 00) {
    analogWrite(motorB1, 255);
    analogWrite(motorB2, 0);
    delay(3000);
    analogWrite(motorB1, 0);
    analogWrite(motorB2, 255);
    delay(2000);
    analogWrite(motorB1, 255);
    analogWrite(motorB2, 0);
    delay(3000);
    analogWrite(motorB1, 0);
    analogWrite(motorB2, 0);
  }

  // Verifica o horário e se o mesmo for igual à 18:00:00
  if ( Hor == 18 &&  Min == 00 && Sec == 00) {
    analogWrite(motorB1, 255);
    analogWrite(motorB2, 0);
    delay(3000);
    analogWrite(motorB1, 0);
    analogWrite(motorB2, 255);
    delay(2000);
    analogWrite(motorB1, 255);
    analogWrite(motorB2, 0);
    delay(3000);
    analogWrite(motorB1, 0);
    analogWrite(motorB2, 0);
  }

  delay(1000);                      // Aguarda 1 segundo e reinicia

Categoria TI e Programação
Subcategoria Programação

Prazo de Entrega: Não estabelecido

Habilidades necessárias