2017/06/07

【Arduino】OpenLogを使ってみる

 OpenLogはオープンソースの小型ロガー。
 シリアル通信でログを送信しておけば、勝手にSDカードに書き込んでくれる優れもの。


Img_3713


 
 
 手前の赤い部品がOpenLog。
 少し古いやつで2GBまでのSDカードしか使えないけど十分。

 
 

D006
 


 ファイルはこんな感じで出力されます。

 通信速度は、CONFIGファイルを書き換えればよいらしい。

 ひとまず、GPSのログを取ることにしてみよう。


 



| | コメント (0) | トラックバック (0)

2017/06/04

【Arduino】ブラシレスモーター回転数を計測

 ブラシレスモーターのホールセンサーを問題なくArduinoで読めたので、ブラシレスモータの回転数を計測してみます。

 今回の実験装置はこちら。

Img_3707

 ヨコモのBL-RS2のコンボセットを使って、モーターの回転数を計測してみます。

 プログラムはこちら。

◇MSTimer_rpm_test01

 

#include  <MsTimer2.h>

volatile long cnt = 0; //カウント用の変数
int val = 0;  //電圧値格納用
boolean state  = false; //状態判定用

void flash() {    //タイマー割り込みで回転数を表示させる
  cnt = cnt*100;        // cnt*100 = rpm
  Serial.print(cnt);
  Serial.println("rpm");  
  cnt = 0; 
}

void setup() {
  pinMode(14, INPUT);           // ピンを入力に設定
  digitalWrite(14, HIGH);       // プルアップ抵抗を有効に

  MsTimer2::set(600, flash); // 600msごとに出力
  MsTimer2::start();

  Serial.begin(9600) ;
}

void loop() {
  val = analogRead(0);  //ホールICの電圧を読む

  if (val > 512 && state == false){
    state = true;
    cnt++;
  }
  if (val < 256 && state == true) {
    state = false;
  }
}

   

◇結果

D004

   


 モーターの回転数は17800rpmくらい。  このモーターのKV値が2700なので、リフェだとおおよそ妥当な値。


 ということで、ブラシレスモーターの回転数は簡単に計測できることがわかりました。

| | コメント (0) | トラックバック (0)

2017/06/03

【Arduino】ブラシレスモーターのホールICを読む

 Arduinoを使い始めました。  と言っても使ったことが無いので使ってみようという程度のスタートです。

 ひとまずセンサーを繋いでみようと思ったのですが手持ちに良いセンサーが無いのでブラシレスモーターのホールICを読んでみます。

参考にしたサイトは以下。 (ありがとうございます!)

▼RC zigzag Laboratory
ラジコン用ブラシレスモーターの調査

GND、VCCと各センサーをAnalogピンの0~2番につなげます。

Img_3705

 

◇Hall_effect_test01


int val[3]; //ピンの出力を格納する配列を宣言
void setup() {
  pinMode(14, INPUT);           // ピンを入力に設定
  digitalWrite(14, HIGH);       // プルアップ抵抗を有効に
  pinMode(15, INPUT);           // ピンを入力に設定
  digitalWrite(15, HIGH);       // プルアップ抵抗を有効に
  pinMode(16, INPUT);           // ピンを入力に設定
  digitalWrite(16, HIGH);       // プルアップ抵抗を有効に

  Serial.begin(9600) ;
}

void loop() {
  for (int i=0;i<=2;i++){
  val[i] = analogRead(i); //アナログピンから値を読み込む
  Serial.print(val[i]); //シリアルに出力
  Serial.print("\t");
  }
  Serial.println();

  delay(10) ; // 10ms待つ
}

 

◇結果

D003

0~5Vを0~1023の数字に変換しているらしく、3つのホールICの状態がわかります。

ひとまず今日はここまで。

| | コメント (0) | トラックバック (0)