Boa noite amigos garagistas, estou usando este código para liberar a ração do meu cachorro com horário, usando um motor de passo Nema17 e Um RTC  3231, Esta funcionando perfeitamente, o único problema e quando cai a energia, ao retornar a energia o Motor de Passo Gira no Sentido Horário 20 Passos, Alguém Para me ajudar A resolver esse problema, gostaria que ele ficasse parado ate receber um comando, Alguém para me ajudar por favor! Segue o Código em Anexo..

Exibições: 931

Anexos

Responder esta

Respostas a este tópico

olá Marcela, boa noite.

       Ok, legal que funcionou da forma como vc queria.

       Sobre o "NewTone.h", eu imaginava que vc iria usar para gerar algo audível, e foi uma ótima ideia, pois você vai "doutrinar" seu cachorro, o qual acabará associando o som à "hora do lanche".

        Para melhorar a utilidade deste post para quem vier a precisar (já que usa sensores e motor que são um tanto cultuados/badalados pelas pessoas), gostaria de reforçar alguns pontos:

       1) na rotina de inicialização (o "setup" do Arduino), sempre chame a função de inicialização do Motor (a "MOTOR_init") antes de qualquer outra. Porém, se vc montar os dois Resistores de 10k que mostrei no meu post anterior (para os sinais "ENABLE#" e RESET#"), esta regra não precisa ser seguida. Para quem for fazer uma montagem semelhante, eu recomendo determinantemente que monte estes dois Resistores, da forma que mostrei anteriormente. Uma questão: no seu caso específico Marcela, vc montou os dois Resistores?

      2) a temporização para leitura do "DHT", eu já deixei adequada ao DHT22. Ocorre que o DHT22 é bem mais preciso que o DHT11, porém o ciclo de acesso mínimo para o DHT22 é maior que o do DHT11. Assim deixando esse ciclo próprio para o DHT22, também funcionará automaticamente para o DHT11 (basta vc selecionar o sensor no código da forma que vc já vinha fazendo).

         Outro ponto é sobre a chamada à função "dht.begin" no "setup". Eu não conferi, mas acredito que esta função ative o "pullup" interno do pino conectado ao sensor DHT. Isso não tem problema, e mesmo que vc use uma plaquinha com o sensor onde um resistor de "pullup" já exista, o valor resultante para o "pullup" ainda será adequado (o "pullup" interno do ATMEGA328 tem uma tolerância muito ampla e pode ir de 20k a 50k).

      3) como vc deve ter visto, a temporização do código ficou mais sofisticada. Adequei esta temporização de uma forma que ficasse bem flexível para as mais diversas tarefas executadas durante o funcionamento. Quando vc for acrescentar mais funções, procure não corromper a temporização (por exemplo: cuidado com "delays", pois dependendo do tempo e do lugar onde vc os inserir, irá corromper a temporização). Se possível não use "delays", substituindo-os por temporizações seguindo o mesmo formato que utilizei. Se não me engano, implementei no código três temporizações simultâneas, e todas funcionam da mesma forma, bastando vc copiar o modelo que usei para criar qualquer quantidade de temporizações que vc precise (veja que o "modelo" que usei é conciso e simples).

      Finalizando, entenda que vc não precisa me agradecer pois quando entramos aqui e nos propomos a participar, é nossa obrigação colaborar com todos aqui no LDG (claro, sempre que possível e que esteja ao nosso alcance).

      Abrçs,

      Elcids

Bom dia Marcela, 

Veja se esse tutorial pode ser útil:

Modulo Driver do Motor - A4988:
http://labdegaragem.com/forum/topics/tutorial-arduino-motor-de-pass...

Veja sobre o pino SLEEP :

Pinos do Chip A4988:

- STEP (passo) - um sinal com transição de baixo para alto avança um passo, 
- DIR - permite a alteração no sentido da rotação do motor, 
- ENABLE - um sinal baixo ativa os drivers do motor, 
- RESET - dá um reset no chip, desativando todas os drivers de saída,
- SLEEP (dormir) - esse pino quando negativo, desabilita alguns circuitos internos para economizar energia,

boa tarde  José Gustavo Abreu Murta obrigada pela atenção, vou da uma estuda sobre o driver A4899

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço