Resolvido - Acionar motor motor 3,2 volt Arduíno uno alimentador automático

Boa noite, estou com um projeto simples de alimentador para aquário utilizando ração peletizada onde acionarei um motor de vibra call de celular para dosar a ração ao peixes, conforme vídeo em anexo.

Inicialmente gostaria de aciona-lo a cada 12 horas, mas sem o módulo RTC, pois ainda não o possuo.

Contudo a minha primeira duvida é como acionarei o vibracall no Arduíno, visto que o mesmo precisa de 3,2 volt para funcionar.

Outra duvida é como temporizar sem o módulo RTC, vi que é possível, mas não encontrei nenhum material sobre o assunto. Andei comprando alguns livros sobre o assunto, mas justamente o que me interessava não achei.

Estou entrando agora nesse mundo incrível do Arduíno e agradeceria a ajuda 

Exibições: 6889

Anexos

Responder esta

Respostas a este tópico

Então.. o seu projeto assim como o meu é um alimentador automático ininterrupto de 12 em 12 horas não é? 

Eu estou desenvolvendo um muito parecido para alimentar meu gato, de 1 em 1 hora.. Como não estou utilizando LCD, RTC nem nada.. E não existe nenhuma outra função para o arduino controlar estou utilizando o delay no intervalo de acionamento do servo motor.. 

Declaro as variaveis, e dentro do loop dou a posição do servo, e o delay..

Minha duvida é que quero adicionar um botão de dispenser manual.. alguem sabe me ajudar? 

Pq de uma em uma hora? não é muita ração?

Eu estava pensando em um assim, definir uma dose de ração padrão, em seguida pressionar o botão, acender um led indicando 1, equivalente a uma alimentação ao dia, se pressionar novamente o botão acendera 2 leds, indicando duas alimentações num com intervalo de 8/16 horas. Ao pressionar a terceira vez acenderá 3 leds indicando 3 alimentações com intervalos de 4/4/16 horas.

infelizmente eu ainda sou leigo para ajudar, estou no aguardo de chegar o resto dos meus componentes para terminar meu projeto.

Meu gato come mt kkkk.. mais no meu dosador fiz uma pedida controlavel.. cada acionamento libera uns 4, 5 graos só.. Prefiro assim, pois tera alimento o dia todo

Vc vai fazer seu gato enjoar da ração rsrsrs,  acho que mas quatro vezes ao dia era mais que suficiente.

"Resolvido" terminei o projeto o escopo do projeto 

o código de automação sem o RTC ficou assim: 

// temporizador para acionamento motor final

int seg=0, min=0,hor=0; // inteiros referente ao relógio
int motPin = 12; // pino de saida do sinal
int motState = LOW; // motState usado para armazena o estado atual do motor aceso o desligado
long intervalo = 1000; // intervalo de um segundo

void setup()
{
pinMode(motPin, OUTPUT); // saida do sinal para ativar o motor
Serial.begin(9600);

}
void loop (){

relogio();// aciona comando relógio
mot (); // aciona o comando motor

}
void relogio()
{
static unsigned long ult_tempo = 0;
int tempo = millis();
if(tempo - ult_tempo >= 1000) {
ult_tempo = tempo;
seg++;
}
if(seg>=60)
{
seg = 0;
min++;
}
if(min>=60) {
min = 0;
hor++;
}
if(hor>=24)
{
hor=0;
min=0;
}
Serial.print(hor); // imprime a hora no monitor serial para verificar se o relógio está funcionando
Serial.print(":");
Serial.print(min);
Serial.print(":");
Serial.println(seg);
}

void mot (){

if (hor == 6 || hor == 18 && min == 0 && seg <= 3){ // liga o motor quando for 6 ou 18 horas por aproximadamente 3 seg
motState = HIGH;//
}
else // caso contrário desliga o motor
{
motState = LOW; // caso contrário desliga o motor no restante do tempo
}

digitalWrite(motPin, motState);
if (motState == HIGH)
Serial.println("ligou"); // imprime ligou no serial monitor para verificar se o código está funcionando
else
Serial.println("desligou");// imprime "desligou" no serial monitor para verificar se o código está funcionando
}// fim

testei o código funciona o circuito ficou igual abaixo:

Utilizei os seguintes componentes
1 vibramotor de celular
1 TIP 222
1 resistor 1 k ohlm
1 diodo IN4007

no projeto final irei utilizar dois motores

Agora com o esquema funcionando só preciso descobrir quantos segundos o motor precisa funcionar para que derrube a quantidade de ração que eu preciso, mas isso é tranquilo.

Obrigado aos que contribuiram com o projeto e deixo ai para quem mais quiser utilizar a ideia para outros projetos

Anexos

Cara me ajuda ai to fazendo um alimentador para cães. e preciso de dois motores me ajuda, vc pode me mostrar como ficou o projeto final do seu alimentador com dois motores............

Clayton, interessante eu já pensei em fazer um alimentador de cães com meu circuito, mas ainda não sei como faria o dosador de ração para animais de grande porte.

Para o alimentador de peixes eu fiz uma pequena placa no final com RTC, com o garagino ficou bem fácil de montar o projeto. 

Estou trabalhando num código para controlar a dose de ração sem precisar reprogramar o Arduíno quando quiser alterar a quantidade de ração ou o numero de vezes que irá tratar os peixes, mas não está bom ainda, preciso estudar um pouco mais, mas o código em anexo já funciona bem para o que você quer.

Bom projeto

Anexos

só faltou o projeto no eagle, segue em anexo

Anexos

Eu to me baseando no seu código sem RTC,

// temporizador para acionamento motor final

int seg=0, min=0,hor=0; // inteiros referente ao relógio
int motPin = 12; // pino de saida do sinal
int motState = LOW; // motState usado para armazena o estado atual do motor aceso o desligado
long intervalo = 1000; // intervalo de um segundo

void setup()
{
pinMode(motPin, OUTPUT); // saida do sinal para ativar o motor
Serial.begin(9600);

}
void loop (){

relogio();// aciona comando relógio
mot (); // aciona o comando motor

}
void relogio()
{
static unsigned long ult_tempo = 0;
int tempo = millis();
if(tempo - ult_tempo >= 1000) {
ult_tempo = tempo;
seg++;
}
if(seg>=60)
{
seg = 0;
min++;
}
if(min>=60) {
min = 0;
hor++;
}
if(hor>=24)
{
hor=0;
min=0;
}
Serial.print(hor); // imprime a hora no monitor serial para verificar se o relógio está funcionando
Serial.print(":");
Serial.print(min);
Serial.print(":");
Serial.println(seg);
}

void mot (){

if (hor == 6 || hor == 18 && min == 0 && seg <= 3){ // liga o motor quando for 6 ou 18 horas por aproximadamente 3 seg
motState = HIGH;//
}
else // caso contrário desliga o motor
{
motState = LOW; // caso contrário desliga o motor no restante do tempo
}

digitalWrite(motPin, motState);
if (motState == HIGH)
Serial.println("ligou"); // imprime ligou no serial monitor para verificar se o código está funcionando
else
Serial.println("desligou");// imprime "desligou" no serial monitor para verificar se o código está funcionando
}// fim

Como ficaria no código anterior sem RTC???

Ah!!!!!!!! no alimentador de cães vc coloca um rosca sem fim para liberar a ração, olha esse exemplo to trabalhando em algo parecido.

http://www.youtube.com/watch?v=TV2NCd416yk

Clayton, interessante a rosca sem fim, agora quanto ao código eu recomendaria você utilizar um RTC, dá menos problemas, se o Arduíno sofrer qualquer oscilação de carga ele reinicia esta contagem. Os componentes do RTC são baratos, você pode compra-los no webtronico ou serial link por menos de 10 reais tirando frete, ou você compra ele pronto no labgaragem, vale muito a pena.

Outra dica que dou é tomar muito cuidado ao ligar motores no Arduíno, pois a saída deles aguentam no máximo 40 mA,  

Mesmo assim, o código sem RTC fica muito parecido com o código com RTC, você precisa declarar os pinos. segue em anexo o código. recomendo que você utilize o programa "Sublime text" para abrir editar os códigos é muito mais pratico.

Anexos

Tiago.

Preciso saber se vc pode me ajudar a cria um código para  mostrar a informações do serial monitor num display ligado ao arduino?

Clayton, para imprimir, tem que ver o modelo do display, para você poder adicionar a biblioteca dele no código, então você declara os pinos que irão acionar o display, conforme inúmeros exemplos que existem na internet, principalmente se for um display de 16 colunas 2 linhas (16x2), é o que mais tem exemplos.

Feito isso, é só substituir o "Serial.print" por "lcd.print", por exemplo.

Mas eu tenho pouca experiencia com lcd, até adquiri um lcd de nokia, mas ainda não executei nenhum projeto com ele.

qual display que você possui?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço