IOから出力をする場合に、その出力の方法が選択できます(何が選択できるかはデバイスによります)。出力のパワーや電圧を切り替えることができます。
obnizではデフォルトでは「そのデバイスで使える最もパワフルなプッシュプル」が選択されています。変更にはio.drive()関数を利用します。
output()で出力を初めて行うよりも前に設定を変更します。output()で出力中に変更することも可能です。
// Javascript Example
obniz.io0.pull("5v");
obniz.io0.drive("open-drain");
obniz.io0.output(true); // output open-drain with 5v pull-up
また、io.output()に限らず、UARTやSPIなどの出力時にも利用できます。
駆動方法一覧
選択できるタイプはデバイスによります。
以下はobniz Boardシリーズの場合の対応表となります。他のデバイスはそれぞれのデバイス詳細をご覧ください。
drive()引数 | 駆動方法と電圧 | 最大電流 | 最大周波数 | 詳細 |
---|---|---|---|---|
5v |
プッシュプル 5v | 1A | <=250khz(推奨) | デフォルト設定。過電流/ドライバ高温保護付き |
3v |
プッシュプル 3v | 1mA(推奨) | <=80Mhz | io.output()使用時の過電流自動停止と警告 |
open-drain |
オープンドレイン <=5v | 1mA(推奨) | <=80Mhz |
プッシュプル
最もよく使われる出力方法です。trueである電圧が出力され、falseでGNDと同じ0vが出力されます。
オープンドレイン
falseはプッシュプルと同じく0vとなりますが、trueの場合はハイインピーダンスとなる出力方法です。bi-directionalな通信または違う電圧レベルでの通信を行う場合に利用します。多くの場合プルアップと一緒に利用します。