Boa Noite, galera!

Estou terminando um projeto na universidade, mas preciso acionar um motor 1x ao dia, porém não sou muito familiarizado com acionamento de motores com arduino, estava estudo sobre o assunto e vi alguns tutorial utilizando as portas PWM, mas acho que para esse projeto vou precisar utilizar uma ponte h, pois preciso acionar um motor diretamente e inversamente, igual a um driver de cd. A minha duvida é como vou acionar esse motor em um determinado horario do dia, por exemplo 12h ? Vou enviar o código da programação até o momento. Agradeço a ajuda

Exibições: 644

Anexos

Responder esta

Respostas a este tópico

Qual motor vai usar ? envie o link com as especificações. E foto se tiver. 

Então José, tenho alguns motores aqui em casa de aparelho de som, de drivers, não sei se para esse projeto preciso de um motor especifico. Achei um aqui de 12V, se eu fizer um jogo de engrenagens consigo um torque suficiente para movimentar o limpador do painel. Mas posso está enganado, sou novo ainda nessa área.

Limpador de painel ? Explique por favor. 

Estou fazendo um trabalho de conclusão de curso (tcc) para automatizar um sistema fotovoltaico. Já fiz a parte de comunicação dos dados de Corrente, Tensão, Potência, tudo via Wifi e salvando os dados em um Sd-Card. Agora vem a parte mais complicado (pelo menos pra mim) que é acionar um motor para fazer um trilho andar sobre o painel com um limpador de para brisa (tipo um rodo) e acionar um bomba d'agua tmb, para molhar o painel. Não sei se ficou bem explicado.

Entendi sim. Mas um painel fotovoltaico suja tanto assim ? 

A limpeza pode ser feita manualmente a cada seis meses, não ?

Pretende usar um motor CC ? eles consomem um bocado de energia...

Depende do local da instalação. Em locais onde o índice de poeira é alto é recomendado fazer a limpeza frequentemente, visto que aquela camada de poeira que forma em cima dos painéis prejudica tanto na sua geração quanto na vida útil do mesmo. E como o local de estudo aqui é muito quente (RN) o painel trabalha acima da temperatura recomendada. Então quando se faz a limpeza, estou tanto retirando a sujeira quanto diminuindo a temperatura do painel. Claro, isso é um trabalho de conclusão de curso, nada provado cientificamente ainda, só estudos feitos em cima mesmo. Quanto ao motor cc, vou usar um pequeno, pois é só um protótipo, o painel que vou utilizar tem as seguintes dimensões: 30cmx65cm.

Ok , sugiro que monte primeiro o limpador e depois escolha o motor. 

Assim terá uma idéia de quanta força será necessária para o limpador. 

Recomendo que use o menor motor possível, para evitar gasto de energia. 

Pois é, minha ideia era de alimentar tudo através do painel fotovoltaico, porém ele só me fornece uma tensão de 20v e uma corrente de 2A. Mas caso seja necessário, utilizo uma fonte externa, o importante é conseguir fazer esse motor acionar uma vez ao dia.

//Carrega a biblioteca do RTC DS1307
#include <DS1307.h>

//Modulo RTC DS1307 ligado as portas A4 e A5 do Arduino
DS1307 rtc(A4, A5);

void setup()
{
//Aciona o relogio
rtc.halt(false);

//Ajusta a hora

//rtc.setTime(16, 00, 00); //Define o horario
//rtc.setDate(10, 9, 2016); //Define o dia, mes e ano

//Definicoes do pino SQW/Out
rtc.setSQWRate(SQW_RATE_1);
rtc.enableSQW(true);

Serial.begin(9600);
pinMode(12, OUTPUT);
}

void loop()
{
//Mostra as informações no Serial Monitor
Serial.print("Hora : ");
Serial.print(rtc.getTimeStr());
Serial.print(" ");
Serial.print("Data : ");
Serial.print(rtc.getDateStr(FORMAT_SHORT));


//Aguarda 1 segundo e repete o processo
delay (1000);

if (strcmp(rtc.getTimeStr(), "16:02:00") != 0) //Define a hora
{
digitalWrite (12, HIGH);// Eleva tensao pino 12 para 5V
delay (10000);// Atrasa 50ms
}
{
digitalWrite (12, LOW); //Abaixa tensao pino 12 para 0V
}

}

Tentei fazer assim, mas o Led fica aceso direto. Acho que preciso declarar um variável para fazer o laço. Tipo chamar rtc.getTimeStr() = horas.

Oi MFB, bom dia.

Não sei se já resolveu seu problema, mas segue um arquivo com o seu code ligeiramente modificado.

Teste, e depois nos dê noticia do resultado.

Rui

Anexos

Valeu mais uma vez Rui.

Funcionou sim, estranho é que eu tava fazendo parecido com o seu e não rodou.

String hora = rtc.getTimeStr();
String hora1 = "17:44:00";


if (hora == hora1)
{
Serial.println("Luz acesa");
digitalWrite(led, HIGH);
}

else

{
Serial.print(" ");
Serial.println("Nao e hora de ligar a luz");
digitalWrite(led, LOW);
}
}

Deixa eu te perguntar Rui, você acha mas interessante usar uma Ponte H para fazer o motor girar por determinada distancia (ou até encostar em um sensor) e voltar ao seu local inicio, ou realizar a programação mesmo através das portas PWM do arduino ? estava lendo um tutorial que o cara utiliza as entradas PWM, para diminuir a rotação do motor, mas sem perder potência (torque).

 

Enfim, valeu mais uma vez ai pela força.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço