【初めてのArduino】6.サーミスタ|ハンズオンで学ぶ初心者向け入門コース
Start electronics from today
ここではサーミスタを使って、analogRead関数、四則演算、floatというデータ型について学んでいきます。
■目次 0:00 サーミスタとアナログ入力について 0:53 今回作るもの 1:01 使う材料の準備 1:19 回路図 2:10 回路を組む 2:22 プログラムの作成 3:41 ボードに書き込む 4:00 まとめ
■関連動画 Arduinoコース1 Arduinoとは https://youtu.be/F1RlVllBwxk Arduinoコース2 準備編 https://youtu.be/jHuWhbQdLhA Arduinoコース3 Lチカ https://youtu.be/vNFUslQCxPs Arduinoコース4 スイッチ https://youtu.be/xk2BCZTjTLU Arduinoコース5 フルカラーLED https://youtu.be/MiQ5aftfZIQ
■自己紹介 ・ハードウェアエンジニア ・電子工作歴:9年 ・電子工作をゼロから体系的に並べるチャンネル「今日から始める電子工作」を運営してます
■SNS Web : https://lab-b.jp Twitter : https://twitter.com/buonoatsushi
#電子工作 #Arduino
■動画文字起こし サーミスタというのは温度センサの一つで、温度が変わると抵抗値が変わるという特性を持っています。この特性を逆に利用することで、抵抗値の変化から温度を測定することができます。と言っても抵抗値を直接測定することは難しいので、一般的には、このような回路を組んで電圧に変換して読むことが多いです。検出抵抗Rdは一般的な抵抗で、Rdが温度によらず抵抗値が変わらないとすると、A点の電圧はRtの抵抗値に応じて変わることになります。この電圧の変化量から、抵抗値の変化量を求めます。そして、このような式を用いることで、最終的に温度に変換することができます。B定数というのはサーミスタの特性を示す定数で、温度の変化に対してどの程度抵抗値が変化するか、という傾きを示します。多くの場合、サーミスタのデータシートに載っているのでその値を使います。 これは今回作成した回路で、このように触ったりドライヤーで熱を上げてやると、温度が変化しているのが分かると思います。それではこの回路を作っていきましょう。 今回使う材料は、Arduino Uno、ブレッドボード、オスオスのジャンパーワイヤ3本、サーミスタ、10kΩの抵抗です。なお、サーミスタは熱が上がると抵抗値が下がるNTCというタイプと、抵抗値が上がるPTCというタイプがあります。温度センサに使われるのは主にNTCというタイプの方なので、間違えないように注意してください。 こちらは、今回作成する回路図になります。Arduinoのアナログ入力端子は10bitのADコンバータを備えており、0〜5Vの範囲のアナログ的な電圧を、0〜1023というデジタルデータに変換することができます。1メモリあたりの電圧を分解能といい、今回の場合は5Vを1024で分割するので、1メモリはだいたい5mVということになります。アナログ入力端子は全部で6個あり、今回はA0端子を使用しています。Rdの抵抗値の選び方は、少し注意が必要です。Rdが小さすぎかもしくは大きすぎた場合、A点の電圧がほとんど振れないことになってしまい、抵抗値を正確に計算することが難しくなってしまいます。実際は、測定したい温度領域によって微調整が必要なのですが、ひとまずは室温でのサーミスタの抵抗値と同等レベルの値を使っておけば良いと思います。今回のサーミスタの場合は10kΩなので、Rdも10kΩを使用しています。 次に、回路図にならってブレッドボード図を作成したのがこちらです。この図にならって、回路を組んでいきましょう。はい、ということで、回路を組むことができました。 それではコーディングを行っていきます。Arduino IDEを起動して、ファイル→新規ファイルをクリックし、この画面にあるプログラムを入力してください。5〜8行目は、抵抗値を計算するために使われる定数です。今回は割り算などを使用して小数点が発生するため、小数点を扱えるfloatというデータ型を使用しています。 なお今回は、値の変化をシリアルモニタという機能を使って見ます。これは、Arduinoとパソコンがシリアル通信でデータのやり取りを行える機能で、リアルタイムで値を見ながら動作検証をすることができます。setup関数内で、Serial.beginという関数を使うことでこの機能が使用可能になります。 loop関数では、analogRead関数でまずは電圧値を読み込んでいます。次に、現状の抵抗値を求めます。式の考え方としては、このように比率で考えると分かりやすいと思います。Arduinoでは四則演算と呼ばれる一般的な計算や、logやルート等の少し複雑なものまで、色んな計算を行うことができます。次に、ここに書いた式を使ってTを求めます。これはサーミスタの温度を計算するための良く知られた式なので、背景を知りたい人はこちらのサイトを見てみて下さい。なお、この時点での単位は、絶対温度を表すケルビンなので注意しましょう。最後に摂氏に変換したら、Serial.printlnに値を投げて温度観測完了です。待機時間、つまり値の更新頻度はいくつでも良いですが、ひとまず0.2秒としました。 最後にファイルを保存し、ツールバーの「マイコンボードに書き込む」のボタンを押して書き込みます。書き込みが完了したら、右上の「シリアルモニタ」ボタンを押してみましょう。このように、値が0.2秒おきに更新されていると思います。まずは、計算が間違っていないかを確認するために、室温を測定してだいたい感覚と合っているかを見てみてください。 ということで今回は、このような内容を学んできました。手で触ったり温めたりして温度が変化することを確認したら、次のレッ� ... https://www.youtube.com/watch?v=Onypu6Dkirw
22677163 Bytes