Chip, многозадачность, на удивление работает довольно эффективно. НО! В ТЕРМИНАЛЕ! Через PHP разницы никакой. Может быть я что-то не правильно делаю?
Задача следующая - управление из PHP 8-ю устройствами (в настоящее время светиками). Это получается хорошо (передача из PHP в Ардуину, но при включении любого из 8 устройств, его значение меняется с 0 на 1 и ардуина в PHP должна об этом сообщить. Вот в этом и проблема.
Вот скетч для Ардуинки (с leOs):
PHP код:
#include "leOS.h"  
leOS myOS;  //создать экземпляр класса 

#define led1Pin 30  
#define led2Pin 31  
#define led3Pin 32  
#define led4Pin 33  
#define led5Pin 34  
#define led6Pin 35  
#define led7Pin 36  
#define led8Pin 37  
int stat1;
int stat2;
int stat3;
int stat4;
int stat5;
int stat6;
int stat7;
int stat8;
void setup()  
{   
  
Serial.begin(9600);   
  
myOS.begin();
  
  
pinMode(led1PinOUTPUT);    
  
pinMode(led2PinOUTPUT); 
  
pinMode(led3PinOUTPUT); 
  
pinMode(led4PinOUTPUT); 
  
pinMode(led5PinOUTPUT); 
  
pinMode(led6PinOUTPUT); 
  
pinMode(led7PinOUTPUT); 
  
pinMode(led8PinOUTPUT); 
  
  
myOS.addTask(sendstatus1000);//добавить задачу с интервалом выполнения через 250мс 
}  

void loop()  
{
serial_read_write();
}

void serial_read_write()
{  
 
  if (
Serial.available() > 0)  
  {  
    
byte inByte Serial.read();  
    switch (
inByte)  
    {  
        case 
65:  
        
digitalWrite(led1PinHIGH);  
        break;  
        
        case 
66:  
        
digitalWrite(led1PinLOW); 
        break;
      
        case 
67:  
        
digitalWrite(led2PinHIGH);  
        break;  
        
        case 
68:  
        
digitalWrite(led2PinLOW); 
        break;
      
        case 
69:  
        
digitalWrite(led3PinHIGH);  
        break;  
        
        case 
70:  
        
digitalWrite(led3PinLOW); 
        break;
      
        case 
71:  
        
digitalWrite(led4PinHIGH);  
        break;  
        
        case 
72:  
        
digitalWrite(led4PinLOW); 
        break;
      
        case 
73:  
        
digitalWrite(led5PinHIGH);  
        break;  
        
        case 
74:  
        
digitalWrite(led5PinLOW); 
        break;
      
        case 
75:  
        
digitalWrite(led6PinHIGH);  
        break;  
        
        case 
76:  
        
digitalWrite(led6PinLOW); 
        break;
      
        case 
77:  
        
digitalWrite(led7PinHIGH);  
        break;  
        
        case 
78:  
        
digitalWrite(led7PinLOW); 
        break;
      
        case 
79:  
        
digitalWrite(led8PinHIGH);  
        break;  
        
        case 
80:  
        
digitalWrite(led8PinLOW); 
        break; 
        
    }          
  }  
}

void sendstatus()  

          
stat1 digitalRead(led1Pin);
          
stat2 digitalRead(led2Pin);
          
stat3 digitalRead(led3Pin);
          
stat4 digitalRead(led4Pin);
          
stat5 digitalRead(led5Pin);
          
stat6 digitalRead(led6Pin);
          
stat7 digitalRead(led7Pin);
          
stat8 digitalRead(led8Pin);  
          
Serial.print(stat1);
          
Serial.print(stat2);
          
Serial.print(stat3);
          
Serial.print(stat4);
          
Serial.print(stat5);
          
Serial.print(stat6);
          
Serial.print(stat7);
          
Serial.print(stat8);

Вот главной стр. PHP (relay_button.php) -
PHP код:
<?php

include "php_serial.class.php";
$serial = new phpSerial;
$serial->deviceSet("/dev/ttyACM0");
$serial->confBaudRate(9600);
$serial->deviceOpen();
usleep(2000000);
$read $serial->readPort();

print 
$read;


$serial->deviceClose();
 
?>


<a href="1on.php"><button><img src="on.png" width="31" height="31" alt="ON" style="vertical-align: middle"></button></a>
<a href="1off.php"><button><img src="off.png" width="31" height="31" alt="OFF" style="vertical-align: middle"></button></a>

<a href="2on.php"><button><img src="on.png" width="31" height="31" alt="ON" style="vertical-align: middle"></button></a>
<a href="2off.php"><button><img src="off.png" width="31" height="31" alt="OFF" style="vertical-align: middle"></button></a>

<a href="3on.php"><button><img src="on.png" width="31" height="31" alt="ON" style="vertical-align: middle"></button></a>
<a href="3off.php"><button><img src="off.png" width="31" height="31" alt="OFF" style="vertical-align: middle"></button></a>

<a href="4on.php"><button><img src="on.png" width="31" height="31" alt="ON" style="vertical-align: middle"></button></a>
<a href="4off.php"><button><img src="off.png" width="31" height="31" alt="OFF" style="vertical-align: middle"></button></a>

<a href="5on.php"><button><img src="on.png" width="31" height="31" alt="ON" style="vertical-align: middle"></button></a>
<a href="5off.php"><button><img src="off.png" width="31" height="31" alt="OFF" style="vertical-align: middle"></button></a>

<a href="6on.php"><button><img src="on.png" width="31" height="31" alt="ON" style="vertical-align: middle"></button></a>
<a href="6off.php"><button><img src="off.png" width="31" height="31" alt="OFF" style="vertical-align: middle"></button></a>

<a href="7on.php"><button><img src="on.png" width="31" height="31" alt="ON" style="vertical-align: middle"></button></a>
<a href="7off.php"><button><img src="off.png" width="31" height="31" alt="OFF" style="vertical-align: middle"></button></a>

<a href="8on.php"><button><img src="on.png" width="31" height="31" alt="ON" style="vertical-align: middle"></button></a>
<a href="8off.php"><button><img src="off.png" width="31" height="31" alt="OFF" style="vertical-align: middle"></button></a>
Вот примеры Non.php и Noff.php -
PHP код:
<?php
$filename 
"/dev/ttyACM0";      //UART порт роутера
$fp fopen($filename"w+");    //открыть порт
fwrite($fpA);  //полать в порт строку
fclose($fp); //закрыть порт
header("Location: relay_button.php");  
?>