begin()
説明
86Duinoのエンコーダのインターフェースを初期化して、動作モードを指定します。
語法
Enc0.begin(mode)
Enc0.begin(mode, bits)
Enc0.begin(mode, bits, clock)
Enc0.begin(mode, bits, clock, wtime)
Enc0.begin(mode, bits, clock, wtime, gray2bin)
Enc1.begin(mode)
Enc1.begin(mode, bits)
Enc1.begin(mode, bits, clock)
Enc1.begin(mode, bits, clock, wtime)
Enc1.begin(mode, bits, clock, wtime, gray2bin)
Enc2.begin(mode)
Enc2.begin(mode, bits)
Enc2.begin(mode, bits, clock)
Enc2.begin(mode, bits, clock, wtime)
Enc2.begin(mode, bits, clock, wtime, gray2bin)
Enc3.begin(mode)
Enc3.begin(mode, bits)
Enc3.begin(mode, bits, clock)
Enc3.begin(mode, bits, clock, wtime)
Enc3.begin(mode, bits, clock, wtime, gray2bin)
參數
Enc0、Enc1、Enc2、Enc3
:ENC0、ENC1、ENC2、ENC3のコーディング インターフェースにマッピングします。
mode
:The interface can be set in one of the following 5 modes:
MODE_STEP_DIR
:Pulse/DIR 増量コーディングモード(接続例)MODE_CWCCW
:CW/CCW 増量コーディングモード(接続例)MODE_AB_PHASE
:A/B Pulse 増量コーディングモード(接続例)MODE_SSI
:SSI 絶対コーディングモード(接続例)MODE_CAPTURE
:PWMモード
bits
:MODE_SSI
モードのオプション設定,SSI絶対コーディングのBIT幅設定に使われます。(初期値は12bitsですが、最大32bitsに設定可能)
clock
:MODE_SSI
モードのオプション設定,。SSIの通信速度の設定に使われます。(初期値は1000000Hz)
wtime
:MODE_SSI
モードのオプション設定,。SSI Wait Timeの設定に使われます。(初期値は20 us)
gray2bin
:MODE_SSI
モードのオプション設定,出力値はtrue或いはfalseです。Gray Codeの転換機能を開くかとうか指定され、開いた後、本体が自動的にSSIからのフィードバック値をGray Code to Binaryに転換します。(初期値はfalse)
フィードバック
なし
例
ENC0をPulse/DIRモードに設定して、カウンター数値を読込みします。
#include <Encoder.h> void setup() { Serial.begin(9600); Enc0.begin(MODE_STEP_DIR); } void loop() { Serial.println(Enc0.read()); // カウンター数値を読込みする delay(100); }
ENC1をPWMモードに設定して、パスルHIGH、LOWの幅の数値を読込みます。
#include <Encoder.h> volatile unsigned long num1 = 0L; volatile unsigned long num2 = 0L; void encoder_isr(int flag) { // ISR function if (flag == INTR_A_PULSE_LOW) // パスルLOWの幅を読込みする num1 = Enc1.read(); else if (flag == INTR_A_PULSE_HIGH) // パスルのHIGH幅を読込みする num2 = Enc1.read(); } void setup() { Serial.begin(9600); Enc1.begin(MODE_CAPTURE); Enc1.attachInterrupt(encoder_isr); //ISRライブラリをマウントして、中断機能を起動する } void loop() { Serial.print("LOW:"); Serial.print(num1); // パスルLOWの幅(単位:μs)をプリントアウトする Serial.print(" "); Serial.print("HIGH:"); Serial.println(num2); // パスルHIGHの幅(単位:μs)をプリントアウトする delay(100); }
See also
- attachInterrupt()
- read()
- setIndexReset()
- setComparator()
The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.