Go Down

Topic: Botao + e - (Read 1 time) previous topic - next topic

ceron432

Olá pessoal, eu manjo um pouco de linguagem C++, eu estou projetando uma trena com o arduino
o funcionamento e o seguinte, cada pulso do encoder equivale a 1mm, e que a cada 1 metro acenderia um led por 2 segundos e apagar.
o problema é que queria alterar o ponto onde o led acende atravez de um botao + e outro - junto a um Display LCD.
alguem tem alguma sugestão?!


sds

Anthony Collucci

Parece que seu projeto ja ta bem cercadinho. Vc ta querendo sugestão em que?
--
        Anthony M. Collucci
        (0xx31)9243-1690
      http://amcollucci.com.br
      http://astrobrasil.blogspot.com
      http://c

MarceloBoeira

Pra fazer os boto?s usa esse esquema igual da shield LCD, com 5v na entrada de cada botaão com resistor em paralelo, cuida os valores...
dai tem no mesmo post o resultado e alguns exemplos de menu,...

você pode incrementar sempre o valor...
tipo:

if (tecla_mais == 1) {
valor++;
}
if (tecla_menos == 1 ) {
valor--;
}
delay(100) -->este delay impede a soma de 2x mais, tipo você pressiona pula pra 2 direto pois esta sem delay e não da tempo de tirar o dedo ja da o loop e soma denovo...

http://geekdevteam.blogspot.com/2011/05/reconhecendo-teclas-com-shield-lcd.html

Qualquer Dúvida posta ai que eu ajudo quando posso, se eu demorar um pouco me desculpe que to com semana final de provas aqui ta tensOo!...
Vlw!
My Toys:
Raspberry Pi (Model B)
Arduino MEGA 1280: ( Shield LCD 16x2, Ethernet, RFID )
Freescale Kinetis KL25Z [/

caioengineer

O modo mais seguro para aplicações que envolvem acionamento de chaves, é utilizar uma técnica de denominada detector anti boucing. Normalmente essa técnica é feita atraves de um timer de modo a evitar que o processador fique parado naquele ponto do programa olhando uma determinada condição acontecer ou parado através de uma rotina de delay.

  .....
       if( [PINODESEJADO]==1)
          {
                contador = 100;
                for (i=0;i<contador; i--)
                      {   
                           contador --;
                      }
                if (contador ==0)
                   {
                     if( [PINODESEJADO]==1)
                          {
                              botão = 1;
                          }
                      else
                          {
                              botão =0;
                          }

                    }         
}

Esse modo de verificar se a chave foi pressionado é uma das melhores maneiras de garantir que o botão foi realmente pressionado. Em algumas aplicação é fundamental esse tipo de controle.

Mas como o arduino limita drasticamente a capacidade de processamento do processador atmega não tem como querer muito ...mas ai vai uma dica ..evita incremento incorreto por parte dos botões e garante que o botão foi corretamente pressionado.




MarceloBoeira

este pinoDesejado seria a entrada de leitura digital do botão?
My Toys:
Raspberry Pi (Model B)
Arduino MEGA 1280: ( Shield LCD 16x2, Ethernet, RFID )
Freescale Kinetis KL25Z [/

Go Up