3

物理デバイスを制御したい。つまり、いくつかの LED を点滅させるか、サーボを回します。(非常に単純なので、LEDの脚をUSBの脚またはシリアルポートピンに接続し、LEDの脚の1つに信号を送信して点灯させ、サーボと同じようにします。)

質問: C# でこれを作成するにはどうすればよいですか? USBまたはシリアルポートを介して信号を送信するにはどうすればよいですか? 必要なものは何ですか? どうすればそれを管理できますか?ありがとう。

 messageBox.Show("How to control a physical device via c# ?");

 messageBox.Show("thanks");
4

2 に答える 2

4

次のようにシリアルポートを使用できます。

  SerialPort port = new SerialPort("COM1", 2400, Parity.None, 8, StopBits.One);
  port.Open();
  port.Write(new byte[] {0x00, 0xFF, 0xFF}, 0, 3);
  port.Close();

全体がシリアルポートの 1 本のワイヤでビットごとに送信され、送信制御用のビットが追加されます。

これでLEDを点滅させることができます。LED をピン Transmit Data と、通常はプラグ カバーまたはピンの 1 つであるグラウンドに接続する必要があります。これを参考にチェック。電流を下げるための抵抗も必要です。3k[オーム]の抵抗で十分です。

小型サーボモータの駆動は可能ですが、簡単ではありません。パソコンに接続したマイコンでサーボを制御した方が良いです。

これで2台のパソコンを接続してデータのやりとりができます。

あなたの機器を燃やすことができるので注意してください。

このようなものを購入または構築することもできます

編集:わかりました、たくさんの質問があります。

質問 1) なぜ難しいのですか? サーボに信号を送って、LED で行ったように動作させることはできませんか?

シリアル ポートは通信ポートであるため、その目的は通信であり、機器を駆動することではありません。その電力能力は低いです。このポートは、送信するデータをバッファに格納し、ビットごとに送信します。そのため、サーボを駆動するためにPWM \ PPM 信号を形成するのは非常に難しく、結局、結果も素晴らしいものにはなりません。お持ちのモーターによっては、他の制御方法が必要になる場合もありますが、シリアルポートでも実装するのは難しいでしょう。ポートからハードウェアを本当に駆動したい場合は、パラレルポートをお勧めします。

質問 2) どのような場合に機器を燃やしますか? シリアルポートを燃やしたということですか?または私はLEDまたはサーボを燃やしますか?

質問 3) 「お使いの PC にも電流制限出力が必要です」とおっしゃいましたが、抵抗器を付ければ対処できますか? そして、3kはすべての場合に解決しますか?

電気回路ネットワーク、および分析について十分に理解していない場合、機器を損傷する可能性が高くなります。あなたはそれらすべてを燃やすことができ、最悪の場合、あなたのPCと家も燃やすことができます! 心配する必要がある最初の 2 つの問題は、短絡静電放電です。

電流制限出力は、抵抗値が低すぎる場合に電流を下げる必要があります。これにより、PC のメインボード上のシリアル ポート ドライバの損傷を防ぐことができます。

3k 抵抗は、シリアル ポートの仕様要件 (3-7[kOhm] <2500[pF]) に準拠しています。取込電流が 4[mA] 以下になるようにします。したがって、理論的には、すべてのケースを解決する必要があります。

質問 4) どこにコードを書きますか? button1 にインしてクリックしましたか? つまり、そこにwinformとボタンがあるとは言いませんが、ボタンクリックイベントにコードを記述しますか?

プログラムを開いたときにポートを開くことができます。次に、ボタンのクリックでポートに書き込みます。次に、プログラムを閉じるときにポートを閉じます。ボタンクリック時のすべてのコードも同様に機能するはずです。


PS.: シリアル ポートをサウンド カードのオーディオ入力に接続し、シリアル ポートでデータを送信してオーディオとして録音することもできます。単純なオシロスコープとして機能します。(これであなたのPCにダメージを与えることができます)

于 2012-08-08T22:27:20.807 に答える