« JR舞子駅から淡路島にズーム。 | トップページ | ファンクションジェネレータ(Tenma 72-5016)を発掘。 »

2011年11月30日 (水)

Arduino Uno + Excelでオシロっぽい何かを作る。

Arduino UNOを最近買った。何か実験したいな、と思ってまずはA/Dコンバータがどう動くかみてみた。

P1010149


こんなプログラムをかいて、、、

#define n 200

void setup(){
  Serial.begin(9600);  
} 

void loop(){  
  unsigned long a[n+1];
  unsigned int b[n+1];
  int i;

  
  for (i=0;i<=n;i=i+1) {
    a[i]=micros();
    b[i]=analogRead(0);
  }

  
  for (i=0;i<=n;i=i+1) {
    Serial.print(a[i]);  
    Serial.println();  
    Serial.print(b[i]);  
    Serial.println();  
  }


}

aにはμsec単位の経過時間、bにはA/Dコンバータ0の値をまず配列で順次読みこむ。
で、その結果をまとめてシリアル通信でPCに送るのだが、、、
※ADの値を順次シリアルで送る方法もあるが、なんとなく遅そう、ということでこっちを
 採用してます。
Excelでどうやって受け取ろうか、と考えるにEasycommというライブラリが非常に
便利そうなので使わせてもらいました。一発で動いた。
http://www.activecell.jp/download/index.htm
結果がこちら。手持ちのファンクションジェネレータで500Hzのサイン波/三角波/矩形波を入れた時。
Oscsin
Osctri


Oscpulse
実験風景:Arduinoとテスターとファンクションジェネレータ。

P1010147
数kHzくらいまでは見えるけど、、、変換遅いなあ。まあちょっとした遊びには使えるか。










		

« JR舞子駅から淡路島にズーム。 | トップページ | ファンクションジェネレータ(Tenma 72-5016)を発掘。 »

学問・資格」カテゴリの記事

コメント

突然のコメントですいません。
自身もArduino UNOとexcelのeasyCommで通信をしているのですが、
excelからec.binary=0と送信をするのですが、どうしてもボタンを2度押ししないと、UNOは反応してくれません。

ご自身は、似たような経験はされましたか?もし、解決策があれば、教えてください。
また、easyCommの説明ファイルに、以下のコードがあって、試したのですが、どうしても通信ができません。
ec.binary=0
Do
CountOld = ec.InBuffer
DoEvents
Loop While dataSize = 0
Do
ec.WAITmS = 100 '1000mS待ちます
CountNew = ec.InBuffer '受信データ数を取得します

If CountNew = CountOld Then '変化がなければ Loopを抜けます
Exit Do
End If

CountOld = CountNew '前回のデータ数を更新
Loop

その代わりに、
ec.binary=0
str = ec.AsciiLine
だと、2度押しすると作動します。
何か、共感できるところがあれば教えてください。

よろしくお願いします。

ec.binaryでなくてec.AsciiLineを使ってみてはどうでしょう?

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/512682/53365946

この記事へのトラックバック一覧です: Arduino Uno + Excelでオシロっぽい何かを作る。:

« JR舞子駅から淡路島にズーム。 | トップページ | ファンクションジェネレータ(Tenma 72-5016)を発掘。 »

最近のコメント

2018年9月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
フォト
無料ブログはココログ