Bonjour,
je voudrais faire augmenter le valeur d'une variable de +1 a chaque fois que j appuie sur le bouton poussoir. aller de 0 a 9 puis retour a 0.
Comment faire ? (je débute)
Merci d'avance.8O
Version imprimable
Bonjour,
je voudrais faire augmenter le valeur d'une variable de +1 a chaque fois que j appuie sur le bouton poussoir. aller de 0 a 9 puis retour a 0.
Comment faire ? (je débute)
Merci d'avance.8O
Bonjour,
Quelle carte ? Quelle(s) entrée(s) ?
Tu peux initialiser une interruption sur une des entrées de ta carte et détecter les fronts montants ou descendants. Puis dans ta fonction d'interruption incrémenter une variable.
AttachInterrupt
bonjour,
je fais un petit exercice pour moi. en activant le bouton poussoir je veux augmenter de 0 a 9 un afficheur 7 segments.
Les sorties : 4;5;6;7;8;9;10.
L’entrée : 2 (const int BOUTON = 2)
c'est claire comme ça ?
et la carte Arduino Uno
J'ai déjà fait fonctionner l'afficheur.
Ce que je n'arrive pas à faire, c'est trouver la ou les bonnes fonctions et bonnes variables et comment les organiser. Je pense que c'est le plus compliqué ! 8O
Les segments sont câblés en sortie de 4 à 10 et mon bouton poussoir en entrée sur la pin 2.
oui, je veux bien, mais quel segment est sur quelle sortie ?Citation:
Envoyé par didier.007
Ce que tu dois faire c'est activer telle ou telle sortie pour activer tel ou tel segment et au final former ton chiffre. C'est un afficheur à anode ou cathode commune ?
j avais bien compris ta question. j ai pris des notes sur la position des segments ,lors de mon premier montage, mais j'ai oublié de noter quelles pin connectait quel segment. Erreur de "jeunesse"!!!
on dira que sortie 4 et le segment A jusqu a sortie 10 segment G !!
je corrigerai bien après.
merci pour ta patience, je pars au boulot.
ça te va ?Code:
1
2
3
4
5
6
7
8 pinMode(4,OUTPUT);//Broche de sortie du segment "segment en bas a gauche" pinMode(5,OUTPUT);//Broche de sortie du segment "segment central bas" pinMode(6,OUTPUT);//Broche de sortie du segment "segment en bas a droite" pinMode(7,OUTPUT);//Broche de sortie du segment "segment central millieu " pinMode(8,OUTPUT);//Broche de sortie du segment "segment en haut a gauche" pinMode(9,OUTPUT);//Broche de sortie du segment "segment central haut" pinMode(10,OUTPUT);//Broche de sortie du segment "segment en haut a droite" pinMode(BOUTON, INPUT);//Broche bouton poussoir precise "L'ENTREE pin 2" sur la carte
Voici ce que tu peux faire :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 /* * Sorties afficheur * --9-- * 8 10 * --7-- * 4 6 * --5-- */ int interruptPin = 2; volatile int compteur; void setup() { int i; for (i=4; i<=10; i++) pinMode(i, OUTPUT); // configuration des pins 4 à 10 en sortie // affichage de 0 compteur = 0; digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(9, HIGH); digitalWrite(8, HIGH); digitalWrite(10, HIGH); // entrée pinMode(interruptPin, INPUT); // création d'une interruption sur l'entrée attachInterrupt(digitalPinToInterrupt(interruptPin), afficheur, RISING); } void loop() { // rien à faire entre 2 interruptions ?? } // gestion de l'interruption void afficheur() { compteur++; if (compteur>9) compteur = 0; switch (compteur) { case 0: // activer/désactiver sorties pour avoir un "0" break; case 1: // activer/désactiver sorties pour avoir un "1" break; case 2: // activer/désactiver sorties pour avoir un "2" break; case 3: // activer/désactiver sorties pour avoir un "3" break; case 4: // activer/désactiver sorties pour avoir un "4" break; case 5: // activer/désactiver sorties pour avoir un "5" break; case 6: // activer/désactiver sorties pour avoir un "6" break; case 7: // activer/désactiver sorties pour avoir un "7" break; case 8: // activer/désactiver sorties pour avoir un "8" break; case 9: // activer/désactiver sorties pour avoir un "9" break; } }
Je te laisse compléter le switch. Avec de l'astuce tu peux avoir un code assez court ;)
Citation:
Envoyé par didier.007
Fais attention à la tournure de tes phrases, c'est assez agressif.Citation:
Envoyé par didier.007
je regarde ca de plus près et je tiens au courant.
je te remercie a nouveau pour ta patience.
:D
Bonjour,
Je suis débutant en ARDUINO, mais j'ai une question/suggestion pour ton interface :
as tu pensé à l'encodeur rotatif ?
https://skyduino.wordpress.com/2012/...deurs-rotatif/
Bon courage dans ton projet
merci pour la réponse.
c'est juste un exercice pour apprendre a programmer. je débute et ce n est pas facile... je lutte....!!!
pas de souci, entre débutants il faut s'entraider :)
Ne lâche pas et n'hésite pas si tu as besoin :)
Le script fonctionne comme tu le souhaites ?
Salut!
Tu peux faire avec un type de code comme sa:
Code:
1
2
3
4
5
6
7
8
9
10 void setup () {<div style="margin-left:40px">pinMode(PinDuBouton, INPUT);</div> } void loop () {<div style="margin-left:40px">int pinB = PinDuBouton; int VARIABLE = 0; int BR = digitalRead(pinB); if (BR == HIGH) {</div><div style="margin-left:80px">int VARIABLE = VARIABLE + 1;</div><div style="margin-left:40px">}</div> } }