基本ライブラリ
デジタルIO
アナログIO
拡張IO
時間
数学
三角関数
乱数
ビットバイト操作
割り込み
シリアル通信
標準ライブラリ
カメラ
サーボモーター
ステッピングモーター
キャラクタ液晶表示
SPI通信
I2C通信(Wire)
SD
SD(File操作)
周期処理(MsTimer2)
時計(RTC)
Mbed Tips
拡張 I/O(トーン出力やシフト入出力)
矩形波やシリアルデータの入出力(ソフトウェア)、パルス幅を測るためのライブラリです。
tone
- 概要
- 指定周波数の矩形波を生成します。ブザーで音を鳴らすのに便利です。
- 文法
- tone(int pin, int frequency, int duration)
- パラメータ
- pin: ピン番号
frequency: 周波数[Hz]
duration: 出力を維持する時間[ms]。省略時、0指定時は出力し続ける。 - 戻り値
- なし
- 補足
- 0, 3, 5ピンのみ使用できます。
noTone
- 概要
- tone関数で出力した矩形波出力を停止する。
- 文法
- noTone(int pin)
- パラメータ
- pin: ピン番号
- 戻り値
- なし
shiftOut
- 概要
- 1バイト分のデータを1ビットずつ出力します。各ビットはまずdataPinに出力され、その後clockPinが反転して、そのビットが有効になったことが示されます。
- 文法
- shiftOut(int dataPin, int clockPin, bitOrder, unsigned char value)
- パラメータ
- dataPin: データ出力ピン
clockPin: クロック入力ピン
bitOrder: MSBFIRST(最上位ビットから出力)、LSBFIRST(最下位ビットから出力)
value: 送信したいデータ(unsigned charで8ビットデータ) - 戻り値
- なし
shiftIn
- 概要
- 1バイトのデータを1ビットずつ取り込みます。まずclockPinがHIGHになり、dataPinから次のビットが読み込まれ、clockPinがLOWに戻ります。
- 文法
- unsigned char shiftIn(unsigned char dataPin, unsigned char clockPin, bitOrder)
- パラメータ
- dataPin: データ入力ピン
clockPin: クロック出力ピン
bitOrder: MSBFIRST(最上位ビットから入力)、LSBFIRST(最下位ビットから入力) - 戻り値
- 読み取った値(8ビットデータ)
shiftOutEx
- 概要
- 複数バイト分(32ビットまで)のデータを1ビットずつ出力します。各ビットはまずdataPinに出力され、その後clockPinが反転して、そのビットが有効になったことが示されます。
- 文法
- shiftOutEx(int dataPin, int clockPin, bitOrder, int len, unsigned long value)
- パラメータ
- dataPin: データ出力ピン
clockPin: クロック入力ピン
bitOrder: MSBFIRST(最上位ビットから出力)、LSBFIRST(最下位ビットから出力)
len: 出力するデータのビット数
value: 送信したいデータ(32ビット以下のデータ)。MSBFIRSTの場合は最上位ビットを詰めておく必要があります。 - 戻り値
- なし
shiftInEx
- 概要
- 複数バイト分(32ビットまで)のデータを1ビットずつ取り込みます。まずclockPinがHIGHになり、dataPinから次のビットが読み込まれ、clockPinがLOWに戻ります。
- 文法
- uint32_t shiftIn(unsigned char dataPin, unsigned char clockPin, bitOrder, int len)
- パラメータ
- dataPin: データ入力ピン
clockPin: クロック出力ピン
bitOrder: MSBFIRST(最上位ビットから入力)、LSBFIRST(最下位ビットから入力)
len: 入力するデータのビット数 - 戻り値
- 読み取った値(uint32_t)
pulseIn
- 概要
- ピンに入力されるパルスの幅を測ります。
- 文法
- unsigned long pulseIn(int pin, int val, unsigned long timeout = 1000000)
- パラメータ
- pin: ピン番号
val: 測定するパルスの種類。HIGHまたはLOW
timeout: タイムアウトまでの時間(単位・マイクロ秒)。デフォルトは1秒 - 戻り値
- パルスの長さ[us] (unsigned long)。パルスがスタートする前にタイムアウトとなった場合は0。
サンプルプログラム
toneのサンプルです。ドレミ
#include <Arduino.h>
void setup(){
tone(3, 261);
delay(500);
tone(3, 293);
delay(500);
tone(3, 329);
delay(500);
noTone(3);
delay(500);
}
void loop(){
}