ESPDuino で CNC Shield と Grbl_ESP32 を併用してみる

Grbl とステッピングモータドライバ「A4988」の EN について

EN/GND に 10kΩ を用いた短絡ではドライバの EN が High⇒Disable の状態でモーターを回すため、有信号時に回転こそ行われるものの、無信号時に踏ん張りませんでした。通常行うように抵抗値の小さい許容電流の大きい抵抗器を繋いで Low 側に引っ張るのが良さそうです(短絡させると45.1mAだったので R で少し絞りたい)。

EN/GND を短絡せず、Grbl_ESP32 で $1=255 と指定するとディレイの時間制限がなくなり、無信号時も EN が Low⇒Driver Enable のままで保たれます。

逆にフリーにする場合は $SLP を実行します。

参考文献

Grbl

3.3V-EN

High ⇒ Disable

  // Enable stepper drivers.
  if (bit_istrue(settings.flags,BITFLAG_INVERT_ST_ENABLE)) { STEPPERS_DISABLE_PORT |= (1<<STEPPERS_DISABLE_BIT); }
  else { STEPPERS_DISABLE_PORT &= ~(1<<STEPPERS_DISABLE_BIT); }
// Define stepper driver enable/disable output pin.
#define STEPPERS_DISABLE_DDR    DDRB
#define STEPPERS_DISABLE_PORT   PORTB
#define STEPPERS_DISABLE_BIT    0  // Uno Digital Pin 8
#define STEPPERS_DISABLE_MASK   (1<<STEPPERS_DISABLE_BIT)

A4988

High ⇒ Disable

https://www.pololu.com/file/0J450/a4988_DMOS_microstepping_driver_with_translator.pdf#page=10

Enable Input (ENABLE ). This input turns on or off all of the FET outputs. When set to a logic high, the outputs are disabled. When set to a logic low, the internal control enables the outputs as required. The translator inputs STEP, DIR, and MSx, as well as the internal sequencing logic, all remain active, independent of the ENABLE input state.

入力を有効にする(ENABLE)。 この入力は、すべてのFET出力をオンまたはオフにします。 ロジックハイに設定すると、出力は無効になります。 ロジックローに設定すると、内部制御により必要に応じて出力が有効になります。 トランスレータ入力STEP、DIR、MSx、および内部シーケンスロジックはすべて、ENABLE入力状態に関係なくアクティブのままです。(Google翻訳)

※ 最近の Google 先生の翻訳は本当に、恐いくらいに滑らかですね。