Ir ao conteúdo
  • Cadastre-se
Jardiel Nascimento

C código do arduino nao reconhece minutos...

Recommended Posts

pessoal estou usando esse codigo para controlar o pwm.  

ex: 

  EEPROM.write(2,200 ); 
  }else if(horas == 21){
  EEPROM.write(2,170 ); 
  }else if(horas == 21 && minutos == 30){

na parte que uso a hora para mudar o pwm ele muda beleza, mas quando acrescento minutos ele nao muda, so muda pra hora seguinte. alguem poderia me ajudar ?   todo o codigo esta no arquivo.

codigo.txt

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
1.			EEPROM.write (2, 200); 
2. }else if (horas == 21){
3.			EEPROM.write (2, 170); 
4. }else if (horas == 21 && minutos == 30){

Para todas horas == 21, a proposição na linha 2. será sempre verdade, disso jamais a condições na linha 4. será executada!

adicionado 1 minuto depois

Dúvidas, críticas e perguntas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas se chegar às 21: 30, a segunda linha não vai ser mais verdade, então se tornando a 4 linha como verdade. Não seria assim? Se não,  como eu teria que fazer pra executar a 4 linha, depois da segunda? 

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 minutos atrás, Jardiel Nascimento disse:

Mas se chegar às 21: 30, a segunda linha não vai ser mais verdade, então se tornando a 4 linha como verdade

Não, porque horas também tem 21 nessa situação.

 

3 minutos atrás, Jardiel Nascimento disse:

Se não,  como eu teria que fazer pra executar a 4 linha, depois da segunda? 

1.			EEPROM.write (2, 200); 
2. }else if (horas == 21 && minutos != 30){
3.			EEPROM.write (2, 170); 
4. }else if (horas == 21 && minutos == 30){

 

adicionado 3 minutos depois

Em especial todo instante em que horas tem 21, e minutos tem 30 a linha 4 será executada. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou testar aqui, Agradeço a ajuda.

adicionado 25 minutos depois

Testei aqui e não funcionou.

Vou tentar explicar o que eu estou fazendo. Estou querendo controlar um led com o pwm, ex: 9:00 quero que ele esteja com o sinal do pwm em 100, 9:30 quero que ele fique com 255 do pwm. Ele faz isso se eu usar só a hora, mas quando eu coloco pra fazer com o minutos ele não muda. 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, Jardiel Nascimento disse:

Estou querendo controlar um led com o pwm, ex: 9:00 quero que ele esteja com o sinal do pwm em 100, 9:30 quero que ele fique com 255 do pwm. Ele faz isso se eu usar só a hora, mas quando eu coloco pra fazer com o minutos ele não muda. 

 

Temos então um intervalo fechado que vai de 9 à 9:59, disso vem:

          Enquanto horas tem 9, e minutos tem < 30: O pwm é 100.

          Enquanto horas tem 9, e minutos tem 30+:  O pwm é 255.

 

Código C:

1. }else if (horas == 21 && minutos <  30){
2.			EEPROM.write (2, 100); 
3. }else if (horas == 21 && minutos >= 30){
4.			EEPROM.write (2, 255); 
5. }

1. No intervalo de 9:00 a 9:29, pino 2 tem pwm 100.

3. No intervalo de 9:30 a 9:59, pino 2 tem pwm 255.

Fora e dentro desse intervalo ]9:00, 9:59[ vai depender do resto da implementação na sketch .

 

 

 

Dúvidas, críticas e perguntas?

Ps.: 9 PM ~ 21 H

 

 

adicionado 3 minutos depois

Tive que editar alguns detalhes!

adicionado 16 minutos depois
16 minutos atrás, AnsiC disse:

Ele faz isso se eu usar só a hora, mas quando eu coloco pra fazer com o minutos ele não muda. 

Verifique se a variável minuto tem os valores certos.

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
11 minutos atrás, Jardiel Nascimento disse:

Deu certo AnsiC, obrigado pela ajuda!!!

Por nada! Fico fez em ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outro problema me surgiu, tô enviando pwm por dois pinos, até aí beleza, mas as vezes o pwm n corresponde ao que coloquei. Ex: pino 5 envia 220, recebo 220. Pino 6 envia 110, recebo 56. Alguma ideia do que pode ser? 

20180720_184252.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

São dois valores estranhos para hora: 18:43:8

Conforme na sketch, não existe instante para que tenha 26 no canal 0, no mesmo horário (18H) está conforme observei no código C:

18 < horas < 19:

           canal 0 ←   90 ← Pino 5 ← led   ← Valor   PWM

           canal 2 ← 110 ← Pino 6 ← led2 ← Valor2 PWM

 

 

Ps.: o porquê do acesso da memória  EEPROM resultar em valores incompatíveis ao previsível, isso realmente não consigo ver nas informações da sketch: tanto no arquivo quando na imagem.

 

 

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

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





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

×