次はSTM32ボードを積極的に使ていきたい(3) - アナログ入力
STM32F103C8T6搭載ボード、
Arduino IDE環境で利用する場合のアナログ入力について調べてみました。

スケッチ
#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); }
実行結果
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」カテゴリの記事
- Freenove Mecanum ホイール カー キットを購入しました(2025.05.28)
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Zorin OSでArduino Uno互換機(CH340)が認識しない(2025.01.19)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- Arduino用 SKK日本語変換ライブラリの開発 その1(2024.12.28)
「ARM」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- PocketGoで遊んでみる(1)(2020.03.24)
- Arduino用 MML文演奏ライブラリの作成 その1(2019.04.01)
- BluePillボードで4桁7セグLEDの制御(2019.03.21)
「STM32」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- 「Arduino STM32 リファレンス 日本語版」が2万アクセス突破!(2021.03.26)
- SPI接続フラッシュメモリモジュールを入手しました(2020.05.13)
- Arduino STM32でキャラクタ液晶ディスプレイを使う(2019.06.01)
« 次はSTM32ボードを積極的に使ていきたい(2) - シリアルポートの調査 | トップページ | NAVERにこうしろと言われた »

コメント