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
Tags:
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
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.
Bom dia WF,
veja se este funfa.
Controle do rele no port 5.
RV
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);
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por