Arduino cesse d'envoyer des données sur le port série après une longue période de temps

Je suis en utilisant un Arduino Uno rev2 appareil comme appareil connecté en permanence que, parfois, envoie des signaux à un PC (Windows 7 x64). Le Code compilé avec Arduino 1.0 logiciel de arduino.cc

Sujet sur arduino.cc, Arduino cesse d'envoyer des données à la Série après une longue période de temps

Source code

Il fonctionne parfaitement, mais parfois, après une longue période de temps, l'ordinateur cesse de recevoir des données de l'Arduino appareil. Il n'est pas un logiciel PC problème, comme tous les logiciels(mastic, telnet, etc..) agit de la même manière - je peut envoyer des données À l'Arduino (le dispositif répond à des commandes); je ne peux pas le recevoir.

Un problème similaire a été décrit ici dans La communication série s'arrête après de longues périodes., mais aucune solution n'a été proposée.

Connecter/déconnecter l'appareil a résolu le problème temporairement, mais cela ne peut pas être une solution, car l'appareil est censé être utilisé en permanence et de manière entièrement automatique.

À l'aide de carte bouton de réinitialisation rétablit programme & toutes les valeurs de début de la coutume de l'aide. Les données ne commencent à être reçu par le PC.

Notes:

  1. millis() roulement de bug n'est pas reproduit sur un Arduino Uno conseil avec Arduino 1.0 logiciel - je suppose que cela a été corrigé et millis() maintenant de faire vraiment de roulement seulement en 50 jours, comme il est dit dans la documentation. En plus de code a millis() code indépendant de la qui ne répond pas trop.

  2. LED qui clignote lors de l'envoi des données vers le PC continue à clignoter.

  3. Chaînes d'utilisation pourrait augmenter l'utilisation de la mémoire, mais ce programme est bien trop petite pour que ce soit un problème. Aucune mémoire supplémentaire n'a été utilisé après 10 heures de programme en cours d'exécution, donc je ne vais pas la peine de remplacer des Chaînes de caractères avec autre chose, comme port Série problème est bien plus grandes.

Si vous pensez que le problème est dans le programme arduino bug, merci de penser à comment expliquer TX clignote & reset ne l'aide pas.

Si vous utilisez un programme de terminal (TeraTerm, mastic) le PC de continuer à recevoir les données? Si l'ordinateur cesse de recevoir des pouvez-vous voir la carte Arduino est encore en train de transmettre avec un oscilloscope?
Ce code vous aide à envoyer des données vers le PC? Même code que dans le message lié? Quelle est la version de la carte Arduino logiciel utilisez-vous (certains changements ont été apportés à Serial dans le récemment publié la version 1.0)?
Jeff, à l'aide de mastic/SecureCRT ou moniteur de série à partir de arduino.cc IDE la même action: 1. réussir à se connecté à conseil d'administration 2. envoyer des commandes à la carte (je peux le contrôler) 3. pas de caractères sont reçus.
Matthieu Murdoch, j'ai passé à 1.0 récemment. Que des erreurs se montre dans long période de temps, j'ai besoin de quelques jours pour se reproduire.
Êtes-vous passer toutes les charges? J'ai eu des cas où la commutation des charges inductives comme les pompes provoque l'Arduino à perdre de son pied, qui exige que les pilotes de le recharger ou le câble connecté et rebranché, même si le code Arduino continuerait à fonctionner.

OriginalL'auteur Max The Cat | 2011-12-05