Arduino言語Arduino言語はC/C++をベースにしており、C言語のすべての構造と、いくつかのC++の機能をサポートしています。また、AVR Libcにリンクされていて、その関数を利用できます。 setup() loop() 制御文if if else switch case for while do while break continue return goto 基本的な文法; (セミコロン) {} (波カッコ) コメント #define #include 算術演算子+ - * / % (剰余) = (代入) 比較演算子== != < > <= >= ブール演算子&& (論理積) || (論理和) ! (否定) ビット演算子ビット演算子は変数をビットのレベルで計算するためのものです。ビット演算子によって、広範囲なプログラミング上の問題を解決することができます。 & (AND) | (OR) ^ (XOR) ~ (NOT) << (左シフト) >> (右シフト) ポート操作 複合演算子++ (加算) -- (減算) += -= *= /= &= (AND) |= (OR) データ型boolean char byte int (整数型) unsigned int (符号なし整数型) word long (long整数型) unsigned long (符号なしlong整数型) float (浮動小数点型) double (倍精度浮動小数点型) 文字列 配列 void 定数定数はプログラムのなかで値が変化しない変数と考えるといいでしょう。Arduino言語であらかじめ定義されている定数と、ユーザーが自分で定義して使う定数があります。おもにプログラムのメンテナンス性を高めるために使われます。 true/false (論理レベルを定義する定数) HIGH/LOW (ピンのレベルを定義する定数) INPUT/OUTPUT (デジタルピンを定義する定数) 整数の定数 浮動小数点数の定数 変数の応用Static volatile const PROGMEM Cast sizeof デジタル入出力関数pinMode(pin, mode) digitalWrite(pin, value) digitalRead(pin) アナログ入出力関数analogRead(pin) analogWrite(pin, value) analogReference(type) その他の入出力関数shiftOut(dataPin, clockPin, bitOrder, value) pulseIn(pin, value, timeout) 時間に関する関数millis() micros() delay(ms) delayMicroseconds(us) 数学的な関数この章の「関数」の多くは、マクロとして定義されています。定義の詳細を知りたい場合は、ソースファイル"Wiring.h"を参照してください。 min(x, y) max(x, y) abs(x) constrain(x, a, b) map(value, fromLow, fromHigh, toLow, toHigh) pow(base, exponent) sq(x) sqrt(x) 三角関数sin(rad) cos(rad) tan(rad) 乱数に関する関数randomSeed(seed) random(min, max) ビットとバイトの操作lowByte() highByte() bitRead() bitWrite() bitSet() bitClear() bit() 外部割り込みattachInterrupt(interrupt, function, mode) detachInterrupt(interrupt) 割り込みinterrupts() noInterrupts() シリアル通信Serial.begin(int speed) Serial.available() Serial.read() Serial.flush() Serial.print(data, format) Serial.println(data, format) | 公式ライブラリArduinoのライブラリは、公式ライブラリと、コミュニティーのメンバーから寄稿されたライブラリの2種類があります。公式ライブラリはあらかじめArduino IDEにインストールされています。寄稿されたものはユーザーが個々にダウンロードしてインストールする必要があります。 ライブラリの使い方 EEPROMArduinoボードのマイクロコントローラは512バイトのEEPROMを搭載しています。EEPROMは(まるで小さなハードディスクのように)電源を切っても消えないメモリです。このライブラリはEEPROMに対する書き込みと読み込みを可能にします。 EEPROM.read(address) EEPROM.write(address, value) SoftwareSerialソフトウェアシリアルライブラリはArduinoボードの0〜1番以外のピンを使ってシリアル通信を行うために開発されました。本来ハードウェアで実現されている機能をソフトウェアによって複製したので、SoftwareSerialと名付けられました。 ソフトウェア・シリアルのサンプルコード SoftwareSerial(rxPin, txPin) SoftwareSerial:begin(speed) SoftwareSerial:read() SoftwareSerial: print(data) SoftwareSerial: println(data) Stepperユニポーラおよびバイポーラのステッパモータをコントロールするためのライブラリです。このライブラリを利用するには、ステッパモータと制御のための適切なハードウェアが必要です。 Stepperライブラリのサンプルコード Stepper(steps, pin1, pin2, pin3, pin4) Stepper: setSpeed(rpms) Stepper: step(steps) WireこのライブラリはI2C/TWIデバイスとの通信を可能にします。ArduinoボードのSDA(データライン)はアナログ入力ピン4、SCL(クロックライン)はアナログ入力ピン5です。 I2Cアドレスには7ビットと8ビットのバージョンがあります。7ビットでデバイスを特定し、8番目のビットで書き込みか読み出しかを指定します。Wireライブラリは常に7ビットのアドレスを使用します。8ビットのアドレスを使うサンプルコードやデータシートがあったら、最下位のビットを(1ビットの右シフトで)落とし、0から127の範囲へ変更することになるでしょう。 Wire.begin(address) Wire.requestFrom(address, quantity) Wire.beginTransmission(address) Wire.endTransmission() Wire.send(value) Wire.available() Wire.receive() Wire.onReceive(handler) Wire.onRequest(handler) Servoこのライブラリは1つまたは2つのサーボモータをコントロールできます。サーボを接続するのはピン9またはピン10です。サーボを1つしか使用しない場合でも、空いているほうのピンをanalogWriteでPWM出力に使うことはできません。つまり、ピン9をサーボ、ピン10をPWM出力という組み合わせには対応しません。 サーボモータからは3本のワイアがでています。電源、グラウンド、信号の3本です。電源の線は普通赤色で、Arduinoボードの5Vピンに接続します。グラウンドの線は黒または茶色で、Arduinoボードのグランドピンに接続します。信号線は黄色やオレンジのことが多いでしょう。これはピン9かピン10に接続します。 attach() write() attached() detach() FirmataFirmataライブラリにより、ホストコンピュータ上のソフトウェアとFirmataプロトコルを使ってコミュニケーションできます。自前のプロトコルやオブジェクトを作らずに、カスタムファームウエアを書くことができます。 メソッド コールバック関数 サンプルコード LiquidCrystalこのライブラリを使うことで、Hitachi HD44780とその互換チップセットをベースにしたLCDを制御できます。4ビットと8ビット両方のモードをサポートしています。rs、rw、enable_controlのほかに、4本または8本のデータラインが使われます。 LiquidCrystal() clear() home() setCursor() write() print() Ethernet libraryArduino Ethernet Shieldを使ってArduinoボードをインターネットに接続するときに使うライブラリです。サーバ(外部からの接続)、クライアント(外へ向かう接続)の両方に対応できます。 Ethernet class Ethernetクラスはライブラリとネットワークの設定を初期化します。 begin() Server class Serverクラスはサーバを生成し、接続されたクライアントとデータを送受信します。クライアントとは他のコンピュータやデバイスで走っているプログラムのことです。 Server() begin() available() write() print() println() Client class clientクラスはサーバに接続してデータの送受信を行うクライアントを生成します。 Client() connect() write() print() println() available() read() flush() stop() 寄稿されたライブラリArduinoコミュニティのメンバーから寄稿されたライブラリが数多く存在し、ユーザーは自分のスケッチでそれらを利用できます。ここではそのうちのごく一部を紹介します。 TextString MsTimer2 ServoTimer1 CapSense (静電容量センサ) |
Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください