この記事では、RaspberryPi3からシリアル通信でArduinoに文字列を送ってLEDを点滅させる方法をソースコード付きで解説します。
シリアル通信でLED点滅
Raspberry Pi3 (Python)から Arduino経由で13番ピンとGNDに刺したLEDを点滅させます。
点滅の合図はシリアル通信で送信する文字列で行いました。
回路構成
回路構成(配線図)です。
【使用機器】
・ラズベリーパイ3 ×1
・Arduino UNO ×1
・LED ×1
・抵抗(470Ω) ×1
・ブレッドボード ×1
・ジャンパーワイヤ(メス-オス) 数本
※LEDとピンの間に470kΩ程度の抵抗を入れます。
※LEDをさす際はアノードとカソードの向きに注意してください。
ソースコード
サンプルプログラムのソースコードは下記の通りです。
【Arduino側】
※何かデータが送られて来たらLEDを点灯
【ラズベリーパイ側(Python)】
■serial.Serial(シリアルポート, 通信速度, timeout=タイムアウト時間[s])
※ArduinoをUSBポートに抜き差しするとArduinoが接続されているシリアルポート「/dev/ttyACM0」が変化することがあります。
「serial.serialutil.SerialException: could not open port」などとエラーが出た場合は、下記事を参考に変化後の値に書き換えて下さい。
【ラズベリーパイ3】dmesgコマンドでArduinoのUSBシリアルポートを確認
実行結果
標準入力で「on」を入力すると、LEDが点灯、それ以外を入力すると消灯、「q」を入力するとプログラムが終了します。
コメント