0

私は現在、Arduinoを介してポテンショメーターのデータをWebページに送信する演習を行っています。ノードサーバーなどではなく、Web Serial APIを介してこれを行うことをお勧めします。私のArduinoコードは

void setup() {
  Serial.begin(9600);

}

void loop() {
  int sensorValue = analogRead(A0);
  Serial.println(sensorValue);
  delay(1);
}

これにより、シリアル モニタの値が問題なく表示されます。

JavaScriptコードは次のようになります(スクリプト内、htmlに埋め込まれています):

    var b = document.getElementById('button');
    b.addEventListener('click', async () => {
     // Prompt user to select any serial port.
    const port = await navigator.serial.requestPort();
    await port.open({ baudRate: 9600 });
    console.log('working');
    while (port.readable) {
         const reader = port.readable.getReader();
    try {
        while (true) {
    const { value, done } = await reader.read();
    console.log({ value });
    if (done) {
    break;
        }
        }
     } catch (error) {
        console.log('error');
     } finally {
       reader.releaseLock();
      }
    }
    });

つまり、Arduino がある USB に接続できるボタンがあり、情報ストリームを渡していますが、実際には使用できません。

{value: Uint8Array(4)}
value: Uint8Array(4) [13, 10, 55, 57, buffer: ArrayBuffer(4), byteLength: 4, byteOffset: 0, length: 4]
[[Prototype]]: Object

ポテンショメータの位置の値ではないためです。何らかのマッピングが必要だと思いますが、その方法がわかりません。また、これは現在、Web Serial API のため、Google Chrome でのみ機能しています。

ポテンショメータのデータを正しく受信する方法についてのアイデアはありますか?

ありがとう乾杯

4

1 に答える 1