» 【回路設計エンジニア】おすすめ転職エージェント

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

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

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

目次

データ型

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

演算子

算術演算子

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

代入演算子

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

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

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

比較演算子

比較演算子使用例説明
==a == baとbが等しい時、成立
!=a != baとbが等しくない時、成立
<a < baがbより小さい時、成立
>a > baがbより大きい時、成立
<=a <= baがb以下の時、成立
>=a >= baが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の標準ライブラリをまとめています。

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

EEPROM

関数引数戻り値説明
byte Read(int address)int address:アドレス1byteデータEEPROMの指定したアドレスから1byteデータを取得
void Write(int address, byte value)int address:アドレス
byte value:1byteデータ
なしEEPROMの指定したアドレスに1byteデータを保存
int length(void)なしEEPROMメモリ容量EEPROMメモリ容量を取得
void Get(int address, T & data)int address:アドレス
T &data:2byte以上のデータ
なしEEPROMの指定したアドレスから2byte以上のデータを取得
void Put(int address, const T & data)int address:アドレス
T &data:2byte以上のデータ
なしEEPROMの指定したアドレスに2byte以上のデータを保存
void Update(int address, byte value)int address:アドレス
byte value:1byteデータ
なしEEPROMの指定したアドレスに1byteデータを保存、元データと書き込みデータが同じ場合、保存しない
byte EEPROM[int address]int address:アドレス1byteデータEEPROMの指定したアドレスから1byteデータを取得、
EEPROMの指定したアドレスに1byteデータを保存

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デバイスとデータ送受信
よかったらシェアしてね!
目次
閉じる