[HELP] Arduino

Voici mon code
#include "pitches.h"
const int timeoutPin = A0;
const int ledR = 9;
const int ledB = 10;
const int ledY = 7;
const int ampli = 4;
const int buttonPin = 2;
unsigned long choix;

int timeoutValue = 0;
int buttonState = 0;

void setup() {

Serial.begin(9600);
pinMode(ledR,OUTPUT);
pinMode(ledB,OUTPUT);
pinMode(ledY,OUTPUT);
pinMode(ampli,OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(timeoutPin, INPUT);
randomSeed(analogRead(0));
choix = random(1, 5);

}

void loop() {
digitalWrite(ledR,0);
digitalWrite(ledB,0);
digitalWrite(ledY,0);
delay(1000);
buttonState = digitalRead(buttonPin);
if(buttonState == HIGH) {
// led blink blink scaling
Serial.println(choix);
delay(200);
if (choix == 1) {
ledScale();
}
// music
else if (choix == 2) {
digitalWrite(ledY,1);
//underworldF();
//delay(100);
}
// led blink blink potentiometre
else if (choix == 3) {
digitalWrite(ledR,1);
delay(500);
digitalWrite(ledR,0);
delay(500);
digitalWrite(ledR,1);
delay(500);
digitalWrite(ledR,0);
delay(500);
//potLed();
}
else if (choix == 4) {
digitalWrite(ledR,1);

}
}
else if(buttonState == LOW) {

}
}

J'ai donc un bouton On/Off ainsi que quelques LED.
J'ai 4 fonctions toute simple qui permet de contrôler les led de façon différente (pour montrer au gamin).
J'ai fait en sorte qu'une seul fonction (une random) s’exécute au lancement.
J'ai rajouter un bouton ON/OFF j'aimerais que quand je mette off le programme recommence. HELP ME je suis nouveau sur arduino (j'ai des base de programmation mais j'ai aucune confiance en electronique) et je dois montrer a des gamins.

Poster un commentaire
Hisoka
Hisoka
7 ans

Je sors de l'ombre et me crée enfin un compte et tout ça pour répondre a la question, alors si je peux avoir un traitement de faveur, tapez pas au visage.

Pour ta question, si j'ai bien compris tu veux que ton programme soit en "pause" quand tu mets "OFF" et reprenne sur une autre fonction (un autre "choix") si tu remets "ON", c'est ça?

du coup tu peux retenir la valeur précédente de la variable "buttonstate" et relancer un "choix" si elle passe de "OFF" a "ON"

int oldButtonState=0; //declaration de variable

//code a mettre entre buttonState = digitalRead(buttonPin); et if(buttonState == HIGH)

if((oldButtonState== LOW) && (buttonState == HIGH)){
choix = random(1, 5);
}
oldButtonState=buttonState;

ou bien tu peux changer l'etat d'un flag dans la condition buttonState==LOW:

int flagOFF = 0; //declaration de variable

//code a placer entre if(buttonState == HIGH) { et // led blink blink scaling
if(flagOFF>0){
flagOFF=0;
choix=random(1,5);
}

//code a placer aprés else if(buttonState == LOW) {
if(flagOFF==0){
flagOFF=1;
}

Je code pas sur arduino donc il y a peut être des erreurs de syntaxe, mais normalement ça devrait aller.

Hisoka
Hisoka
7 ans

Et pense aux commentaire et à l'indentation
quand tu fais de petit prog de quelques ligne ça semble pas important de le faire, mais quand tu feras des codes de plusieurs centaines ou milliers de lignes, ou bien quand tu reviendras sur un code après 6mois, tu seras content de l'avoir commenté.

Tuxico
Tuxico
7 ans

@Hisoka: Je l'ai fait juste que quand j'ai copié coller ça a tout aligner j'utilise programino IDE et pas l'ide de base ptet pour ça ! et les commentaires j'y pense jamais. Et content d'avoir pu sortir un ghost fag de sa grotte bienvenue !

Hisoka
Hisoka
7 ans

@Tuxico: bon aprés sur un code comme ça c'est pas la mort, mais c'est bien de prendre l'habitude de le faire.
Quant à moi, content d'avoir pu aider, hésite pas a demander si t'as besoin d'aide en prog (plutôt coté hardware), ou en électronique.

Tuxico
Tuxico
7 ans

@Hisoka: ça marche merci, jvais surement ravoir besoin de toi dans l'avenir ^^ je suis nouveau sur arduino je kiff ça mais jsuis une bite en electronique du moins je me fait pas confiance pour ça !

Cette page est réservée aux ADULTES

Tu es sur le point d'accéder à un site web qui contient du matériel explicite (pornographie).

Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.


En accédant à ce site, tu acceptes nos conditions d'utilisation.