1

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 を「読み取っている」ように見えますが、何もしていません。

4

1 に答える 1

0

わかりました私は設定してこれを作りました:

if ($_GET['action'] == "a") {

        $serial->sendMessage("aaaa");
于 2013-09-30T12:13:51.013 に答える