Go Down

Topic: Utiliser valeur du potentiomètre pour décaler une action (Read 8 times) previous topic - next topic

B@tto

Déjà il faut modérer le terme de tâche sur Arduino : il ne peut pas executer plusieurs tâche à la fois comme sur un PC par exemple. En revanche il tourne à 16 mhz, et bien souvent on utilise moins de 1% de la capacité de calcul, ce qui fait qu'on peut très bien executer une tache, puis uen autre et que celà soit completement transparent pour l'utilisateur.

Le delay() consiste à faire tourner l'atmega dans le vide, ce qui bloque le code un certain temps à cette ligne la donc pendant ce temps on ne peut rien faire. L'astuce consite plutot à vérifier à chaque boucle avec la fonction millis() si le temps voulu s'est écouler, comme si tu étais dans un bureau à surveiller l'horloge pour executer une autre tache. Tu scrute l'heure en permanence mais tu peux taper à l'ordianteur par exemple, et quand l'heure vient tu vas te chercher un café ;)

gunsman76

Le problème est un peu plus compliqué qu'il n'y parait.

En fait je ne veux pas utiliser la commande delay tout simplement parce que le nombre de tâche à effectuer et d'environ 50 par minutes...


chaque fois que l'IR est déclenché (donc environ 50 fois par minutes, chiffre qui peut évoluer à la baisse mais au minimum 26), chaque déclenchement doit entrainer la mise au niveau haut de 3 sortie de l'arduino décalé dans le temps de 0,5 à 5 secondes. Mais ce qui complique encore c'est que les 3 sorties ne sont pas déclenché ensemble mais décalé.

Déclenchement = décalage
Déclenchement = décalage


Etc...


et ceci multiplié par au maximum 50 fois par minutes


Voilà pourquoi j'hésite à utiliser delay sur le potentiomètre, car j'ai peur qu'un déclenchement suivant soit bloqué ou pas vu car la fonction delay a été utilisé

Jean-François

C'est justement ce que B@tto t'explique, au lieu d'utiliser delay() tu utilises millis() qui bien que plus laborieux à utiliser dans ce contexte, ne bloque pas le déroulement de la boucle.
MacBook intel core 2 duo  os X snow Leopard 10.6
 eMac PPc G4  os X Leopard 10.5
powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

B@tto

Et puis 50 fois par minute, ton Atmega est en train de rigoler ... Une mesure IR tu peux la faire très très largement en 1 ms, x 50 il te reste environ 59,995 secondes de libre pour faire ce que tu veux ... Soit une exploitation de ton Atmega de 0.01% ... 

gunsman76

A merci pour le renseignement, je m'inquiétais justement, j'avais peur de dépasser la capacité.


Et le relais va resister pour 50 ouverture fermeture par minute 365 jours par an ?

Go Up