Windows では問題なく Arduino に接続でき、数字 (0-9) や文字 (az) などのすべてのバイトを送信できます。しかし、数字(0-9)しか送信できないため、Linux(ubuntu)で問題が発生しました。同じコードを使用している場合、Windows ではすべてを送信でき、Linux では送信していますが、まったく機能しません。
それは私のコードです:
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
if (isset($_GET['action'])) {
require("php_serial.class.php");
$serial = new phpSerial();
$serial->deviceSet("/dev/ttyACM0");
$serial->confBaudRate(9600);
$serial->confCharacterLength(8);
$serial->deviceOpen();
if ($_GET['action'] == "1") {
$serial->sendMessage("1");
} else if ($_GET['action'] == "2") {
$serial->sendMessage("2");
}
if ($_GET['action'] == "a") {
$serial->sendMessage("a");
} else if ($_GET['action'] == "b") {
$serial->sendMessage("b");
}
$serial->deviceClose();
}
?>
Windows では、「/dev/ttyACM0」を「COM3」に置き換える必要がありますが、それでも同じコードです。このコードは、私のダイオードをオン/オフにします。Windows で使用する場合、数字 (1 オン、2 オフ) または文字 (a = オン、b = オフ) を入力してダイオードをオンにできます。Linuxでは、数字を入力してダイオードをオンにするだけです...
Arduino が sendbyte a または b を「読み取っている」ように見えますが、何もしていません。