Boa tarde sou novato no forum, e estou tentando aprender algo sobre arduino ja sou programador delphi, agora queria implementar algo em conjunto com arduino, um cliente meu me pediu para eu criar algo que acione a sirene da escola em determinado horario exemplo liga a sirene as 07:00 desliga as 07:03 depois liga as 11:00 desliga as 11:03 e depois as 12:00 e assim por diante

estou usando o arduino nano e o rtc 1307 e um rele, so que nao sei qual a programação se alguem tiver algum exemplo 

para me ajudar eu agradeço

Exibições: 324

Responder esta

Respostas a este tópico

Boa tarde WF.

Seja bem vindo.

Minha primeira sugestão é que vc use o DS3231 ao invés do DS1307, por questões de precisão.

Qto ao code, existem vários disponíveis na net, mas vou colar aqui um exemplo que uso.

Para um programador, fica fácil altera-lo para disparar em horário estabelecido.

RV

Anexos

minerin 

obrigado o codigo foi carregado no arduino esta ok, agora onde posso colocar a parte que em determinada nora ele abre e fecha o rele??

me ajuda ai nao tem nem noção, acho que depois dele executando este processo eu vou entender melhor

aguardo

Da uma olhada neste site. Tem um projeto de temporizador com saidas de reles em horarios pre determinados. Alem de outros projetos bem interessantes. Tudo comentado.

http://www.automacaolivre.com.br

Bom dia WF,

veja se este funfa.

Controle do rele no port 5.

RV

Anexos

Boa noite Wellington 

Alguns colegas do Lab já desenvolveram projetos desse tipo de relógio. 

Sugiro que estude os projetos. 

O relógio DS1307 é impreciso, Use o DS3231 que é muito preciso. (recomendação do colega Rui).

http://labdegaragem.com/forum/topics/sirene-para-escola

http://labdegaragem.com/forum/topics/sinal-escolar-com-arduino

http://labdegaragem.com/group/arduinocdigoscdigos/forum/topics/camp...

Boa tarde a todos 

Desculpa a demora em responder.

Mas deu certo, peguei um exemplo na net e com ajuda de voces adaptei para minha necessidade

segue para quem tiver a mesma duvida

to #include "Wire.h"
#include <SPI.h>
#define DS1307_ADDRESS 0x68

int segundos;
int minutos;
int horas;
int diadasemana;
int diadomes;
int mes;
int ano;

byte zero = 0x00;

int rele = 7;
int buzzer = 3;
bool cafeteiraLigada;

void setup()
{
pinMode(buzzer,OUTPUT);
pinMode(rele, OUTPUT);
digitalWrite(rele, HIGH);
cafeteiraLigada = false;
Wire.begin();
Serial.begin(9600);

}

byte ConverteParaBCD(byte val){ //Converte o número de decimal para BCD
return ( (val/10*16) + (val%10) );
}

byte ConverteparaDecimal(byte val) { //Converte de BCD para decimal
return ( (val/16*10) + (val%16) );
}

void Mostrarelogio()
{
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 7);
int segundos = ConverteparaDecimal(Wire.read());
int minutos = ConverteparaDecimal(Wire.read());
int horas = ConverteparaDecimal(Wire.read() & 0b111111);
int diadasemana = ConverteparaDecimal(Wire.read());
int diadomes = ConverteparaDecimal(Wire.read());
int mes = ConverteparaDecimal(Wire.read());
int ano = ConverteparaDecimal(Wire.read());
//Mostra a data no Serial Monitor
Serial.print("Data: ");
Serial.print(diadomes);
Serial.print("/");
Serial.print(mes);
Serial.print("/");
Serial.print(ano);
Serial.print(" ");
Serial.print("Hora : ");
Serial.print(horas);
Serial.print(":");
Serial.print(minutos);
Serial.print(":");
Serial.print(segundos);
switch(diadasemana)
{
case 0:Serial.println(", Domingo");
break;
case 1:Serial.println(", Segunda");
break;
case 2:Serial.println(", Terca");
break;
case 3:Serial.println(", Quarta");
break;
case 4:Serial.println(", Quinta");
break;
case 5:Serial.println(", Sexta");
break;
case 6:Serial.println(", Sabado");
}

if ((horas == 16) and (minutos ==59)and (segundos==00)||(horas == 17)and (minutos == 2)and (segundos==00)||(horas == 17)and (minutos == 5)and (segundos==00) and (!cafeteiraLigada)) {
cafeteiraLigada = true;
digitalWrite(rele, LOW);
tone(buzzer,1500);
delay(10000);
cafeteiraLigada = false;
digitalWrite(rele, HIGH);
//delay(1000);
noTone(buzzer);

}


}

}

void loop()
{
Mostrarelogio();
delay(1000);
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço