External Interrupts, Interrupts

Eu denovo aqui.. hehhe
Galera, não intendi o que são e para que servem External Interrupts e Interrupts, se alguem puder explicar melhor ficarei muito grato!

Leonardo,

Interrupções servem para fazer com que o microcontrolador desvie temporariamente da sua rotina principal, execute a subrotina de interrupção e depois retorne ao codigo principal do exato ponto de onde foi interrompido.
Por exemplo, se vc for medir velocidade ou RPM, ao invez de gastar praticamente um arduino para ficar verificando o estado da entrada do sensor, voce pode usar a interrupção externa para verificar essa entrada apenas no momento em que o sensor produzir nivel de tensao no pino correspondente.
Outros tipos de interrupção sao os relacionados ao perifericos do Microcontrolador. Por exemplo as interrupções dos perifericos de comunicação SPI e I2C. No caso do SPI, voce pode anexar uma interrupção para que o microcontrolador execute uma tarefa toda vez que um byte de dados for transmitido. Assim voce nao precisaria ficar toda hora verificando.

Att,

Lucas Jardim

Só complementando no Arduino existem 2 tipos de interrupções:

INTERNA: Internas do Atmega - registradores e contadores.

EXTERNA: Acionadas por mudança de estado das portas digitais.

Recomendo a leitura do seguinte link para ficar mais clara a idéia de como utilizar em seus projetos:

http://arduino.cc/en/Reference/AttachInterrupt
http://arduino.cc/en/Reference/DetachInterrupt
http://arduino.cc/en/Reference/Interrupts
http://arduino.cc/en/Reference/NoInterrupts

Espero ter ajudado.

Danilo Santos

Ajudaram muito sim! Vou dar uma lida na referencia melhor agora!
Abç

Boas!

embora no arduino ja esta publicado como fazer a contagem de rpm de uma ventoinha eu estava aqui a treinar.
eu estou a precisar de um comando que me leia a quantidade de impulsos dados por segundo (por cada rotaçao da ventoinha dá 1 impulso)
que depois Yrotaçoes por segundo X60 segundos dá rotaçoes por minuto.

acho que estou a dizer bem, mas se estiver alguma coisa mal podem corrigir.

agora eu estive a tentar perceber o comando "attachInterrupt",( o meu ingles nao e dos melhores)

attachInterrupt(0, blink, CHANGE);

algumas dicas?
obrigada