フォト
2017年4月
            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            
無料ブログはココログ

« 次はSTM32ボードを積極的に使ていきたい(2) | トップページ | NAVERにこうしろと言われた »

2016年12月 4日 (日)

次はSTM32ボードを積極的に使ていきたい(3)

STM32F103C8T6搭載ボード、
Arduino IDE環境で利用する場合のアナログ入力について調べてみました。

アナログジョイスティックのアナログ2入力をボード上のPB0、PB1に接続して実験しました。

Dscn6202

スケッチ

#define LED_PIN   PC13
#define SNS_X_PIN PB0
#define SNS_Y_PIN PB1

void setup() {
  pinMode(LED_PIN, OUTPUT);

  // アナログ入力利用設定
  pinMode(SNS_X_PIN, INPUT_ANALOG);
  pinMode(SNS_Y_PIN, INPUT_ANALOG);

  Serial.begin();
  while (!Serial.isConnected()) delay(100);

}

void loop() {

  // アナログジョイスティックによる入力
  uint16_t x,y;
  x = analogRead(SNS_X_PIN);
  y = analogRead(SNS_Y_PIN);
  Serial.print("(x,y) = (");
  Serial.print(x);
  Serial.print(",");
  Serial.print(y);
  Serial.println(")");
  delay(500);
}

実行結果

Photo_3

Arduinoと非互換なところ

analogread()で読み取れる値は12ビットの分解能となり0~4095の範囲の値となります。
Arduinoでは10ビット(0~1023)ですので、非互換となります。

また、Arduinoではアナログ入力の場合はpinMode()によるモード設定は不要でしたが、
stm32_arduino環境ではpinMode(SNS_X_PIN, INPUT_ANALOG) といった具合に必須となります。

この当たりの情報はstm32_arduinoのベースとなっている"LeafLabs Maple"のドキュメント
を参考にするよ良いようです。
・ LeafLabs Documentation  http://docs.leaflabs.com/docs.leaflabs.com/index.html
     - ADC http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/latest/adc.html
     - pinMode() http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/latest/lang/api/pinmode.html
     - analogRead() http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/latest/lang/api/analogread.html

Arduinoのスケッチを移植して利用する際は、ちょっと注意が必要です。
対応としては、map関数を使ってスケール変換すると良いでしょう。
   例 x = map( analogRead(SNS_X_PIN), 0, 4095, 0, 1023) )


アナログ入力ピン指定
下図のADCラベルがあるピンが利用可能です。スケッチ内でのピン指定は
PA0、PA1、・・・ 、PB0、PB1
0、1、 ・・・、16、17
D0、D1、・・・、D16、D17


といった記述で指定出来ます。A0、A1やADC1、ADC2ではダメみたいです。



次はPWMを調べます(どうも、かなり違うっぽい)。

 


« 次はSTM32ボードを積極的に使ていきたい(2) | トップページ | NAVERにこうしろと言われた »

arduino」カテゴリの記事

ARM」カテゴリの記事

STM32」カテゴリの記事

コメント

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: 次はSTM32ボードを積極的に使ていきたい(3):

« 次はSTM32ボードを積極的に使ていきたい(2) | トップページ | NAVERにこうしろと言われた »