web-dev-qa-db-fra.com

Comment "réinitialiser" une carte Arduino?

J'ai téléchargé un sketch sur un Arduino Uno dont la boucle ressemble à ceci:

void loop(){
    Serial.println("Hello World");
}

Donc, maintenant, je ne peux plus rien télécharger, car le IDE dit "port déjà utilisé". 

Est-il possible de "réinitialiser" l'Arduino sans un autre programmeur?

MODIFIER :
Rien d’autre n’utilise le port série et tout s’est bien passé jusqu’à ce que j’ai chargé le croquis précédent.

MODIFIER :
J'ai trouvé des choses intéressantes:

21
dugres

Essayez ce qui suit:

  1. Préparez le programme vide de base (configuration vide, boucle, etc.)
  2. Compilez-le.
  3. Réinitialisez l’Arduino à l’aide du bouton matériel de la puce
  4. Presse Ctrl + U pour télécharger votre code.
  5. Si échec - arrivé à 3.

Il y a un délai avant que le chargeur de démarrage démarre les programmes, travaillez simplement sur votre minutage. Cela fonctionnait pour moi lorsqu'un bogue dans le code de mon Arduino exécutait une réinitialisation logicielle toutes les 500 ms.

24
Valed

J'ai eu le même problème sur deux Arduinos (un Uno et une carte hôte Modern Device Freeduino/USB) et la fenêtre entre la réinitialisation et le début de l'utilisation du port série était si petite qu'il était impossible de la télécharger. 

J'ai finalement résolu le problème en achetant un autre Arduino Uno et en construisant un câble ISP selon ces instructions , et en l'utilisant pour faire clignoter l'application Bare Bones des exemples dans chaque carte inaccessible, à l'aide de Arduino IDE version 0023, en suivant ces instructions pour modifier preferences.txt. (Assurez-vous de sauvegarder le fichier d'origine avant de le modifier afin de pouvoir le remplacer après avoir sauvé votre Arduino.)

Il a fallu un téléchargement rapide pour réparer chaque tableau. Une telle solution rapide après tant de chagrin. Vous ne voudrez peut-être pas acheter un autre Arduino, mais considérez les avantages suivants:

  • Vous pouvez écraser le chargeur de démarrage sur votre Arduino pour gagner de la place.
  • Une fois que le chargeur de démarrage est écrasé, la carte démarrera plus rapidement.
  • Soi-disant, vous pouvez programmer des AVRs bruts pour des projets spéciaux, mais je n'ai pas essayé ceci: Google pour ArduinoISP
  • Cela corrigera rapidement les Arduinos que vous bloquez à l'avenir.
  • Vous pouvez maintenant expérimenter en toute sécurité pour trouver des moyens d'empêcher l'utilisation du port série de verrouiller le périphérique à l'avenir.
5
Sean Sheedy

Assurez-vous de connecter Arduino directement à l'ordinateur et non via un hub L'utilisation d'un hub vous donnera cette erreur.

2
user2630109

Après avoir scruté à fond ce problème, voici une solution très simple qui fonctionne à tout moment:

  • Débranchez votre câble USB
  • Allez dans votre DEVICE MANAGER
  • Cliquez sur Ports (COM & LPT)
  • Clic droit sur Arduino .... (COMx) 
  • Propriétés
  • Paramètres du port
  • Mettez le contrôle de flux surHARDWARE
  • Créer une esquisse vide (* facultatif)
  • Connectez le câble USB
  • Télécharger (Ctrl - U)

// Emtpy Sketch to fix upload problem
// Create by Eric Phenix
// Nov 2014

void setup() 
{ 
} 

// the loop routine runs over and over again forever:
void loop()
{ 
delay(1000);                            
}

Et voila! Eric

1
Eric Phenix

D'après mon expérience avec la communication déjà utilisée ou bloquée, je dirais que le programme avec lequel vous vous connectez a toujours la communication ouverte. J'ai également constaté que si vous débranchez le câble USB, la communication sera interrompue. Ce n'est pas la meilleure solution mais cela résout le problème. J'espère que ça aide.

1
jklmuk

Je viens de passer les 5 dernières heures à chercher une solution à ce problème (port série COM3 déjà utilisé, port série grisé) ... J'ai tout essayé sur tous les forums suggérés, y compris celui-ci .. 

Qu'est-ce qui a finalement été corrigé (débarrassé du dernier code saisi et bloqué et chargé de la fonction de clignotement simple)? Suivez ce lien - http://arduino.cc/en/guide/windows et suivez les instructions pour INSTALLER LES PILOTES. Mon chauffeur était "déjà à jour", mais ces étapes ont été corrigées. Je suis maintenant un campeur heureux une fois de plus.

Remarque: Réinitialisation manuelle du tableau avec le bouton de la puce ou numériquement via misc. Les codes sur Internet ne fonctionnaient pas pour résoudre ce problème car le signal était bloqué/confus entre mon arduino uno et le port de mon ordinateur portable. La mise à jour des pilotes est comme une réinitialisation pour le problème "port série déjà utilisé". 

Au moins jusqu'à présent ..

1
Sard

J'ai un problème similaire.

Si je mets sous tension myarduino, il y a un délai avant l'exécution du programme téléchargé.

Donc, j'utilise ce délai pour télécharger un nouveau programme ou un programme vide:

void setup(){} void loop(){}

donc mon problème résolu.

Débranchez toute connexion aux broches Arduino avant le téléchargement.

0
user599115

Si la console série est toujours ouverte, le port série sera réservé. Fermez-le et réessayez.

Si le port dit Déjà utilisé, alors vous utilisez probablement le mauvais port . Changez-le sur le port où vous avez connecté votre arduino et Puis essayez de le télécharger à nouveau, vous verrez que cela fonctionnera. 

0
Tgold brain

J'ai eu le même problème aujourd'hui. Voici une solution simple que nous avons trouvée pour résoudre ce problème (grâce à Anghiara): 

Au lieu de charger vos nouveaux codes dans l'arduino à l'aide du "bouton d'importation" (le cercle avec la flèche verte) à l'écran, utilisez votre souris pour cliquer sur "Esquisse" puis sur "Télécharger".

N'oubliez pas d'ajouter une ligne delay () à vos codes lorsque vous utilisez serial.println () et des boucles. J'ai appris ma leçon de la manière forte. 

0
Pablo Guzmán

Arduino Leonardo Board

  1. Débranchez le câble USB 
  2. Connecter la broche Rx avec la terre 
  3. Branchez le câble USB
  4. Télécharger un nouveau programme 
  5. Retirez le câble USB
  6. Supprimer la mise à la terre Rx

Cela fonctionne pour moi, je l’espère aussi.

0
PcTronics

J'ai eu ce problème aussi, j'ai essayé les méthodes ci-dessus et aucune ne semblait fonctionner, cependant quelque chose a fonctionné (d'une manière ou d'une autre, je ne suis pas sûr que ce soit juste une chose anormale ou que ce soit réellement une façon de le faire)

  1. Débranchez l'USB de duino
  2. Appuyez sur le bouton de réinitialisation et maintenez-le enfoncé
  3. Branchez l'USB et allumez
  4. continuer à tenir et télécharger le croquis. Une fois le téléchargement terminé, relâchez le bouton de réinitialisation.
0
Keith

Pour Arduino Yun utilisateurs, essayez de télécharger via Ethernet/WiFi (Outils-> Port) ..____ J'ai eu exactement le même problème, j’ai essayé à peu près tout (à part la gravure d’un nouveau chargeur de démarrage). Je suis surpris que cela fonctionne, mais j'ai téléchargé des croquis vides sans aucun problème.

0
lokers

Si rien ne vous aide, vous devez organiser une carte supplémentaire et essayer de la visualiser via Arduino en tant qu'option ISP comme indiqué ici https://www.arduino.cc/en/Tutorial/ArduinoISP ou https: // www .arduino.cc/fr/Tutorial/ArduinoToBreadboard . au lieu de chargeur de démarrage, vous pouvez sélectionner vos propres programmes pour flasher via ISP

0
Rijo Kuriakose

Voici ce que j'ai fait sous Linux pour pouvoir programmer mon Arduino Micro bloqué dans une boucle qui envoie la clé 0 lorsqu'il est connecté par USB.

# while true; do xinput float $(xinput --list | grep -i Arduino | awk '{print $7}' | cut -d'=' -f 2); done

Votre sortie peut être légèrement différente alors essayez simplement de courir;

# watch xinput --list

branchez ensuite l’Arduino et voyez comment la sortie est formatée.

Cela empêchait X d’accepter les touches et permettait à l’Arduino IDE de programmer enfin!

0
james

Assurez-vous de ne pas accéder au port série depuis un terminal, cette boucle (ou tout code) ne devrait pas empêcher la programmation de l’Arduino.

0
Chiva