こんにちは~
最近、マギを見だしてアラジン君の可愛さに癒されているfinemanです!
いや~。アラジン君の声、可愛すぎじゃないですか?
さて、では本題に♪
今回は「温度センサからの値をArduinoで取得し、それをProcessingでパソコンの中にテキストファイル(.txt)として保存する」という方針で作っていきます!
それでは~
シュワッチ!
①用意するもの:
②配線図:
③作るもの:
④プログラム:
・Arduino側
int val = 0; | |
long vt,temp = 0; | |
void setup() { | |
// put your setup code here, to run once: | |
Serial.begin(9600); | |
} | |
void loop() { | |
// put your main code here, to run repeatedly: | |
val = analogRead(0); | |
vt = map(val,0,1023,0,5000); | |
temp = map(vt,300,1600,-30,100); | |
if (Serial.available() > 0) { //このif文はシリアルモニタの入力欄に何かを入力すると走り出す | |
Serial.println(temp); //Arduinoのシリアルモニタでの温度の確認用 | |
Serial.write(temp); //テキストファイルに出力用 | |
} | |
delay(100); | |
} |
*プログラム作成時の注意点:
・電圧を温度に変換する所は温度センサによって変わるのでデータシートを必ずチェックして下さい。今回、僕が使用したLM61CIZ-NDは-30℃~100℃を300mv~1600mvで出力するため、今回のようなプログラムとなっています。
・プログラム中にSerial.println(temp);とSerial.write(temp);を書いていますが、シリアルモニタで温度を確認する時にはSerial.write(temp);を。テキストファイル中で温度を確認する時にはSerial.println(temp);をそれぞれコメントアウトしてください!コメントアウトしない状態で実行すると、出力が変になりました。
・Processing側
import processing.serial.*; | |
Serial myPort; | |
PrintWriter output; | |
int senout; | |
int count=0; | |
void setup () { | |
size(400, 400); | |
background(255); | |
output = createWriter("temperature.txt"); | |
println(Serial.list()); | |
myPort = new Serial(this, Serial.list()[0], 9600); | |
} | |
void draw () { | |
if(count==0){ | |
myPort.write(255); | |
} | |
if(myPort.available()>0){ | |
senout=myPort.read(); | |
output.print(senout); | |
output.println(); //改行のため | |
myPort.clear(); | |
myPort.write(255); | |
count++; | |
} | |
if (count>100) { | |
output.flush(); | |
output.close(); | |
exit(); | |
} | |
} |
*プログラム作成時の注意点:
・今回はtemperature.txtというファイルを新しく作って、その中にデータを保存するという形式にしています。このファイルはC:/ユーザー/ユーザ名/ドキュメント/Processing/作成したファイル名/の中に作成してあると思います。
⑤完成動画:
完成♪
いかがでしたでしょうか?
Arduinoにはシリアルプロッタという機能があるので、値を確認するだけだったらProcessingはいらないのですが、そのデータをパソコンの中に保存したいと思ったため今回はProcessingを使いました。
Processingはjavaで書かれてあるため、Arduinoとは少し勝手が違うのでまだ少し慣れませんが、少しづつ勉強していこうと思います!
最後に例のソフトの練習状況です(笑)↓
最後までお読み下さり、ありがとうございました。
▲▲▲アリガ島▲▲▲
「未定」
[…] 温度センサからの値を.txtに保存しよう! […]