Tự động hóa

Arduino thực hành: Điều khiển tốc độ động cơ bước bằng chiết áp (biến trở)

 Code này điều khiển tốc độ động cơ bước quay nhanh chậm bằng chiết áp. 
Cách đấu dây:
- Với động cơ bước: Chân Ena = 8, chân Dir = 5, chân Step = 2
- Với chiết áp: có 3 chân, chân trái = 5v arduino, chân phải = GND, chân giữa vào chân A3 arduino.


// Control stepper speed from an Arduino UNO.
int en = 8 ;
int dirPinX = 5 ;
int stepPinX = 2 ;

int speedPinX = A3;
long totalRoundX = 10;
long pulsePerRoundX = 200; // so xung/vong
float speedX = 60  ; // vong/phut

void setup()
{
  Serial.begin(9600);
  pinMode(en, OUTPUT); // Enable
  pinMode(stepPinX, OUTPUT); // Step
  pinMode(dirPinX, OUTPUT); // Dir
  pinMode(speedPinX, INPUT);

  digitalWrite(en, LOW); // Set Enable low
  digitalWrite(dirPinX, LOW);
}

void loop() {
  speedX = map(analogRead(speedPinX), 0102320240); //vong/phut
  //  Serial.println(speedX);
  moveX(2, LOW, speedX);
  delay(2000);
}

void moveX(long totalRoundbool dirfloat speed_) {
  long t_time = millis();
  long stepsCount = 0;
  float period =   1000000 / (speed_ / 60 * pulsePerRoundX); // time micro second
  long totalPulse = totalRound * pulsePerRoundX;
  
  Serial.print("Total Round X is ");
  Serial.print(totalRound);
  Serial.print(" with speed ");
  Serial.print(speed_);
  Serial.println(" round/min");

  digitalWrite(dirPinX, dir);
  while (stepsCount < totalPulse) {
    stepsCount++;
    digitalWrite(stepPinX, HIGH);
    delayMicroseconds(0.2 * period);
    digitalWrite(stepPinX, LOW);
    delayMicroseconds(0.8 * period);
  }
}

Nguồn sưu tầm

About Mr. Facebook

0 nhận xét:

Đăng nhận xét