Projet Marche/arret programme

bonjour
j’ai un petit problème avec mon programme.
je souhaiterais donc pouvoir l’allumer en appuyant sur le bouton et faire de même pour l’éteindre.
j’ai déjà réussi à faire pour que le programme s’allume mais je ne trouve pas pour pouvoir l’éteindre.
Pouvez-vous m’aider?

Merci

bouton_marche_arret_led_simple_exemple__MODIFI2E_AVEC_MON_PROG.ino (1.23 KB)

Je vais demander à mamade Irma : Qui est ce IL ?

Si la réponse est : le programme, le programme de l'arduino fonctionne en permanence, on ne l'éteint pas. Par contre, ce programme peut allumer ou éteindre des choses. Y a plus qu'a nous dire quoi. (une LED je suppose ???)

Après, si je fais quelques efforts malgré tout, si je vire tous tes commentaires et qu'on fait comme si ton montage était bon, sans chercher trop loin, je vois un truc qui cloche dans ton programme :

int val=digitalRead(bouton);
...
...
val = digitalRead(inputPin);  // read input value

Tu lis d'abord l'entrée d'un bouton, puis tu mets la valeur de la broche analogique dans la même variable, sans avoir traité la première...

Pourquoi as tu pris comme point de départ un programme de télécommande IR ou detecteur de mouvement IR. Y a un but précis derrière ça ?

Le programme que tu cherches existe déjà et se trouve sans doute dans menu FIchier/exemple/02-digital/button

(Tu ne peux pas faire n'importe quoi en C, il faut apprendre ce langage un minimum pour comprendre ce que tu fais.)

bonjour,
je crois me souvenir qu'il y a un exemple dans l'ide avec bouton poussoir.
la fonction boolean est faite pour ca.
bouton au départ false
on appuie ca passe en true
on appuie ca repasse en false

en faite je souhaite détecter une présence avec le capteur pour ensuite prendre en photo et l'envoyer par mms mais sa se n'est pas pour maintenant.
Avec le bouton je voulais allumer le programme et l’éteindre tout simplement, et apparemment ce n'est pas possible?

vohu:
Si la réponse est : le programme, le programme de l'arduino fonctionne en permanence, on ne l'éteint pas. Par contre, ce programme peut allumer ou éteindre des choses. Y a plus qu'a nous dire quoi. (une LED je suppose ???)

(Tu ne peux pas faire n'importe quoi en C, il faut apprendre ce langage un minimum pour comprendre ce que tu fais.)

Si non, pour le capteur de présence et l'appareil à photo, il faudra mieux t'y mettre quand tu sauras utiliser le programme bouton et blink

ok donc le bouton pourrais me servir à éteindre tout ma parti avec le détecteur et tout ? c'est sa?

et par rapport à l'erreur reporte plus haut je l'ai corriger.

Voilà comment ça marchera :

Ton programme arduino tourne en permanance dans la partie loop() du programme.

Dans cette boucle, il faudra faire 2 choses :

1/ lire l'état de l'interupteur.

2/ s'il est enfoncé, on active l'appareil à photo.

Plus tard, il faudra juste remplacer le 1/ par la lecture du detecteur de mouvement

ok mais au niveau de la prise de photo c'est beaucoup plus compliquer que cela que je cherche de faire je souhaite prendre en photo avec un smartphone sous android ( j'ai une carte arduino mega adk) et envoyer les photo par mms. mais pour l'instant je bloque sur le bouton je ne sait pas comment ecrire la partie du programme pour eteindre ou mettre en pause la parti du programme qui doit marcher.

Ca y est... Mme Irma commence à donner des informations utiles...

Ce que j'en pense : Si t'arrives pas allumer une led à partir d'un bouton. Tu ne sauras pas faire ce que tu veux. D'autant plus que peu de gens ont cette carte, ce qui va raréfier l'aide pour ton projet final.

je sais faire s'allumer et éteindre une led avec bouton

mais avec mon programme complet je suis un peu perdu lol

int ledpin=13;
int bouton=8;
int etat=0;
int prev_etat=0;

void setup(){
pinMode(ledpin,OUTPUT);
pinMode(bouton,INPUT);
}

void loop(){
int val=digitalRead(bouton);

if((val==HIGH) && (prev_etat==LOW)){
etat= 1 - etat;
delay(10);
}

prev_etat=val;

if(etat==0){
digitalWrite(ledpin,HIGH);
} else {
digitalWrite(ledpin,LOW);
}
}
Voila :slight_smile:

Bravo le copier/coller d'ici

T'as apriori rien compris à ce programme. Vu que t'es pas très coopératif, je te laisse avec ton problème, peut être que quelqu'un d'autre te dira tout cuit ce que tu veux.

c’est bien ici que j’ai prit le programme et que j’ai essayer de le comprendre et je pense l’avoir comprit. j’ai ameliorer mon programme sauf que maintenant quand je le stop il s’arrete a l’endroit ou je l’ai arreter et il ne redemarre pas depuis le debut quand je le relance.

Amélioré ? la preuve, il fonctionne pas... mais attends un peu... je vais deviner où se trouve l'erreur.

voila.

bouton_marche_arret_led_simple_exemple__MODIFI2E_AVEC_MON_PROG.ino (1.31 KB)

toady_51:
j'ai ameliorer mon programme sauf que maintenant quand je le stop il s'arrete a l'endroit ou je l'ai arreter et il ne redemarre pas depuis le debut quand je le relance.

Je répète... ton programme ne s'arrête pas.
Lorsque Serial.println("Arret"); 'execute, le programme continue et recommence en boucle ( tout ce qui est dans loop{ } )

De plus, tant que etat ne changera pas de valeur, c'est cette partie du code qui sera executé à chaque boucle :

  else{
        Serial.println("Arret");
        digitalWrite(ledpin, LOW); 
        delay(1000);
    }

Copie ce qui apparait dans la console serie . Il devrait y avoir :

Arret
Arret
Arret
Arret
...

Si tu appuies sur le bouton, etat change de valeur, et c'est le contenu du IF qui s'execute.

Maintenant, t'as toujours pas dit ce que tu veux que ton programme fasse. (pas le but final de ton projet, le but de ton programme actuel)

oui c’est cela sa ecrit
arret
arret
arret

et quand j’appui sur le bouton le programme se relance mais direct il n’efface pas tout se qu’il y avait avant.
et je ne connait pas la fonction pour faire cela :confused: si elle existe.

toady_51:
.. il n'efface pas tout se qu'il y avait avant.

Youhouuuuu, enfin on y arrive..
Ta console ne s'efface JAMAIS, sauf si tu le fais à la main. Tu n'es pas dans un programme pour PC ou tu demandes d'effacer l'écran.
La console affiche tout ce que tu as demandé d'afficher un moment donné et c'est tout.

Tu aurais eu une réponse claire tout de suite en demandant "comment on fait pour effacer la console ?"

En Général, pour faire croire qu'on a effacé, on lance autant de ligne vides que pourrait afficher la taille de la fenêtre. Mais l'IDE arduino ne permet apriori pas de savoir cà

désoler je viens seulement de m’apercevoir de cela mais ce n’était pas mon problème du début^^

Okk merci.