Go Down

Topic: 2 interrupteurs pour 1 del (Read 1 time) previous topic - next topic

cyber-tom

Bonjour à tous !
Je suis assez mauvais en électricité/électronique mais j'ai commencé avec arduino :D ! et une question!
Pour lorsque l'on connecte une led avec une résistance à l'arduino, on ne les branchent pas sur 5V ?

Et voici mon problème ! J'ai voulu connecter deux interrupteurs sur mon arduino pour allumer une led !
Mais seulement un seul interrupteur fonctionne ! Voici mon montage : ( la led verte ne sert à rien pour l'instant)


Et voici le code :
Code: [Select]

int pin = 13;
int state = LOW;

void setup()
{
  pinMode(pin, OUTPUT);
  attachInterrupt(0, blink, RISING);
  attachInterrupt(1, blink, RISING);
}

void loop()
{
  digitalWrite(pin, state);
}

void blink()
{
  state = !state;
}


Je pense que c'est un problème électronique, j'ai du mal brancher un fil ! Voyez-vous où cela ne va pas svp ?
Merci d'avance ! =)

AlienArea51

Salut cyber-tom
XD XD XD c'est encore moi , je rigole ,mais ne le prend pas mal .

tu declare 1 led alors qu'il y en a 2 , tu declare 2 interruptions 
Quote
attachInterrupt(0, blink, RISING);
  attachInterrupt(1, blink, RISING);

tu te sert de la meme procedure blink , quand tu declare achinterrupt(0,blink,rising)=> interruption 0 correspond à l'entrée 2 ,et achinterrupt(1,blink,rising)=> interruption 1 correspond à l'entrée 3, blink procedure liée à l'interruption 0 ,il faut blink1 lié à l'interruption 1

Quote
int pin = 13;
int state = LOW;

il te manque ,int pin1=12 ainsi que int state1=low

Quote
void setup()
{
  pinMode(pin, OUTPUT);
  attachInterrupt(0, blink, RISING);
  attachInterrupt(1, blink, RISING);
}


à remplacer par:

Quote

int pin = 12;
int pin1 = 13;
int state = LOW;
int state1 = LOW;
void setup()
{
  pinMode(pin, OUTPUT);
  pinMode(pin1, OUTPUT);
  attachInterrupt(0, blink, RISING);
  attachInterrupt(1, blink1, RISING);
}
void loop()
{
  digitalWrite(pin, state);
digitalWrite(pin1, state1);
}

void blink()
{
  state = !state;
}
void blink1()
{
  state1= !state1;
}


je n'ai pas testé mais certainement pas loin de la soluce  :smiley-mr-green: sans rancune j'éspère , regarde bien (ou lit bien les définitions sur la référence Arduino)


@+

P.S: Nobody's perfect ,et personne n'est infaillible , c'est comme ça qu'on apprend ,par contre super bien de mettre le cablage de ton montage avec Fritzing  ;) ;) ;)
William
The truth is elsewhere !!

cyber-tom

#2
Mar 29, 2011, 08:23 pm Last Edit: Mar 29, 2011, 08:38 pm by cyber-tom Reason: 1
RE salut =) !
Non mais enfaite tu a mal compris ! c'est fait exprès ^^ j'ai dit plus haut que la del verte ne sert à rien !
Je voudrais que deux interrupteurs puisse allumer la même led !
Donc pas besoin de mettre deux fonctions et tout !
Je me demandais seulement pourquoi le deuxième ne marchait pas ! Je pensais que c'était un problème de connexion de fil ?

J'avais déjà fait ton code, et ça faisait pareil ! enfin la del rouge s'allume quand je presse son bouton, mais quand je presse l'autre la del verte ne s'allume pas !!

Au faite pourquoi on connecte un interrupteur sur la broche 5V de l'arduino,alors que pour la led on le fait pas ?

AlienArea51

OK ,OK
comme tu as utilisé rising dans(
Quote
attachInterrupt(0, blink, RISING);et attachInterrupt(1, blink, RISING);
) rising detecte un front de montée donc la led doit s'allumer une fraction de seconde ,je pense ,remplace RISING par CHANGE.

au temps pour moi  :smiley-mr-green:

tu peus passer le l'etat 0 à 1 (0v à 5v) ou l'inverse ( je me repète mais consulte la référence (attachinterrupt)
pour la led c'est pareil , si tu declare que la sortie est active au démarrage (5v ou 1)tu met la led dans l'autre sens ,dans la procédure tu dis que la sortie va passer à 0 (0v) la led va s'allumer .

en esperant que tu ai compris mon charabia  XD XD

@+
The truth is elsewhere !!

cyber-tom

Merci pour ton aide ! Le problème ne venait pas de là ! J'ai essayer en enlevant l'interrupteur et en faisant le contact avec un fil, et la sa marchait .. c'était l'interrupteur qui déconnait ... !! Merci pour ton aide comme même =) =) !!! A bientôt (surment ! ;))

Go Up