【ラズベリーパイ】シリアル通信でArduinoのLED点滅(1文字)

RaspberryPi(ラズベリーパイ)からシリアル通信でArduinoにデータを送ってLEDを点滅させる方法をソースコード付きで解説します。

シリアル通信でLED点滅

Raspberry Pi3 (Python)から Arduino経由で13番ピンとGNDに刺したLEDを点滅させます。
点滅の合図はシリアル通信で送信する1文字で行いました。

なお、ラズパイ側でシリアル通信を行うには以下の操作が必要です。

操作 概要
シリアル通信の有効化
接続ポート確認①
接続ポート確認②

回路構成

回路構成(配線図)です。

【使用機器】
ラズベリーパイ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シリアルポートを確認

実行結果

標準入力で「o」を入力すると、LEDが点灯、それ以外を入力すると消灯、「a」を入力するとプログラムが終了します。

シリアル通信でデータ受信

Arduinoからシリアル通信で送られてきた文字列をRaspberry Pi3 (Python)で読み込みます。
尚、シリアル通信を行う前に、以下の初期設定を行いました。
【ラズベリーパイ3】シリアル通信の有効化

回路構成

回路構成(配線図)です。

【使用機器】
ラズベリーパイ3 ×1
Arduino UNO ×1
ブレッドボード ×1
・USB2.0ケーブル(A-Bタイプ)

ソースコード

サンプルプログラムのソースコードは下記の通りです。
【Arduino側】


【ラズベリーパイ側(Python3)】


■serial.read(文字数)
指定した文字数分だけデータを取得します。
返り値:Python3系はバイト型でデータを取り出すので、文字列型にデコードして表示しています。

実行結果

サンプルプログラムの実行結果です。

ESTT
ESTT
ESTT
ESTT

ESTT
ESTT
ESTT
ESTT

【ラズベリーパイ】シリアル通信でArduinoのLED点滅(1文字)
RaspberryPi(ラズベリーパイ)からシリアル通信でArduinoにデータを送ってLEDを点滅させる方法をソースコード付きで解説します。
【ラズベリーパイ3】シリアル通信でArduinoのLED点滅(文字列)
この記事では、RaspberryPi3からシリアル通信でArduinoに文字列を送ってLEDを点滅させる方法をソースコード付きで解説します。
【ラズベリーパイ3+Arduino】シリアル通信で複数のLED点滅
この記事では、RaspberryPi3からシリアル通信でArduinoに文字列を送り、複数のLEDを点滅させる方法をソースコード付きで解説します。
【ラズベリーパイ3/Arduino】超音波距離センサの観測結果・S/N比を表示
この記事では、Arduinoと超音波距離センサの観測データをラズベリーパイ3(Raspberry Pi3)で表示する方法をソースコード付きで解説します。
ラズベリーパイ3で電子工作入門
この記事では、ラズベリーパイ3(Raspberry Pi3)で電子工作する方法について入門者向けにまとめてみました。
404 NOT FOUND | Linux入門速報
404 NOT FOUND | Linux入門速報

コメント