第3回 Arduinoを使って電子回路をコントロールしてみよう【 LCDで温度と時間を表示させる 】

0
1631
LCDで温度と時間を表示

RaspberryPi に入れたArduino を使って電子回路をコントロールしよう

LCDに温度と時間を表示

前回の記事「第2回 Arduinoを使って電子回路をコントロールしてみよう【 スイッチボタンを使ってLEDを光らせる 】」では、RaspberryPi に入れた Arduino を使って、スイッチを押したらLEDが光るプログラムを試しました。

今回は、サーミスタを使って温度を計測して、その値と時間をカウントして表示させるプログラムを試します。

[sitecard subtitle=関連記事 url= http://www.fabshop.jp/raspberrypi-arduino-02/ target=]

使う部品

RaspberryPi とArduinoの他に必要な部品を用意します。

  • LCD 1602
  • ロータリーポテンショメーター(可変抵抗 B10K)
  • サーミスタ
  • 抵抗 10kΩ
  • ジャンプワイヤー M-M、M-F、F-F

Fabshop のプロトタイプワークボードに、RaspberryPi と Arduino を取り付け、部品を配置して配線します。

今回は、キットに同梱されている材料を使いました。

使う部品

スケッチを書こう

Arduino IDE にスケッチ(プログラム)を書きます。

Arduino IDE を起動して、ファイル > 新規ファイル でスケッチを書いていきます。

LCDスケッチ2
LCDスケッチ3

スケッチが書けたら検証します。

もしエラーが出たら??
今回、以下のエラーが表示されました↓
class hardwareserial’ has no member named ‘printin’
これは、Serial.println(inlnt[2]); のところで、println の「 l 」を、「エル」ではなく「大文字のアイ」で入力していた為に出たエラーでした。
FlexiTimer2 のライブラリの追加が分からない
Web Browser で、FlexiTimer2 をこちらからダウンロードします。
FlexiTimer2のダウンロード解凍先をArduino のフォルダに設定します。
解凍先を適当な場所にしたとしてもプログラムが実行されれば良いのですが、私のように「FlexiTimer2 というディレクトリはありません」というようなエラーが出てしまう場合には、移動させる必要があります。
しかし、ドラッグしても「アクセス権限がない」と表示されます。
ドラッグで移動できなかったので、ターミナルからコマンドを打って移動させました。
コマンドで移動

「アクセス権限がない」と表示されたので、自分が root なのか確認するコマンドを打ちました。

whoami

非常に分かりやすいコマンドですね。

自分が「 pi 」だという事が分かったので、アクセス権限がなかった事が確認できました。

 

次に、コマンド「 cd 」で移動させたい階層へ移動します。

cd /

私の場合、/home/pi の中に入れたかったので、まず「 cd / 」で一番上の階層へ行き(Windows でいう Cドライブ)、そこから home まで移動させました。

ls 」(エルエス)で、現在の階層を表示させます。

 

最後に、コマンド「 mv 」を使って、home の中に FlexiTimer2 のフォルダを移動させる事ができました。

mv FlexiTimer2 /home/pi

フォルダを移動させたら、Arduino IDE で、スケッチ > ライブラリを使用 > Add Library… から、FlexiTimer2 のフォルダを選択してライブラリに追加します。

これで、再度検証して問題なければ次は配線です。

配線しよう

スケッチの検証が終わったら、次は配線図を見ながら配線をします。

Freenoveのスターターキットに同梱されているLCDは、そのままだとブレッドボードに直接挿して使う事が出来なかった為、オスメス、メスメスのジャンプワイヤーも使いました。

LCD_Clock_haisenzu

配線が終わったら、Arduino に書き込みます。

LCDの画面が明るくなっても何も表示されていなければ、ボリュームを調節して明るさを調節してください。

プログラムにエラーもなく、配線も間違っていない、LCDは電源が入っているのに画面に何も表示されない場合、接触不良かもしれません

私の場合、ジャンプワイヤがうまくはまっていない状態だったようで、しっかり押し込んだら無事にLCDに表示させる事ができました。