Interruption (attachInterrupt)

Salut salut!

Je crois que j’ai quelques lacunes en électronique! Alors voici le concept: 1 bouton sur la pine 5 et une led sur la pin 11.

#include <avr/interrupt.h>
                            
void setup(void)
{
    pinMode(11,OUTPUT);    //LED (voyant)
    attachInterrupt(5, blink, CHANGE);
}
                    
void loop(void)
{
        
}
boolean betat;
void blink(void)
{
  if(!betat && digitalRead(5))
  {
    digitalWrite(11, !digitalRead(11));    //LED
  }
  betat = digitalRead(5);
}

Jusque la tout fonctionne!! Donc pas de problème.

Bon je me dis je vais rajouter un système anti-rebond!

+5V-----Bouton poussoir--------------------->Entré D0 (INT0)
| |
R C
| |
0V----------------------------------------------

Avec R = 30Kohm et C = 3,3uF

Et la ça plante directe, la led change plus d’état. je suis obligé de reset l’arduino… je comprends pas!!! J’ai visualisé le signal à l’oscilo et je vois rien qui me choque.

Alors j’ai trouvé un système qui fonctionne:

+5V-----Bouton poussoir---------R1--------------------------------->Entré D0 (INT0)
| |
R2 C
| |
0V----------------------------------------------------------------

Avec R1 = 180ohms ,R2= 30Kohms et C = 3,3uf.

Ma question est donc: Pourquoi il faut que je rajoute une résistance de 180 ohms en entrée??

Au passage j’ai un Teensy 2.0 (AtMega32u4):
Board : Teensy® 2.0
Doc : http://www.atmel.com/images/doc7766.pdf

Merci.

Salut,

Ton premier c'est pas un anti-rebond, et ça plante surement parce que comme t'as mis un "gros" condo, ça fait un appel de courant important qui fait chuter la tension et planter l'Atmega.