Pourquoi ce condensateur ???

Hello,
je viens ici pour vous poser une question, j'ai fait quelque chose mais je sais pas pourquoi ça m’énerve.
Je m'explique, j'ai codé un bout de php + html, mis le bazard dans apache sur mon Raspberry branché mon arduino avec un code que j'ai écrit, et quand on clique sur allumer ou éteindre sur le navigateur, on allume ou éteint une lampe. Le problème c'est que ça marchais pas avant que je mette un condensateur de 10µf entre le reset et le gnd de l'arduino. Pourquoi ce condensateur fait il que ça marche et que mon arduino arrête de s'initialiser quand j'envoi quelque chose sur le port série ?

(si je suis pas clair, vous pouvez regarder ce que j'ai fait ici ; - YouTube et me dire pourquoi le condo fait que ça marche...)

Merci d’avance ! bonne soirée :slight_smile:

bonjour,
sans le code difficile de répondre.
mais déjà tu alimente le nono via l'usb du rasp qui ne délivre pas beacoup et tu alimente un relais qui demande de la patate.
alimente en direct ton nono, retire le condo et dis si ca fait la même chose.

ça vient certainement pas de l'alim. Je sais pas si le code est important... il est là : http://uploaded.net/file/pswiuxtp

Merci tout de même pour ta réponse.

Bonsoir

Avec ta capa de 10 µF tu empèches le signal DTR de faire un reset de ton atmega328 !

Sinon si tu ouvres une liaison serie laisse la ouverte ne la referme pas.

A+

Okay merci mais ça marche comment ? (ben je fais un Serial.begin(9600); et c'est tout donc je referme jamais...)

quand j'envoi quelque chose sur le port série ?

Qui ton raspberry ? Ton ordi ?
Quel est le programme qui envoie quelque chose à ton arduino ?

<?php

$comPort = "/dev/ttyACM0"; //Port com arduino

if (isset($_POST["rcmd"])) {
$rcmd = $_POST["rcmd"];
switch ($rcmd) {
     case Allumer:
        $fp = fopen($comPort, "w+");
        if($fp) {
          fwrite($fp, 'H');
          fclose($fp);
        } else {
          die('pas de comm avec l\'arduino');
        }
        break;
     case Eteindre:
        $fp = fopen($comPort, "w+");
        if($fp) {
          fwrite($fp, 'L');
          fclose($fp);
         } else {
          die('pas de comm avec l\'arduino');
        }
  break;
  default:
  die('Quelque chose ne vas pas...');
  }
}
?>

<html>
<head>
<title>Contrôle des lampes</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

<h1>Contrôle des lampes</h1>

<form method="post" action="<?php echo $PHP_SELF;?>">
<input type="submit" value="Allumer" name="rcmd">
<input type="submit" value="Eteindre" name="rcmd">
</form>
</body>
</html>

C'est le raspberry qui envoie quand je lui demande a partir de mon pc....

$fp = fopen($comPort, "w+");
        if($fp) {
          fwrite($fp, 'H');
          fclose($fp);

fopen($comPort, "w+") // tu ouvres ton port en écriture
fclose($fp) // tu refermes ton port ! :wink:

chabot380:

$fp = fopen($comPort, "w+");

if($fp) {
         fwrite($fp, 'H');
         fclose($fp);




fopen($comPort, "w+") // tu ouvres ton port en écriture
fclose($fp) // tu refermes ton port ! ;)

AH OKAYYYYYYY J'essaierais demain parce qu'il faut que je démonte mon robot pour mon arduino.... Et le condensateur il marche comment dans mon cas ?

En mettant un condo de 10 µF tu mets un grande constante de temps pour une toute chit' impulsion, donc le reset de l'atmega n'a pas le temps de descendre. ( explication simpliste je ne connais pas ton niveau en elect. )

A+

Super ! merci pour les explications, je n'ai que des bases en élec et je comprends jamais l'utilisation de condo, je suis pas capable de savoir quand il faut en mettre un ! En tout cas merci beaucoup

Ca ne fonctionne pas en retirant les fclose.
J'en conclut donc que ce composant est nécessaire pour mon utilisation.

C'est pas les fclose qui reset la carte c'est les fopen.
Il faut faire un fopen à l'initialisation du programme et laisser la liaison ouverte jusqu'à la fin

Ah ok... bah il doit quand même y avoir un gros truc a changer dans mon prog, parce que ça fait toujours pareil... Après c'est vraiment un bout de luxe. Un condo fait bien l'affaire. Sauf si qqn trouve la solution qui marche bien :slight_smile:

Merci à tous ! J'aime ce forum j'ai toujours des réponses ! et en plus des réponses pertinentes :slight_smile:

essaye la solution de virer le condo et alimenter la nono à part comme je l'ai suggéré.
au moins tu seras fixé si ca viens ou non de ca :wink:
j'ai le même soucis avec un shield gsm et un rasp, de temps en temps le shield par en pinuts.

+1 avec infobarquée : le raspberry pi a une alimentation très faiblarde : chez moi, impossible de connecter un disque dur externe USB auto-alimenté.