Bonjour, je souhaite modifier une variable (var1) avec un bouton branché sur l'entrée 2. Arduino UNO.
Si vous avez besoin de plus d'info n'hésitez pas.
Cordialement.
Bonjour, je souhaite modifier une variable (var1) avec un bouton branché sur l'entrée 2. Arduino UNO.
Si vous avez besoin de plus d'info n'hésitez pas.
Cordialement.
infobarquee:
A LIRE AVANT DE POSTER
Merci mais il est vraiment urgent pour moi de le savoir donc si vous le savez pouvez-vous me donner la réponse merci.
si tu ne donne pas plus de renseignements, comment veux tu qu'on aide?
tu veux modifier quoi comme variable?
un float, int, char?
montre ce que tu as déjà fais et on pourra aider, on ne donnera pas la réponse comme ca.
si c'est urgent, allez un devoir école, donnes toutes les infos comme indiqué dans le lien
Merci, je souhaite modifier une variable int. Non c'est pour le travail. Merci d'avance.
int var1;
si bouton enfoncé
var1 +=x;
sans ton code de départ, il n'y aura pas plus d'infos précises
A toi de traduire ca en C++, ca prend 30s
Voici mon code est-il correct ?
const int boutonP = 2;
const int sortieAnalogique = 6;
int etatBouton;
int var1 = 0;
void setup ()
{
pinMode(sortieAnalogique, OUTPUT);
pinMode(boutonP, INPUT);
etatBouton = HIGH;
}
void loop ()
{
analogWrite(sortieAnalogique, var1);
etatBouton = digitalRead (boutonP);
if (etatBouton == LOW)
{
var1 = var1 + 10;
}
if (var1 >= 255)
{
var1 = 0;
}
}
Pense à ajouter un delay() pour éviter le phénomène de rebond du bouton ![]()
Ninnin:
Pense à ajouter un delay() pour éviter le phénomène de rebond du bouton
Il est peut être déjà filtré de manière matérielle?
Ce programme est-il bon pour la fonction "augmenter la variable 1 (var1)(jusqu'à 255 puis retour à 0) permettant de modifier la sortie ana 6 en utilisant un signal entrant dans l'entrée 2 (bouton dans ce cas là)".
Merci d'avance.
Dyroze:
Ce programme est-il bon pour la fonction "augmenter la variable 1 (var1)(jusqu'à 255 puis retour à 0) permettant de modifier la sortie ana 6 en utilisant un signal entrant dans l'entrée 2 (bouton dans ce cas là)".Merci d'avance.
et si tu le testais déjà, tu crois pas que ca serait bien?
c'est pour quel travail?
infobarquee:
et si tu le testais déjà, tu crois pas que ca serait bien?
Oui il marche mais tant que je reste appuyé sur le bouton la variable augmente, comment pourrais-je faire pour même si je reste appuyé sur le bouton la varible augmente q'une seule fois, puis relâcher et ré-appuyer... ainsi de suite?
Bonjour,
Il faut que tu regardes si ton bouton a changé d'état.
Pour cela il faut mémoriser l'état précédent et comparer à cet état précédent.
Hello.
Déjà, est-ce que ton bouton est filtré matériellement comme cité plus haut ou pas ?
Tu as un schéma ? Est ce que quand appuyé il est connecté à la masse ? Ou au + ?
Sans cette infos on ne peut pas aller plus loin...
EDIT:
Sans prétention et sans tests, je n'ai rien sous la main actuellement, je t'ai fait ça vite fait:
#include <Arduino.h>
#define pin_buttonP 2;
#define pin_analogOutput 6; // pas plutot A1, A2 etc ... ?????
byte buttonState;
byte previousButtonState; // For memorize the previous state, if button was pressed or not
byte var1;
void setup () {
pinMode(pin_analogOutput, OUTPUT);
pinMode(pin_buttonP, INPUT_PULLUP);
buttonState = HIGH;
previousButtonState = HIGH;
var1 = 0;
}
void loop () {
buttonState = digitalRead (pin_buttonP);
if (previousButtonState != buttonState) { // Button state has changed
if (buttonState == LOW) { // Button pressed
var1 = (var1==255) ? (0) : (var1+10);
analogWrite(pin_analogOutput, var1); // Write analog output
// Write others actions here if needed.....
// ...........
} else { // Button released
// If button released, do something else ???
// ................
}
previousButtonState = !previousButtonState; // Invert the state
// If button is HARDWARE FILTERED, comment or delete the next line || If NOT HARDWARE FILTERED, adjust the delay by your need.
delay(100);
}
}