7

PHPを使用してArduinoに信号を送信させようとしています。以下のコードを実行すると、「無効なシリアル ポート」と表示されますが、有効ですか?

<?php

include 'serial_connect.php';

$serial = new phpSerial;

$serial->deviceSet("COM2");

$serial->deviceOpen();

$serial->sendMessage("1000");

$serial->deviceClose();
?>

serial_connect.php クラスは php-serial です。リンクはこちら: http://www.phpclasses.org/package/3679-PHP-Communicate-with-a-serial-port.html

これが私のArduinoスケッチです:

int ledPin = 13;

void setup() {
    pinMode(ledPin, OUTPUT);
    Serial.begin(9600);
}

void loop() {
    if(Serial.available() > 0) {
        int time = Serial.parseInt();        
        digitalWrite(ledPin, HIGH);
        delay(time);
        digitalWrite(ledPin, LOW);
    }
}

助けてください。ありがとう。

4

3 に答える 3

2

COM2 がインストールされ、有効になっており、デバイス マネージャーで正しく動作していることを確認してください (まだ実行していない場合)。また、使用しているArduinoのモデルは何ですか?これ以上の情報がなければ、この質問に答えることはできないと思います。その情報を元の質問に追加するのが賢明かもしれません。また、アカウントを登録しないと php_serial クラスのソースを見ることができません。これは回答というよりコメントであることに気づきましたが、コメントするにはもう少し担当者が必要です(私の意見では、SOの評判システムの欠陥です)。しかし、元の質問は、より多くの情報がないと回答が得られないため、追加することが適切でした。幸運を祈ります。

于 2012-11-29T17:17:49.240 に答える
2

PHPコードでボーレートを設定していません。

ターミナル エミュレータ (Hyperterm など) を使用して、シリアル ポートが正しく配線されていることを確認しましたか?

この文字列をシリアル ポートの名前として使用する必要がある場合があります\\.\COM2。これは、私が作成した C プログラムで行っていることです。おそらくこれらのバックスラッシュをエスケープする必要があることに注意してください: "\\\\.\\COM2".

于 2012-11-29T18:09:19.577 に答える