RAMPS1.4の端子アサイン一覧です。Arduino Mega以外に繋げる時のために作ってみました。
*ラズパイに繋げようと思いまして…
端子一覧
メモ
D8-D10出力:MOSFET(STP55NF06L)のゲートしきい値電圧はtyp1.7V(min1V)
I2C:通信線は4.7kΩでプルアップしてある
AM-VIN:電源(12V5A)に繋がっているが、D1ダイオードを実装していないと出力されない
*AM-VINはステッピングモーター電源と共有なので、モータに12V以上を印加させたい場合はArduino電源としては使用してはいけない!必ずD1ダイオードを外すこと
5V電源:リセットSWの横の5vピンから入力(サーボにしか使用されない)
情報元
詳細は下記参照
http://reprap.org/wiki/RAMPS_1.4
使い方メモ
A4988ドライバ:モータ電流の調整方法
ステッピングモータへの出力電流は半固定抵抗をマイナスドライバー等を使って回すことで調整できます。
出力電流は、下記の計算式で求めることができます。
最大出力Imax = Vref / (8 * Rcs)
Rcsは下記写真の位置にある抵抗値です。kuman製のA4988ドライバだと0.1Ω(R100のラベル)になります。
(Pololu製だと0.05Ωと0.068Ωがあるようです)
VrefはA4988のリファレンス電圧で、半固定抵抗とGND間の電圧になります。これを調整することでImaxを調整します。
例えば、今回使用したステッピングモータは0.33A/相なので、余裕を持って70%の0.23Aを流すとすると、Vref=0.23A*8*0.1Ω=約0.18Vとなるので、半固定抵抗を回して0.18Vになるように調整します。
A4988のENABLE端子について
VCCでプルアップされています。特に制御しないのであればGNDに落としておく。
ただし、通電しっぱなしだとモーターの発熱がひどくなる可能性大なのでちゃんと制御した方がいいと思う。
A4988:停止時の静止トルク
ステッピングモーター停止時にも電流を流す(ENABLE端子をLOW)ことにより、その位置に留まるトルクを発生させることができます。
しかし、通電しっぱなしだと動いてないのに電気食うし、最悪発熱によりドライバの保護機能が働き強制カットされてしまいます。
そこで、モーター停止時には通電を止めてしまう(ENABLE端子をHIGH)方がいいのですが、その場合静止トルクがなくなってしまい、外から力をかけると簡単に動いてしまいます。
停止時にも最小限の静止トルクを発生させる電流を流すことができれば良いのですが、A4988にはそんな機能はついていません。
対策1
停止時にENABLE端子にPWMパスルを入れて間欠作動させる。(こんな使い方してよいかわからないが・・・)
電流を抑えることができるが、振動がすごい。
対策2
動作時の電流を下げる!!
半固定抵抗を調整して、常時通電しても問題ないレベルまで下げてしまう。
もちろん、動作時のトルクは減るけど、システムの動作に影響なければ下げてしまう方がいいと思います。
ちなみにL6470には、動作時と停止時の電流を切り替える機能が搭載されています。まぁ、その分A4988よりも高価ですが・・・
A4988の最大STEP周波数
A4988のデータシートを見るとSTEP信号は、最小ON時間1μs、最小OFF時間も1μsなので、最大周波数は500KHz。