Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
Luiz Fernando Vieira

RTC + servo motor

Recommended Posts

Olá a todos eu estou com dificuldades e fazer uma junção de comandos um usando RTC e o outro ativação do servo motor que deve ser acionado de acordo com o tempo que e colocado.

Exemplo

12:00 mover 1 grau no servo 

12:43 mover +1 grau no servo.

 

 ESTE É O RTC

#include <Wire.h> //inclui biblioteca Wire.h
#include "RTClib.h" //inclui biblioteca RTClib.h

RTC_DS1307 rtc; // cria um RTC_DS1307 chamado rtc

char daysOfTheWeek[7][14] = {"Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "sábado"};
//a linha acima é um array com os dias da semana

String zero(int n){ //função que verifica se o numero é menor
//que dez, e se for adiciona o 0 antes
if(n < 10){ //Exemplo: entra 5, sai 05-> 00:05:00
return "0" + String(n); //como seria-> 00:5:00
}else{
return String(n);
}
}

void printAgora(){ //função que imprime -a hora atual
DateTime now = rtc.now(); //variavel now do tipo DateTime e define ela como a hora do rtc
Serial.print(String(daysOfTheWeek[now.dayOfTheWeek()]) + ", " + zero(now.day()) + "/" + zero(now.month()) + "/" + now.year());
Serial.print(" - ");
Serial.println(zero(now.hour()) + ":" + zero(now.minute()) + ":" + zero(now.second()));
//as três linhas de cima imprimem as informações: dia da semana, dia/mês/ano - hh:mm:ss
}

void setup(){
Serial.begin(9600);
if(!rtc.begin()){ //se !(nao) iniciar o rtc imprime a mensagem.
Serial.println("RTC nao encontrado.");
while(1);
}

//rtc.adjust é a função que envia a data e hora para o rtc:
rtc.adjust(DateTime(2017, 10, 8, 19, 53, 0)); //descomente essa linha para alterar a hora do RTC!

if(!rtc.isrunning()){ //se o rtc !(nao) estiver funcionando, ajusta ele com a
Serial.println("RTC nao esta funcionando!"); //data e hora da compilação do sketch
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}

void loop(){
printAgora(); //executa a função que imprime as informações
delay(1000); //delay de 1 segundo(1000ms), deve remover/comentar essa linha se estiver utilizando um LCD.
}

 

 

O CÓDIGO ACIMA  FUNCIONA, AGORA  NÃO CONSIGO ATIVAR O MOTOR 

QUANDO ATINGIR OS TEMPOS DETERMINADOR ELE NÃO FUNCIONA 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem um while(1); dentro do void setup... a função nunca vai sair daí... o código para baixo será ignorado, não?

 

Cadê a programação do servo motor? Qual circuito você está usando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×