Internet, Windows, Linuxの最新技術をやさしく解説

  • concrete5
  • VirtualBox
  • Bootstrap
  • RaspberryPi
  • Arduino
  • Kindle
  • Pdic

ステッピングモータの話題と実験 > 「L6480 大電流ステッピングモータ・ドライバキット」の話題

「L6480 大電流ステッピングモータ・ドライバキット」の話題

#include <SPI.h>
#include <MsTimer2.h>

// ピン定義。
#define PIN_SPI_MOSI 11
#define PIN_SPI_MISO 12
#define PIN_SPI_SCK   13
#define PIN_SPI_SS     10
#define PIN_BUSY         9
#define PIN_STBY         8

void setup() {
  delay(1000);

  pinMode(PIN_SPI_MOSI, OUTPUT);
  pinMode(PIN_SPI_MISO, INPUT);
  pinMode(PIN_SPI_SCK, OUTPUT);
  pinMode(PIN_SPI_SS, OUTPUT);
  pinMode(PIN_BUSY, INPUT);
  pinMode(PIN_STBY, OUTPUT);
  digitalWrite(PIN_SPI_SS, HIGH);
  digitalWrite(PIN_STBY, HIGH);

  SPI.begin();
  SPI.setDataMode(SPI_MODE3);
  SPI.setBitOrder(MSBFIRST);

  delay(1000);
  while(!L6480_getstatus()){
    Serial.println("Communication Error");
    delay(1000);
  }
  L6480_resetdevice();    //L6480リセット
  L6480_setup();            //L6480を設定
  L6480_getstatus();       //フラグリセット

L6480_softstop(); delay(5000); for(int k=2;k<400;k++){ L6480_run(1,stepspeed(k)); //指定方向に連続回転 delay(100); } delay(5000); L6480_softhiz();//回転停止、保持トルクなし } void loop(){ } long stepspeed(long k){//速度換算 long val=k/0.01490116119; return val; } void L6480_setup(){ L6480_setparam_acc(0x8a); //[R, WS] 加速度default 0x08A (12bit) (14.55*val+14.55[step/s^2]) L6480_setparam_dec(0x8a); //[R, WS] 減速度default 0x08A (12bit) (14.55*val+14.55[step/s^2]) L6480_setparam_maxspeed(0x41); //[R, WR]最大速度default 0x041 (10bit) (15.25*val+15.25[step/s]) L6480_setparam_minspeed(0x00); //[R, WS]最小速度default 0x0000 (1+12bit) (0.238*val+[step/s]) L6480_setparam_fsspd(0x47); //[R, WR]μステップからフルステップへの切替点速度default 0x027 (10bit) (15.25*val+7.63[step/s]) L6480_setparam_kvalhold(0x29); //[R, WR]停止時励磁電圧default 0x29 (8bit) (Vs[V]*val/256) L6480_setparam_kvalrun(0x29); //[R, WR]定速回転時励磁電圧default 0x29 (8bit) (Vs[V]*val/256) L6480_setparam_kvalacc(0x29); //[R, WR]加速時励磁電圧default 0x29 (8bit) (Vs[V]*val/256) L6480_setparam_kvaldec(0x29); //[R, WR]減速時励磁電圧default 0x29 (8bit) (Vs[V]*val/256) L6480_setparam_intspd(0x508); //245[R, WH]逆起電力補償切替点速度default 0x0408 (14bit) (0.238*val[step/s]) L6480_setparam_stslp(0x26); //[R, WH]逆起電力補償低速時勾配default 0x19 (8bit) (0.000015*val[% s/step]) L6480_setparam_fnslpacc(0x65); //[R, WH]逆起電力補償高速時加速勾配default 0x29 (8bit) (0.000015*val[% s/step]) L6480_setparam_fnslpdec(0x65); //[R, WH]逆起電力補償高速時減速勾配default 0x29 (8bit) (0.000015*val[% s/step]) L6480_setparam_ktherm(0x1); //[R, WR]不明default 0x0 (4bit) (0.03125*val+1) L6480_setparam_ocdth(0x1f); //[R, WR]過電流しきい値default 0x8 (5bit) (31.25*val+31.25[mV]) L6480_setparam_stallth(0x1f); //[R, WR]失速電流しきい値?default 0x10 (5bit) (31.25*val+31.25[mV]) L6480_setparam_stepmood(0x07); //[R, WH]ステップモードdefault 0x07 (8bit)L6480_setparam_alareen(val); //[R, WS]有効アラームdefault 0xff (1+1+1+1+1+1+1+1bit) L6480_setparam_alareen(0xde); //[R, WS]有効アラームdefault 0xff (1+1+1+1+1+1+1+1bit) L6480_setparam_gatecfg1(0x0148);//[R, WH]geta driver configuration //default 0x000(1+3+3+5bit) L6480_setparam_gatecfg2(0x00);//[R, WH]geta driver configuration //default 0x00(3+5bit) L6480_setparam_config(0x3728); //[R, WH]各種設定default 0x2e88 (3+3+1+1+1+1+1+1+1+3bit) }
ステッピングモータの話題と実験 > 「L6480 大電流ステッピングモータ・ドライバキット」の話題

ツイート
このエントリーをはてなブックマークに追加
  

Theme Made by Enrique Ramírez for Smashing Magazine. Powered by Concrete5
© 2019 tomoのconcrete5. All rights reserved. ログイン