Arduinoの基礎知識

Arduino-言語・関数リファレンス一覧

Arduinoの言語・関数リファレンスを紹介します。各標準関数・標準ライブラリの詳しい解説やサンプルプログラム(サンプルスケッチ)はリンク先の記事を確認してください。

現在掲載している情報は、まだ一部なので順次、追記していく予定です。

データ型

データ型 入力範囲 サイズ
(ビット数)
説明
boolean
(ブーリアン)
0, 1 1bit ON/OFFの判断に使用
char
(チャー、キャラ)
-128~127 8bit 文字の代入に使用
unsigned char
(アンサインド チャー、
アンサインド キャラ)
0~255 8bit
int
(イント)
-32768~32767
(Arduino Due: -2147483648~2147483647)
16bit
(32bit)
整数に使用
unsigned int
(アンサインド イント)
0~65535
(Arduino Due: 0~4294967295)
16bit
(32bit)
long
(ロング)
-2147483648~2147483647 32bit 大きい整数に使用
unsigned long
(アンサインド ロング)
0~4294967295 32bit
float
(フロート)
3.4028235E+38から-3.4028235E+38 32bit 小数に使用

演算子

算術演算子

算術演算子 使用例 説明
+ a = b + c bとcを足した値をaに代入
a = b – c bからcを引いた値をaに代入
* a = b * c bとcを掛けた値をaに代入
/ a = b / c bをcで割った値をaに代入
% a = b % c bをcで割った余りをaに代入
= a = b bの値をaに代入

代入演算子

Arduino 代入演算子 使用例 説明
+= a += b aとbを足した値をaに代入
-= a -= b aからbを引いた値をaに代入
*= a *= b aとbを掛けた値をaに代入
/= a /= b aをbで割った値をaに代入
%= a %= b aをbで割った余りをaに代入

インクリメント・デクリメント演算子

インクリメント・
デクリメント演算子
使用例 説明
++ a++または
++a
aの値を1増加
a–または
–a
aの値を1減少

比較演算子

比較演算子 使用例 説明
!ERROR! unexpected operator ‘=’ a == b aとbが等しい時、成立
!= a != b aとbが等しくない時、成立
< a < b aがbより小さい時、成立
> a > b aがbより大きい時、成立
<= a <= b aがb以下の時、成立
>= a >= b aがb以上の時、成立

論理演算子

論理演算子 使用例 説明
&& (a >= 10) && (a < 100) aが10以上かつ100未満の時、成立
|| (a == 10) || (a == 100) aが10または100の時、成立
! !(a == 10) aが10でない時、成立

制御文

条件分岐「if」


if(条件A) {
  条件Aが成立した場合に実行
}

if(条件A) {
  条件Aが成立した場合に実行
}
else {
  条件Aが不成立した場合に実行
}

if(条件A) {
  条件Aが成立した場合に実行
}
else if(条件B) {
  条件Aが不成立、条件Bが成立した場合に実行
}
else {
  条件A、条件Bが不成立した場合に実行
}

繰り返し「for」


for(カウンタ初期値; 条件A; カウンタ増加の指定;) {
  条件Aが成立する間、繰り返し実行
}

繰り返し「while」


while(条件A) {
  条件Aが成立する間、繰り返し実行
}

繰り返し「do while」


do {
  必ず1回実行した後、
  条件Aが成立する間、繰り返し実行
} while(条件A);

条件分岐「switch case」


switch(対象の変数) {
  case 変数1:
    対象の変数が1の場合に実行
    break;
  case 変数2:
    対象の変数が2の場合に実行
    break;
  case 変数3:
    対象の変数が3の場合に実行
    break;
  default:
    対象の変数が全て当てはまらない場合に実行
}

標準関数

Arduino IDEやArduino Web Editorでは、Arduino独自の標準関数が用意されています。

以下のリンクがArduino公式WEBサイトのリファレンスページになります。当記事では、これらの情報を参考にArduinoの標準関数をまとめています。

ちなみに、日本語ページも用意されていますが、全て翻訳されてはいません。

Digital I/O(デジタル入出力)

関数 引数 戻り値 説明
void pinMode(pin, mode) pin:対象のデジタル入出力のピン番号
mode:入力、出力、プルアップ入力のモード指定
なし デジタル入出力のモード切り替え
void digitalWrite(pin, value) pin:対象のデジタル入出力のピン番号
value:5V/HIGHまたは0V/LOW
なし デジタル出力
int digitalRead(pin) pin:対象のデジタル入出力のピン番号 ピンの入力状態をHIGHまたはLOWで返す デジタル入力

Analog I/O(アナログ入出力)

関数 引数 戻り値 説明
void analogReference(type) type:基準電圧の設定 なし アナログ入力の基準電圧を設定
int analogRead(pin) pin:対象のアナログ入力のピン番号 ピンの入力状態を0~1023で返す アナログ入力の状態を確認
void analogWrite(pin, value) pin:対象のデジタル入出力のピン番号
value:出力値を0~255で指定
なし アナログ出力(PWM)

Advanced I/O(デジタル・アナログ入出力 発展版)

関数 引数 戻り値 説明
void tone(pin, unsigned int frequency, unsigned long duration) pin:対象のデジタル入出力のピン番号
frequency:出力周波数
duration:出力時間(ms)
なし 矩形波出力
void noTone(pin) pin:対象のデジタル入出力のピン番号 なし 矩形波停止
unsigned long pulseInLong(pin, value, unsigned long timeout) pin:対象のデジタル入出力のピン番号
value:パルス検出タイプ(HIGHまたはLOW)
timeout:タイムアウト時間(us)
パルスの時間(us)を返す パルス検出
void shiftOut(dataPin, clockPin, bitOrder, value) dataPin:データ出力するデジタル入出力のピン番号
clockPin:クロック出力するデジタル入出力のピン番号
bitOrder:出力データの順番をMSBFIRSTまたはLSBFIRSTで指定
value:出力する1Byteのデータ
なし 1Byteのデータを出力
byte incoming = shiftIn(dataPin, clockPin, bitOrder) dataPin:データ入力するデジタル入出力のピン番号
clockPin:クロック出力するデジタル入出力のピン番号
bitOrder:入力データの順番をMSBFIRSTまたはLSBFIRSTで指定
value:出力する1Byteのデータ
入力データを1Byteで返す 1Bitずつの入力から1Byteのデータを取得

Time(時間)

関数 引数 戻り値 説明
void delay(unsigned long ms) ms:待機時間(ms) なし プログラムの実行を指定時間待機(ms)
void delayMicroseconds(unsigned int us) us:待機時間(us) なし プログラムの実行を指定時間待機(us)
unsigned long millis(void) なし プログラム実行からの経過時間(ms)を返す プログラム実行からの経過時間(ms)を計測
unsigned long micros(void) なし プログラム実行からの経過時間(us)を返す プログラム実行からの経過時間(us)を計測

Math(数学)

関数 引数 戻り値 説明
min(x, y) x:1つ目の数値
y:2つ目の数値
2つの数値を比べて小さい数値を返す 2つの数値を比べて小さい数値を算出
max(x, y) x:1つ目の数値
y:2つ目の数値
2つの数値を比べて大きい数値を返す 2つの数値を比べて大きい数値を算出
abs(x) x:数値 絶対値を返す 絶対値を計算
constrain(x, a, b) x:対象の数値
a:範囲の最小値
b:範囲の最大値
範囲内の値を返す 対象の数値が範囲内であれば、そのまま算出
範囲外であれば範囲の最小値または最大値で算出
long map(long value, long fromLow, long fromHigh, long toLow, long toHigh) value:対象の数値
fromLow:元の範囲の最小値
fromHigh:元の範囲の最大値
toLow:変換後の範囲の最小値
toHigh:変換後の範囲の最大値
変換した値を返す 対象の値を元の範囲から変換後の範囲に割合で変換
double pow(float base, float exponent) base:基数
exponent:乗数
べき乗した値を返す べき乗計算
double sqrt(x) x:数値 平方根で計算した値を返す 平方根を計算
sq(x) x:数値 対象の値の2乗を計算した値を返す 対象の値の2乗を計算

Trigonometry(三角関数)

関数 引数 戻り値 説明
double cos(float rad) rad:数値(rad) cosで計算した値を返す cos計算
double sin(float rad) rad:数値(rad) sinで計算した値を返す sin計算
double tan(float rad) rad:数値(rad) tanで計算した値を返す tan計算

Random Numbers(乱数)

関数 引数 戻り値 説明
void randomSeed(unsigned int seed) seed:乱数の種 なし 乱数の種を指定
long random(long max)
long random(long min, long max)
min:範囲の最小値
max:範囲の最大値
取得した乱数 乱数を取得

Bits and Bytes(ビット・バイト)

関数 引数 戻り値 説明
uint8_t lowByte(x) x:対象の数値 下位Bitを返す 下位Bitを取得
uint8_t highByte(x) x:対象の数値 上位Bitを返す 上位Bitを取得
boolean bitRead(x, n) x:対象の数値
n:取得するBitの桁
取得Bitを返す 指定Bitを取得
void bitWrite(x, n, b) x:対象の数値
n:取得するBitの桁
b:指定値(0または1)
なし 特定の桁を変更した値を取得
void bitSet(x, n) x:対象の数値
n:1にするBitの桁
なし 特定の桁を1に変更した値を取得
void bitClear(x, n) x:対象の数値
n:0にするBitの桁
なし 特定の桁を0に変更した値を取得
bit(n) n:指定Bitの桁 指定した桁のBitを1にした値を返す 指定した桁のBitを1にした値を取得

Interrupts(割り込み)

関数 引数 戻り値 説明
interrupts() なし なし 割り込みを有効
noInterrupts() なし なし 割り込みを無効

External Interrupts(外部割り込み)

関数 引数 戻り値 説明
void attachInterrupt(digitalPinToInterrupt(pin), ISR, int mode) digitalPinToInterrupt(pin):割り込みチャンネル
ISR:割り込み時の実行関数
mode:割り込みタイミング
なし ピンの状態によって割り込みを実行
void detachInterrupt(digitalPinToInterrupt(pin)) digitalPinToInterrupt(pin):割り込みチャンネル なし 特定のチャンネルの割り込みを無効

Communication/Serial(シリアル通信)

説明 引数 戻り値 説明
Serial.begin(unsigned long speed) speed:通信速度 なし シリアル通信を初期化
end() なし なし シリアル通信を終了
int available() なし 残りByte 読み取り可能Byte数を調べる
int Serial.read() なし 1Byte読み込んだ値を返す 1Byte読み込み
int Serial.peek() なし 1Byte読み込んだ値を返す 1Byte読み込み、読み取り位置は動かさない
Serial.flush() なし なし バッファからデータを削除
Serial.write(data)
Serial.write(buf, len)
data:送信データ
buf:送信する配列データ
len:データの長さ
送信データのByte数 データ送信
Serial.print(val, format) val:読み込むデータ
format:読み込みデータの基数
送信データのByte数 文字列送信(改行なし)
Serial.println(val, format) val:読み込むデータ
format:読み込みデータの基数
送信データのByte数 文字列送信(改行あり)

標準ライブラリ

Arduino IDEやArduino Web Editorでは、Arduino独自の標準ライブラリが用意されています。

以下のリンクがArduino公式WEBサイトのリファレンスページになります。当記事では、これらの情報を参考にArduinoの標準ライブラリをまとめています。

ちなみに、標準関数と違い、標準ライブラリの日本語ページは用意されていません。

Servo(サーボモーター)

関数 引数 戻り値 説明
attach(int pin, int min, int max) int pin:指定する
int min:角度0°のパルス幅(usec)、初期値544
int max:角度180°のパルス幅(usec)、初期値2400
インデックス値 サーボモーターのピン番号を指定
bool attached(void) なし 割り当てあり:true
割り当てなし:false
ピンにサーボモーターが割り当てられてるか確認
void detach(void) なし なし サーボモーターに割り当てられているピンを開放
void write(int angle) int angle:指定の角度 なし 指定角度にサーボモータを回転
void writeMicroseconds(int uS) int uS:パルス幅をusec単位で指定 なし パルス幅を指定してサーボモーターを回転
int read(void) なし サーボモーターの角度 現在のサーボモーターの角度を読み取り

Wire(I2C/TWI)

関数 引数 戻り値 説明
void begin(int address) int address:スレーブアドレス なし I2C初期化
requestFrom(int address, int quantity, int stop) int address:I2Cデバイスのアドレス
int quantity:データのbyte数
int stop:1に指定すると、データ送信後にSTOPメッセージを送信して接続終了
0に指定するとデータ送信後も接続保持
受信したbyte数 他のI2Cデバイスにデータ要求
void beginTransmission(int address) int address:I2Cデバイスのアドレス なし I2Cスレーブにデータ送信開始
endTransmission(int stop) int stop:1に指定すると、データ送信後にSTOPメッセージを送信して接続終了
0に指定するとデータ送信後も接続保持
データ送信結果 I2Cスレーブデバイスとのデータ送信完了
write(value)
write(string)
write(data, length)
value:1byteデータ
string:文字列データ
data:配列データ
length:送信byte数
送信したbyte数 I2Cスレーブデバイスにデータ送信
int available(void) なし 読み込み可能byte数 読み込み可能なbyte数を調べる
int read(void) なし 受信byte数 受信したbyte数を調べる

SPI

関数 引数 戻り値 説明
void begin(void) なし なし SPI初期化
void end(void) なし なし SPIバス無効
void beginTransaction(mySettings) mySettings:SPIスピード、ビットオーダー、データモード なし SPI初期化
(SPISettingsを使用)
void endTransaction(void) なし なし SPIバス終了
void setBitOrder(order) order:LSBFIRSTまたはMSBFIRST なし SPIビットオーダー設定
void setClockDivider(divider) divider:
SPI_CLOCK_DIV2
SPI_CLOCK_DIV4
SPI_CLOCK_DIV8
SPI_CLOCK_DIV16
SPI_CLOCK_DIV32
SPI_CLOCK_DIV64
SPI_CLOCK_DIV128
なし SPIクロック分周器設定
void setDataMode(mode) mode:
SPI_MODE0
SPI_MODE1
SPI_MODE2
SPI_MODE3
なし SPI転送モード設定
int transfer(value) value:1byteデータ 受信byte数 SPIデバイスとデータ送受信

テキストのコピーはできません。