Arduino Perdendo Comunicação com PHP

Boa Tarde, estou tendo um problema com a comunicação com o PHP e o Arduíno,
consigo ligar e desligar uma porta no Arduíno por um certo tempo, de repente do nada ele não comunica mais.

Ai tenho que desligar o Arduíno e ligar novamente, assim volta a funcionar. :~

Estou usando:
Arduino MEGA 1280, e PHP + Jquery Mobile, WAMPSERV.

Segue o Código :

<<Arduíno>>
int Pino = 13;
int usbnumber = 1 ; 
 
void setup() { 
    pinMode(Pino, OUTPUT);  
    Serial.begin(9600); 
} 
void loop() {
   if (Serial.available() > 0) {
        usbnumber = Serial.read(); 
   }
    if (usbnumber == '1') { 
          digitalWrite(Pino, LOW); //desliga   
    } 
    if (usbnumber == '2'){ 
          digitalWrite(Pino, HIGH); //liga
        }  
}
<?php 
$comPort = "com2"; 
if (isset($_POST["rcmd"])) { 
    $rcmd = $_POST["rcmd"]; 
switch ($rcmd) { 
    case "1": 
		$fp =fopen($comPort, "w+"); 
		fwrite($fp,'1'); 
		fclose($fp); 
    break; 
   case "2": 
        $fp =fopen($comPort, "w"); 
		fwrite($fp,'2'); 
		fclose($fp); 
	break;    
	default:
	die('???'); 
	} 
}
?>

<html>
	<head>
		<title>SAR - Sistema de Automacao Residencial WEB</title>
				<link href="_css/jquery.mobile.css" type="text/css" rel="stylesheet" />
				<script src="_js/jquery-1.4.3.min.js"></script>
		<script src="_js/jquery.mobile-1.0a3.min.js"></script>
	</head>
	<form method="post" action=""> 
		<body>
		
		<div data-role="page">
			<div data-role="header">
				<h1>Controle Arduino</h1>
				</div><!-- /header -->
			<div data-role="content">	
				<!-- ON/Off -->
				<div data-role="fieldcontain"> 
					<label for="slider2">Liga/Desliga 13:</label> 
					<!--<select name="slider2" id="slider2" data-role="slider" onchange="$.post('arduino.php',{rcmd:this.value},function(data){$('#resposta').empty().append(data)});">-->
					<select name="slider2" id="slider2" data-role="slider" onchange="$.post('formulario.php',{rcmd:this.value});">
					<!--<select name="slider2" id="slider2" data-role="slider"> -->
						<option value="1">Ligar</option> 
						<option value="2">Desligar</option> 
					</select> 
				</div> 	
				
				</div><!-- /content -->
			
			<div data-role="footer">
				<h2>SAR - Sistema de Automação Residencial WEB</h2>
			</div><!-- /header -->
		</div><!-- /page -->
		</form> 
	</body>
</html>

tenta assim:

int Pino = 13;
int usbnumber = 1 ; 
 
void setup() { 
    pinMode(Pino, OUTPUT);  
    Serial.begin(9600); 
} 
void loop() {
   if (Serial.available() > 0) {
        usbnumber = Serial.read();
        if (usbnumber == '1') { 
             digitalWrite(Pino, LOW); //desliga   
        } else if (usbnumber == '2') { 
              digitalWrite(Pino, HIGH); //liga
        }  
   }
}

desta maneira você só muda o pino quando recebe alguma coisa. é bem estranho porque o código é simples.

mas será se implica na comunicação?

kabixi:
mas será se implica na comunicação?

não entendi!

A comunicação do Arduíno, por que do nada a pagina Web não se comunica com o Arduíno, vc pode clicar em ligar ou desligar que nao responde nada.

tenta colocar um LED piscando igual o exemplo "Blinky" no seu código e ver se o arduino está travando mesmo(o LED parar de piscar)... como eu disse é muito estranho o que está acontecendo.

Bom coloquei ele "Blinky" fica piscando normal, nao parou nem um pouco, agora to preocupado, será se o PHP irá trabalhar bem com a porta serial. Por que ta estranho, o site funciona normal, mas não comunica com o Arduino.

O mega1280 tem reset automático. Toda vez que a porta serial é aberta no PHP ele reseta o seu arduino. Isto deve estar causando algum problema já que você está resetando ele a cada chamada na sua página PHP.

Como eu disse tem algumas maneiras de fazer isso mas nenhuma é muito simples como adicionar o código. Da uma procurada que você vai achar um método de tirar um resistor do seu mega e resolver o seu problema.

ja estou utilizando um resistor. :~