Ir ao conteúdo

Posts recomendados

Postado

Oi,

 

Por favor, alguém sabe como fazer (se é que tem como) para desligar o PIC e/ou Arduino por software ?

 

Tenho um projeto que já está funcional. Atualmente ele tem uma chave comum de liga/desliga mas gostaria de colocar um temporizador para desligá-lo após um certo tempo sem atividade e, se possível até incrementá-lo para ligar/desligar através de um botão, ao invés de usar a chave.

 

Obrigado

Celso

Postado

@celsolrc

 

Isso que você quer é uma função chamada Sleep, depois de certo tempo de inatividade o microcontrolador entra em stanby(baixo consumo) e se voltar a ter atividade ele reativa novamente, geralmente por algum evento externo.

 

Dá uma estudada no datasheet do seu microcontrolador e também no manual da sua IDE que vai encontrar as respostas.

 

Se mesmo assim você quiser realmente "desligar", aí vai ter que ser por meio da eletrônica analógica mesmo, o que seria uma gambiarra mas é possível hehehe.

Postado

Oi,

 

Eu vi o sleep e testei mas o resultado não me agradou pois, em tese, ele continua "funcionando". Por exemplo, o display, continuaria acesso se eu não mandar desligar ou apagar...

 

Pergunto isso porque já vi dispositivos que podem ser ligados ou desligados pressionando um botão e esperava poder fazer o mesmo.

 

O principal para mim seria desligar em caso de "esquecerem" ligado.

 

Pensei, se não encontrar solução melhor, manter a chave convencional e, após um tempo sem uso, desativar tudo (apagar leds, display, desabilitar interrupcoes, etc) e chamar o sleep... Não era exatamente o desejado mas, ao menos, vai gastar menos (mas vai continuar consumindo, e o que é pior, sem ninguém saber pois vai estar todo apagado...

Postado

@celsolrc ,

 

Sempre tem como dar um jeitinho, meu amigo.

 

Por exemplo, nos Avrs ( usados no Arduíno ) , você pode programar o Watchdog para ele rodar de tempos em tempos, apenas uma checagem para verificar se tem mesmo de "acordar" o microcontrolador para fazer alguma coisa, ou se pode encerrar o programa e esperar pelo novo tempo de rodar o Watchdog.

 

Isso permite um consumo muito reduzido.

 

Paulo

Postado

@celsolrc  Ao entrar em modo Sleep, daria para o seu microcontrolador desacoplar/desligar a parte do circuito que mantem o display, leds, motores, etc.,  ligados, ao sair do Sleep, religa o circuito novamente.

Essa função de Sleep geralmente é usado para sistemas alimentados por baterias, e o consumo é quase nulo.

 

Fora isto, como eu já disse, você teria que criar um circuito eletrônico analógico que ao ser acionado, desliga o microcontrolador e todo o seu circuito, mas é bem possível que esse circuito consuma até mais energia que o micro em modo sleep.

Postado
Em 25/01/2017 às 21:31, celsolrc disse:

Eu vi o sleep e testei mas o resultado não me agradou pois, em tese, ele continua "funcionando". Por exemplo, o display, continuaria acesso se eu não mandar desligar ou apagar...

 

Saudações, o função sleep funciona e serve para o uC, não para os periféricos, certamente é necessário tratar todas as exceções antes de pôr o mesmo para dormir, ou seja, "verifica tudo a sua volta e quando estiver ok, vai dormir, mas fica com um pé na cama e outro fora, ou com um "facão debaixo do travesseiro" (preparado para tratar novos eventos)". O display por exemplo tem um controlador próprio (porém é um escravo), todas informações enviadas são tratadas, mas se não mandar ele desligar... "sir yes sir!".

Postado

Olá!

Você tem como saber se o aparelho está sendo usado ou não, ou seja, detectar inatividade?

Caso sim, uma ideia seria colocar um rele (ou MOSFET) na alimentação do circuito, onde a bobina desse rele seja mantida por uma saída do microcontrolador e assim que detectada a inatividade, poe-se essa saída em nível baixo, desligando todo o circuito. 

No caso do rele, o positivo do circuito passa pelo contato NA, e em paralelo com esse contato coloca-se um interruptor de pressão para ligar o circuito. Assim que ligado, no programa do uC você poe uma linha colocando a saída que alimenta o rele em nível alto, dessa forma mantendo o circuito ligado assim que o botão de pressão for solto. 

O contra desse método seria o fato de ter a bobina do rele energizada enquanto o circuito estiver ligado, o que aumenta o consumo de energia.

 

Att,

 

Postado

Oi @Fervolt ,

 

Sim eu tenho como detectar a inatividade. Se estiver em uso, algum botão do aparelho deve estar sendo pressionado periodicamente. Posso colocar um contador que seja zerado sempre que algum botão for pressionado.

 

Obrigado pela ideia do rele (ou Mosfet). Vou ver como fazer e testar. Alguns aparelhos semelhantes ao do meu projeto ligam e desligam com botão de pressão e tem consumo baixo. Creio que devam usar algo parecido.

  • Membro VIP
Postado

Penso que absolutamente nenhuma solução (além do botão de pressão com trava) vai superar o modo sleep mas você pode colocar um flipflop cmos externo com um transistor driver pro vcc. Flipflop cmos pode ter consumo quase zero (mesmo assim penso ser maior que o sleep)

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...