Pages: [1]   Go Down
Author Topic: programa para gerar interrupcao externa  (Read 2236 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Code:
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????



* arduino.bmp (321 KB, 581x561 - viewed 55 times.)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3244
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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. :\

Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

muito obrigado !

entao o que voces estao me dizendo eh que provavelmente seja problema de interferencia certo?

eu ja estava pensando q meu arduino estava estragado ehehe

vou seguir suas dicas!!!
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3244
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Não é exactamente interferência...

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:

http://dangerousprototypes.com/2010/11/10/button-debounce-code/

Como podes ver o sinal não desce directamente para zero quando se carrega no botão... Muito provavelmente será isto que estás a ver no teu projecto.

Existem formas de te livrares disto com hardware ou software:

Aqui tens uns sites:

http://www.all-electric.com/schematic/debounce.htm
http://www.ganssle.com/debouncing.htm

Infelizmente os exemplos estão em inglês porque não faço a mínima ideia de qual será a palavra Portuguesa para "debounce". smiley-sad
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 29
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

tente usar pinos digitais para conectar os botões. ou você esta usando TX e RX como pinos normais?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

valeu mesmo pessoal vou tentar esse tal de "debounce", um outro amigo ali acima deu a mesma ideia,

caso funcione eu posto o resultado aki!

obrigadao mesmo.


Logged

Pages: [1]   Go Up
Jump to: