Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// partage de liens //// une carte des membres//// (apéros) codelab


#1 2015-06-17 15:32:06 arduino stop D'urgence

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 216

arduino stop D'urgence



bonjour a tous

je programme un arduino pour faire du code morse mon problème est que lorsque la séquence est initier il n'y a pas moyen de L’arrêter. Le arduino bloque les commande envoyer via série jusqu’à ce que la séquence est terminer la il exécute toute les fonction que je lui ai demander lors de la séquence initier
il y a t-il un moyen de faire arrêter un void qui est en cours ? mettre la pin reset au GND fonctionne très bien mais il faut que ce sois en soft et non en hardware car la boite de code morse est loin et lorsque je met la pin reset sur une pin I/O je revient au même problème il reset oui ça ça marche mais après que la séquence initier est terminer

merci
Danny

Hors ligne

 

#2 2015-06-18 19:29:50 Re : arduino stop D'urgence

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 727

Re: arduino stop D'urgence



Bonjour,

Pour réaliser ce que tu souhaites, il faut utiliser les interruptions.
Il faut dans un premier mettre un pin de l'arduino permettant les interruptions externes en entrée et activer les résistances Pull-up :

pinMode(2, INPUT_PULLUP);

C'est sur ce pin que tu mettras un interrupteur reliant ce pin au GND.

Ensuite il faut définir quelle méthode sera appelée lors de l'interruption :

attachInterrupt(0, inter, FALLING);

voir :
http://www.arduino.cc/en/Reference/AttachInterrupt

Dans ta méthode inter, il faut changer d'état une variable globale booléenne

Ensuite dans ta boucle pour envoyer tes messages en morse, il faut vérifier avant chaque envoi d'octet si la variable état le permet.

Bon courage.

Hors ligne

 

#3 2015-06-18 20:09:40 Re : arduino stop D'urgence

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 216

Re: arduino stop D'urgence



A ok ca cest clair
mais je ne veux pas de switch par contre il faut que en mode soft je puisse arreter le arduino
ex si je recois interup du port serie il faut que le arduino arrete

Hors ligne

 

#4 2015-06-19 17:09:50 Re : arduino stop D'urgence

geb
vicieux petit troller pervers
Lieu: Rennes
Date d'inscription: 2011-06-16
Messages: 78
Site web

Re: arduino stop D'urgence



J'y connais pas grand chose en arduino mais http://forum.arduino.cc/index.php?topic=60668.0

Après tu peux bricoler:
- Découper la séquence morse que tu envoies, le faire par bloc de taille/temps fixe,
  - Lire le port serie entre chaque bloc et agir en fonction
  - Lire le port serie entre chaque bloc et emettre une interuption pour passer par la routine d'interruption et que le code reprenne sa course après si c'est ce que tu souhaites faire


Ceci n'est pas un flood.

Hors ligne

 

#5 2015-06-20 02:41:05 Re : arduino stop D'urgence

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 216

Re: arduino stop D'urgence



Oui cest bon merci pour lidee je vais pouvoir jongler en ce sens
merci
a+

Hors ligne

 

#6 2015-06-20 07:41:55 Re : arduino stop D'urgence

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 727

Re: arduino stop D'urgence



Tu peux utiliser l'interruption liée au port série. IL existe pour Arduino la méthode prédéfinie serialEvent(). Va regarder ici pour te donner une idée :
http://www.arduino.cc/en/Tutorial/SerialEvent
Ensuite si tu n'as cure des données, tu peux agir comme je te l'avais proposer dans ma première réponse.

Dernière modification par Mushussu (2015-06-20 10:14:41)

Hors ligne

 

#7 2015-06-22 17:19:45 Re : arduino stop D'urgence

imdidi
membre
Date d'inscription: 2012-10-05
Messages: 216

Re: arduino stop D'urgence



oui justement je m’étais dis que s’était peut être ça mon problème car la tous ce passe dans la loop() le serialRead l’appelle de mon void morse quoi faire avec les mot reçu dans le serialRead je n'utilise pas serialEvent()
j'en étais venu a la conclusion que a cause que tous ce passe dans le loop quand le arduino lance le morse le loop lui continue aussi et ça load le arduino qui n’est plus capable d'exécuter autre chose car il serait saturer est-ce une possibilité ?

merci
Danny

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2017