Ola galera sou novo aki no forum do arduino, comprei o meu a pouco tempo, e estou fazendo um projetinho que necessito utilizar interrupcoes externas, e para isso desenvolvi um prototipo para mais tarde desenvolver o verdadeiro projeto.
A minha intencao no prototipo é ter 2 leds, um conectado ao pino 13 e outro ao pino 12, e quando eu aciono a interrupcao externa 0 o led 13 ligue, e quando eu aciono a int ext 1 o pino 12 acenda, e se eu reaciona-los eles venham a apagar.
segue abaixo o codigo.
const int botaoverde = 0;
const int botaoamarelo = 1;
const int led1 = 13;
const int led2 = 12;
volatile int flag1 = LOW;
volatile int flag2 = LOW;
void setup(){
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
attachInterrupt(botaoverde, tratador1, CHANGE);
attachInterrupt(botaoamarelo, tratador2, CHANGE);
}
void loop(){
digitalWrite(led1,flag1);
digitalWrite(led2,flag2);
}
void tratador1(){
flag1= !flag1;
}
void tratador2(){
flag2= !flag2;
}
vou colocar uma imagem do "circuito"
a imagem esta como anexo.
O meu problema é o seguinte: mesmo com o botao desligado a interrupcao aciona!!! ela aciona como se tivesse algum mal contato, se eu encostar encima da placa ela funciona, se eu encostar no botao( sem aperta-lo) ela funciona, muito estranho isso
por favor alguma pessoa mais intendida q eu poderia me ajudar????
Eu tambem tive esse problema com um piano de varias teclas que eu fiz. a porta usb da muita interferencia, principalmente por causa da capacitância do corpo humano. faça o teste com uma fonte.
Procura por "key debounce" no google e vês o que está a acontecer.
Se conseguires, liga um osciloscópio à porta de entrada do Arduino e vês que ao carregar no botão, muito provavelmente a tecla não dá um sinal limpo.
Tenho a certeza quase absoluta que o problema é esse e não a porta série. :\
Eu não sei que botões montaste, mas posso-te dizer por experiência que botões bons sem este tipo de problemas são caríssimos. Muito mais caros do que alguém estaria dispostos a pagar por eles para um hobby.
O que acontece é que o botão tem uma mola, ou espécie de mola, dentro para fazer com que o botão volte à posição inicial quando é solto. No entanto, a mola não é perfeita e em muitos casos o que acontece é que a mola fica solta quando largamos o botão e faz vários contactos depois do nosso dedo largar o botão.
Podes ver aqui neste site um exemplo do que estava a dizer: