Go Down

Topic: AttachInterrupt : Gros lag sur les FALLING (Read 921 times) previous topic - next topic

comode

Bonjour,
J'essaye de réaliser une barrière laser qui émet un son quand on la coupe. Je fait donc un prototype avec 1 entrée et 2 sortie. une sortie pour piloter l'allumage du laser sur le port 8, une photodiode sur le port 2 (int0) et un buzzer sur la broche 16. Les éventuels problèmes qui se poseront pour la sensibilité de la photorésistance, l'usage d'un transistor ou d'une bascule pour gérer, toussa toussa, c'est hors sujet pour le moment. Donc pour les tests, j'ai remplacé la photoresistance par un fil conducteur que je branche et débranche pour simuler le passage du courant dans la photorésistance, le laser n'est pas branché et le buzzer est remplacé par une diode.

Le code (actuel) est le suivant :

Code: [Select]
int laser = 8;
int photoresist = 2;
int buzzer = 16;


void setup() {               
  pinMode(laser, OUTPUT);   
  pinMode(photoresist, INPUT);
  pinMode(buzzer, OUTPUT);
 
  digitalWrite(laser, LOW);
  digitalWrite(buzzer, LOW);
 
  attachInterrupt(0, Alarme, FALLING); // en principe, je le met sur CHANGE, mais c'est les tests là !
}


void Alarme()
{
  //digitalWrite(buzzer, digitalRead(photoresist));
  digitalWrite(buzzer, HIGH);
}

// the loop routine runs over and over again forever:
void loop() {
}


Avec ça, la diode est éteinte quand je démarre. quand je débranche le fil qui va du +5V vers la broche n°2, la diode s'allume... au bout d'environ 4 secondes... Si je rebranche le fil avant ces 4 secondes, l'interruption ne se déclenche pas. Je n'ai pourtant aucun condensateur ni rien de superflus sur mon proto... Notez que sur un RISING ou un CHANGE en partant de l'état bas, la diode s'allume immédiatement !

Quelqu'un sait-il à quoi ce genre de problème peut être due ?

En vous remerciant par avance.

fdufnews

Ton entrée est en l'air
Il faudrait une résistance de pulldown vers la masse

comode

En effet ! je viens de rajouter une 10K, et le problème est réglé !
Merci beaucoup !

Go Up