Je me présente, je m'appelle Kévin et je suis en 1ère technologique. Je fais un bac STI2D option SIN. J'effectue depuis plusieurs semaines un projet avec la carte Arduino Uno. Je suis censé faire le montage d'un télérupteur à deux boutons poussoirs avec le code Arduino qui va avec. Mais manque de compétence ou de connaissances, je n'arrive pas à mes fins. J'ai suivi le tutoriel d'Eskimon pour mieux comprendre le langage Arduino et il m'a été utile pour d'autre projet mais je n'ai pas trouver réponse pour le télérupteur. Je devais rendre ce matin mon projet mais j'ai négocié une semaine de plus. Du coup, faute de temps, je fais appel à vos connaissances pour m'aider
L'école ne m'a fourni en début d'année 3 LED, un bouton poussoir (+ un autre intégré sur le protoshield), 2 résistances ( 10.2 Ohm), une plaque d'essai 170 points et 9 jumper câbles.
J'ai essayé plusieurs codes différents, sans réussite, mais voici celui qui se rapproche le plus de ce que j'éspère.
const int buttonPin = 2; // broche 2 égale bouton
const int ledPin = 13; // broche 13 égale led
int etatDeLaLed = LOW;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop()
{
int etatDeBouton =digitalRead(buttonPin);
delay(500);
Serial.println(etatDeBouton);
if (etatDeBouton == LOW)
{
if (etatDeLaLed == LOW)
{
digitalWrite(ledPin, HIGH);
etatDeLaLed = HIGH;
}
else
{
digitalWrite(ledPin, LOW);
etatDeLaLed = LOW;
}
}
}
Merci de ton aide nawrasg, mais ce que je recherche c'est le même code mais avec 2 boutons poussoirs, dont un sur la plaque d'essai et un sur le protoshield
bonjour,
tu voudrais pas qu'on te fasse tes devoirs, non plus?
ton probleme est simple, et franchement, si tu réussis pas à le faire tout seul, tu risque de pas mal galérer. si tu as compris le programme, pourquoi n'arrives-tu pas à faire le montage qui y correspond? (soit dit en passant, c'est hyper simple, y'a même les noms en haut qui correspondent aux broches arduino et tout...) quel bouton fonctionne, et sous quelles conditions? (essaye d'enlever la fonction delay et les deux fonctions d'affichage, tu verras que ça marchera peut-être mieux.)
nawrasg: le delay me défrise, il sert à quoi au juste si ce n'est bloquer pour 90% du temps un programme qui se voudrait évenementiel ?
quel intérêt d'envoyer une valeur de led et deux valeurs de boutons au travers de la voie série toutes les 500ms? enfin j'veux dire... pourquoi ne pas afficher uniquement lorsqu'il y a un changement?
Chai pas... Mais en tout cas 500ms c'est nickel pour foutre en l'air les tests (parce que perso quand j'appuie sur un bouton c'est de l'ordre de l'impulsion)...
Après hypothèse 2 : 500ms ca fait aussi un (gros) filtre anti-rebond logiciel...
ha ouais, 500ms c'est déjà un interrupteur bien moche. comme on parle d'un télérupteur, on pourrait peut-être tenter de baisser cette valeur (genre la diviser par 10) et virer les serial.println (ou les mettre à un endroit plus intelligent), ce qui amènerait déjà une situation plus proche de la réalité.
(je hais la scrutation pour faire de l'évènementiel, comme ça, je trouve ça d'un moche... 'fin j'sais pas ça sert a rien d'avoir un microcontroleur pour s'en servir comme si c'était un i7-4770K, et dire "on s'en balance de la latence hasardeuse dûe à la longueur, et aux instructions branch contenues dans la boucle")
bah dans tous les cas, ce delay pose probleme: mettons que la lecture d'un bouton dure 5µs, bah chaque entrée est scrutée 5µs toutes les 500ms. autrement dit en francais, l'état des interrupteurs est scruté quelque chose comme 0.0001% du temps.(pardonne-moi les erreurs de virgules) c'est pas ce qu'on pourrait appeler une scrutation très efficace.
premiere solution efficace: éventuellement glisser le delay "au début du gros if", là où il est utile, déjà on perd le défaut de temps de scrutation.
2e solution, ne pas mettre d'anti-rebond du tout: l'OP est en premiere, et il n'en a peut-être jamais entendu parler, son application n'est pas "dans un domaine professionnel" (donc pas besoin de résultat failsafe et BadassUserProof).
Je ne comprend pas, je fait le même montage que pour un bouton en rajoutant un bouton sur la plaque d’essai avec une entrée broche 3 et une sortie GND et sa ne marche pas...
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
oui. non. enfin je regarde et je te dis.
Retrouvez moi sur mon blog et ma chaine Youtube !
oui. non. enfin je regarde et je te dis.
Retrouvez moi sur mon blog et ma chaine Youtube !
oui. non. enfin je regarde et je te dis.
oui. non. enfin je regarde et je te dis.
oui. non. enfin je regarde et je te dis.