Mạch Điều Khiển Động Cơ Bước ULN2003 Với Arduino - Tutorial

Phần cứng cần thiết:

28BYJ48

ULN2003-XD                                                 ULN2003-XL 

Sơ đồ chân LCD Keypad Shield:

Mô tả:

Sơ đồ kết nối:

Thư viện:

  • Vào mục Sketch --> Include Library --> Manage Libraries

Code:

#include <AccelStepper.h>
#include <LiquidCrystal.h>
//LCD pin to Arduino
const int pin_RS = 8;
const int pin_EN = 9;
const int pin_d4 = 4;
const int pin_d5 = 5;
const int pin_d6 = 6;
const int pin_d7 = 7;
 
//const int pin_Backlight = 10;
 
LiquidCrystal lcd(pin_RS, pin_EN, pin_d4, pin_d5, pin_d6, pin_d7);
#define HALFSTEP 8
 
// Motor pin definitions
#define motorPin1  3     // IN1 on the ULN2003 driver 1
#define motorPin2 11     // IN2 on the ULN2003 driver 1
#define motorPin3  12     // IN3 on the ULN2003 driver 1
#define motorPin4  13     // IN4 on the ULN2003 driver 1
 
// Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper with 28BYJ-48
AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
char ledState;
void setup() {
  stepper1.setMaxSpeed(1000);
  stepper1.setAcceleration(2000);
    //stepper1.setSpeed(2000);
    //stepper1.moveTo(2048);
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print(" ULN2003   ");
  lcd.setCursor(0, 1);
  lcd.print("  STEP_MOTOR  ");
 
}//--(end setup )---
 
void loop() {
 
    //Change direction when the stepper reaches the target position
 
    int x;
  x = analogRead(0);
    if (x < 60) {
      lcd.setCursor(15, 0);
      lcd.print("+");
        if (stepper1.distanceToGo() == 0) {
          stepper1.moveTo(stepper1.currentPosition() - 4096);
        }
    }
    else if (x < 200) {
      lcd.setCursor(15, 0);
      lcd.print("+");
        if (stepper1.distanceToGo() == 0) {
          stepper1.moveTo(stepper1.currentPosition() - 1000);
        }
    }
    else if (x < 400) {
      lcd.setCursor(15, 0);
      lcd.print("-");
        if (stepper1.distanceToGo() == 0) {
          stepper1.moveTo(stepper1.currentPosition() + 1000);
        }
 
    }
    else if (x < 600) {
      lcd.setCursor(15, 0);
      lcd.print("-");
        if(stepper1.distanceToGo() == 0) {
          stepper1.moveTo(stepper1.currentPosition() + 4096);
        }
    }
    else if (x < 800) {
      lcd.print("Select");
    }
    //if (Serial.available() > 0)
    //{
    //  ledState = Serial.read();
 
    //  switch (ledState)
    //  {
    //  case '0':
    //  {
    //      if (stepper1.distanceToGo() == 0) {
    //          stepper1.moveTo(stepper1.currentPosition() + 4096);
    //      }
    //      lcd.setCursor(0, 0);
    //      lcd.print("ULN2003 STEPMOTOR");
    //      /*lcd.setCursor(0, 0);
    //      lcd.print("Position: +500");*/
    //     lcd.setCursor(0, 1);
    //      lcd.print("PROG: 0");
    //      ledState = ' ';
    //      break;
    //  }
    //  case '1':
    //  {
    //      if (stepper1.distanceToGo() == 0) {
    //          stepper1.moveTo(stepper1.currentPosition() - 4096);
    //      }
    //      lcd.setCursor(0, 0);
    //      lcd.print("Position: -500");
    //      lcd.setCursor(0, 1);
    //      lcd.print("PROG: 1");
    //      ledState = ' ';
    //      break;
 
    //  }
    //    case '2':
    //  {
    //      if (stepper1.distanceToGo() == 0) {
    //          stepper1.moveTo(-stepper1.currentPosition());
    //      }
    //      lcd.setCursor(0, 1);
    //      lcd.print("PROG: 2");
    //      ledState = ' ';
    //      break;
    //  }
    //  }
 
    //}
  stepper1.run();
}

Video

 

Nhận xét

  1. Woori Casino | Best Bonus | Woori Casino Online
    Join Woori Casino to claim your £50 FREE choegocasino.com twitter welcome bonus and win 우리 카지노 먹튀 big cash! Get your 제왕 카지노 보증 favourite welcome bonus and 토토사이트 100 free 온라인 카지노 슬롯머신 spins!

    Trả lờiXóa
Mới hơn Cũ hơn