Show Posts
Pages: [1]
1  International / Français / Re: Avrdude not in sync on: April 04, 2013, 10:29:39 am
Mince... je n'ai pas de deuxième arduino, je vais voir pour me procurer de quoi réparer ou carrément en acheter une autre.

La prochaine fois je me renseignerais mieux avant de jouer avec le 230v ^^' : j'avais utilisé ca : http://www.robotshop.com/productinfo.aspx?pc=RB-See-83&lang=fr-CA et j'ai branché les fils sur le COM et VCC comme s'il s'agissait d'un interrupteur comme j'avais vu sur internet.


Enfin bon, merci de la réponse rapide.
2  International / Français / Avrdude not in sync on: April 01, 2013, 08:02:37 pm
Bonjour.
J'ai une arduino uno r3 avec laquelle j'essayais d'allumer une lampe en 250v grace à un relais 230V. Je ne sais pas trop ce qui c'est passé j'ai pourtant bien branché les fils de courants sur "COM" et "VCC" du relais, et les +, - et signal de l'arduino sur la bonne prise du relais, mais quand je lance le programme la lampe s'allume, puis quand je lui demande de l'éteindre, le courant saute au disjoncteur de la maison :/.

Du coup je le rallume en débranchant soigneusement la lampe et la carte arduino. Maintenant que je la branche sur mon ordi : le pilote est bien reconnu, dans le gestionnaire des prériphériques j'ai bien Arduino Uno R3 en COM7.
J'essaye alors de lancer un programme et j'ai le droit à :
avrdude: stk500_getsync(): not in sync: resp=0x00

Du coup j'ai peur d'avoir endommagé la carte ... Que dois-je faire pour la réparer (si c'est possible) ?
3  International / Français / Le logiciel ne reconnait plus ma carte Arduino ! on: September 27, 2012, 02:47:22 pm
Bonsoir, j'ai du faire une mauvaise manip en débranchant/rebranchant une arduino uno en usb, et du coup le logiciel ne la reconnait plus : "Serial port COM7 not found. Did you select the right one ?", pourtant la carte est bien alimentée par l'usb, et windows fais le "bip" caractéristique quand on branche un périphérique. De plus quand je vais dans périphériques et imprimantes, "Arduino Uno R3" est bien listé dedans.

Comment faire pour la refaire fonctionner   smiley-roll-blue ?
4  International / Tutoriels et cours / Re: [Tuto] Implémenter un protocole de communication on: September 07, 2012, 09:34:27 pm
Je viens de dévorer votre code ! Bravo je le trouve super bien codé.

Ca m'inspire pas mal pour améliorer le mien, mais pour le petit système que je fais, je ne sais pas si séparer les deux "couches" de message comme vous le faites est une bonne idée.
En tout cas bravo pour le travail fourni !
5  International / Français / Re: Traiter des commandes reçue par le port Série on: September 06, 2012, 08:11:18 am
Merci grace à vous deux j'ai pu corriger mon code et ça fonctionne.
J'ai comme vous me l'avez conseillé déclaré l'index i et le tableau command en global comme ça ils ne sont pas réinitialisés à chaque tour de boucle, le i ne se remet à 0 que lorsque que in == ';' (quoique ça fonctionne aussi avec le '\n') mais j'aime bien comme ça) et je vais tout de suite implémenter en if pour ne pas faire d'overflow si on tape une commande trop longue.

Je voudrais savoir si on peut vider la pile de données entrantes, comme ça si i > cmdLen (longueur du tableau command), alors je vide la pile et le tableau en envoyant un message "commande trop longue"


Pour ceux que ça interesse le code fonctionnel :
Code:
boolean ledState[13] = {false};
int i = 0;
char cmd[50] = "";
int cmdLen = 50;

void setup () {
 
   pinMode (13, OUTPUT);
   Serial.begin (9600);
}

void loop () {
 
  while (Serial.available ()) {
    char in = Serial.read ();
   
    if (i < 50) {
      cmd[i] = in;
   
      if (in == ';') {
        exeCmd ();
        clearCmd();
        break;
      }
    }
    else {
      Serial.println ("Commande trop longue.");
      Serial.flush ();
      clearCmd ();
    }
   
    ++i;
  }
 
}

void clearCmd () {
  for (int c; c < cmdLen; ++c)
    cmd[c] = 0;
  i = 0;
}
void exeCmd () {
 
  char * type = strtok (cmd, " ");
 
  if (strcmp (type, "Set") == 0) {
    // Action sur les sorties.
  }
 
  else if (strcmp (type, "Check") == 0) {
    // Vérifie l'état d'une sortie
    int num = atoi (strtok(NULL, " "));
    if (num > 0 && num < 13)
      Serial.println (ledState[num]);
    else
      Serial.println (String("Erreur la sortie ") + num + String(" n'existe pas"));
  }
 
  else if (strcmp (type, "Read") == 0) {
    // Lie la valeur d'une entrée
    int num = atoi (strtok(NULL, " "));
    if (num > 0 && num < 5)
      Serial.println (analogRead(num));
    else
      Serial.println (String("Erreur l'entree ") + num + String(" n'existe pas"));
  } 
  else if (strcmp(cmd, "\n") == 0)
    Serial.println ("Commande connue");
  else
    Serial.println ("Commande inconnue");
 
 
}

6  International / Français / Traiter des commandes reçue par le port Série [résolu] on: September 05, 2012, 06:47:43 pm
Bonsoir, cela fait des heures que j'esssaye simplement de récupérer et exécuter des commandes reçues par le port série, voilà mon code :

Code:
boolean ledState[13] = {false};

void setup () {
  
   pinMode (13, OUTPUT);
   Serial.begin (9600);
}

void loop () {
  char command[50] = "";
  int i = 0;
  
  while (Serial.available ()) {
    char in = Serial.read ();
    command[i] = in;
  
    if (in == '\n')
      exeCmd (command);
      
    Serial.println(command);
    
    ++i;
  }
  
}

void exeCmd (char * cmd) {
  
  
  if (strcmp(strtok(cmd, " "), "Set") == 0) {
    // Action sur les sorties.
  }
  
  else if (strcmp(strtok(cmd, " "), "Check") == 0) {
    // Vérifie l'état d'une sortie
    int num = atoi (strtok(NULL, " "));
    if (num > 0 && num < 13)
      Serial.println (ledState[num]);
    else
      Serial.println ("Erreur cette sortie n'existe pas");
  }
  
  else if (strcmp(strtok(cmd, " "), "Read") == 0) {
    // Lie la valeur d'une entrée
    int num = atoi (strtok(NULL, " "));
    if (num > 0 && num < 5)
      Serial.println (analogRead(num));
    else
      Serial.println ("Erreur cet entrée n'existe pas");
  }
  
  else
    Serial.println ("Commande inconnue");
  
  
}
   

Le but est d'envoyer une commande du style "Read 3" ou "Check 12" ou "Set 3 1" (pas encore codé le set") en série, mais ça ne fonctionne jamais, là j'ai mis le print (command); pour débuguer et celui ci ne renvoie rien, comme si le code ne lisait rien des commandes que j'envoie.

Si vous pouviez me dire si vous voyez une erreur, merci d'avance.
7  International / Français / Re: Mesure de la pile sur arduino on: September 03, 2012, 03:37:02 pm
Ok merci beaucoup !

8  International / Français / Re: Mesure de la pile sur arduino on: September 03, 2012, 12:24:28 pm
Super article Skywodd, merci pour vos réponses à vous deux ^^.

J'ai une remarque, sur la photo je vois que la deuxième résistance est branchée directement sur le Gnd de l'arduino, moi je l'ai branchée directement sur le - de ma pile. C'est mieux de faire comme ça ou ça revient au même ?

J'aimerais juste savoir, a partir de quel voltage on peut considérer qu'une pile est naze ?
9  International / Français / Mesure de la pile sur arduino on: September 02, 2012, 12:34:33 pm
Bonsoir, j'aimerais connaitre approximativement le "pourcentage de charge" de la pile qui alimente l'arduino. pour ça j'ai monté un pont diviseur de tension entre le + et le - de ma pile, 2 résistances de 10Kohm pour une pile de 9v pour récupérer un courant de 4,5v que je mesure sur l'entrée analogique 0.

Je lis alors une valeur de 720, je suppose que 1024 correspond à 5volts donc pour 720 j'ai une tension pour la pile de 3,5 volts ?

Le problème est que je n'ai aucune connaissance en électricité et j'ai fait ce montage juste parce que je connaissais le principe du pont diviseur et je me demande si c'est la bonne solution pour connaitre l'état de la pile, si je suis à 3,5 volts ça signifie que la pile est à 70% de charge ?
ça m'étonnerait que ce soit aussi simple et j'aimerais que vous m'éclairiez, merci d'avance.
Pages: [1]