Arduino-言語・関数リファレンス一覧
当記事では、Arduinoの言語・関数リファレンスを紹介します。各標準関数・標準ライブラリの詳しい解説やサンプルプログラム(サンプルスケッチ)はリンク先の記事を確認してください。
現在掲載している情報は、まだ一部なので順次、追記していく予定です。
目次
データ型
データ型 | 入力範囲 | サイズ (ビット数) | 説明 |
---|---|---|---|
boolean (ブーリアン) | 0, 1 | 8bit | “true”か”false”の判定に使用 |
char (チャー、キャラ) | -128~127 | 8bit | 文字の代入に使用 |
unsigned char (アンサインド チャー、 アンサインド キャラ) | 0~255 | 8bit | 〃 |
int (イント) | -32,768~32,767 (Arduino Due: -2,147,483,648~2,147,483,647) | 16bit (32bit) | 整数に使用 |
unsigned int (アンサインド イント) | 0~65,535 (Arduino Due: 0~4,294,967,295) | 16bit (32bit) | 〃 |
long (ロング) | -2,147,483,648~2,147,483,647 | 32bit | 大きい整数に使用 |
unsigned long (アンサインド ロング) | 0~4,294,967,295 | 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 + cと同等) |
-= | a -= b | aからbを引いた値をaに代入 (a = b - cと同等) |
*= | a *= b | aとbを掛けた値をaに代入 (a = b * cと同等) |
/= | a /= b | aをbで割った値をaに代入 (a = b / cと同等) |
%= | a %= b | aをbで割った余りをaに代入 (a = b % cと同等) |
インクリメント・デクリメント演算子
インクリメント・ デクリメント演算子 | 使用例 | 説明 |
---|---|---|
++ | a++ | 古い aの値を返して、aの値を 1 増加 |
++a | aの値を 1 増加して、新しい aの値を返す | |
-- | a-- | 古い aの値を返して、aの値を 1 減少 |
--a | aの値を 1 減少して、新しい aの値を返す |
比較演算子
比較演算子 | 使用例 | 説明 |
---|---|---|
== | a == b | aとbが等しい時、真(true: 1) aとbが等しくない時、偽(false: 0) |
!= | a != b | aとbが等しくない時、真(true: 1) aとbが等しい時、偽(false: 0) |
< | a < b | aがbより小さい時、真(true: 1) aがb以上の時、偽(false: 0) |
> | a > b | aがbより大きい時、真(true: 1) aがb以下の時、偽(false: 0) |
<= | a <= b | aがb以下の時、真(true: 1) aがbより大きい時、偽(false: 0) |
>= | a >= b | aがb以上の時、真(true: 1) aがbより小さい時、偽(false: 0) |
論理演算子
論理演算子 | 使用例 | 説明 |
---|---|---|
&& | (a >= 10) && (a < 100) | aが10以上かつ100未満の時、真(true: 1) それ以外は偽(false: 0) |
|| | (a == 10) || (a == 100) | aが10または100の時、真(true: 1) それ以外は偽(false: 0) |
! | !(a == 10) | aが10でない時、真(true: 1) それ以外は偽(false: 0) |
制御文
条件分岐「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で返す | デジタル入力 |
Arduino-Digital I/O関数(デジタル入出力関数)の使い方
当記事では、ArduinoのDigital I/O関数(デジタル入出力関数)の使い方について詳しく解説します。 Digital I/O関数を使うことによって、Arduinoボードのデジタル信号の出...
Analog I/O(アナログ入出力)
関数 | 引数 | 戻り値 | 説明 |
---|---|---|---|
void analogReference(type) | type:基準電圧の設定 | なし | アナログ入力の基準電圧を設定 |
int analogRead(pin) | pin:対象のアナログ入力のピン番号 | ピンの入力状態を返す 10bits: 0~1023 12bits: 0~4095 | アナログ入力の状態を確認 |
void analogWrite(pin, value) | pin:対象のデジタル入出力のピン番号 value:出力値を0~255で指定 | なし | アナログ出力(PWM) |
Arduino-Analog I/O関数(アナログ入出力関数)の使い方
当記事では、ArduinoのAnalog I/O関数(アナログ入出力関数)の使い方について詳しく解説します。 Analog I/O関数を使うことによって、Arduinoボードのアナログ信号の出力...
Advanced I/O(デジタル・アナログ入出力 発展版)
関数 | 引数 | 戻り値 | 説明 |
---|---|---|---|
void tone(pin, unsigned int frequency, unsigned long duration) | pin:対象のデジタル入出力のピン番号 frequency:出力周波数(Hz) 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)を計測 |
Arduino-Time関数(時間関数)の使い方
当記事では、ArduinoのTime関数(時間関数)の使い方について詳しく解説します。 Time関数を使うことによって、プログラム実行を指定時間待機したり、プログラム実行から...
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乗を計算 |
Arduino-Math関数(数学関数)の使い方
当記事では、ArduinoのMath関数(数学関数)の使い方について詳しく解説します。 Math関数を使うことによって、数値の比較、絶対値、べき乗、平方根などの計算をすること...
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計算 |
Arduino-Trigonometry関数(三角関数)の使い方
当記事では、ArduinoのTrigonometry関数(三角関数)の使い方について詳しく解説します。 Trigonometry関数を使うことによって、cos、sin、tanの計算をすることができます...
Random Numbers(乱数)
関数 | 引数 | 戻り値 | 説明 |
---|---|---|---|
void randomSeed(unsigned int seed) | seed:乱数の種 | なし | 乱数の種を指定 |
long random(long max) long random(long min, long max) | min:範囲の最小値 max:範囲の最大値 | 取得した乱数 | 乱数を取得 |
Arduino-Random Numbers関数(乱数関数)の使い方
当記事では、ArduinoのRandom Numbers関数(乱数関数)の使い方について詳しく解説します。 Random Numbers関数を使うことによって、乱数列を作成して乱数を取得すること...
Bits and Bytes(ビット・バイト)
関数 | 引数 | 戻り値 | 説明 |
---|---|---|---|
uint8_t lowByte(x) | x:対象の数値 | 下位Byteを返す | 下位Byteを取得 |
uint8_t highByte(x) | x:対象の数値 | 上位Byteを返す | 上位Byteを取得 |
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にした値を取得 |
Arduino-Bits and Bytes関数(ビット・バイト関数)の使い方
当記事では、ArduinoのBits and Bytes関数(ビット・バイト関数)の使い方について詳しく解説します。 Bits and Bytes関数を使うことによって、ビットやバイトの操作をす...
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 Serial.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-Communication関数(シリアル通信)の使い方
当記事では、ArduinoのCommunication関数(シリアル通信)の使い方について詳しく解説します。 Arduinoではシリアル通信の標準関数が用意されており、簡単にシリアル通信...
標準ライブラリ
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データを保存 |
Arduino-EEPROMライブラリの使い方
当記事では、ArduinoのEEPROMライブラリの使い方について詳しく解説します。 Arduinoボードには、電源を切った後でもデータを保持できる不揮発性メモリ「EEPROM」が実装...
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) | なし | サーボモーターの角度 | 現在のサーボモーターの角度を読み取り |
Arduino-Servo(サーボモーター)ライブラリの使い方
当記事では、ArduinoのServo(サーボモーター)ライブラリの使い方について詳しく解説します。 Arduinoのサーボモーター制御用ライブラリ「Servo」を使ったプログラムで、...
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数を調べる |
Arduino-Wire(I2C)ライブラリの使い方
当記事では、ArduinoのWire(I2C)ライブラリの使い方について詳しく解説します。 ArduinoのI2C制御用ライブラリ「Wire」を使ったプログラムで、各種I2Cデバイスを動作さ...
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デバイスとデータ送受信 |
Arduino-SPIライブラリの使い方
当記事では、ArduinoのSPIライブラリの使い方について詳しく解説します。 ArduinoのSPI制御用ライブラリ「SPI」を使ったプログラムで、各種I2Cデバイスを動作させます。...