Amigo, apenas coloquei em evidência as dicas dos outros colegas que tentaram ajudá-lo estão corretas...
1°
<form method="post" action="<?php echo $PHP_SELF;?>"> O conteúdo do action em um dos exemplos do Bruno Soares é vazio "" e foi como fiz porque com com seu ardumento dá erro.
2° Sugiro que você estude mais a linguagem de programação(o arduino no fundo é um C++ disfarçado),
No arduino você compara
if (usbnumber = '1') ; Esse '1' entre aspas quer dizer o caracter 1 que na tabela ASCII significa 49, então no PHP você tem que enviar o caracter 1, mas você manda
fwrite($fp, chr(1)); A função chr() pega o caracter referente aquela posição decimal 1, que na tabela ASCII não possui simbolo, apenas um nome SOH. Então pense, 49 é igual a 1? O correto seria
fwrite($fp, '1');A minha parte PHP que rodou
<?php
$Porta = "com4";
if (isset($_POST["rcmd"])) {
$rcmd = $_POST["rcmd"];
switch ($rcmd) {
case "desliga":
$fp =fopen($Porta, "w+");
sleep(2);
fwrite($fp, '1');
fclose($fp);
break;
case "liga":
$fp =fopen($Porta, "w+");
sleep(2);
fwrite($fp, '2');
fclose($fp);
break;
default:
}
}
?>
<html>
<head><title>Controle Arduino</title>
</head>
<body>
<div align="center">
<form method="post" action="">
<p>
<input type="submit" value="desliga" name="rcmd" height="10%">
</p>
<p><br/>
<input type="submit" value="liga" name="rcmd" height="10%"><br />
</p>
<p> </p>
<p> </p>
<body>
</form>
</div>
</center>
</body>
</html>
