RXduino  1.20a
RXduinoマニュアル 最終更新日 平成26年6月29日
関数
analogio.h

内蔵ADC、内蔵DAC、PWMに関するライブラリ [詳細]

#include "rxduino.h"

ソースコードを見る。

関数

int analogRead (int analog_portnum)
 内蔵12bit ADCからアナログ値を読み込む [詳細]
 
void analogWrite (int analog_portnum, int val8bit)
 指定したピンからアナログ値(PWM波)を出力する。 [詳細]
 
void analogWriteDAC (int dac_portnum, int val10bit)
 内蔵DACを使ってアナログ値を出力する。 [詳細]
 
void analogReference (int mode)
 アナログ入力で使われる基準電圧(Vref)と変換形式を指定する。 [詳細]
 
void analogWriteFrequency (int Hz)
 アナログ出力(PWM)の周期を設定する. [詳細]
 

説明

内蔵ADC、内蔵DAC、PWMに関するライブラリ

analogio.h で定義されています。

関数

int analogRead ( int  analog_portnum)

内蔵12bit ADCからアナログ値を読み込む

引数
[in]analog_portnumアナログ値を読み込むピン番号。
ピン番号は、0~7のチャネル番号でも、 14~21のピン番号でもどちらでも指定できる。
0~7を指定した場合は、AN0~AN7の端子の値が読まれる。
14~21を指定した場合は、引数から14を引いて、AN0~AN7として解釈される。
それ以外の値を指定した場合は常に0を返す。
戻り値
読み込んだアナログ値を、analogReferenceの型式に従って変換して返す。
覚え書き
Vrefは常に3.3Vである。analogReference関数も参照すること。
RX62Nでも内蔵12bit ADCが使えるようになった(V1.04から)
void analogWrite ( int  analog_portnum,
int  val8bit 
)

指定したピンからアナログ値(PWM波)を出力する。

LEDの明るさをじわじわ変えたいときやDCモータの回転スピードを調整したいときに使える。

デフォルトのPWM周波数は490Hz。analogWriteFrequency()で変更できる。

関数内部で使用するピンの登録がされるのでpinModeなどの初期化は必要ない。

引数
[in]analog_portnum任意のピン番号。
[in]val8bit出力するPWMのデューティ(0~255)
戻り値
なし
覚え書き
先着15個のポートまで使用可能。Servoやtone関数とは別のタイマを使っているので、同時使用ができる。
このPWMはソフトウェアでエミュレートしているので、各チャネルの出力タイミングには若干の差が存在する。
#include <rxduino.h>
void setup()
{
analogWriteFrequency(1000); // 周波数を1000Hzに変更
for(int i=0;i<15;i++)
{
analogWrite(i,i*16); // pin0~pin14を、0~240%で出力
}
}
void loop()
{
}
void analogWriteDAC ( int  dac_portnum,
int  val10bit 
)

内蔵DACを使ってアナログ値を出力する。

引数
[in]dac_portnumアナログ値を出力するピン番号 0か1を出力する。RX62N/63Nの100ピンではチャネル1のみ使用できる。
[in]val10bit変換値(10bit整数値)
覚え書き
PWMではなく、DACによる出力です。
戻り値
なし
void analogReference ( int  mode)

アナログ入力で使われる基準電圧(Vref)と変換形式を指定する。

引数
[in]mode次のうち一つを指定します
  • DEFAULT (0): 電源電圧(3.3V)
  • INTERNAL (1): 内蔵基準電圧(1.1V)
  • EXTERNAL (2): AREFピンに供給される電圧を基準電圧とする
  • RAW12BIT (3): 計測値を加工せずに12bitで出力する
覚え書き
実際にRXマイコンのVrefを変更しているわけではない。 変換した値を以下の式でArduinoのADCをエミュレートしているにすぎない。
  • DEFAULT val * (1024. / 4096. * 3.3 / 5)
  • INTERNAL val * (1024. / 4096. * 3.3 / 1.1) ただし1023以上になるならば1023
  • EXTERNAL val >> 2
  • RAW12BIT val
RX62Nも12bit対応した。(V1.04)
戻り値
なし
void analogWriteFrequency ( int  Hz)

アナログ出力(PWM)の周期を設定する.

引数
[in]Hz設定する周波数.単位はHz.引数に指定できるのは12~184999 [Hz]
戻り値
なし
警告
すべての範囲で動作するかは未検証。60kHzくらいまでが限度。PWMのチャネル数が増えると当然ながら最大周波数は下がる。
#include <rxduino.h>
void setup()
{
analogWriteFrequency(1000); // 周波数を1000Hzに変更
for(int i=0;i<15;i++)
{
analogWrite(i,i*16); // pin0~pin14を、0~240%で出力
}
}
void loop()
{
}