Pages: [1]   Go Down
Author Topic: 2 interrupteurs pour 1 del  (Read 1566 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 37
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous !
Je suis assez mauvais en électricité/électronique mais j'ai commencé avec arduino smiley-grin ! 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:
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 ! =)
Logged

Offline Offline
God Member
*****
Karma: 3
Posts: 672
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut cyber-tom
 smiley-lol smiley-lol smiley-lol 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  smiley-wink smiley-wink smiley-wink
William
Logged

The truth is elsewhere !!

0
Offline Offline
Newbie
*
Karma: 0
Posts: 37
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 ?
 
« Last Edit: March 29, 2011, 01:38:27 pm by cyber-tom » Logged

Offline Offline
God Member
*****
Karma: 3
Posts: 672
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-lol smiley-lol

@+
 
Logged

The truth is elsewhere !!

0
Offline Offline
Newbie
*
Karma: 0
Posts: 37
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 ! smiley-wink)
Logged

Pages: [1]   Go Up
Jump to: