久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> Arduino >> 瀏覽文章

Arduino UNo 通過LM298n控制步進電機(2)

作者:goingxu   來源:本站原創   點擊數:  更新時間:2014年04月21日   【字體:

兩相8拍程序,也是對網上找的程序進行時序修改:

//八拍,半步:(+A)(+B)--(+B)--(-A)(+B)--(-A)--(-A)(-B)--(-B)--(+A)(-B)--(+A)--
int Pin0 = 8; //A
int Pin1 = 9; //A'
int Pin2 = 10;  //B
int Pin3 = 11;  //B'
int _step =0 ;
boolean dir = true;//正反轉
int stepperSpeed = 1500;//電機轉速,XX us一步, larger than 1500um
int stepN =0;
void setup()
{
  pinMode(Pin0, OUTPUT);
  pinMode(Pin1, OUTPUT);
  pinMode(Pin2, OUTPUT);
  pinMode(Pin3, OUTPUT);
}
 
void loop()
{
  switch(_step){
    case 0:
      digitalWrite(Pin0, HIGH);
      digitalWrite(Pin1, LOW);
      digitalWrite(Pin2, HIGH);
      digitalWrite(Pin3, LOW);
    break;
    case 1:
      digitalWrite(Pin0, LOW);
      digitalWrite(Pin1, LOW);
      digitalWrite(Pin2, HIGH);
      digitalWrite(Pin3, LOW);
    break;
    case 2:
      digitalWrite(Pin0, LOW);
      digitalWrite(Pin1, HIGH);
      digitalWrite(Pin2, HIGH);
      digitalWrite(Pin3, LOW);
    break;
    case 3:
      digitalWrite(Pin0, LOW);
      digitalWrite(Pin1, HIGH);
      digitalWrite(Pin2, LOW);
      digitalWrite(Pin3, LOW);
    break;
    case 4:
      digitalWrite(Pin0, LOW);
      digitalWrite(Pin1, HIGH);
      digitalWrite(Pin2, LOW);
      digitalWrite(Pin3, HIGH);
    break;
    case 5:
      digitalWrite(Pin0, LOW);
      digitalWrite(Pin1, LOW);
      digitalWrite(Pin2, LOW);
      digitalWrite(Pin3, HIGH);
    break;
      case 6:
      digitalWrite(Pin0, HIGH);
      digitalWrite(Pin1, LOW);
      digitalWrite(Pin2, LOW);
      digitalWrite(Pin3, HIGH);
    break;
    case 7:
      digitalWrite(Pin0, HIGH);
      digitalWrite(Pin1, LOW);
      digitalWrite(Pin2, LOW);
      digitalWrite(Pin3, LOW);
    break;
    default:
      digitalWrite(Pin0, LOW);
      digitalWrite(Pin1, LOW);
      digitalWrite(Pin2, LOW);
      digitalWrite(Pin3, LOW);
      delay(1000);
    break;
  }
  if(dir){
    _step++;
  }else{
    _step--;
  }
  if(_step>7){
    _step=0;
  }
  if(_step<0){
    _step=7;
  }
  delayMicroseconds(stepperSpeed);
 
//delay(stepperSpeed);

  stepN++;
  if(stepN>=400)
  {
    dir = !dir;  //after turning 400 stepps, change direction.
    stepN =0;
    _step=10;//pause
  }
}

結論:

   兩段程序均可以運行良好,空轉時沒有丟步。但當時間間隔調小到一定程度后,電機無法轉動。四拍時為2000us,八拍時1500微秒。沒有細調,可能與負載有關。動力老男孩文章中寫的是1500us,但我的電機無法運動,是否和電機型號不同有關。 這個間隔決定了電機的轉速,因此這里的步進電機空載轉速在四拍時約為2.5轉每秒(rps),八拍時約1.67rps。注意:四拍時電機200個脈沖1圈,單步步距1.8度;八拍時400個脈沖1圈,單步步距0.9度。如何進行更高的細分?

   步進電機調速主要是調整脈沖頻率,所以lm298n的兩個pwm波接口EnA、EnB直接接5v。

   實驗了小角度擺動,擺角9度時,理論可達40*1.67=66.8Hz,以后可以嘗試測量是否達到。

   當電機不動時,如在loop()中用delay,電機使能,電流很大(超過1A),因此這里將電機停止運動時直接全部置低,電流就很小了(最大電流200ma),但停止時無法保持位置。這一矛盾應該采用閉環控制克服。
 

關閉窗口

相關文章

主站蜘蛛池模板: 91麻豆精品国产91久久久久久久久 | 黄色片在线观看网址 | 99这里只有精品视频 | 成人一区二区视频 | 午夜视频在线观看一区二区 | 亚洲第一黄色网 | 亚洲一区二区视频在线播放 | 在线亚洲免费视频 | 国产精品免费看 | 国产乱码精品一区二区三区五月婷 | 久久精品国产一区二区三区不卡 | 久久亚洲一区 | 日韩精品一区二区三区中文在线 | 日本三级网址 | 日本黄色大片免费看 | 欧美一区二区三区视频 | 欧美www在线 | 91视频正在播放 | 中文字幕在线不卡 | 亚洲综合视频 | 亚洲欧美综合精品久久成人 | 国产一区二区三区四区五区加勒比 | 久产久精国产品 | 69性欧美高清影院 | 天天躁日日躁aaaa视频 | 色在线视频网站 | 久久一久久| 久久久久久久一区二区三区 | 久久久无码精品亚洲日韩按摩 | 日韩免费1区二区电影 | 欧美日日 | 中文字幕视频在线免费 | 久久99精品久久久久久狂牛 | www.啪啪.com| 日韩一三区| 成人网在线观看 | 精品日韩一区二区 | 亚洲精品乱码8久久久久久日本 | 日本一区二区三区四区 | 免费同性女女aaa免费网站 | 日韩在线 |